Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

raspberry Pi で音声認識(julius使って見た)

今回も引き続きラズパイを使っていきます。
音声認識をラズパイでやってみようかな?と思い、音声認識ソフト?のjuliusを使って見たのでセットアップ手順等をまとめたいと思います!!

■juliusとは?

音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジンのことです。
数万語彙の連続音声認識を一般のPCやスマートフォン上でほぼ実時間で実行できる軽量さとコンパクトさを持っているようです。

Julius はオープンソースソフトウェアであり、プログラムはC言語で書かれており、さまざまなプラットフォームへの移植や改造が容易。
ライセンスはオープンライセンスで,商用利用への制限もないようです。
GitHub - julius-speech/julius: Open-Source Large Vocabulary Continuous Speech Recognition Engine


■julius環境構築

まずラズパイで音声を収集しなければならないためマイクが必要です。
今回は、こちらのUSBマイクを利用しました。

【クーポン有】 SANWA USBマイクロホン コンデンサー 単一指向性 タッチ式ミュートボタン付き # MM-MCU02BK サンワサプライ (Apple製品関連アクセサリ)

価格:3,220円
(2020/9/7 20:30時点)
感想(0件)

結構集音性能が高くて重宝しています!!

USBオーディオをメインで使用するためにラズパイ側で、

/etc/modprobe.d/alsa-base.conf

を下記の通り編集。

options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1

そして、

~/.profile

に下記を追記。

export ALSADEV="plughw:0,0"

最後にこちらを実行。

sudo julius -C testmic.jconf -charconv SJIS UTF-8
sudo modprobe snd-pcm-oss
sudo sh -c "echo snd-pcm-oss >> /etc/modules"
export AUDIODEV=/dev/dsp1
sudo apt-get install alsa-utils sox libsox-fmt-all


次は、実際にjuliusをダウンロードしていきたいと思います。
juliusをgithubから取得し、解凍。

wget https://github.com/julius-speech/julius/archive/v4.4.2.tar.gz
tar zxvf v4.4.2.tar.gz julius-4.4.2/

今回はv4.4.2を利用していますが、少し古いかもしれません。
最新バージョンを確認の上、ダウンロードしてみてください。

次にビルドとインストールを実行。

cd julius-4.4.2/
./configure
make
sudo make install

こちらのコマンドを実行してバージョン情報が表示されればインストールはOKです。

julius -version


簡単簡単!!と思ったのもつかの間、juliusだけをインストールしただけでは動かないようです。。。
juliusと合わせて、
・音響モデル(音素HMM)
・単語辞書
言語モデル(単語N-gram
が必要なようです。

幸いにも上記はディクテーションキットとしてパッケージで用意されているため、
ありがたくこちらを利用。

wget --trust-server-names 'http://osdn.jp/frs/redir.php?m=iij&f=%2Fjulius%2F60416%2Fdictation-kit-v4.3.1-linux.tgz'
wget https://github.com/julius-speech/grammar-kit/archive/v4.3.1.zip
tar zxvf dictation-kit-v4.3.1-linux.tgz
unzip v4.3.1.zip

これで準備完成です。


■juliusによる音声認識

では実際にjuliusにて音声認識を実施してみます!!
2種類方法があります。
まず1つ目は、

cd dictation-kit-v4.3.1-linux
sudo julius -C main.jconf -C am-gmm.jconf -demo

2つ目は、

cd grammar-kit-4.3.1/
sudo julius -C testmic.jconf -charconv SJIS UTF-8

どちらも、こちらのようなメッセージが表示されればOKになります!!

<<< please speak >>>

1つ目の方がの日常の言語が登録されているのでサンプルとして使うのにはよいかもしれません。



■最後に

こういうインプットデバイスからデータ蓄積していって機械学習とか出来れば面白そうだな、と思っている今日この頃。
だけど、機械学習は勉強しているけど実際に作れたりしないので、まずは何か作ってみようかな?