まずは, ターミナルを二つ用意して,片方でJuliusMFTによる音声認識を実行し, もう一方でHARKによる音源分離を実行しよう. 実行するコマンドと実行例を,図14.32と 図14.33に示す. 音声認識の準備が終わっていないと音源分離結果が捨てられてしまうので, 先に図14.32を実行し,その次に 図14.33を実行する必要があることに注意. 実行が終わると,sep_files ディレクトリ以下に wav ファイルが生成され, result.txt にJuliusMFT のログが保存されているので確認しよう.
> 1_Julius.sh STAT: include config: julius.jconf STAT: loading plugins at "/usr/lib/julius_plugin": STAT: file: calcmix_heu.jpi #0 [Gaussian calculation plugin for Julius. (ADD_MASK_TO_HEU)] (中略) ----------------------- System Information end -----------------------------
> 2_Recognition.sh UINodeRepository::Scan() Scanning def /usr/local/lib/flowdesigner/toolbox done loading def files loading XML document from memory done! Building network :MAIN TF = 1,INITW = 0,FixedNoise = 0 SSMethod = 2LC_CONST = 0LC_Method = 1 reading A matrix Try to read loc_tf.dat as HARK format. 72 directions, 1 ranges, 8 microphones, 512 points done initialize Source 0 is created. Source 1 is created. (以下略)
wav ファイルたちは認識される分離音である。 標準的な モノラル wav ファイルなので,適当なオーディオプレイヤーで聞いてみるとよ いだろう.
result.txt は文字コードが UTF-8 の 未加工の音声認識ログである. pass1_best: から始まる行が音声認識結果なので, 次のコマンドを実行すると,認識結果の料理名がたくさん表示されるはずだ.
grep pass1_best: result.txt | nkf
トラブルシューティング
wav ファイルが生成されていないときは HARK が正しく動いていない. まずはファイルの確認をしよう. 表14.20 をもう一度確認して,ファイルがすべて揃っているかを確認しよう. sep_files ディレクトリに書き込み権限があるかも確認しよう. もしあれば,次は HARK のインストールが正しく行われているかを, レシピ: 3.1うまくインストールできないを 見ながら確認しよう.
result.txt に音声認識結果が無い場合は,JuliusMFT が正しく動いていない. まずは JuliusMFT がインストールされているかを確認しよう. julius_mft をコマンドラインで実行し, command not found と 表示されたらインストールされていない. 次に,表14.20 を確認して,ファイルが すべて揃っているかを確認しよう. 最後に,図14.33 のコマンドを間違えずに実行 しているかを再度確認しよう.
いずれの場合も,ログにエラーの原因が書かれているのでよく確認しよう.