Edited at

Raspberry pi 2で音声認識してみる

More than 3 years have passed since last update.


はじめに

Raspberry pi 2で音声認識エンジンであるJuliusを動かすところまでをやってみました。

基本はこちらのページ(以降、参照記事と記載してるのはこのページです)を参考にさせていただいてますが、環境が変わったためかそのままでは動かなかったので、そのあたりを中心にまとめます。


対象とする環境

項目名
対象

本体
Raspberry pi 2 model B

OS
RASPBIAN JESSIE March 2016

オーディオアダプタ
PLANEX USB オーディオ変換アダプタ ケーブル PL-US35AP

マイク
フラット型PCマイク MM-MC23

参照記事みて、本体のマイクだとノイズがきになるので、私もUSBオーディオアダプタを使用しました。

C-Media製のCM119Aを使ったものであれば、同じ方法でいけると思います。


USBアダプタの設定

まず、ラズパイにUSBオーディオアダプタを差します。その後、


$ cat /proc/asound/modules


とすると、


0 snd_bcm2835

1 snd_usb_audio


と表示されます。このままだと、内蔵オーディオが優先されてしまいますので、優先度を入れ替えます。※この方法が参照記事ではうまくいかないです。

alsa-base.confというファイルを新規に作成します。


$ sudo vi /etc/modprobe.d/alsa-base.conf


で、以下の3行を記載します。


options snd slots=snd_usb_audio,snd_bcm2835

options snd_usb_audio index=0

options snd_bcm2835 index=1


その後、再起動します。再度、


$ cat /proc/asound/modules


すると、


0 snd_usb_audio

1 snd_bcm2835


と入れ替わりました。


動作確認

念のためにマイクの音量を最大にします。


$ amixer sset Mic 16


一度録音をして、再生してみます。実行はスーパーユーザで行う必要があります。

※参照記事ではこの記載がない。以前はスーパーユーザでなくてもいけたのかもしれないし、何らかの設定されていたのかもしれない。


$ sudo arecord -r 16000 -f S16_LE test.wav

$ sudo aplay test.wav


この状態だと、結構ノイズがのっている感じでした。

サウンドアダプタの設定や録音パラメータ関連は少し調整しないといけないかも。


Juliusのコンパイルとインストール

これは参照記事をご覧ください。

注意点は以下。

1. Juliusの実行もスーパーユーザーで行う必要がある

2. sudo modprobe snd-pcm-oss は必要


最後に

ということで、簡単に音声認識を行うための環境を作ることができました。

課題は、ノイズのせいか、認識率が低いことです。参照記事のようにオリジナル単語辞書を作れば、解決できるのかまだそこまではやれてませんが、録音レベルではっきりわかるノイズはクリアーにしておきたい感じです。(今後の課題)

以上