本章では,Julius の動作環境やパッケージの概要について述べる.
Julius は C 言語で書かれており,様々なプラットフォームで動作する.基本となる開発環境は Linux および Windows である.そのほか,Solaris, FreeBSD および MacOSX でも動作する.その他のOSでは,ファイル入力では動作するが,デバイスからの直接入力がサポートされていない(ただし音声入力プラグインによって拡張可能).原理的には,Windows Mobile や iPhone などのスマートフォンや,組み込みマイコンでの動作も可能である.
音声デバイスからの入力を直接認識するには,録音環境についていくつかの要件がある.音声データ入力の章を参照のこと.
Julius は単体では動作しない.Julius を動かすには,
認識対象とする発声文の単語単位のパターンを決める「言語モデル」
音素ごとの音声波形パターンを統計的にモデル化した「音韻モデル」
の 2 つが必要である.Juliusは言語モデルとして,統計言語モデルである 「単語N-gram」,人手で規則を記述する「認識用文法」,および辞書のみを用いた1単語発声の単語認識をサポートする.また音響モデルとしては,HTKで学習されたサブワード単位の Hidden Markov Model (HMM) をサポートする.
モデルの仕様やサポート範囲,使いかたの詳細については,それぞれの章を参照のこと.また,モデルの入手性については Julius の Web ページを参照のこと.Webページでは日本語の標準モデルを配布している.[1]
ソースパッケージとバイナリパッケージが配布されている.どちらも tar.gz 形式でホームページからダウンロードできる.バイナリパッケージは,コンパイル済みの実行バイナリと関連ファイルのみのパッケージであり,Linux と Windows コンソール用が用意されている.その他,ホームページからは最新の開発版スナップショットを CVS で取得することも可能である.
Julius の配布パッケージには,以下のツールが含まれている.
julius --- 連続音声認識エンジン Julius 本体
adinrec --- 録音テストツール
adintool --- 汎用音声入出力サーバ
jcontrol --- モジュールモード用サンプルクライアント(C)
jclient.pl --- モジュールモード用サンプルクライアント(Perl)
mkbingram --- バイナリN-gram 作成コマンド
mkbinhmm --- バイナリ HMM 作成コマンド
mkbinhmmlist --- バイナリ HMMList 作成コマンド
mkgshmm --- GMS用音響モデル作成ツール
mkss --- スペクトルサブトラクション用ノイズスペクトル推定ツール
言語モデル・認識文法関連ツール --- mkdfa.pl, mkfa, dfa_determinize, dfa_minimize, accept_check, nextword, generate, generate-ngram, gram2sapixml.pl, yomi2voca.pl
また,Linux ではインストール時には以下のライブラリとヘッダ,および関連ツールがインストールされる.
libsent.a
--- 汎用ライブラリ
libjulius.a
--- 認識エンジンコアライブラリ
include/sent/*
--- libsent用ヘッダ
include/julius/*
--- libjulius用ヘッダ
libsent-config, libjulius-config
--- ライブラリ組み込み時に必要なコンパイラ設定を返すスクリプト
Julius の処理フローの概要を以下に示す.音声入力部・特徴抽出部・認識処理部(第1 パス)は,ファイル入力の場合は1入力ごとに各部が順番に実行されるが,マイク入力などでリアルタイム認識を行う場合,各部が並行処理される.
認識処理全体は2パス構成となっており,第1パスでは,入力と並行して認識処理が行われる.第2パスでは,第1パスの結果である「単語トレリス」と呼ばれる仮説集合を参照しながら,入力全体に対して再認識を行い結果を確定する. 各部の詳細はそれぞれの対応する章を参考のこと.