音声認識の実行

まずは, ターミナルを二つ用意して,片方でJuliusMFTによる音声認識を実行し, もう一方でHARKによる音源分離を実行しよう. 実行するコマンドと実行例を,図14.33と 図14.34に示す. 音声認識の準備が終わっていないと音源分離結果が捨てられてしまうので, 先に図14.33を実行し,その次に 図14.34を実行する必要があることに注意. 実行が終わると,wav ディレクトリ以下に大量の wav ファイルが生成され, result.txt にJuliusMFT のログが保存されているはずなので確認しよう.

$>$ julius_mft -C julius.jconf 2$>$&1 $|$ tee result.txt
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 —————————–
: JuliusMFT 実行例
$>$ sh Recognition.sh
UINodeRepositoryScan()
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.
(以下略)
: HARK 実行例

wav ファイル達は処理の中間ファイルである. ファイル名の最初の文字列は処理の段階を,続く数字は定位された通し番号を表 す. GHDSS から始まるは音源分離結果, NR から始まるファイルは音源分離結果に含まれる漏れノイズを後処理で減らし た結果, そして WNから始まるファイルはそれに白色雑音を付加したものである. WNから始まるファイルのMSLS特徴量が抽出されて,JuliusMFT に送られる. 標準的な wav ファイルなので,適当なオーディオプレイヤーで聞いてみるとよ いだろう.

result.txt は文字コードが EUC-JPの 未加工の音声認識ログである. pass1_best から始まる行が音声認識結果なので, 次のコマンドを実行すると,認識結果の料理名がたくさん表示されるはずだ.

    grep pass1\_best result.txt | nkf 

トラブルシューティング

wav ファイルが生成されていないときは HARK が正しく動いていない. まずはファイルの確認をしよう. 表#.#.# をもう一度確認して,ファイルがすべて揃っているかを確認しよう. wav ディレクトリに書き込み権限があるかも確認しよう. もしあれば,次は HARK のインストールが正しく行われているかを, レシピ #.#.#うまくインストールできないを 見ながら確認しよう.

result.txt に音声認識結果が無い場合は,JuliusMFT が正しく動いていない. まずは JuliusMFT がインストールされているかを確認しよう. julius_mft をコマンドラインで実行し, command not found と 表示されたらインストールされていない. 次に,表#.#.# を確認して,ファイルが すべて揃っているかを確認しよう. 最後に,図#.#.# のコマンドを間違えずに実行 しているかを再度確認しよう.

いずれの場合も,ログにエラーの原因が書かれているのでよく確認しよう.