トップ  検索

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
 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;

Copyright (c) 2001-2008 Takefumi MIYOSHI, All rights reserved