2013年9月1日日曜日

RaspberryPIでJuliusによる音声認識(2)

前回の確認でデフォルトの辞書では使い物にならないことがわかったので

Julius の記述文法を用いて音声認識精度をあげてみた

を参考にコマンドの文法を作成してみた。

詳細は参考サイトを参照してもらうとして、以下の設定ファイルを作成して試してみた。

cmd.grammar
S       :  NS_B CMD NS_E
CMD     :  RADIO CH
CMD     :  RADIO OFF
CMD     :  DENKI
CMD     :  CHOUKOU
CMD     :  JOUYATOU
CMD     :  EAKON ON
CMD     :  EAKON OFF
CMD     :  TENKIYOHOU


cmd.voca
% RADIO
ラジオ  r a j i o
% CH
イチ  i ch i 
ニ  n i 
サン  s a N
ヨン  y o N
ゴ  g o
ロク  r o k u
ナナ  n a n a
ハチ  h a ch i
キュウ  ky u:
ジュウ  j u:
% OFF
オフ  o h u
% ON
オン  o N
% DENKI
デンキ  d e N k i
% CHOUKOU
チョウコウ ch o: k o:
% JOUYATOU
ジョウヤトウ j o: y a t o:
% EAKON
エアコン e a k o N
% TENKIYOHOU
テンキヨホウ t e N k i y o h o:
% NS_B
<s>  silB
% NS_E
<s>  silE

julius.conf
-input mic
-h hmmdefs_ptm_gid.binhmm 
-hlist logicalTri

-n 5
-output 1

-rejectshort 800
-demo
-debug
-lv 5000


コマンド
$ ../dist/bin/julius -C julius.conf  -gram cmd


出力結果は以下のようにほぼ間違いなく認識できるようになった。

pass1_best: <s> デンキ <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> デンキ <s>
pass1_best: <s> ラジオ イチ <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> ラジオ イチ <s>
pass1_best: <s> エアコン オン <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> エアコン オン <s>
pass1_best: <s> エアコン オン <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> エアコン オン <s>
pass1_best: <s> テンキヨホウ <s>          
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 1 sentences have been found
sentence1: <s> テンキヨホウ <s>
pass1_best: <s> チョウコウ <s>            
sentence1: <s> チョウコウ <s>
pass1_best: <s><input rejected by short input>
pass1_best: <s><input rejected by short input>

しかし、記述文法方式だと無意味な発音も無理やり認識してしまう。
「こんにちは」と発音しても「デンキ」となってしまう。

勿論スコアがあるのだけどコマンド毎に数値の基準が違ったり、全く別の発音でも高スコアだったりして判定できない。

結局、false positiveが多すぎて使えない・・・うーむ。

0 件のコメント:

amazonアソシエイト