【実験】PaPeRo i本体でJuliusによる音声認識を行う

※より良い方法をこちらで紹介しています(2018/9/20追記)。

オープンソースの音声認識エンジンJuliusをPaPeRo i本体で動かして日本語の音声認識を行う手順を紹介します。

chroot環境で実行

JuliusをPaPeRo iで動かすためにはソースからビルドする必要がありますが、このためにchroot環境を利用することにします。
minibian wheezyではVFPがらみのエラーでうまく行かなかったため、debian stretchのchroot環境を利用します。

ビルド手順

(1) 環境の入ったUSBメモリ(/dev/sda1とします)をマウントしてchrootし、環境を整えます。

# mount -t ext4 /dev/sda1 /mnt
# /Extension/test/chrootpre_debian_stretch
# chroot /mnt/debian_stretch /bin/bash
(debian_stretch)# export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
(debian_stretch)# ip r add default via 192.168.x.x
(debian_stretch)# echo nameserver 192.168.x.x > /etc/resolv.conf
(debian_stretch)# apt-get install build-essential unzip less

(2) 作業用ディレクトリに、これ一つで音声認識が試せるというディクテーションキットをダウンロードして展開します。

(debian_stretch)# mkdir /home/julius
(debian_stretch)# cd /home/julius
(debian_stretch)# wget --no-check-certificate https://osdn.net/projects/julius/downloads/66544/dictation-kit-v4.4.zip
(debian_stretch)# unzip dictation-kit-v4.4.zip

(3) juliusのソースを展開、configure、make、インストールします。

(debian_stretch)# cd dictation-kit-v4.4/src
(debian_stretch)# unzip julius-4.4.2.zip
(debian_stretch)# cd julius-4.4.2
(debian_stretch)# ./configure
(debian_stretch)# make
(debian_stretch)# make install

(4) GMMの音声認識を実行します。

(debian_stretch)# cd ../..
(debian_stretch)# julius -C main.jconf -C am-gmm.jconf -demo

試したところでは、短いフレーズや単語でも認識時間10秒前後、
「お腹が減ったよ」→「お腹がへったろう。」
「メールして」→「メールしてる。」
「下」→「知った」
という感じに間違える場合が多く、正解率は30%と言ったところでした。

このままでは実用にはならないと思いますが、

・辞書を作って認識語を限定する
・adintoolを使ってローカルのPCと連携させる

といった方法により、クラウドに頼らない自由な音声認識を実現できる可能性はありそうです。

なおGMMより高精度・高負荷なDNNの音声認識を実行しようとすると、PaPeRo iでは起動途中で終了してしまいます(メモリ不足?)。

(debian_stretch)# julius -C main.jconf -C am-dnn.jconf -demo -dnnconf julius.dnnconf

Raspberry Pi3であればDNNでも実行はできましたが、認識時間がやはり10秒程度かかり、このままでは実用には厳しい様でした。


0