Rapiro の音声操作その2
なんとかマイクで録音したものを再生することができたので続き
デフォルトが raspberryPI そのものだと
後々面倒なので、
USBのものを標準になるように設定ファイルを編集
ちなみに現在の優先順位を表示するなら
cat /proc/asound/modules
この結果が
0 snd_bcm2835 1 snd_usb_audio
0がデフォルト設定扱いなので
USBのほうがデフォルトになるように設定する
sudo vim /etc/modprobe.d/alsa-base.conf
で編集
編集するときに
:set number
を使うと編集するときに便利
編集する場所は
17行めの
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
というように
USBのほうが0に表示されていれば成功
次に音声認識エンジンの Julius
のインストール
もっと新しいバージョンがあるかもしれないけど
基本的に同じものが手に入るのなら
それを試したほうが無難
なぜなら、バージョンアップしたものを使うと
変更に対処しないとならなくなり
それができないと起動すらしないという結果になるため
ということで
4.3.1を使用
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
でファイルを取得
次に、インストールに必要になるパッケージをインストール
sudo apt-get install libasound2-dev libesd0-dev libsndfile1-dev
必要なものがそろったので
julius のインストール
tar zxvf julius-4.3.1.tar.gz
で解凍
コンパイルとインストールだけど時間がかかる
私の環境では10分以上かかった
cd julius-4.3.1/ ./configure -with-mictype=alsa make sudo make install
次に
ディクテーションキットの準備
ディクテーションキットは
聞き取った言葉をテキストにする部分のこと
これには日本語の音響モデルと言語モデルが含まれるので
これを追加する
まず圧縮ファイルを解凍し、移動する
tar zxvf dictation-kit-v4.3.1-linux.tgz cd dictation-kit-v4.3.1-linux/
次に Julius は使用するオーディオデバイスの指定が必要なため
export で指定する
export ALSADEV=plughw:0,0
次に julius の起動
julius -C main.jconf -C am-gmm.jconf -demo
これを実行すると
----------------------- 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 >>>
という画面がでてくるので
この状態になったら
マイクで喋るとその音声をテキスト表示してくれる
しかしあまり正確ではないので
早口で喋ったりすると誤変換される
今回の結果だと
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 コマンドが必要なので
面倒なら
vim .profile
でファイルを開き
最終行に
export ALSADEV=plughw:1,0
を追加
設定を反映するために
source .profile
を実行
これで
printenv | grep ALSA
で結果が
ALSADEV=plughw:1,0
となっていればOK
続きは次回