専攻は音響学です。どうもこんにちは
先日バイト先で、前職で音声認識サービスを扱っていたというTさんからjuliusなる音声認識エンジンを教えてもらいました。以前からそういったものがあることは一応小耳に挟んではいたのですが、実際に目の前でデモを見せてもらうとちょっとした感動がありましたんで、自分でもインストールしてここで皆さんに紹介したいと思います。
先日バイト先で、前職で音声認識サービスを扱っていたというTさんからjuliusなる音声認識エンジンを教えてもらいました。以前からそういったものがあることは一応小耳に挟んではいたのですが、実際に目の前でデモを見せてもらうとちょっとした感動がありましたんで、自分でもインストールしてここで皆さんに紹介したいと思います。
さて、juliusに何が出来るかと言うと、所謂音声認識です。
具体的にどういう処理をしているかはドキュメントもソースコードもまだちゃんとは追ってないので詳しくは言えませんが、恐らく「音声を入力して、信号処理をして、最終的には辞書ファイルに登録された語とのマッチングをテキストベースで行なっている」と考えればそう遠くはないはずです。
マッチングの処理はともかく、ボクが驚いたのはやはりリアルタイムでの処理ですね。ちょうど今研究でリアルタイムにマルチスレッドな感じで信号処理を行おうとしているのですが、FFT(*1)はやはり早いんだなぁと実感した次第です。
Macでは普段オーディオ I/Oの際に内蔵のCoreAudioを使って処理しているのですが、今回のjuliusではどうにも対応していないらしいのです。そこでPortAudioの出番というわけです。
インストールにはHomebrew(*2)を使用します。
homebrewの最新Formulaでは--universalオプションが指定出来るので、今回インストールするPortAudioは--universal付きのユニバーサルバイナリでインストールしましょう。
というのもjuliusは64bit環境では動作しないため、juliusから使うPortAudioは32bit版である必要があるのです。
おそらく特に問題なくPortAudioのインストールは終わるかと思います。
Lionには標準ではwget(*3)が入ってなかった気がするんで、無い場合は先に
とでもしておきましょう。ここまでうまく行ったら
上記juliusコマンドが効くようになっていると思いますので試してみましょう。

とりあえずは何やら怒られますが引数の話なのでこの表示でOKです。
以上でインストール自体は終わりです。
juliusの素晴らしいところはこれらモデルのセットを公式にて配布しているところですね。
なんとディクテーションキットを落としてきてjuliusコマンドを以下のように実行するとそれだけで日本語音声認識をスタートできるのです。
juliusコマンド実行時に設定ファイルと文字コードを指定すると
と出るので喋ると認識結果を表示してくれるはずです。
簡単なデモもしてみました。
キャプチャの関係でなんか微妙に変なリバーブかかってますが気にしないでください。
とりあえずはうまく認識してくれましたね。安心しました。デフォルトのままでは正答率はそんなによくないみたいですが、カスタマイズすることによって十分実用に耐えうるとのことです。
ちなみにデモでは単語しか話しませんでしたが文章でも大丈夫みたいです。
--------------------------------------------------
*1 FFT=Fast Fourier Transform
*2 Homebrew=パッケージ管理システム。unixツールを簡単にインストールする。
*3 wget=コマンドラインダウンローダー
参考url:
http://ascii.jp/elem/000/000/547/547250/index-2.html
http://keny.b.sourceforge.jp/2011/08/17/mmdagent-macosx/
具体的にどういう処理をしているかはドキュメントもソースコードもまだちゃんとは追ってないので詳しくは言えませんが、恐らく「音声を入力して、信号処理をして、最終的には辞書ファイルに登録された語とのマッチングをテキストベースで行なっている」と考えればそう遠くはないはずです。
マッチングの処理はともかく、ボクが驚いたのはやはりリアルタイムでの処理ですね。ちょうど今研究でリアルタイムにマルチスレッドな感じで信号処理を行おうとしているのですが、FFT(*1)はやはり早いんだなぁと実感した次第です。
Install Julius
ともあれ、juliusをインストールしてみましょう。- PortAudio
juliusをインストールするために、まずPortAudioをインストールします。PortAudioとはオープンソースのオーディオ I/O ライブラリで、MacのみならずWindowsやLinuxなど様々な環境に対応していることで知られています。Macでは普段オーディオ I/Oの際に内蔵のCoreAudioを使って処理しているのですが、今回のjuliusではどうにも対応していないらしいのです。そこでPortAudioの出番というわけです。
インストールにはHomebrew(*2)を使用します。
$ brew install --universal portaudio
homebrewの最新Formulaでは--universalオプションが指定出来るので、今回インストールするPortAudioは--universal付きのユニバーサルバイナリでインストールしましょう。
というのもjuliusは64bit環境では動作しないため、juliusから使うPortAudioは32bit版である必要があるのです。
おそらく特に問題なくPortAudioのインストールは終わるかと思います。
- Julius
さて、いよいよjuliusです。juliusのFormulaは無いようですので公式から落としてきて自分でコンバイルする必要があります。ターミナルで以下を実行してください。$ wget "http://sourceforge.jp/frs/redir.php?m=keihanna&f=%2Fjulius%2F51820%2Fjulius-4.2.tar.gz" -O julius-4.2.tar.gz $ tar xzf julius-4.2.tar.gz $ cd julius-4.2 $ env CFLAGS='-arch i386' ./configure --enable-words-int --with-mictype=portaudio --disable-zlib $ make $ sudo make install
Lionには標準ではwget(*3)が入ってなかった気がするんで、無い場合は先に
$ brew install wget
とでもしておきましょう。ここまでうまく行ったら
$ julius
上記juliusコマンドが効くようになっていると思いますので試してみましょう。

とりあえずは何やら怒られますが引数の話なのでこの表示でOKです。
以上でインストール自体は終わりです。
Juliusを使ってみる
julius以外でもそうですが、音声認識には『音響モデル』という所謂信号処理部分と『言語モデル』という単語等の辞書データが必要になります。juliusの素晴らしいところはこれらモデルのセットを公式にて配布しているところですね。
なんとディクテーションキットを落としてきてjuliusコマンドを以下のように実行するとそれだけで日本語音声認識をスタートできるのです。
$ wget "http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fjulius%2F51158%2Fdictation-kit-v4.1.tar.gz" -O dictation-kit-v4.1.tar.gz $ tar xzf dictation-kit-v4.1.tar.gz $ cd dictation-kit-v4.1 $ julius -C fast.jconf -charconv EUC-JP UTF-8
juliusコマンド実行時に設定ファイルと文字コードを指定すると
<<< please speak >>>
と出るので喋ると認識結果を表示してくれるはずです。
簡単なデモもしてみました。
キャプチャの関係でなんか微妙に変なリバーブかかってますが気にしないでください。
とりあえずはうまく認識してくれましたね。安心しました。デフォルトのままでは正答率はそんなによくないみたいですが、カスタマイズすることによって十分実用に耐えうるとのことです。
ちなみにデモでは単語しか話しませんでしたが文章でも大丈夫みたいです。
--------------------------------------------------
*1 FFT=Fast Fourier Transform
*2 Homebrew=パッケージ管理システム。unixツールを簡単にインストールする。
*3 wget=コマンドラインダウンローダー
参考url:
http://ascii.jp/elem/000/000/547/547250/index-2.html
http://keny.b.sourceforge.jp/2011/08/17/mmdagent-macosx/
サイトを拝見させていただき、とても参考になりました。
ただ、できれば教えていただきたいことがあります。。。。
portaudioは問題なくでき、juliusも途中までちゃんとできるとおもいますが、、、sudo make installまで行い。
juliusが入っているかの確認、
$ julius
でjuliusが確認できません。
↑はあたまにcd/・・・など必要なのでしょうか?
それともターミナルに直接入力するだけでいいのでしょうか?
どうしても入れたくいろんなサイトを確認してますが、
ここだけがどうしてもわかりません。
教えていただければと思いご連絡致しました。
何卒よろしくお願い致します。