導入

ダウンロード

パッケージ julius - Julius - OSDN

バージョン間の相違は履歴に、ライセンスの情報は使用許諾にあります。

最新のソースはGitHub - julius-speech/juliusにあります。

ソースからのコンパイル

julius-speech/julius · GitHubパッケージ julius - Julius - OSDNからソースをダウンロードできます。

Windows向けにはmsvcフォルダにVisual Studio向けのソリューションファイル (JuliusLib.sln) が用意されており、それからコンパイルできます。Windows - Microsoft Visual C++ - 第2章 インストール

コンパイル時に「未解決の外部シンボル _vecin_standby が関数 _mfc_module_init で参照されました。」のようなリンクエラー (LNK2019) が発生するときは、libsentプロジェクトにlibsent\src\anlz\vecin_net.cを追加します。これは本来プロジェクトに含まれているべきファイルですが、Rev.4.3以降プロジェクトに含まれていません。

juliusアプリケーション

出力が文字化けする場合には、-charconvオプションで文字コードの変換を指示します。このアプリケーションではこのオプションを、charconv.cファイルのcharconv_add_option()で対応させています。

SampleAppアプリケーション

msvc\SampleAppにあるSampleAppでjconfファイルを読み込んだときに「Error while loading Julius engine.」とエラーとなるときには、そのファイルで-charconvオプションが使用されていないか確認します。そして使用されているならば、それを削除します。

期待通りに認識されない場合には、言語モデルの文字コードを確認します。その指定はSampleApp.cppの98行目のsetlocale()にあり、既定ではEUC-JPとなっています。文字化けを解消できないならば、デコードすることで内容を確認できることがあります。

Juliusディクテーション実行キットによる動作確認

とりあえず動作を試すには、Juliusディクテーション実行キットが便利です。

ダウンロード

Juliusディクテーション実行キット

ディクテーション実行キットはGitHubのjulius-speech/dictation-kit: Japanese dictation kit using Juliusにもあり、git clone https://github.com/julius-speech/dictation-kit.gitでダウンロードできます。

Pythonがインストールされていない環境でDNN版を実行しようとすると、start pythonで「ファイル python が見つかりません。」のようにエラーとなります※1。ここではGMM版を用いるものとします。

※1 v4.4のDNN (Julius単体) 版ならば、Pythonがなくても実行可能

同梱のモデル

ディクテーション実行キットには、以下のモデルが同梱されています。

音響モデル (model\phone_m)
ファイル名 内容 備考 既定
jnas-mono-16mix-gid.binhmm GMM-HMM音響モデル monophone (Julius binhmm形式)
jnas-mono-16mix-gid.hmmdefs GMM-HMM音響モデル monophone (HTK形式)  
jnas-tri-3k16-gid.binhmm GMM-HMM音響モデル triphone (Julius binhmm形式)  
jnas-tri-3k16-gid.hmmdefs GMM-HMM音響モデル triphone (HTK形式)  
jnas-tri-rtree.base Triphoneモデルの回帰木情報 HTKによるMLLR用  
jnas-tri-rtree.tree Triphoneモデルの回帰木情報 HTKによるMLLR用  
logicalTri Triphoneリスト  
logicalTri-3k16-gid.bin Triphoneリスト logicalTri用 (バイナリ形式) (v4.4で追加)  
model/phone_m/00readme.txt main.jconf am-gmm.jconf

この音響モデルは、日本音響学会の新聞記事読み上げ音声コーパス (Japanese Newspaper Article Sentences : JNAS) を基に作成されています。

言語モデル (model\lang_m)
ファイル名 内容 備考 既定
bccwj.60k.bingram 言語モデル Julius bingram形式
bccwj.60k.tri.arpa.gz 言語モデル ARPA形式 (gzip圧縮)  
bccwj.60k.htkdic 発音辞書  
bccwj.60k.pdp.htkdic 発音辞書 位置依存音素用 (DNN用) (v4.4で追加)  
main.jconf

この言語モデルは、国立国語研究所の現代日本語書き言葉均衡コーパス (Balanced Corpus of Contemporary Written Japanese : BCCWJ) を基に作成されています。

録音デバイスからの入力

ディクテーション実行キットのrun-gmm.batを実行すると、録音デバイスからの音声認識を試せます。そのとき録音デバイスが接続されていないと、Error: adin_portaudio: no default input device is available or an error was encounteredとして処理に失敗します。またマイクを接続しているのに、それに発声しても反応なくWarning: strip: sample ***-*** has zero value, strippedとしか出力されない場合には、マイクの入力レベルを確認します。

Windows 10 April 2018 Update以降、設定の【プライバシー → マイク】にある[アプリがマイクにアクセスできるようにする]がオンになっていないと「Error: adin_portaudio: error in opening stream: Unanticipated host error」としてマイクからの入力に失敗します。PortAudio Error - Microsoft Community

問題の発生時にエラーが出力されずその原因を特定できないときには、julius.exeので-logfileオプションを指定しログを記録するようにします。

音声ファイルからの入力

同じディレクトリにあるam-gmm.jconfの-input mic-input fileまたは-input rawfileとすると、音声ファイルを認識対象とできます。さらに複数のファイルから認識させるには、それらのファイル名を記述したファイルを次のように作成します。

sample1.wav
sample2.wav
…

このテキストファイルの名前をlist.txtとしたならば、

-input file
-filelist list.txt

のようにそのファイルを指定することで、連続して読み込ませられます。ただしファイル名を直接指定した場合、処理が終了するとすぐにプロンプトが閉じられてしまい結果を確認できません。そのときはrun-gmm.batの末尾にpauseと記述すると、入力待ちの状態で停止させられます。

-input fileを指定せず-filelistだけを指定すると、そのファイルがHTK parameter fileと解釈され「Error: rdparam: input file is WAV file, not a parameter file」としてエラーとなります。