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対応版は住吉貴志氏(京都大学)の
手によるものです.
さまざまな助言・コメント・御指導いただく関係者各位に深く感
謝いたします.
$Id: man_julian.html,v 1.4 2002/09/11 21:00:39 ri Exp $