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コミュニティの方々に感
謝します.
$Id: man_julius.html,v 1.4 2002/09/11 21:00:39 ri Exp $