トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2007-12-18

Juliusで遊ぶ

大語彙連続音声認識エンジン Juliusで遊んでみた。
環境は、特に音声環境の設定とかしていないFreeBSD。

インストール
http://julius.sourceforge.jp/index.php?q=newjulius.html
から最新版をダウンロード。
そもそもマイクから入力を得るつもりがないので、

$ ./configure --with-mictype=oss
$ make
$ make install

と適当にコンパイル
で、辞書等々のファイルは、ディクテーションキットよりダウンロードして展開。
http://julius.sourceforge.jp/index.php?q=juliuskit.html

遊んでみる
Microsoft PCM, 16 bit, mono 16000 Hzな音声ファイル test.wavを作成して

$ julius -C dictation-kit-v3.0/light.jconf -input rawfile

とかして起動。

enter filename->

とプロンプトがでるので、用意したtest.wavと入力。
で、めでたく解析結果が見られる。

MP3からWAV作成
mpg123 --mono --rate 16000 --wav hoge.wav hoge.mp3

とか

Microsoft Speech SDK 5.1

で遊んでみようと、サンプルをコンパイルしょうとしたら、
sphelper.h内でのコンパイルエラー。
無理矢理キャストしてみたりして、とりあえずコンパイルできたけど...
よくわからないけど、Microsoft .NET Speech SDKを使えってこと?

sphelper.h.diff(184)

769c769
<     const ulLenVendorPreferred = wcslen(pszVendorPreferred);
---
>     const size_t ulLenVendorPreferred = wcslen(pszVendorPreferred);
1418c1418
<     static CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)
---
>     static HRESULT CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)
2372c2372,2373
<         for (const WCHAR * psz = (const WCHAR *)lParam; *psz; psz++) {}
---
>         const WCHAR * psz = (const WCHAR *)lParam;
>               for (; *psz; psz++) {}
2559c2560
<     SPPHONEID* pphoneId = dsPhoneId;
---
>     SPPHONEID* pphoneId = (SPPHONEID*)((void*)dsPhoneId);
2633c2634
<                     pphoneId += wcslen(pphoneId) + 1;
---
>                     pphoneId += wcslen((const wchar_t*)((void*)pphoneId)) + 1;