認識結果が出たら,次は評価用スクリプトは score.py で音声認識率を評価しよう. 方向ごとに評価するために,次の3つのコマンドを順番に実行していこう.
python score.py result.txt transcription_list1.txt 60 10 python score.py result.txt transcription_list3.txt 0 10 python score.py result.txt transcription_list2.txt -60 10
引数の意味は,前から順に音声認識結果のログ,正解データ, 正解データの音声到来方向,音声到来方向の許容誤差である. たとえば1行目なら,50度から70度から到来した音源を評価対象として, transcription_list1.txt にある正解データと比較する.
実行すると,図14.35のような表示が 得られるはずだ. 各行は左から順に認識が成功したかどうか,認識結果,正解データを表す. 最後の行は,全発話中何発話が成功したかと,音声認識率を表す. この場合は, 20発話中 17 発話の認識に成功し,認識率は 85% である.
Result |
Recognition |
Correct |
Success |
"からあげ定食" |
"からあげ定食" |
Success |
"とんかつ定食" |
"とんかつ定食" |
Success |
"焼き魚定食" |
"焼き魚定食" |
Success |
"サイコロステーキ" |
"サイコロステーキ" |
Fail |
"からあげ定食" |
"松阪牛ステーキ" |
(中略) |
||
Success |
"アメリカンコーヒー" |
"アメリカンコーヒー" |
17 / 20 (85.0 %) |
いずれの認識率も 70% から 90% のはずなので, もし極端に低い場合は,正解データのファイル名と,方向の指定が正しいかを 確かめよう. それも正しければ,音源分離・認識の失敗が考えられるので, wav/ ディレクトリのファイルを聞いてみたり,#.#.#章 のレシピを参照しよう.