Juliusの導入

TurtleBot1で音声認識をさせるべく、Juliusをインストールしてみた。
大語彙連続音声認識エンジン Juliusによると、Juliusは以下のような音声認識エンジンである。

Julius は,音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジンです. 数万語彙の連続音声認識を一般のPC上でほぼ実時間で実行できます. また,高い汎用性を持ち,発音辞書や言語モデル・音響モデルなどの音声認識の各モジュールを組み替えることで,様々な幅広い用途に応用できます. Julius はオープンソースソフトウェアで,ソースコードを含めてどなたでもフリーで入手することができます.

ubuntu(12.04LTS)のレポジトリのものは4.1.5と古かったので、最新のソースからビルドすることにした。

準備

Juliusのサイトから以下のファイルをダウンロードする。

  • julius-4.2.2.tar.gz
  • dictation-kit-v4.1.tar.gz

dictation-kit-v4.1(Juliusディクテーション実行キット)にはJulius本体が同梱されているが、バージョンが古いため最新のエンジンを用意しておく。
なお、説明の都合上、~/Downloadsに保存したものとする。

ビルド

上記のファイルを適当なフォルダ(ここでは~/workspaceとする)で展開する。
cd ~/workspace
tar xzf ../Downloads/julius-4.2.2.tar.gz
tar xzf ../Downloads/dictation-kit-v4.1.tar.gz

julius本体をビルド&インストールする。
cd julius-4.2.2
./configure
make
sudo make install

実行

以下のコマンドでJuliusを起動すると、連続的に音声認識を行い、認識結果がUTF-8で表示される。
julius -C ~/workspace/dictation-kit-v4.1/fast.jconf -charconv EUC-JP UTF-8

moduleモード

以下のコマンドではmoduleモードで起動する。
julius -C ~/workspace/dictation-kit-v4.1/fast.jconf -module -charconv EUC-JP UTF-8
moduleモードにするとJuliusはポート10500番でlistenし、TCPで接続してきたクライアントに認識結果がXML形式で送られる。
なお、JuliusBookには連続的な接続・切断をサポートするようなことが書かれているが、実際には切断するたびにJuliusが終了するので注意。

注意点

マイクの種類や音量には敏感なようなので微調整が必須。ディクテーションキットの辞書ではそれほど認識精度も高くない。ちゃんと認識させるにはそれなりの学習が必要と思われる。