NAME

Julian - open source grammar-based continuous speech recognition parser

SYNOPSIS

julian [-C jconffile] [options ...]

DESCRIPTION

Julian は有限状態文法に基づく連続音声認識を行う認識パー ザ で す.記述文法を用いた2パス構成の段階的探索により高精度な 認識を行うことができます. 認識対象はマイク入力,録音済みの音声波形ファイルおよび特徴 抽出したパラメータファイルに対応しています.また標準的な形 式の音響モデルや言語モデルを読み込んで使用することができる ので,様々な音響モデルや言語モデルを切り替えて様々な条件で 認識を行うことができます. 語彙数の上限は 65,535 語です.

使用モデル

Julian では以下のモデルを用います. 音素モデル 音素HMM(Hidden Markov Model)を用います.音素モデ ル(monophone) , 音 素 環 境依存モデル(triphone) ,tied-mixtureモデル,phonetic tied-mixture モデ ルを扱えます.音素環境依存モデルの場合は単語間の 依存関係も考慮されます. HTK のHMM定義言語で書か れたHMM定義ファイルを読み込むことができます. 言語モデル タスク文法は,構文制約を単語のカテゴリを終端規則 としてBNF風に記述した grammar ファイルと,カテゴ リ ご と の 単語の表記と読み(音素列)を登録する voca ファイルに分けて記述します.これをコンパ イ ラ mkdfa.pl (1) を用いて決定性有限状態オートマト ンファイル(.dfa)と辞書ファイル(.dict)に変換し て Julian に与えます.

音声入力

マ イクロフォン端子やDatLink(NetAudio)からのLive入力が可能 です.サンプリングした音声ファイル(16bit WAV(無圧縮), RAW 等)や特徴パラメータファイル(HTK形式)で与えることもできます .また専用クライアント adintool を用いたネットワーク経由で の音声入力も可能です. 注意:Julian内部で計算できる特徴量はMFCC_E_D_N_Zのみです. これ以外の特徴抽出を必要とするHMMを使う場合は,マイク入 力 や 音声波形ファイル入力は使えません.wav2mfcc(1)などの別ツ ールで抽出した特徴パラメータファイル(.mfc)を与えるようにし て下さい.

探索アルゴリズム

Julian の認識処理は2パス構成となっています.まず第1パスで は,与えられた文法よりも弱い制約規則を用いて高速かつ荒い認 識を行います.ここでは文法規則からカテゴリ間の制約のみを抜 きだしたカテゴリ対制約を用いて,LRビーム探索を行いま す . 第2 パスでは第1パスの結果を元に本来の文法による再探索行い ,高精度な解を高速に得ます.第2パスの探索は最適解が保証さ れるA*探索となります. 音 素環境依存モデル(triphone)を用いたときは,第1パスおよび 第2パスで単語間の音 素 環 境 依 存 を 考 慮 し ま す . ま たtied-mixture やphonetic tied-mixture モデルではGaussian pruningによる高速な音響尤度計算を行います.

OPTIONS

以下のオプションで使用モデルやパラメータなどを指定します. コマンドライン上で指定することもできますが, jconf設定ファ イルとして1つのテキストファイル内にまとめて記述しておき, 起動時に "-C" で指定することができます. ほとんどのオプションは Julius と共通です. Julian のみ:-dfa, -penalty1, -penalty2, -sp, -looktrellis Julius のみ:-nlr, -nrl, -d, -lmp, -lmp2, -transp, -sil- head, -siltail, -spdur, -sepnum, -separatescore 以下は全てのオプションの説明です. 音声入力ソース -input {rawfile|mfcfile|mic|adinnet|netaudio|stdin} 音 声 デ ータの入力ソースを選択する.それぞれ 'raw- file' は波形ファイル,フォン 入 力 ,'adinnet' は adinnet クライアントからのネットワーク経由入力, サ ポートする音声波形ファイル形式については,コンパ イル時にlibsndfileがあるかどうかで変わる.実際に そ の 実行バイナリでどの形式がサポートされているかはオ プション "-help" で確認できる.なお標準入力について はWAV(無圧縮) およびRAW(16bit,BE)のみをサポートする . (default: mfcfile) -filelist file (-input rawfile|mfcfile 時) 認識対象のファイルが 複 数ある場合に,そのリストを与えてバッチ処理させる. -adport portnum (-input adinnet 時) adinnet で使用するポート番号. (default: 5530) -NA server:unit (-input netaudio時) 接続するDatLinkサーバ名とユニッ トID.netaudio 使用時必須. 音声区間検出 -cutsilence -nocutsilence 入力に対する音声区間検出をするかしな い か を 指 定 .(default: mic または adinnet は ON, ファイル入力 は OFF) -lv threslevel 波形の振幅レベルのしきい値( 0 - 32767).振幅がこ の 値 を越えると音声区間の開始とみなし,次にこの値を下 回ったときに音声区間終了とする(default: 3000). -zc zerocrossnum 1秒あたりの零交差数のしきい値 (default: 60) -headmargin msec 音声区間開始部のマージン.単位はミリ秒 (default: 300) -tailmargin msec 音声区間終了部のマージン.単位はミリ秒 (default: 400) -nostrip 録音デバイスによって生じることのある,録音開始時 あ るいは終了時の無効な 0 サンプルの自動除去を行わない ようにする.デフォルトは自動除去を行う. 音響分析 -smpFreq frequency 音声のサンプリング周波数を Hz で指定 (default: 16kHz = 625ns). -smpPeriod period 音声のサンプリング周期をナノ秒で指定 (default: 625ns = 16kHz). -fsize sample 窓サイズをサンプル数で指定 (default: 400). -fshift sample フレームシフト幅をサンプル数で指定 (default: 160). -delwin frame デルタウィンドウ幅をフレーム数で指定 (default: 2). -hipass frequency 高域カットオフする周波数を Hz で指定. (default: -1 = disable) -lopass frequency 低域カットオフする周波数を Hz で指定. (default: -1 = disable) -sscalc ファイル先頭の無音部を用いて,入力全体に対してス ペ ク トルサブトラクションを行う.ファイル入力に対して のみ有効. -sscalclen ファイル先頭の無音部の長さをミリ秒で指定 (default: 300) -ssload filename ノ イズスペクトルをファイルから読み込み,それを用い て入力に対してスペクトルサブトラクションを行う. フ ァ イ ル は あ らかじめ mkss で作成する.マイク入力 ,adinnet入力では"-sscalc" ではなくこちらを使う必要 がある. -ssalpha value ス ペクトルサブトラクションのアルファ係数.大きいほ ど強く減じるが,歪みも大きくなる. (default: 2.0). -ssfloor value ス ペクトルサブトラクションのフロアリング係数.減じ た結果パワーが 0 以下になった部分スペクトルに対して ,原信号の係数倍の信号を割り当てる (default: 0.5). 言語モデル(記述文法) -dfa dfa_filename 文法の有限状態オートマトンファイル(.dfa)を指定する( 必須). -penalty1 float 第 1 パ スの単語挿入ペナルティを指定する (default: 0.0) -penalty2 float 第2パスの単語挿入ペナルティを指定 す る (default: 0.0) 単語辞書 -v dictionary_file 単語辞書ファイル(.dict) (必須). -sp {WORD|WORD[OUTSYM]|#num} 「文中の短いポーズ」に対応する音響HMM名を指定する. (default: "sp") 以下のいずれかの形式で指定する. 例 単語名 <s> 単語名[出力シンボル] <s>[silB] #単語ID #14 (単語番号は辞書ファイルの並び順に0番から) -forcedict 辞書中の誤った単語エントリをスキップして起動を続 行 する. 音響モデル(HMM) -h hmmfilename 使用するHMM定義ファイル名(必須). -hlist HMMlistfilename HMMlist ファイル名.triphone体系のHMM使用時に必須で ある. このファイルは,辞書の音素表記 か ら 生 成 し た 論 理triphone名からHMM定義名への写像を与える.詳細は付 属ドキュメントを参照のこと. -iwcd1 {max|avg} triphone使用時,第1パスの単語間triphoneの音響尤度計 算方法を指定する. max: 同コンテキストtriphoneの最大値 (default) avg: 同コンテキストtriphoneの平均値 -force_ccd / -no_ccd 単 語間の音素環境依存を考慮するかしないかを明示的に 指定する.指定がない場合はモデルの名前定義から推 察 す る.なおtriphone以外で -force_ccd を指定したとき の動作は保証されない. -notypecheck 入力特徴パラメータの型チェックを無効にする. (default: チェック有効) 音響尤度計算 Gaussian pruning は tied-mixture ベースの音響モデルにお い て 自 動 的 に 有 効 となる.Gaussian Selection の使用には mkgshmm で変換されたモノフォンモデルが必要である. -tmix K Gaussian pruning でコードブックごとに上位K個のガ ウ ス分布を計算する. (default: 2) -gprune {safe|heuristic|beam|none} Gaussian pruning の手法を指定する. (default: safe (標準版) beam (高速版)) -gshmm hmmdefs Gaussian Mixture Selection 用のモノフォン音響モデル を指定する. GMS用モノフォンは通常のモノフォンか ら mkgshmm(1) によって生成できる. デフォルトは指定無し(GMSを使用しない). -gsnum N GMS 使用時,全モノフォンの状態の中から上位 N 個の状 態のみトライフォンを計算する (default: 24) 探索パラメータ(第1パス) -b beamwidth ビーム幅.HMMのノード数で指定する.値が大きいほど安 定 した結果が得られるが,処理時間とメモリ量を消費す る. default値:モデルによって変化する 400 (monophone 使用時) 800 (triphone,PTM 使用時) 1000 (triphone,PTM,engine=v2.1) -1pass 第1パスのみ実行する.単語3-gramの指定が無い場合自動 的にこのモードになる. -realtime -norealtime 第1パスを実時間処理するかを明示的に指定する.デフォ ルトは,ファイル入力について OFF (-norealtime), マ イ ク ・NetAudio ・ ネ ッ ト ワ ーク入力について ON (-realtime).このオプションは CMN と密接な関係に あ る:OFF の際は CMN は1入力ごとにそれ自身から計算さ れるが,ON の場合は直前の5秒分の入力の値を常に用い る.-progout も参照のこと. -cmnsave filename 認識中に計算したCMNパラメータをファイルへ保存する. 保存は一入力認識のたびに行われる.すでにファイル が ある場合は上書きされる. -cmnload filename 初期CMNパラメータをファイルから読み込む.ファイルは "-cmnsave" で保存したファイル.これによってマイク入 力やネットワーク入力においても起動後の入力第1発話か らCMNを適用できる. 探索パラメータ(第2パス) -b2 hyponum 仮説エンベロープの幅.仮説の各長さごとに,この数 を 越 える仮説が展開されたらそれより短い仮説を展開しな いようにする.探索失敗を防ぐ効果がある. (default: 30) -n candidate_num この数の文仮説が得られるまで探索を続ける.得られ た 仮 説はスコアで再ソートされ、上位順に出力される. ( 参考:-outputオプション). Juliusでは第2パスの探索の最適性は厳密には保証されな い ため,最尤候補が常に最初に得られるとは限らない. この値が大きいほど真の最尤仮説が得られる可能性が 高 く な る が , 長く探索するため処理時間は大きくなる .(default: 1) default値:エンジン設定(--enable-setup=)に依存 10 (standard) 1 (fast,v2.1) -output N "-n"オプションで指定した仮説数のうち,上位N個を出力 する (default: 1). -sb score ス コアエンベロープの幅.各フレームごとに,それまで の最大スコアからこの幅以上離れた部分について はscan しない.第2パスの音響尤度計算の高速化に効果がある. (default: 80.0) -s stack_size 解探索中にスタックに保持する仮説の最大数.値が大 き い ほど安定した結果が得られるが必要メモリ量が増える .(default: 500) -m overflow_pop_times 解探索打ち切りと判断する展開仮説数のしきい値.展 開 さ れた仮説数がこの数を越えたとき,そこで探索を打ち 切る.値が大きいほどあきらめずに探索を続けるが, 探 索失敗時の処理時間は長くなる.(default: 2000) -lookuprange nframe 単 語展開時に前後何フレームまでみて展開単語を決める かを指定する.短い単語の脱落防止に効果があるが, 値 が大きいと展開仮説が増えるため遅くなる. (default: 5) -looktrellis 単 語仮説を完全にトレリス内の単語だけに絞り,最尤フ レーム検索も第1パスのトレリス単語の前後に絞り込 む . 特に大語彙では高速化の効果が高いが,誤りが増大す ることもある. Forced alignment -walign 認識結果に対して,単語単位のViterbiアラインメントを 行 う.単語ごとにマッチした区間,およびフレームごと の平均音響尤度が出力される. -palign 認識結果に対して,音素単位のViterbiアラインメントを 行 う.音素ごとにマッチした区間,およびフレームごと の平均音響尤度が出力される. -salign 認識結果に対して,状態単位のViterbiアラインメントを 行 う.状態ごとにマッチした区間,およびフレームごと の平均音響尤度が出力される. サーバーモジュールモード -module [port] サーバーモジュールモードで起動する.起動後はクラ イ アントからのtcpip接続を待ち,クライアントからのコマ ンドの処理およびクライアントへの認識結果や入力ト リ ガ 情報を送信する.複数文法認識はこのサーバーモジュ ールモードでのみ使用することができる.詳細は関連 ド キ ュ メ ン ト 参照のこと.ポート番号のデフォルトは 10500 である. -outcode [W][L][P][S][w][l][p][s] サーバーモジュールモード時に,クライアントへ送信 す る認識結果の内容を指定する.それぞれ 'W' は単語の通 常の出力文字列,'L' は文法エントリ,'P' は 音 素 列 ,'S' はスコアを表す.大文字は第2パス,小文字は第1 パスに対応する.例えば第2パスの単語と音素列のみ を 送信したい場合は,"-outcode WP" のように指定する. メッセージ出力 -quiet 音素列やスコアを省略して,ベストの仮説の単語列だけ 出力する. -progout 第1パスの途中結果を一定時間おきに漸次出力する. -proginterval msec -progout 時の出力インターバルを指定(単位:msec) -demo "-progout -quiet" に同じ. その他 -debug デバッグ用内部メッセージを出力する. -C jconffile jconf設定ファイルの読み込み.これらの実行時オプショ ン をあらかじめ記述して読み込ませることができる.ま た,あるjconf設定ファイル内でこのオプションにより他 のjconf設定ファイルを include することができる. -version プ ログラム名・コンパイル時刻・コンパイル時オプショ ンを表示して終了する. -help 簡単なオプション一覧を表示後終了する.

EXAMPLES

使用例については付属のチュートリアルをご覧下さい.

NOTICE

jconf設定ファイル内でファイルを相対パスで指定する場合, そ れ は実行時のカレントディレクトリは無関係に,その jconf フ ァイルが置いてある場所からの相対パスとして解釈される点に注 意してください.

SEE ALSO

julius(1), mkbingram(1), mkss(1), jcontrol(1), adinrec(1), adintool(1), mkdfa(1), mkgsmm(1), wav2mfcc(1) http://julius.sourceforge.jp/ (main) http://sourceforge.jp/projects/julius/ (development site)

DIAGNOSTICS

正常終了した場合, Julian は exit status として 0 を返しま す.エラーが見付かった場合は異常終了し, exist status とし て 1 を返します. 入力ファイルが見つからない場合やうまく読み込めなかった場合 は,そのファイルに対する処理をスキップします.

BUGS

Julian で使用できるモデルのサイズやタイプには若干の制限が あります.詳しくはパッケージに付属のドキュメントを参照して ください. バ グ 報 告・問い合わせ・コメントなどは julius@kuis.kyoto- u.ac.jp までお願いします.

AUTHORS

Rev.1.0 (1998/07/20) 河原 達也 と 李 晃伸 (京都大学) が設計を行いました. Rev.2.0 (1999/02/20) Rev.2.1 (1999/04/20) Rev.2.2 (1999/10/04) Rev.3.1 (2000/05/11) 李 晃伸 (京都大学) が実装しました. Rev.3.2 (2001/08/15) Rev.3.3 (2002/09/11) 李 晃伸 (奈良先端大) が主に実装しました.

THANKS TO

このプログラムは Rev.3.1 まで京都大学音声メディア研究室(旧 堂 下 研)において開発されました.Rev.3.2 より以降は Julius と統合され,「情報処理学会 連続音声認識コンソーシアム」 に おいて公開されています. Windows Microsoft Speech API対応版は住吉貴志氏(京都大学)の 手によるものです. さまざまな助言・コメント・御指導いただく関係者各位に深く感 謝いたします.

Last modified: 2002/09/11 21:00:39