14.6.1 音声認識の実行

まずは, ターミナルを二つ用意して,片方でJuliusMFTによる音声認識を実行し, もう一方でHARKによる音源分離を実行しよう. 実行するコマンドと実行例を,図14.33と 図14.34に示す. 音声認識の準備が終わっていないと音源分離結果が捨てられてしまうので, 先に図14.33を実行し,その次に 図14.34を実行する必要があることに注意. 実行が終わると,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 -----------------------------
Figure 14.33: JuliusMFT 実行例
> 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
 72 directions, 8 microphones, 512 points
 done
 initialize
 Source 0 is created.
 Source 1 is created.
    (以下略)

Figure 14.34: HARK 実行例

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 のコマンドを間違えずに実行 しているかを再度確認しよう.

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