はじめに
トランジスタ技術2018年3月号付録(付録は基板のみ)のaiスピーカを音声認識エンジンJuliusで使用する際、トラ技サイトからダウンロードしたイメージのままだと音量が小さく、MEMSマイクに相当近づかないと認識してくれません。alsamixer で音量調整できるようですが、ステレオのみです。対して、Juliusで使用できるサウンドデバイスは、モノラルのみです。
そこで、モノラルでの音量を調整するために色々と試した結果、うまく音量を調整することができ、MEMSマイクから(数メートル)離れていても音声認識できるようになったので、その方法について記述します。
なお、juliusのインストールや辞書作成、PythonでのLチカについては、他のページを参照してください。
※ Julius でALSA を有効にするには、Julius をコンパイルする際に、あらかじめ ALSA ライブラリをインストールしておく必要があります。
具体的に
下記のとおりに行うことにより、音量を制御することができます。
1..asoundrc の変更
~/.asoundrc の pcm.softvol の定義の下に、下記を追加します。
pcm.plugvol{
type softvol
slave.pcm "plughw:1,0"
control{
name "Boost Capture plug volume"
card sndrpisimplecar
}
min_db -3.0
max_db 30.0
}
2.音量の設定
alsamixer を起動して、F6→"1 snd_rpi_simple_card"→F4 するとバーが2本表示されるので、左右キーでplug volume を選択した後、上下キーで録音音量を設定します。
※ 一度、録音を実行しないとalsamixer に表示されないようです。
$ arecord -D plugvol -c1 -r16000 -f S16_LE test.wav
3. 環境変数の設定
julius 起動時に環境変数 ALSADEV に"plugvol"を設定します。
$ ALSADEV="plugvol"
$ julius -C ../grammar/hmm_mono.jconf -nostrip -input alsa -gram [文法ファイル名] -module
以上で、音量を上げ、うまく音声認識することができるようになりました。
辞書やPythonプログラムの作成は、「julius L チカ」で検索するとヒットします。
このとき注意することは、デリミタを「yomi」ファイルでは'tab'、「voca」ファイルでは'(space)'にするということです。
※ sudo apt-get upgrade を実行すると、録音で使用するデバイス(snd_rpi_simple_card)が見えなくなってしまいました。そこで、トラ技 3月号のP.81 「[ラズベリー・パイの準備⓶]MEMSマイクとの通信」の手順を最後(P.83)まで実行してみると、再度、録音で使用するデバイスが見えるようになりました。