夢に向かって、好奇心を持ち、疑問を持ち続ける。それが努力。

趣味でロボット職人を目指す自称AI研究者のメモです。

macで音声認識ソフトJuliusを使ってみる

mac音声認識ソフトJuliusを使ってみたのですが、ちょっとひっかかった点があるので紹介。

参考にさせて頂いたサイト:
http://qiita.com/ikesato/items/ffe1eff8440a995065fe


手順は次の通り。

1.Juliusに対してマイク入力を行うのに必要なportaudioをインストール
2.Juliusをインストール
3.Dictation-kitをインストール
4.細かい調整をして実行

順に説明して行きます。

1.portaudio のインストール

http://www.portaudio.com/download.html から 最新のstableバージョンをダウンロードする。(本開発時の最新バージョンはpa_stable_v19_20140130.tgz)

下記の手順でビルド。

% tar -xzf ~/Downloads/pa_stable_v19_20140130.tgz
% cd portaudio
% env CFLAGS='-arch i386' LDFLAGS='-arch i386' ./configure --disable-mac-universal

Makefile の編集。

CFLAGS から -Werror を削除

include/pa_mac_core.h の編集

(削除) #include <AudioUnit/AudioUnit.h>
(削除) #include <AudioToolbox/AudioToolbox.h>
(追加) #include <CoreAudio/CoreAudio.h>

編集が完了したらビルド。

% make
% sudo make install

これでportaudioのインストールは完了。

2.Juliusをインストール

http://julius.sourceforge.jp/index.php?q=newjulius.html
アーカイブのところから最新のjulius-*.*.*.tar.gzをダウンロード。(本開発時の最新バージョンはjulius-4.3.1.tar.gz)

% tar -xzf ulius-4.3.1.tar.gz
% cd julius-4.3.1
% env CFLAGS='-O3 -arch i386' LDFLAGS='-arch i386' ./configure --enable-words-int --with-mictype=portaudio
% make
% sudo make install

これでJuliusのインストールは完了。

3.Dictation-kitをインストール

http://julius.sourceforge.jp/index.php?q=dictation-kit.html
から最新のディクテーションキットをダウンロード。(本開発時の最新バージョンはdictation-kit-v4.3.1-osx.tar.gz)

% tar -xzf dictation-kit-v4.3.1osx.tar.gz

Dictation-kitのインストールは展開するだけ。


===== 以下余談 =====
ここで本当はすぐに実行できるはずだが・・・

/run-gmm.sh を実行しても次のようなエラー発生。

dyld: Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: dictation-kit-v4.3.1-osx/bin/julius

どうやらjuliusから参照されているlibportaudioのライブラリがないとのこと。

Makefileにもそんな指定する場所はないし、juliusファイル自体は実行ファイルで中身が見れないのでどうしたもんだと思ったところ・・・

2でインストールしたjulius中にも同様のjulius実行ファイルを発見。

これと、dictation-kit-v4.3.1-osx/bin/juliusを入れ替えた(正確にはdictation-kit-v4.3.1-osx/bin/juliusを削除して、julius-4.3.1/julius/juliusをコピーしてきた)ら、正常に動いた。

(なぜかわからないけど、動いたからよかったことにする)

この余談部分を飛ばしても良いように、下記4番に改めて記載しておく。
==== 余談終了 =====

4.細かい調整をして実行

dictation-kit内のjuliusをそのまま使うと、なぜかjuliusが指定しているportaudioのライブラリが見つからない(実際にないので)エラーが発生するので、下記のような調整をする。

rmv dictation-kit-v4.3.1-osx/bin/julius
cp julius-4.3.1/julius/julius dictation-kit-v4.3.1-osx/bin/

すなわち、dictation-kit-v4.3.1-osx/bin/juliusを削除して、julius-4.3.1/julius/juliusをコピーする。

これで、実行できるようになった。最後は Dictationの中にあるHOWTOファイルの通りに実行。

cd dictation-kit-v4.3.1-osx
./run-gmm.sh

少し待って<<< please speak >>> が現れたら、マイクに向かって話しかけると認識結果を返してくれる。


これで一応使えるようになりました。

最初は1-best(認識結果のうちで最も発話されたものに近いとされる最上位)のみしか表示されていないが、n-bestの数値変更等も可能なので、ちょっといじってみたいと思う。


以上、最近話題のロボットで大事な機能である、人の言葉を理解する部分の紹介でした。


googleさん音声認識、ドコモさんの音声認識AppleのSiriさんなど賢い音声認識機がたくさん出てるので、自分で作るのは今更感はありますが、ちょっと自分で遊んでみる分にはこれでも十分だと思う。(Julius自体は前から公開されてたけど、辞書は今もしっかりメンテナンス、アップデートが行われているようなので)


動くものって楽しいなって思う今日この頃の星の妖精さんの日記、そろそろ重い腰を上げてロボット制作にくり出したいと思います。