Rapiro の音声操作 その3

Rapiro の音声操作 その3

音声入力はできたけど
Julius で音声の認識から結果が表示されるまで
長い理由はJulius の初期設定の
辞書ファイルが大きいため

Juius の動作は
マイクから入力された音声を
辞書に登録されている単語と比較
そして
もっとも近い単語を選び出す
という処理になっている

そういえば音声で動く Android の音声関連も
どうなっているのか興味深いところ

それはさておき
この辞書ファイルに登録された単語の中から
最適な言葉を検索するため
活舌の曖昧な音声だったりすると
誤認識もするし
探すのに時間がかかる

Rapiro の動作に RaspberryPi だけでなく
ネットワークでサーバーで処理するとかできれば
もっとはやいのかもしれない

ただし、Julius ではそんなことをしなくても
音声認識させたい言葉だけを登録した
オリジナル辞書ファイルの作成が可能とのこと

つまり、必要最低限の単語だけ
登録した辞書ファイルをつくれば
音声認識のスピードアップ
そして認識精度の向上が可能

ただし、そのぶん反応する言葉は減る

用途ごとに絞るといいのかもしれない

なお、辞書ファイルとはいっても拡張子を
.dic という拡張子のファイルでつくるだけ

まずはログインして

cd dictation-kit-v4.3.1-linux/

で移動

次に

sudo vim rapiro.dic

で辞書ファイルを作成

内容は

<sil>   silB
<sil>   silE
<sp>    sp
ラピロ  r a p i r o
はっしん        h a q sh i N
こうたい        k o u t a i
バック          b a q k u
右              m i g i
左              h i d a r i
バンザイ        b a N z a i
たたかえ        t a t a k a e

左に認識させたい言葉

右に対応するモーションをローマ字で入力
入力するときの注意点としては
ナ行とかぶらないために
んのときには
N を大文字にすること

そして
っ を入れるときには q をつかうこと

m i g i
というように途中にスペースをいれること
くっつけて
mi gi
とするとエラーになるので注意

あと最終行に改行をいれないこと

これで辞書ファイルはできたので
次にこの作成した辞書ファイルを Julius に組み込む設定を行う

設定ファイルは .conf が拡張子の設定ファイルを作成する

sudo vim rapiro.conf

でファイルを作成

内容は

-w rapiro.dic
-v model/lang_m/bccwj.60k.htkdic
-h model/phone_m/jnas-tri-3k16-gid.binhmm
-hlist model/phone_m/logicalTri
-n 5
-output 1
-input mic
-input alsa
-rejectshort 800
-lv 1500
-demo

これで設定ファイルができたので

julius -C rapiro.conf 

を実行したらエラー

Stat: adin_alsa: device name from ALSADEV: "plughw:1,0"
Error: adin_alsa: cannot open PCM device "plughw:1,0" (No such file or directory)
failed to begin input stream

原因を考えたら
設定ファイルを書き換えたため
以前設定ファイルを変更したのが原因だった

vim  ~/.profile

でファイルを開いて

#export ALSADEV=plughw:1,0

というように
最下行をコメントアウトする
設定反映のため

sudo reboot

で再起動

これで再度

julius -C rapiro.conf

を実行すると

pass1_best: はっしん           
sentence1: はっしん
pass1_best: はっしん           
sentence1: はっしん
pass1_best: はっしん           
sentence1: はっしん
pass1_best: 右<input rejected by short input>
pass1_best: 左                    
sentence1: 左
pass1_best: 右                    
sentence1: 右
pass1_best: 左<input rejected by short input>
pass1_best: バック<input rejected by short input>
pass1_best: ラピロ<input rejected by short input>
pass1_best: 右<input rejected by short input>

というように指定した言語のみ反映されるようになる
ちなみに、途中で上とか下とか音声入力したけど
右とか左として認識された

終了は ctrl + c で終了

これで音声辞書作成と起動検証はできたので
次回は Julius のモジュールモードの起動

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です