はじめに
音声認識OSSのJuliusをJetson Nano上で動かした時のメモです。分野に関して初心者ですので間違えている所がありましたらコメントいただけますと嬉しいです。
今回使用したマイク
・USBヘッドセット
ちょうど手元にあったこちらを使用しました。
エレコム ヘッドセット HS-NB05USV
https://www.amazon.co.jp/dp/B00M8VCL2Y
Juliusのインストール
大きな流れはGithubのクイックラン通りです。
モジュールのインストール
まず、Juliusのコンパイルに必要なものをインストールします。
$ sudo apt install build-essential zlib1g-dev libsdl2-dev libasound2-dev git-lfs
git-lfs
はJuliusのJapanese Dictation-kitのインストール時に必要です。ここで先にインストールしておきます。
ソースコードのクローン
$ git clone https://github.com/julius-speech/julius.git
config.guessとconfig.subの更新
このままコンパイルと行きたいですが、このままだとmake
でエラーが起きます。これはconfig.guess
とconfig.sub
のバージョンが古いため起きるようです。先に進む前に、各フォルダ内にあるconfig.guess
とconfig.sub
を新しいものに置き換えます。フォルダは
・/home/julius/adintool
・/home/julius/jcontrol
・/home/julius/support
・/home/julius/msvc/Library_PortAudio/src
・/home/julius/msvc/Library_PortAudio/src/bindings/cpp/build/gnu
の5つです。この中のconfig.guess
とconfig.sub
を下のURLから持ってきたコードに上書き、もしくは置き換えをします。
config.guess
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
config.sub
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
インストールの続き
置き換えが終わったら続きをします。
$ cd julius
$ ./configure --enable-words-int
$ make -j4
少し時間がかかりますが、問題がなければJulius本体のインストールが完了します。次のコマンドで同じような出力が返ってくるか確認してください。
$ ls -l julius/julius
-rwxr-xr-x 1 hoge hoge 746056 8月 1 13:01 julius/julius
Julius Japanese Dictation-kitのインストール
こちらのインストール後に日本語音声認識ができるようになります。
git-lfsのインストールコマンドの実行
Githubからのクローン前に、一度juliusフォルダ内でこのコードを実行します。
$ git lfs install
ソースコードのクローン
次にDictation kitのクローンを行います。Dictation-kitだけで2.2GBぐらいします。クローン後に確認してみてください。
$ git clone https://github.com/julius-speech/dictation-kit.git
これでインストール作業が終わりました。お疲れ様でした。
音声認識のテスト
USBマイクの割り当て番号の確認
インストールが終わり、さっそくマイクに声を入力して出力結果を出してみたいと思います。まず、USBマイクのカードNo.とデバイスNo.を確認します。
$ arecord -l
こんな出力が出ると思います。
card 3: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
上の場合、カードNo.は3、デバイスNo.は0になります。確認出来たら.profile
に
export ALSADEV="plughw:3,0"
のように書き込みます。なお、このNo.はUSBの抜き差しなどで変わる場合がありますので、もしエラーが起きた時はもう一度確認しなおして.profile
を書き直してください。
音声認識のテスト
.profile
の書きこみが終わったら、一度読み直します。
$ source .profile
いよいよJuliusを動かしてみます。コマンドは次の通りです。
$ ~/julius/julius/julius -C ~/julius/dictation-kit/main.jconf -C ~/julius/dictation-kit/am-gmm.jconf -nostrip
起動が成功するとズラーっと出力が流れたあと、「please speak」と表示が出ますので、マイクに向けて何か話しかけてみてください。音声認識が成功すると、その話しかけた内容がターミナル上に表示されますので確認してください。
おわりに
今回は色々と調べながらJuliusで音声認識テストしてみました。先人たちの知恵に本当に感謝しています。ありがとうございました。
参考記事
[Raspberry pi3B+でjuliusを動かせるようになるまでの覚書き(2019.3.10現在)][1]
[1]:https://qiita.com/todateman/items/9c0e291e7b378a3c559b
[Raspberry Pi+Juliusで音声を認識する][2]
[2]:https://qiita.com/mininobu/items/f181b762955932cec6d6