2014年8月17日日曜日

RAPIRO の Raspberry Pi で音声認識( Julius )を試してみました。

※[2015/03/29]よくわからないんですが、この投稿の後半に記述したはずの設定の部分が消えてしまって、そんなことあるんかいな?って感じなんですが、とりあえず、RAPIROのRPiをBから2に変えた時にJuliusの再セットアップをしたので、それをこちらに載せてありますので、どうぞ。

 前回は RAPIRO に Aquestalk pico を載せて音声合成を行いましたが、喋れるなら認識もしたい、っていうことで、今回は音声認識を試してみようと思います。音声合成はあえてハードウェア(音声合成IC)を使いましたが、さすがに音声認識をハードで実現するモジュールは簡単に入手できなさそうなので、ソフトウェアで行います。
 「Raspberry Pi  音声認識」とかでGoogle先生にアドバイスを求めると、「Julius」(ジュリウス? or ユリウス?かな)という日本の大学や研究機関が開発しているオープンソースの音声認識エンジンを利用されている先達の方のサイトが多数出てきます。そこで、自分もこの Julius を使わせてもらうことにしました。本家サイトの資料も日本語ですし、先のインターネット上の先達の情報も日本語なので助かります。

 参考にさせていただいたサイトの内、いくつかを挙げさせて頂きます。有用な情報を有難うございます。

まずは、ダウンロードですが、wget のパスがよくわからなかったので、Raspberry Pi のGUI を立ち上げて ブラウザで Julius サイトからダウンロードしました。



 2014年08月17日の朝の時点では、 4.3.1 (julius-4.3.1.tar.gz)がダウンロードされました。同様に、ディクティエーションキット dictiation-kit-v4.3.1-linux.tgz と 文法認識キット grammar-kit-v4.1.tar.gz をダウンロードして、それぞれ piユーザのホームと julisu-kits とういディレクトリを作成した下に移動しました。

   cd ~/
   mkdir julius-kits
   mv ~/Download/julius-4.3.1.tar.gz ~/
   mv ~/Download/dictiation-kit-v4.3.1-linux.tgz ~/julius-kits/
   mv ~/Download/grammar-kit-v4.1.tar.gz ~/julius-kits/

 Julius の展開・インストールの前に、まずは、マイクを準備します。Raspberry Pi は音声出力はHDMIとphoneジャックとあるんですが、マイク入力がありません。なので、USBサウンドモジュールかUSBマイクを利用することになります。自分は今回は サンワサプライ の MM-MCUSB16 というUSBマイクを用意しました。



RAPIRO の後頭部にあるUSBコネクタに挿して、ちょんまげのように頭頂部かやや後ろくらいにコンパクトにマイクが実装できそうだったからです。

 USBマイクを挿して、 lsusb で確認すると、「C-Media Electoronics, なんとか~」と認識されているのが確認できました。次に、 cat /proc/asound/modules で確認すると

  0 snd_bcm2835
  1 snd_usb_audio

と表示されました。先の参考にさせていただいたサイトによると、ここはUSB Audio(USBマイク)の優先順位を上げる必要があるとのことで、

   sudo vi /etc/modporbe.d/alsa-base.conf

で、 usb audio の index=-2 となっているのを index=0 に書き換えて、再起動します。
   sudo reboot

 再起動後、もう一度
   cat /proc/asound/modules
で確認すると   

   0 snd_usb_audio
   1 snd_bcm2835
と順番が代わっていればOKです。