Rapiro の音声操作その2
なんとかマイクで録音したものを再生することができたので続き
デフォルトが raspberryPI そのものだと
後々面倒なので、
USBのものを標準になるように設定ファイルを編集
ちなみに現在の優先順位を表示するなら
1 | cat /proc/asound/modules |
この結果が
1 2 | 0 snd_bcm2835 1 snd_usb_audio |
0がデフォルト設定扱いなので
USBのほうがデフォルトになるように設定する
1 | sudo vim /etc/modprobe .d /alsa-base .conf |
で編集
編集するときに
:set number
を使うと編集するときに便利
編集する場所は
17行めの
1 | options snd-usb-audio index=-2 |
の部分
これを
1 | options snd-usb-audio index=0 |
にして保存
設定反映のため再起動
1 | sudo reboot |
再度ログインして
1 | cat /proc/asound/modules |
を実行
1 2 | 0 snd_usb_audio 1 snd_bcm2835 |
というように
USBのほうが0に表示されていれば成功
次に音声認識エンジンの Julius
のインストール
もっと新しいバージョンがあるかもしれないけど
基本的に同じものが手に入るのなら
それを試したほうが無難
なぜなら、バージョンアップしたものを使うと
変更に対処しないとならなくなり
それができないと起動すらしないという結果になるため
ということで
4.3.1を使用
1 2 | wget http: //jaist .dl.sourceforge.jp /julius/60273/julius-4 .3.1. tar .gz wget http: //jaist .dl.sourceforge.jp /julius/60416/dictation-kit-v4 .3.1-linux.tgz |
でファイルを取得
次に、インストールに必要になるパッケージをインストール
1 | sudo apt-get install libasound2-dev libesd0-dev libsndfile1-dev |
必要なものがそろったので
julius のインストール
1 | tar zxvf julius-4.3.1. tar .gz |
で解凍
コンパイルとインストールだけど時間がかかる
私の環境では10分以上かかった
1 2 3 4 | cd julius-4.3.1/ . /configure -with-mictype=alsa make sudo make install |
次に
ディクテーションキットの準備
ディクテーションキットは
聞き取った言葉をテキストにする部分のこと
これには日本語の音響モデルと言語モデルが含まれるので
これを追加する
まず圧縮ファイルを解凍し、移動する
1 2 | tar zxvf dictation-kit-v4.3.1-linux.tgz cd dictation-kit-v4.3.1-linux/ |
次に Julius は使用するオーディオデバイスの指定が必要なため
export で指定する
1 | export ALSADEV=plughw:0,0 |
次に julius の起動
1 | julius -C main.jconf -C am-gmm.jconf -demo |
これを実行すると
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ----------------------- System Information end ----------------------- Notice for feature extraction (01), ************************************************************* * Cepstral mean normalization for real- time decoding: * * NOTICE: The first input may not be recognized, since * * no initial mean is available on startup. * ************************************************************* Stat: adin_alsa: device name from ALSADEV: "plughw:0,0" Stat: capture audio at 16000Hz Stat: adin_alsa: latency set to 32 msec (chunk = 512 bytes) Stat: "plughw:0,0" : Device [USB PnP Sound Device] device USB Audio [USB Audio] subdevice #0 STAT: AD- in thread created <<< please speak >>> |
という画面がでてくるので
この状態になったら
マイクで喋るとその音声をテキスト表示してくれる
しかしあまり正確ではないので
早口で喋ったりすると誤変換される
今回の結果だと
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | STAT: AD- in thread created pass1_best: わい て き sentence1: 満鉄 。 <input rejected by short input> pass1_best: もう 著 、 sentence1: もう ちょっと 。 pass1_best: そう<input rejected by short input> pass1_best: ちょっと 、 sentence1: ちょっと 。 pass1_best: いや 場合 sentence1: いや 場合 。 pass1_best: 微妙 。 sentence1: 微妙 。 pass1_best: こんにちは 。 sentence1: こんにちは 。 pass1_best: 全身<input rejected by short input> pass1_best: 知事 が 、 sentence1: 血 じゃ ない 。 <<< please speak >>> |
というように
変な言葉になってしまった
中断するには ctrl + c で終了できる
なお、このままだとログインするたびに
export コマンドが必要なので
面倒なら
1 | vim .profile |
でファイルを開き
最終行に
1 | export ALSADEV=plughw:1,0 |
を追加
設定を反映するために
1 | source .profile |
を実行
これで
1 | printenv | grep ALSA |
で結果が
1 | ALSADEV=plughw:1,0 |
となっていればOK
続きは次回