LatticeDemo.java を試してみました。そして、結果例に示すような結果を得ることができました。この例では、音声データ (10001-90210-01803.wav) に「AudioFileDataSource」を使用しています。StreamDataSource を使用して、この音声データを別の方法で認識しようとしています。
しかし、私は別の結果を得ます。どんなアイデアでも聞きたいです。
私が取った手順は次のとおりです。
次のコードで 10001-90210-01803.wav から Byte データを取得します
File f = new File(file); ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedInputStream in; try { in = new BufferedInputStream(new FileInputStream(f)); return ByteStreams.toByteArray(in); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
あとは、この「data」というバイトデータを次のようにByteArrayInputStreamに入れるだけです
StreamDataSource dataSource = (StreamDataSource) cm.lookup("streamDataSource"); ByteArrayInputStream st = new ByteArrayInputStream(data); dataSource.setInputStream(st, "メイン ストリーム");
実は、「setInputStream」関数を使用する場合、2 番目の引数 (つまり「メイン ストリーム」) には特別な意味があるのですか? なぜこの議論が必要なのかわかりません。
streamDataSource の構成は次のとおりです。
<component name="streamDataSource" type="edu.cmu.sphinx.frontend.util.StreamDataSource"> <property name="sampleRate" value="16000" /> <property name="bigendianData" value="false" / > </コンポーネント>
出力は
Loading...
17:48:01.941 WARNING dictionary Missing word: <unk>
17:48:02.543 WARNING dictionary Missing word: <unk>
<s> i. </s>
<s> i. <sil> </s>
<s> i. a. </s>
<s> i. a </s>
<s> i </s>
<s> i a </s>
<s> i <sil> </s>
<s> i a. </s>
<s> high a </s>
<s> i </s>
<s> a i </s>
<s> a i. </s>
<s> i i </s>
<s> i i. </s>
<s> i. </s>
<s> i. i. </s>
<s> high </s>
<s> higher </s>
<s> tight </s>
<s> right </s>
<s> wright </s>
I heard: i
よろしく