Julius で音声認識をする 2020/11/17 |
Raspberry PiでJuliusを使った音声認識ができるということで早速やってみました。 |
USBマイクの用意 |
何はなくともマイクがなければ始まりません。Raspberry
Piではスピーカ端子はありますが、マイク端子はありません。USBマイクが必要です。マイクはUSBカメラにも実装されています。 これを使ってもいいのですが、マイクの性能が認識に大きく影響を与えます。比較などするためUSBマイクをアマゾン購入しました。 案外カッコいいです。また、 マイクをUSBコネクタに挿入する方式なのでマイクをパソコンやオーディオ機器で利用することができいます。 |
マイクを接続してみる |
ラズベリーのUSBポートにマイクを接続すると挿入するのが硬い。こんな硬いコネクタを使っている製品は欠陥品ではないか?マイクをパソコンにつないでAudacityでテスト。OKです。音量不足はありません。(ネットの書込みでマイクを買ったが音量不足というのが案外ありました。)ノイズも乗っていません。ちゃんとした音になっています。 最初はマイクを接続っしないでlsusbをします。 pi@raspberrypi:~ $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 007: ID 04f2:0939 Chicony Electronics Co., Ltd Bus 001 Device 006: ID 413c:2003 Dell Computer Corp. Keyboard Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub マイクを接続 pi@raspberrypi:~ $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 007: ID 04f2:0939 Chicony Electronics Co., Ltd Bus 001 Device 006: ID 413c:2003 Dell Computer Corp. Keyboard Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 009: ID 8086:0808 Intel Corp. Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 赤く表示したデバイスがマイクです。 マイクとUSBコネクタがまともそうなのでラスベリーで使ってみます。音量の調整はデスクトップでできますが、マイクの設定はありません。ちなみにUbuntuを入れたレッツノートではマイクの音量設定がありました。ラスベリーはマイクなしなのでわざわざGUIでの設定などしなかったのでしょうね。 |
マイクの音量レベルを上げる |
マイクの音量レベルは初期値0です。このままでは使えません。音量レベルを上げます。 pi@raspberrypi:~ $ arecord -l **** ハードウェアデバイス CAPTURE のリスト **** カード 2: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio] サブデバイス: 1/1 サブデバイス #0: subdevice #0 カード2 デバイス0にUSB Audio が実装されています。 pi@raspberrypi:~ $ amixer -D hw:2 Simple mixer control 'Speaker',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 151 Mono: Front Left: Playback 44 [29%] [-20.13dB] [on] Front Right: Playback 44 [29%] [-20.13dB] [on] Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 127 Capture 0 - 16 Mono: Playback 127 [100%] [23.81dB] [off] Capture 16 [100%] [23.81dB] [on] Simple mixer control 'Auto Gain Control',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] カード2の情報が出力されます。 pi@raspberrypi:~ $ amixer -D hw:2 sset Mic 100% Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 127 Capture 0 - 16 Mono: Playback 127 [100%] [23.81dB] [off] Capture 16 [100%] [23.81dB] [on] マイク音量を100%に設定します。 録音する #で労音レベルが表示されます。 停止するには Ctrl+C です。 arecord,aplayではwavファイルしか使えません。また、無音部分の削除など編集ができないのは痛いです。そこで有名なAudacityがラズベリーでも使えます。 $sudo apt install audacity でインストールできます。 音声の編集やFFT解析などいろいろな機能が使います。また、mp3ファイルに保存することもできます(Windows版は別途mp3用のdllが必要です)。とても出来のいいソフトです。お試しになってください。 |
Juliusのインストール |
現時点は2020/11/17です。時間が過ぎればここにあるやり方でインストールできなことがあるかもしれません。ご承知おきください。 必要なライブラリのインストール $ sudo apt install build-essential zlib1g-dev flex $ sudo apt install libasound2-dev libesd0-dev libsndfile1-dev マイクの設定 $ sudo nano /etc/profile 最終行に export ALSADEV="plughw:2,0" を追加する。 Julius本体 https://github.com/julius-speech/julius/releases julius-4.6.zip インストール ホームディレクトリ /home/piにjulius-4.6.zipをコピーする。 cd ~/ $unzip julius-4.6.zip cd julius-4.6 $ ./configure --with-mictype=alsa $ make $ sudo make install インストールの参照ページ Julius キットのインストール $mkdir julius-kit ディクテーションキット (dictation-kit) https://julius.osdn.jp/index.php?q=dictation-kit.html dictation-kit-v4.5.zip /home/pi/julius-4.6/julius-kitへdictation-kit-v4.5.zipをコピー。 cd ~/julius-4.6/julius-kit unzip dictation-kit-v4.5.zip Julius記述文法音声認識実行キット https://julius.osdn.jp/index.php?q=grammar-kit.html grammar-kit-4.3.1.zip home/pi/julius-4.6/julius-kitへgrammar-kit-4.3.1.zipをコピー。 cd ~/julius-4.6/julius-kit unzip grammar-kit-4.3.1.zip 以上で完了。 動作確認: $julius -C ~/julius-4.6/julius-kit/grammar-kit-4.3.1/testmic.jconf -charconv SJIS UTF-8 <<< please speak >> が表示されているとき、「みかん」「リンゴ」「ぶどう」のいずれかを喋れば認識した文字を表示します。 |