ラベル Julius の投稿を表示しています。 すべての投稿を表示
ラベル Julius の投稿を表示しています。 すべての投稿を表示

2013年9月7日土曜日

RaspberryPIでJuliusによる音声認識(3) canna変換辞書から認識辞書作成

前回、自前で文法を作成してコマンドだけ認識させるようにしてみたが、

false positive(=無効な単語を有効コマンドに誤認識)が多すぎて使えないことがわかった。

しばらく考えて無意味な単語は無意味なものとして認識させれば良いのではないかと思い立った。

そこでcannaの変換辞書から単語を取り出して辞書に追加してみた。

辞書はスクリプトで作成

  • 長音とヴが入った単語は変換が面倒なので削除
  • 残った単語をローマ字音節に変換

単語数は12000程度。




・・・で、試してみた。

結論から言えばfalse negative(=有効なコマンドを他の単語に誤認識)が多すぎて使えない。

「エアコンオン」が「オヤブンヤク」になったり、文字数はあっていて音の感触が近いものがあがってくるが、使えないことには変わりない。

やっぱり音の認識そのものの性能がイマイチな気がする。

調整すれば使えるかも知れないけど面倒なので、juliusによるコマンド入力は一旦諦めようと思う。



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が多すぎて使えない・・・うーむ。

2013年8月29日木曜日

RaspberryPIでJuliusによる音声認識

例によって参考サイト「今日もRaspberry PiでJuliusを動かしてみた」を参考にJuliusによる音声認識を試してみた。

参考サイトにあったように認識率は非常によろしくない。

というかほぼ認識しない。ごくまれに「おはよう」とか「こんにちは」といった簡単な単語がとれる。

Juliusのログ(一部)
pass1_best:  こんばんは 。            
sentence1:  こんばんは 。 
pass1_best: 
pass1_best:  さようなら 。            
sentence1:  さようなら 。 
pass1_best:  ら 実行 。               
sentence1:  ら 実行 。 
pass1_best:  競馬 コーン              
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1:  毛 が 被る 。 
pass1_best:  へ か 交換               
sentence1:  変化 を 交換 。 
pass1_best:  誰 か ?                 
sentence1:  だ ね 。 
pass1_best:  って ん                  
sentence1:  です 。 
pass1_best:  ダメ です ね 。           
sentence1:  ダメ です ね 。 
pass1_best:                            
sentence1:  。 

語彙をしぼって自前のコマンドのディクテーションを作成しないとダメなようだ。