NAME

Julius - open source multi-purpose LVCSR engine

SYNOPSIS

julius [-C jconffile] [options ...]

DESCRIPTION

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

使用モデル

Julius では以下のモデルを用います. 音素モデル 音素HMM(Hidden Markov Model)を用います.音素モデ ル(monophone),音素環境 依 存 モ デ ル(triphone) ,tied-mixtureモデル,phonetic tied-mixture モデ ルを扱えます.音素環境依存モデルの場合は単語間の 依存関係も考慮されます. HTK のHMM定義言語で書か れたHMM定義ファイルを読み込むことができます. 言語モデル 言語モデルとして2-gramおよび逆向きの3-gramを用い ます. ARPA standard format およびそれらを付属の mkbingram で変換したバイナリ形式のN-gramを読み込 むことができます.

音声入力

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

探索アルゴリズム

Julius の認識処理は2パス構成です.まず第1パスで入力全体を 完全に処理し,中間結果を出力します.モデルは単語2-gramと単 語HMMの木構造ネットワークを用います.解探索はleft-to-right にフレーム同期ビーム探索を行います. 第2パスでは3-gramを用いて逆向きに探索を行い,より精度の 高 い 認識結果を求めます.第1パスの中間結果を絞り込み+先読み 情報として用い,単語単位のスタックデコーディングを行います . 音 素環境依存モデル(triphone)を用いたときは,第1パスおよび 第2パスで単語間の音 素 環 境 依 存 を 考 慮 し ま す . ま たtied-mixture やphonetic tied-mixture モデルではGaussian pruningによる高速な音響尤度計算を行います.

OPTIONS

以下のオプションで使用モデルやパラメータなどを指定します. コマンドライン上で指定するほか, jconf設定ファイルとして1 つのテキストファイル内にまとめて記述しておき, 起 動 時 に "-C" で指定することができます. 以下は全てのオプションの説明です. 音声入力ソース -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). 言語モデル(N-gram) -nlr 2gram_filename 単語2-gramのファイル名(ARPA形式). -nrl rev_3gram_filename 逆向き単語3-gramファイル名.第2パス実行時必須.指定 しない場合は探索を第1パスのみ実行する. -d bingram_filename mkbingram で作成したバイナリ形式N-gramファイルを 指 定 する. "-nlr", "-nrl" の代わりに使用することで起 動を高速化できる. -lmp lm_weight lm_penalty -lmp2 lm_weight2 lm_penalty2 第1パスと第2パスの言語スコアの重みと単語挿入ペナ ル ティ. 実 際の仮説の言語スコアは,N-gramの対数尤度を以下の 式によってスケーリングしたものが用いられる. lm_score1 = lm_weight * 2-gramスコア + lm_penalty lm_score2 = lm_weight2 * 3-gramスコア + lm_penalty2 default値:モデルによって変化する 第1パス | 第2パス --------------------------- 5.0 -1.0 | 6.0 0.0 (monophone) 8.0 -2.0 | 8.0 -2.0 (triphone,PTM) 9.0 8.0 | 11.0 -2.0 (triphone,PTM, setup=v2.1) -transp float 透過単語用に対して追加する単語 挿 入 ペ ナ ル テ ィ (default: 0.0) 単語辞書 -v dictionary_file 単語辞書ファイル(必須). -silhead {WORD|WORD[OUTSYM]|#num} -siltail {WORD|WORD[OUTSYM]|#num} 文頭/文末の無音に対応する辞書単語を指定する. (default: "<s>" / "</s>") こ れらは認識時に仮説の始終端として特別に扱われる. 以下のいずれかの形式で指定する. 例 単語名 <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) ショートポーズセグメンテーション -spdur (--enable-sp-segment 時) 第1パスの sp 継続時間長 の し きい値(単位:フレーム).ショートポーズ単語が最尤 であるフレームがこの時間以上継続したら,第1パス を 中断して第2パスを実行する.(default: 10) 探索パラメータ(第1パス) -b beamwidth ビーム幅.HMMのノード数で指定する.値が大きいほど安 定した結果が得られるが,処理時間とメモリ量を消費 す る. default値:モデルによって変化する 400 (monophone 使用時) 800 (triphone,PTM 使用時) 1000 (triphone,PTM,engine=v2.1) -sepnum N (./configrue --enable-lowmem2 指定時) 辞書木から分 離する高頻度語の数 (default: 150) -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 candidatenum この数の文仮説が得られるまで探索を続ける.得られ た 仮 説 は スコアで再ソートして結果を出力する. (参考 :-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) 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" のように指定する. メッセージ出力 -separatescore 言語スコアと音響スコアをわけて出力する. -quiet 音素列やスコアを省略して,ベストの仮説の単語列だ け 出力する. -progout 第1パスの途中結果を一定時間おきに漸次出力する. -proginterval msec -progout 時の出力インターバルを指定(単位:ミリ秒) -demo "-progout -quiet" と等価. その他 -debug 大量のデバッグ用内部メッセージを出力する. -C jconffile jconf設定ファイルの読み込み.これらの実行時オプショ ンをあらかじめ記述して読み込ませることができる. ま た,あるjconf設定ファイル内でこのオプションにより他 のjconf設定ファイルを include することができる. -check wchmm (デバッグ用)木構造化辞書の構造を対話的にチェック す る. -check triphone (デバッグ用)音響モデル(とHMMList)による辞書上の単語 の実際のマッピングを対話的にチェックする. -version プログラム名・コンパイル時刻・コンパイル時オプシ ョ ンを表示して終了する. -help 簡単なオプション一覧を表示後終了する.

EXAMPLES

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

NOTICE

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

SEE ALSO

julian(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

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

BUGS

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

AUTHORS

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

THANKS TO

このプログラムは Rev.3.1 まで,情報処理振興事業協会(IPA)独 創的情報技術育成事業「日本語ディクテーションの基本ソフトウ ェアの開発」(代表者:鹿野清宏 奈良先端科学技術大学院大学教 授)の援助を受けて行われました. Rev.3.2以降は「情報処理学会 連続音声認識コンソーシアム」に おいて公開されています. Windows DLL版 は板野秀樹氏(名古屋大学)の手によって作成・公 開されています. Windows Microsoft Speech API対応版は住吉貴志氏(京都大学)の 手によるものです. 上記の協力・貢献してくださった方々,およびさまざまな助言・ コメントをいただく関係者各位に深く感謝いたします. また,開発に際して言語モデルを提供して頂いた伊藤克亘氏( 電 子技術総合研究所),音素モデルを提供して頂いた武田一哉氏(名 古屋大学)をはじめとする関係各位に感謝します.また伊藤克 亘 氏をはじめ多くの方に動作確認とデバッグを行って頂きましたこ とを感謝します. 最後に,バグ報告や提案をしていただいている Julius users ML の メンバーの方々をはじめとするLinuxコミュニティの方々に感 謝します.

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