osa2's memo

自分の記憶のために・・・。

RaspberryPiで音声認識→ESP-WROOM-02操作 (後編)

長くなるのでやったことだけ、メモ。

1.プリコマンドによる誤操作防止

直接指示を与えるのではなく、事前に「これからコマンドを送るよ」という前置詞的なコマンドを用意。プリコマンドを発声すると、ready_state → ON となる。各コマンドは ready_state == ON の場合のみ実行され、実行後に ready_state → OFF とする。

2.ロック(アンロック)コマンドによる誤操作防止

長時間不在時のために、もう1段、明示的にロックをかけられるようにする。lock_state == OFF の時だけプリコマンドが成功し、ready_state → ON に変更できる。ロックコマンドで lock_state → ON、アンロックコマンドで lock_state → OFFとする。

3.Open JTalkによるコマンドエコーバックメッセージ

音声操作の場合、モニタなどのディスプレイ装置を観ていないことが多い。このため、エコーバックを音声(WAVファイル)で行うこととし、テキスト文言からWAVファイル作成には Open JTalkを使用した。

女性ボイスデータ:meiちゃん(mmdagent.jp

qiita.commoblog.absgexp.net

ちなみに、私のパラメータ設定は以下の通り。割とキビキビした明るい女の子。ちなみに、アクセントの制御は難しいが、「、」や空白を入れて読み上げを区切るとアクセントが変わる(かなりの違和感をこの方法で解決できた)。

open_jtalk -m /usr/share/hts-voice/mei/mei_happy.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -a 0.55 -fm 4.0 -r 1.0 -jf 1.2 -ow test.wav voice.txt

4.マイクレベル・音声認識の調整

マイクレベルが高いと常に入力信号を拾い、音声認識(Julius)のバッファあふれや頻繁なエラーが起きる。マイクレベルは使用機器により異なると思うが家にあったマイクでは30%程度で適正であった。

また、音声認識のカットオフを800msec(結局はインストール時の初期値)に変更した。

5.TODO