ちょっとわけあってJuliusをFreeBSDで試してみました。
FreeBSD 10.4RでとりあえずgithubのJuliusのブランチをcloneしてconfigureしてmakeしたら、ビルドが通りません。
一つはdevnameという名前をシステムヘッダーが使うようになってエラーになるようになったことと、一つはFreeBSD用のコードでの変数名のミスでした。これらは修正してプルリク出しておきました。もうFreeBSDでなんか誰もビルドしてないのかもしれませんね。
あとgmakeじゃないと通らないようですが、これはプロジェクトの方針かもしれないので、素直にgmakeを使うことにします。
ビルドが通るとjulius/juliusという実行ファイルができます。
% ./julius/julius
Julius rev.4.4.2.1 - based on
JuliusLib rev.4.4.2.1 (fast) built for x86_64-unknown-freebsd10.4
Copyright (c) 1991-2016 Kawahara Lab., Kyoto University
Copyright (c) 1997-2000 Information-technology Promotion Agency, Japan
Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
Copyright (c) 2005-2016 Julius project team, Nagoya Institute of Technology
Try '-setting' for built-in engine configuration.
Try '-help' for run time options.
FreeBSD上ではデフォルトでシステムのサウンドデバイスを認識しますが、ボリュームを調子しておく必要があります。
% mixer mic 80:80
Setting the mixer mic from 0:0 to 80:80.
実際認識させるためにはdictation-kitというファイルが必要で、これもダウンロードします。これに入っている設定ファイルでjuliusを起動してみます。
% cd dictation-kit-v4.4
% ~/julius/julius/julius -C main.jconf -C am-gmm.jconf
起動するとログが流れて以下の行がでて認識を開始します。
<<< please speak >>>
micのボリュームが大きすぎてノイズのレベルが高いとこの表示がされないようなので、mixerコマンドでボリュームを下げます。
話してみます。
Stat: adin_freebsd: device name = /dev/dsp (application default)
STAT: AD-in thread created
pass1_best: 台風 が き ます 。
pass1_best_wordseq: <s> 台風+名詞 が+助詞 き+動詞 ます+助動詞 </s>
pass1_best_phonemeseq: silB | t a i f u: | g a | k i | m a s u | silE
pass1_best_score: -5068.315918
### Recognition: 2nd pass (RL heuristic best-first)
STAT: 00 _default: 24732 generated, 2380 pushed, 322 nodes popped in 205
sentence1: 台風 が 来 ます 。
wseq1: <s> 台風+名詞 が+助詞 来+動詞 ます+助動詞 </s>
phseq1: silB | t a i f u: | g a | k i | m a s u | silE
cmscore1: 0.504 0.486 0.768 0.125 0.795 1.000
score1: -5068.802734
認識できました。
認識率はあまり良くないです。背後にセミの鳴き声などが入ってしまうと認識しなくなるようです。
オーディオデバイスはたくさん持っているのですが、消費税が5%だった頃にHardOffで105円で買ってきたSkype用の電話型USBモジュールを使ってみました。このモジュールはC-MEDIAという会社のCM109というチップを使っているのですが、結構良いような気がします。客室乗務員ぽくもってテストしてみました。参考:客室乗務員ぽく電話をもちたい - デイリーポータルZ
いろいろ試していて気がついたのですが、このデバイスのマイクは音声用にコンプレッサーが入っているのような気がします。Juliusを使う場合マイクの特性もかなり影響があると思われます。
なにをたくらんでいるかはないしょです。:)