osa2's memo

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

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

先週末の、ESP-WROOM-02 (以下ESP)らくちんリモコンの続編。

自宅に眠っていたRaspberry Pi2 B+ (以下、RasPi) にWiFiドングルを挿して、RasPiで音声認識、ESPに指示を送る形で、音声のみでの照明・エアコン操作をしてみました。

RasPiのセットアップやWiFiドングル(IO-DATA WN-G150UMK)の設定は検索すれば多く見つかりますし、RasPiではこのドングルはすぐ認識されましたので特別なことはないです。

音声認識は以下のサイトの通りやっただけ(ありがたや)。ただ後半は自分のリモコンへの接続をしているので、もちろん違ってきます。

raspibb2.blogspot.jp後半の差分部分は、とりあえずESPのWEBサーバーにPOSTで(前回のWEB画面でボタンを押した時にサブミットされる文字列を入れた)JSONを送る。上記サイトで使っているPythonプログラムにPOST送信のコードを埋めただけ。なので、コードも省略。

ひとつわかったことは、上のサイトではJuliusの音声認識の時間を800msecから400msecに短縮しているが、辞書を絞った上に認識時間を短縮すると、些細な言葉(例えば「ねむい」)も誤変換されて、コマンドが発行され、うっかりすると照明もエアコンもぐちゃぐちゃに動き出すのです。

とりあえずの対策は、逆に認識の時間を1500msecと長く設定して、辞書の単語も1ワードを長くする(例:「しょうめいあかるく」とか)して、命令以外の言葉を引っかかりにくくしてみました。が、辞書を絞っているので、長い言葉を掴むと無理やりコマンドに変換してしまいます・・。

なので根本的には、「事前にこの後、命令を発することをRasPiに教える」必要がありそうです。というわけで、「OK, Google」の意味がわかりました。これが前置詞で、これで待機状態に入ったところで、命令を発行するわけですね。

ならばもちろん「Nope, Google!」としたいところですが(笑)せっかくなので、このコンシェルジュにお名前を付けてあげて、その名前で呼んであげることにしたいと思います。

== TO BE CONTINUED ==