Rapiro の音声操作その2

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

続きは次回

コメントを残す

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