Juliusの使い方

 

早稲田大学 人間科学部 菊池英明
 

(2004/06/16) 公開
(2004/11/29) プラットフォーム、ディクテーションについての記述追加
(2005/12/27) 音素セグメンテーション(アライメント)キットについて追加
(2006/12/11) MacOSXへのインストールについて追加
(2008/11/18) MacOSX10.5への対応について追加
(2009/04/04) Juliusバージョンアップ(rev.4)にともなう修正
(2010/06/21) モジュールモードの稼動方法を追加

※以下に記載されているバージョンは最新のものとは限りません。随時、最新のバージョンを確認し、適宜記述を読み替えて下さい。 

 

1. インストール

(1)Julius本体のインストール

まず、以下のいずれかの方法でJulius本体をインストールする。

 

(a)アーカイブファイルのダウンロード

http://julius.sourceforge.jp/の[ダウンロード]→[Julius オリジナル版]よりダウンロードしてインストール。Linux版、Windows版あり。v.3.4.2を推奨(2004/11/29現在)。

 

環境・目的に応じてダウンロードすべきものが異なります。

  • Windowsコンソール版実行バイナリ(Windows上でとりあえず動かしてみたい、という場合)

  • Linux実行バイナリ(Linux上でとりあえず動かしてみたい、という場合)

  • Windowsコンソール版ソース、通常仕様ソース(ソースコードを見てみたい、あるいはプログラム開発環境があり開発したい、という場合).これをダウンロードした場合には、コンパイル作業が必要.

  • MacOSXへのインストールについてはこちらを参照して下さい。

インストール手順はそれぞれに付属のドキュメントを参照されたいが、基本的には 、バイナリ版はそのまま実行可能、ソース版は展開したディレクトリ内で"configure", "make", "make install"を実行する(Linuxの場合)。

(b)「IT Text 音声認識システム」(オーム社)

付属のCD-ROMからインストール。なおCD-ROMにあるのはUnix版のv.3.1のみ。

(2)音響モデル・言語モデルの準備

「IT Text 音声認識システム」(オーム社)付属CD-ROMからphone_m, lang_mディレクトリをコピー。場所は($CD-ROM)/{phone_m,lang_m}[K-lab.]。

(3)設定ファイル

juliusを動かす際に指定する設定ファイル中に、これらのモデルの所在を指定するオプションが記述されているので、実際にコピーした場所に書き直しておく必要がある.

Linux上で/pub/julius/{phone_m,lang_m}にコピーした場合の設定ファイル

Windows上でD:\{phone_m,lang_m}にコピーした場合の設定ファイル

MacOSX上で/Users/kikuchihideaki/Desktop/{phone_m,lang_m}にコピーした場合の設定ファイル (詳細はこちら)

 

2. 連続音声認識

設定ファイルの名前が"Sample.jconf"であるとする。

#音声ファイルを指定しての音声認識

% julius -C Sample.jconf

 

#マイクからの音声認識(あらかじめオーディオの設定(Windows, Linux)が必要)

% julius -C Sample.jconf -input mic

3. 孤立単語認識

3.0 インストール

juliusの孤立単語認識キットをインストールする必要がある(Unix環境が必要).さらに、julianがインストールされている必要もある.

 

まず、juliusのインストール時に、--enable-julianオプションを付加してconfigureを実行。

% cd julius-3.4.2

% ./configure --enable-julian

% make all

% make install

さらに、juliusの孤立単語認識キット(julius-wordrecog-kit-v2.tar.gz)を展開する。

% cd /pub/julius

% tar zxf julius-wordrecog-kit-v2.tar.gz

 

3.1 設定ファイル

設定ファイル(jconf.julian)をダウンロードして必要に応じて修正する。

単語辞書ファイル(発音辞書ファイル)の名前は"word.dic"に設定してある。

3.2 単語辞書ファイル(発音辞書ファイル)作成

Julius付属のツールを使ってあらかじめ作成した単語リストから単語辞書ファイルを作成する。

単語リストは以下の形式で作成する。

林檎 りんご

胡麻 ごま

マンゴー まんごー

上記単語リストファイルを"word.lst"、単語辞書ファイル(発音辞書ファイル)を"word.dic"とすると、以下のようにして単語辞書ファイルを作成できる。

 

% /pub/julius/julius-wordrecog-kit-v2/make_dict.pl word.lst > word.dic

 

作成される単語辞書ファイルは以下のようになる。

0   [林檎]  r i N g o

0   [胡麻]  g o m a

0   [マンゴー]  m a N g o:

1   [<s>]  silB

2   [</s>]  silE

3.3 孤立単語認識実行

以下のコマンドを実行。

 

% julian -C jconf.julian

4. 音素セグメンテーション(音素自動ラベリング)

[Win]

注意:音声ファイルの形式は「16kHz, 16bit, RAW (big endian) または WAV(無圧縮)」(00readme-ja.txtより)

4.1 単語・音素セグメンテーションキットをインストール

単語・音素セグメンテーションキットをダウンロード。http://julius.sourceforge.jp/の[ダウンロード]→[応用キット]→[単語・音素セグメンテーションキット]よりダウンロードして解凍。

0) あらかじめCygwinをインストールしておく。

1) Cygwinの/tmpディレクトリなどに、ダウンロードしたアーカイブ(julian4-segmentation-kit-v1.0.tar.gz)を移す。

2) Cygwinを起動。

3) ホームディレクトリで解凍。

$ tar xzf /tmp/julian4-segmentation-kit-v1.0.tar.gz

 これでjulian4-segmentation-kit-v1.0ディレクトリがホームディレクトリに出来る。

4.2 Julian記述文法音声認識キットをインストール Julius4をインストール

Julian記述文法音声認識キットをダウンロード。http://julius.sourceforge.jp/の[ダウンロード]→[文法認識キット]→[Windows版Julian記述文法音声認識キット v.3.0]をダウンロード。(音素セグメンテーションキットのreadmeにはv.3.1p1以降が必要とありますがWindows用は今のところこれを使うしかない(?))

ダウンロード後、zipファイルを展開するとjulian-kit-v3.0-winディレクトリができる。

ここで、4.1でできたjulian-segmentation-kit-v1.0の中の全てのファイルを、4.2でできたjulian-kit-v3.0-winディレクトリの中のbinディレクトリに入れてしまう。

Julius4からはjulianと一本化されたのでわざわざjulianを利用する必要がなくなった。

4.3 音素セグメンテーションの起動スクリプトを修正

julian4-segmentation-kit-v1.0ディレクトリにある音素セグメンテーション起動スクリプトsegment_julius4.plの一部を修正。

(以下は、"julius-4.1.2-win32bin"ディレクトリがcドライブ直下に、1(2)でコピーした音響モデルのデータ"phone_m"ディレクトリがdドライブ直下にある場合)

$julius4bin ="/cygdrive/c/julius-4.1.2-win32bin/bin/julius";

$hmmdefs ="/cdrom/phone_m/hmmdefs_monof_mix16_gid.binhmm

4.4 コマンドプロンプトで音素セグメンテーションキットを実行

0) あらかじめPerlをインストールしておく。

1) Cygwinもしくはコマンドプロンプトを起動。

2) 以下のコマンドを実行

> cd julian4-segmentation-kit-v1.0

(Cygwinの場合)

> ./segment_julian4.pl sample/sample.wav sample/sample.trans

(コマンドプロンプトの場合) (* segment_julian4-win.plはWindows用にパス指定を変えたものです。動作の保証はしかねます)

> ./segment_julian4-win.pl sample\sample.wav sample\sample.trans

これでjulian4-segmentation-kit-v1.0ディレクトリ下のsampleディレクトリの中に自動ラベリング結果のsample.trans.alignが出来ているはずなので、中身を確認して、さらにその下のresultディレクトリにある同じ名前のファイルと結果が一致しているかを確認する。

他の音声に対して音素セグメンテーションを行うには、上のコマンドの様に音声ファイルとラベルファイルを指定すればよい。ラベルファイルは以下の形式。

silB ky o: w a i i t e N k i d a silE

4.5 結果の整形

音素セグメンテーション結果はjulius独自の形式であるため、他のソフトウェアで利用するには整形する必要がある。

5. MacOSXへのjuliusのインストール

Rev3.4まではMacOSXへの対応が不十分だったようですが、Rev. 3.5.1からMacOSXへの対応ができています。

また、最初からMacOSXへの対応を考慮したJuliusGUIという別ディストリビューションもありますが、こちらはGUI版となります。

 

 

(a)アーカイブファイルのダウンロード

http://julius.sourceforge.jp/の[ダウンロード]→[Julius/Julian最新版]よりRev. 3.5.2のソースコードをダウンロード(2006/12/11現在)。

(b)ソースコードの展開

デスクトップなどにダウンロードした後、(ダブルクリックして)展開。

(c)juliusインストールに必要な環境の構築

バージョンの違いにより環境構築方法が異なります。なお、Xcode関係についてはADCに加入する必要があります。

 

(i) MacOSXのバージョンが4.xの場合

Xcodeをインストールしてgccなどのプログラムコンパイル環境を導入しておく必要があります。

Xcodeのバージョンは最新バージョンが良いでしょう。

(ターミナルを開いてgccを実行できれば、何もする必要はありません)

PortAudio のStable Releasesのインストールも必要のようです。(菊池研究室関田さんのWikiより引用)
pa_stable_v19_20071207.tar.gz is current V19 posted December 7, 2007 をダウンロードし、インストールします。

$ env CFLAGS='-arch i386' ./configure $ make $ sudo make install

2.jurius-4.1.5をダウンロードします

$ env CFLAGS='-arch i386' ./configure --enable-words-int --with-mictype=portaudio --disable- zlib $ make $ sudo make install

(ii) MacOSXのバージョンが3.xの場合

XcodeTools1.5をインストールしてgccなどのプログラムコンパイル環境を導入しておく必要があります。

また、XcodeToolsのPackagesフォルダにあるDevSDK.pkgをインストールしておく必要もあります。(これによってMacOSXの標準オーディオ入出力のCoreAudio環境が導入されます)

(d)インストール

ターミナルのコマンドラインからインストール作業を行います。

 

(b)でダウンロードして展開してできたjulius-3.5.2フォルダに移動します。

デスクトップにダウンロードしたとすると

% cd Desktop/julius-3.5.2/

以下のコマンドを実行します。

% ./configure

 (これが終わった時に、mic device APIとしてcoreaudioが設定されていればOKです)

% make

% su (rootになりかわる)

root% make install

この部分、管理者パスワードを求められますがわからなくなってしまった場合は以下の方法で同じことができます。

% sudo make install

(ここでもパスワードを求められますが、自分のパスワードを入力すればOKです)

(e)実行の確認

ターミナルを起動しなおして、以下のコマンドを実行し、動作を確認します。

 

% /usr/local/bin/julius

(環境によっては"julius"とするだけでも実行可能です)

 

(f)音響モデル・言語モデル・設定ファイルの準備

 

juliusを正しく起動するには、設定ファイルや音響モデル・言語モデルなどのファイルが必要です。

これらについては、上記1.の(2)を参照するか、http://www.sp.m.is.nagoya-u.ac.jp/people/banno/julius_gui.htmlの使用方法にあるjulius-data-2.1-1.zipを使わせてもらうのが良いでしょう。

Desktopにjuliud-data-2.1フォルダを解凍した場合の実行コマンドは以下のとおり。

% /usr/local/bin/julius -C Desktop/julius-data-2.1/conf/fast.jconf

音響モデル・言語モデルの入手は「1. インストール」(2)音響モデル・言語モデルの準備を参考にして下さい。

音響モデル・言語モデルを入手した後は、設定ファイルを準備します。

MacOSX用の設定ファイルサンプルをデスクトップにでもダウンロードして下さい。

設定ファイルをエディタで開くと、音響モデル・言語モデルの所在を指定するオプションが記述されているので、正しく書き直しておく必要があります。書き直すべき場所は全部で4箇所あります。サンプルでは"/Users/kikuchihideaki/Desktop"という場所にlang_m, phone_mがあるという設定になっています。"kikuchihideaki"という文字列のある場所を探し出して、"/Users/kikuchihideaki/Desktop"のところは自分が音響モデル、言語モデル(phone_m,lang_m)を置いた場所になおして下さい。

 

(g)実行

設定ファイルの名前が"Sample-macosx.jconf"であるとする。

#音声ファイルを指定しての音声認識

% julius -C Sample-macosx.jconf

(これでjuliusがcommand not foundとなる場合は)

% /usr/local/bin/julius -C Sample-macosx.jconf

 
6. モジュールモードの稼動方法

自作アプリケーションプログラムがJuliusとクライアントサーバ通信を行って音声認識結果を取得することができるようにする。

以下は、2009/12/10時点の状況でWindowsVistaにて実現することを仮定した説明。

1) Juliusモジュールモード動作確認

1-1) JuliusをWindowsVistaにインストール

http://sourceforge.jp/projects/julius/downloads/44145/julius-4.1.3-win32bin.zip/

C:\Program Files\julius-4.1.3-win32binにインストール。

1-2) Julian記述文法音声認識キット(音響モデル、言語モデル)をインストール

http://julius.sourceforge.jp/index.php?q=juliankit.html
# Windows版 Julian 記述文法音声認識キット v3.0

C:\Program Files\julius-4.1.3-win32bin下にインストール。

C:\Program Files\julius-4.1.3-win32bin\julian-kit-v3.0-win下にあるHOWTO.txtにしたがってjulian の動作確認。

> bin\julian.exe -C testfile.jconf
> bin\julian.exe -C testmic.jconf
ともに成功。

1-3) testmic.jconfを修正してモジュールモードでサンプルプログラムjcontrolと通信

http://julius.sourceforge.jp/juliusbook/ja/desc_module.html

testmic.jconfの最下行に"-module"を加えてtestmic-module.jconfとする。

> bin\julian.exe -C testmic-module.jconf
を実行した後、別ウインドウで
> bin\jcontrol.exe localhost
でクライアントプログラムのサンプルjcontrolを動かして「りんごを一個下さい」と発声するとあっさり成功。

2) Javaプログラムでjcontrolと同一機能のクライアントプログラムを作成

添付のJuliusClient.java。
(ファイルを ダウンロード
)

> bin\julian.exe -C testmic-module.jconf
を実行してjulianをモジュールモードで実行した後、別ウインドウで
> java JuliusClient
と実行してクライアントプログラムを実行し、「りんこを一個下さい」と発声すると、julianの音声認識結果が以下のようにJuliusClient側 のウインドウに表示される。


# 0: [active ] 20 words, 9 categories, 9 nodes (new)

.

# 0: [active ] 20 words, 9 categories, 9 nodes
Grobal: 20 words, 9 categories, 9 nodes

謝辞

Julius関係者の方々に感謝申し上げます。本ページの記述において不適切なものがあればお手数ですがご指摘下さい。

 


 

Copyright ©2004 KIKUCHI Hideaki All rights reserved.