DesignAssembler

備忘録に近い

Raspberry PiでJuliusを使った音声認識(1)

こんにちは。

Raspberry Piで音声認識をします。

[使用環境]
Raspberry Pi Model B+

※結構遅いです。そろそろRaspi2買わなきゃ・・・


音声認識にはJuliusという国産のエンジンを使います。

この記事を書くにあたって以下のページを参考にしました。ありがとうございます。

Devel/電子工作/RaspberryPi/日本語音声認識 - cubic9.com

http://www.orsx.net/blog/archives/4938


Julius

Julius
大語彙連続音声認識エンジン Julius

Juliusは非常に高性能な音声認識エンジンで、日本の大学等の研究機関が開発を行っています。

準備するもの

・Raspberry Pi
・Raspberry Piを動かすのに必要なもの
・マイクモジュール

マイクモジュールは、自分は以下のものを使用しています。

SANWA SUPPLY MM-MCUSB16 USBマイクロホン

SANWA SUPPLY MM-MCUSB16 USBマイクロホン

机の上汚い・・・
f:id:hyottokoaloha:20150630014856j:plain


マイクモジュールの検証

マイクモジュールの検証、設定をします。

# /etc/modprobe.d/alsa-base.conf内の以下を編集してください
# options snd-usb-audio index=-2
options snd-usb-audio index=0

そして再起動

 $ sudo reboot 

します。

ここで以下のコマンドを入力してサウンドモジュールの使用優先度を確認してください。

$ cat /proc/asound/modules

このコマンドの出力が

0 snd_usb_audio
1 snd_bcm2835

となっていれば設定は成功です。


以下のコマンドでマイクの音量を設定してください。

$ amixer sset Mic 50

数値の範囲は0-62です。

Juliusのインストール

まずはファイルをダウンロードします。

※最新バージョンは4.3.1(2015年6月30日現在)

$ wget -O julius-4.3.1.tar.gz ‘http://sourceforge.jp/frs/redir.php?m=osdn&f=%2Fjulius%2F60273%2Fjulius-4.3.1.tar.gz’
$ wget -O dictation-kit-v4.3.1-linux.tgz ‘http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fjulius%2F60416%2Fdictation-kit-v4.3.1-linux.tgz’

次に、ビルドします。

$ tar zxvf dictation-kit-v4.3.1-linux
$ tar zxvf julius-4.3.1.tar.gz
$ cd julius-4.3.1
$ make 
$ sudo make install

マイクモジュールのカード番号を確認します。

$ arecord -l

これで表示されたカード番号を次のコマンドで指定します。

$ export ALSADEV=hw:0

Juliusの実行

以下のコマンドでJuliusを実行します。

$ julius -C main.jconf -C am-gmm.jconf -demo

これで以下のように出力されたら成功です。

f:id:hyottokoaloha:20150630022120j:plain


躓いたところ

Error: adin_oss: failed to open /dev/dsp
以下を実行する

$ sudo modprobe snd-pcm-oss

you should specify at least one LM to run julius
原因:実行コマンドの入力間違い

InternalError: codeconv: invalid multibyte sequence in the input
原因:最初実行コマンドの末尾に -charconv EUC-JP UTF-8 をつけていたのですが、これが原因だったみたいです。これを外したら無事動きました。

こんな感じになる
f:id:hyottokoaloha:20150630022621j:plain

CUI操作だと日本語出力がうまくいきません。素直にstartxしたほうが早いです。

少し遊んでみる

俺「こんにちは」
raspi「こんにちは」
f:id:hyottokoaloha:20150630023202j:plain:w400


俺「カエルぴょこぴょこみぴょこぴょこ」
raspi「えっ 。」
f:id:hyottokoaloha:20150630105651j:plain:w400


俺「カエルぴょこぴょこみぴょこぴょこ」
raspi「入る と 国民 郷子 郷子 。」
f:id:hyottokoaloha:20150630023438j:plain:w400



俺「カエルぴょこぴょこみぴょこぴょこ」
Siriさん「ではこちらも。庭には二羽にわとりがいる。」
f:id:hyottokoaloha:20150630105308j:plain:w250

Siriさん強い。


モジュールモード

これだけだとただのお遊びツールにしかすぎません。ですが、Juliusにはモジュールモードという非常に便利な機能があります。
このモジュールモードにより他のアプリケーションで音声認識が可能になります。

参考:公式リファレンス
第10章 モジュールモード


長くなるので続きは次の記事に書きます。