Rapiro の音声操作その2

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

続きは次回

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です