Juliusで音声認識してみる音声認識に挑戦してみましょう。Juliusはラズパイでも使用可能なオープンソースの音声認識エンジンです。オープンライセンスなので個人利用はもちろん、商用でも無償で利用することができます。4.4をもとにインストール方法を説明します。USBマイクの準備USBマイクをラズパイに接続し、こちらのページを参考にして、USBマイクの優先順位を1番目にしておいてください。‘Mic’,0」というエラーが出てしまいます。KitはそもそもJuliusのキットのひとつであり、以前は別にJulius本体も取得する必要があったのですが、今回のバージョンアップから単独で動作するようになりました。Kitを取得し、解凍しましょう。dictation-kit-v4.4.zip解凍後「dictation-kit-v4.4」という名のディレクトリが作られて、その中に多数のファイルとディレクトリが展開されたはずです。JuliusのコンパイルsrcというディレクトリにJulius本体の圧縮ファイルがありますので解凍します。julius-4.4.2.zip解凍後に生成された「Julius-4.4.2」ディレクトリに移動してコンパイルします。install無事インストールされていることを確認するため、Juliusのバージョンを表示してみましょう。stream」「/dev/dspが見つからない」などとエラーが発生することがありますので、下記のようにカーネルモジュールsnd-pcm-ossを組み込みます。pullピンジャックにスピーカーを接続してください。念のため音がでるかどうか確認しておきましょう。Front_Center.wavサンプルプログラムを実行してみましょう。sampleJulius1.pyマイクに向かって「こんにちは」「おはよう」「こんばんは」「ベゼリー」などと喋ってみてください。入力した単語が発話されたら成功です。辞書をカスタマイズしてみる認識させるキーワードの辞書を自分なりに編集してみましょう。辞書は「julius.dic」というファイルなのですが、まずは辞書ファイルの元となる「読みファイル」をテキストエディターで開きます。julius.yomi以下のようなリストが表示されたと思います。認識させたいキーワードとその読み仮名がTABで区切って羅列されています。TABの代わりにスペースが入っていたり、最終行に空行が入っていたりすると、エラーになってしまうので注意してください。認識させたいキーワード以外の言葉も、ある程度登録しておいたほうが認識精度が上がります。編集を終え、セーブしたら、これを変換して辞書ファイルを更新しましょう。変換のためのプログラムを用意しました。juliusYomi2dic.pyこれでjulius.yomiを元にjulius.dicが更新されたはずです。サンプルプログラムを実行し、自分なりの辞書が反映されたかどうか確認してみましょう。sampleJulius1.pyサンプルプログラム2上記サンプルでは認識したキーワードをそのまま発話させているだけですが、今度は会話リストを参照して、簡単な会話をさせてみます。サンプルを実行してみましょう。sampleJulius2.py今度はオウム返しではなく、対応する返事を発話するはずです。話すときに頭も動かしています。自分なりに会話リストを追加・修正してみましょう。会話リストを開きます。bezeDialog.csv以下のようなリストが表示されたと思います(長いので一部分だけ引用します)。不一致,知らないです1234567891011121314151617こんにちは,こんにちはですこんにちは,どうもですこんにちは,はーいこんばんは,こんばんはですおやすみ,おやすみなさいおはようございます,おはようですおやすみなさい,おやすみです今何時,えーと、だいたいねーベゼリー,はいはーいベゼリー,なんですか?ベゼリー,どうもです不一致,わかんない不一致,知らない言葉なの不一致,うーん不一致,わからないです不一致,知らないですカンマで区切られたCSV形式のリストです。第1項目が認識したキーワードで、第2項目がベゼリーの返答です。キーワードはjulius.yomiで定義していないと無効です。同じキーワードに対して複数の返答を用意しておくことができます。どの返答が選ばれるかはランダムで決まります。キーワード「不一致」は、該当するキーワードが無かった場合に発話されます。このファイルを編集して保存したら、またサンプルプログラムを実行してみてください。辞書リストと会話リストを頑張って書けば、なんとなく会話しているような感覚が実現できると思います。音声認識の精度を上げたい場合は、julius.yomiに、多数の言い回しを登録したり、実際には使用しないキーワードをたくさん登録しておくことが簡単かつ有効です。juliusの設定ファイル「julius.jconf」内に記述されているパラメータを調整することでも認識精度はあがるかもしれません。juliusリファレンス・マニュアルさらに高みを目指したいかたは自然言語や英語を認識させたりすることもできますので、Juliusのドキュメントを読んでみてください。Booktips-Juliusの発音には諸説あるそうですが、開発チームでは「ジュリアス」と発音しているそうです。bookベゼリーは量産を目指して開発継続中です。facebookページに「いいね!」をお願いします。