.de Sp
.if t .sp .5v
.if n .sp
..
.de Ip
.br
.ie \\n.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH JULIUS 1 LOCAL
.UC 6
.SH NAME
Julius - open source multi-purpose LVCSR engine
.SH SYNOPSIS
.B julius [-C jconffile] [options ...]
.SH DESCRIPTION
.I Julius
は数万語を対象とした大語彙連続音声認識を行うことのできるフリーの認識エ
ンジンです．単語3-gramを用いた2パス構成の段階的探索により高精度な認識を
行うことができます．
.PP
認識対象はマイク入力，録音済みの音声波形ファイルおよび特徴抽出したパラ
メータファイルに対応しています．また標準的な形式の音響モデルや言語モデ
ルを読み込んで使用することができるので，様々な音響モデルや言語モデルを
切り替えて様々な条件で認識を行うことができます．
.PP
語彙数の上限は 65,535 語です．
.SH "使用モデル"
.I Julius
では以下のモデルを用います．
.Ip "音素モデル" 10
音素HMM(Hidden Markov Model)を用います．音素モデル(monophone)，
音素環境依存モデル(triphone)，tied-mixtureモデル，phonetic
tied-mixture モデルを扱えます．音素環境依存モデルの場合は単語間の依存
関係も考慮されます．
.I HTK
のHMM定義言語で書かれたHMM定義ファイルを読み込むことができます．
.Ip "言語モデル" 10
言語モデルとして2-gramおよび逆向きの3-gramを用います．
ARPA standard format およびそれらを付属の
.I mkbingram
で変換したバイナリ形式のN-gramを読み込むことができます．
.SH "音声入力"
マイクロフォン端子やDatLink(NetAudio)からのLive入力が可能です．
サンプリングした音声ファイル(16bit WAV(無圧縮), RAW等)や特徴パラメータファ
イル(HTK形式)で与えることもできます．また専用クライアント
.I adintool
を用いたネットワーク経由での音声入力も可能です．
.sp
注意：Julius内部で計算できる特徴量はMFCC_E_D_N_Zのみです．これ以外の特
徴抽出を必要とするHMMを使う場合は，マイク入力や音声波形ファイル入力は
使えません．
.I wav2mfcc
などの別ツールで抽出した特徴パラメータファイル(.mfc)を与えるようにして
下さい．
.SH "探索アルゴリズム"
.I Julius
の認識処理は2パス構成です．まず第1パスで入力全体を完全に処理し，中間結
果を出力します．モデルは単語2-gramと単語HMMの木構造ネットワークを用い
ます．解探索はleft-to-rightにフレーム同期ビーム探索を行います．
.PP
第2パスでは3-gramを用いて逆向きに探索を行い，より精度の高い認識結果を
求めます．第1パスの中間結果を絞り込み＋先読み情報として用い，単語単位
のスタックデコーディングを行います．
.PP
音素環境依存モデル(triphone)を用いたときは，第1パスおよび第2パスで単語
間の音素環境依存を考慮します．またtied-mixtureやphonetic tied-mixture
モデルではGaussian pruningによる高速な音響尤度計算を行います．
.SH "OPTIONS"
以下のオプションで使用モデルやパラメータなどを指定します．コマンドライ
ン上で指定するほか，
.I jconf設定ファイル
として１つのテキストファイル内にまとめて記述しておき，起動時に "-C" で
指定することができます．
.PP
以下は全てのオプションの説明です．
.SS 音声入力ソース
.Ip "-input {rawfile|mfcfile|mic|adinnet|netaudio|stdin}"
音声データの入力ソースを選択する．それぞれ 'rawfile' は波形ファイル，
'mfcfile' は HCopy で特徴抽出したHTK形式の特徴量ファイル，'mic' はマイクロ
フォン入力，'adinnet' は adinnet クライアントからのネットワーク経由入力，
'stdin' は標準入力からの入力を指定する．
.sp
サポートする音声波形ファイル形式については，コンパイル時にlibsndfileが
あるかどうかで変わる．実際にその実行バイナリでどの形式がサポートされて
いるかはオプション "-help" で確認できる．なお標準入力についてはWAV(無圧縮)
およびRAW(16bit,BE)のみをサポートする．
.br
(default: mfcfile)
.Ip "\-filelist file"
(-input rawfile|mfcfile 時) 認識対象のファイルが複数ある場合に，そのリス
トを与えてバッチ処理させる．
.Ip "\-adport portnum"
(-input adinnet 時) adinnet で使用するポート番号．
.br
(default: 5530)
.Ip "\-NA server:unit"
(-input netaudio) 接続するDatLinkサーバ名とユニットID．netaudio 使用時
必須．
.Ip "\-record directory"
directory 以下に，認識された入力音声データを自動保存する．音声データは
切り出された一入力ごとに別ファイルに記録される．ファイル名は，認識開始
時のシステム時間を表す"年.月日.時分秒.raw" という名前で保存される．
ファイル形式は RAW, 16bit signed, 16kHz, mono, big endian である．
.SS 音声区間検出
.Ip "\-cutsilence"
.Ip "\-nocutsilence"
入力に対する音声区間検出をするかしないかを指定．(default: mic また
は adinnet は ON, ファイル入力は OFF)
.Ip "\-lv threslevel"
波形の振幅レベルのしきい値( 0 - 32767)．振幅がこの値を越えたときに
音声区間の開始とみなし，次にこの値を下回ったときに音声区間終了
とする(default: 3000)．
.Ip "\-zc zerocrossnum"
１秒あたりの零交差数のしきい値 (default: 60)
.Ip "\-headmargin msec"
音声区間開始部のマージン．単位はミリ秒
.br
(default: 300)
.Ip "\-tailmargin msec"
音声区間終了部のマージン．単位はミリ秒
.br
(default: 400)
.Ip "\-nostrip"
録音デバイスによって生じることのある，録音開始時あるいは終了時の無効な
0 値サンプルの自動除去を行わないようにする．デフォルトは自動除去を行う．
.SS 音響分析
.Ip "\-smpFreq frequency"
音声のサンプリング周波数を Hz で指定
.br
(default: 16kHz = 625ns)．
.Ip "\-smpPeriod period"
音声のサンプリング周期をナノ秒で指定
.br
(default: 625ns = 16kHz)．
.Ip "\-fsize sample"
窓サイズをサンプル数で指定 (default: 400)．
.Ip "\-fshift sample"
フレームシフト幅をサンプル数で指定 (default: 160)．
.Ip "\-delwin frame"
デルタウィンドウ幅をフレーム数で指定 (default: 2)．
.Ip "\-hipass frequency"
高域カットオフする周波数を Hz で指定．
.br
(default: -1 = disable)
.Ip "\-lopass frequency"
低域カットオフする周波数を Hz で指定．
.br
(default: -1 = disable)
.Ip "\-sscalc"
ファイル先頭の無音部を用いて，入力全体に対してスペクトルサブトラクショ
ンを行う．ファイル入力に対してのみ有効．
.Ip "\-sscalclen"
ファイル先頭の無音部の長さをミリ秒で指定 (default: 300)
.Ip "\-ssload filename"
ノイズスペクトルをファイルから読み込み，それを用いて入力に対してスペク
トルサブトラクションを行う．ファイルはあらかじめ
.I mkss
で作成する．マイク入力，adinnet入力では"-sscalc" ではなくこちらを使う
必要がある．
.Ip "\-ssalpha value"
スペクトルサブトラクションのアルファ係数．大きいほど強
く減じるが，歪みも大きくなる． (default: 2.0)．
.Ip "\-ssfloor value"
スペクトルサブトラクションのフロアリング係数．減じた結果パワーが 0 以
下になった部分スペクトルに対して，原信号の係数倍の信号を割り当てる
(default: 0.5)．
.SS 言語モデル(N-gram)
.Ip "\-nlr 2gram_filename"
単語2-gramのファイル名(ARPA形式)．
.Ip "\-nrl rev_3gram_filename"
逆向き単語3-gramファイル名．第2パス実行時必須．
指定しない場合は探索を第1パスのみ実行する．
.Ip "\-d bingram_filename"
.I mkbingram
で作成したバイナリ形式N-gramファイルを指定する．
"-nlr", "-nrl" の代わりに使用することで起動を高速化できる．
.Ip "\-lmp lm_weight lm_penalty"
.Ip "\-lmp2 lm_weight2 lm_penalty2"
第1パスと第2パスの言語スコアの重みと単語挿入ペナルティ．
.sp
実際の仮説の言語スコアは，N-gramの対数尤
度を以下の式によってスケーリングしたものが用いられる．
.sp
lm_score1 = lm_weight * 2-gramスコア + lm_penalty
lm_score2 = lm_weight2 * 3-gramスコア + lm_penalty2
.sp
default値：モデルによって変化する
.sp
  第1パス  | 第２パス
 ---------------------------
  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)
.Ip "\-transp float"
透過単語用に対して追加する単語挿入ペナルティ (default: 0.0)
.SS 単語辞書
.Ip "\-v dictionary_file"
単語辞書ファイル(必須)．
.Ip "\-silhead {WORD|WORD[OUTSYM]|#num}"
.Ip "\-siltail {WORD|WORD[OUTSYM]|#num}"
文頭／文末の無音に対応する辞書単語を指定する．
.br
(default: "<s>" / "</s>")
.sp
これらは認識時に仮説の始終端として特別に扱われる．以下のいずれかの形
式で指定する．
.sp
.RS 4
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81
.nr 80 0
.nr 38 \w単語名
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w単語名[出力シンボル]
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w#単語ID
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 81 0
.nr 38 \w例
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w<s>
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w<s>[silB]
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w#14
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 38 1n
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr TW \n(81
.if t .if \n(TW>\n(.li .tm Table at line 103 file julius.man is too wide - \n(TW units
.fc  
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'例
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'単語名\h'|\n(41u'<s>
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'単語名[出力シンボル]\h'|\n(41u'<s>[silB]
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'#単語ID\h'|\n(41u'#14
.fc
.nr T. 1
.T# 1
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.RE
.sp
       (単語番号は辞書ファイルの並び順に0番から)
.Ip "\-forcedict"
辞書中の誤った単語エントリをスキップして起動を続行する．
.SS 音響モデル(HMM)
.Ip "\-h hmmfilename"
使用するHMM定義ファイル名(必須)．
.Ip "\-hlist HMMlistfilename"
HMMlistファイル名．triphone体系のHMM使用時に必須である．
.sp
このファイルは，辞書の音素表記から生成した論理triphone名からHMM定
義名への写像を与える．詳細は付属ドキュメントを参照のこと．
.Ip "\-iwcd1 {max|avg}"
triphone使用時，第1パスの単語間triphoneの音響尤度計算方法を指定する．
.sp
max: 同コンテキストtriphoneの最大値 (default)
.br
avg: 同コンテキストtriphoneの平均値
.Ip "\-force_ccd / \-no_ccd "
単語間の音素環境依存を考慮するかしないかを明示的に指定する．指定がない場合はモデルの名前定義から推察する．
なおtriphone以外で -force_ccd を指定したときの動作は保証されない．
.Ip "\-notypecheck "
入力特徴パラメータの型チェックを無効にする．
.br
(default: チェック有効)
.SS "音響尤度計算"
Gaussian pruning は tied-mixture ベースの音響モデルにおいて自動的に有
効となる．Gaussian Selection の使用には
.I mkgshmm
で変換されたモノフォンモデルが必要である．
.Ip "\-tmix K"
Gaussian pruning でコードブックごとに上位K個のガウス分
布を計算する．
(default: 2)
.Ip "\-gprune {safe|heuristic|beam|none}"
Gaussian pruning の手法を指定する．
.br
(default: safe (標準版) beam (高速版))
.Ip "\-gshmm hmmdefs"
Gaussian Mixture Selection 用のモノフォン音響モデルを指定する．
GMS用モノフォンは通常のモノフォンから mkgshmm(1) によって生成できる．
.br
デフォルトは指定無し(GMSを使用しない)．
.Ip "\-gsnum N"
GMS 使用時，全モノフォンの状態の中から上位 N 個の状態のみトライフォン
を計算する (default: 24)
.SS 単語間ショートポーズ
.Ip "\-iwspword"
ショートポーズに対応する単語エントリを認識辞書に自動追加する．
エントリの内容は "-iwspentry" で指定可能．
.Ip "\-iwspentry"
"-iwspword" で追加する単語エントリを指定する．認識辞書と同じフォーマッ
トで，クォーテーションで囲って指定する．
.br
(default: "<UNK> [sp] sp sp")
.Ip "\-iwsp"
(マルチパス版のみ)より短時間のcontext-freeな単語間の無音への対応を有効
にする．具体的には，辞書中の全単語の読みの末尾にスキップ可能なショート
ポーズモデルを付加する．付加されたモデルはコンテキストの計算からは除外
される．付加するモデルは "-spmodel" で指定可能．
詳細は別ドキュメントを参照のこと．
.Ip "\-spmodel"
"-iwsp" で付加するショートポーズモデルの名前を指定する．
.br
(default: "sp")．
.SS ショートポーズセグメンテーション
.Ip "\-spdur"
(--enable-sp-segment 時) 第1パスの sp 継続時間長のしきい値(単位：フレー
ム)．ショートポーズ単語が最尤であるフレームがこの時間以上継続したら，
第１パスを中断して第２パスを実行する．(default: 10)
.SS 探索パラメータ（第1パス）
.Ip "\-b beamwidth"
ビーム幅．HMMのノード数で指定する．
値が大きいほど安定した結果が得られるが，処理時間とメモリ量を消費する．
.sp
default値：モデルによって変化する
  400 (monophone 使用時)
  800 (triphone,PTM 使用時)
 1000 (triphone,PTM,engine=v2.1)
.Ip "\-sepnum N"
 (./configrue --enable-lowmem2 指定時) 
辞書木から分離する高頻度語の数
.br
(default: 150)
.Ip "\-1pass "
第1パスのみ実行する．単語3-gramの指定が無い場合自動的にこのモードになる．
.Ip "\-realtime"
.Ip "\-norealtime"
第1パスを実時間処理するかを明示的に指定する．デフォルトは，ファイル入
力について OFF (-norealtime)，マイク・NetAudio・ネットワーク入力につ
いて ON (-realtime)．このオプションは CMN と密接な関係にある：OFF の
際は CMN は１入力ごとにそれ自身から計算されるが，ON の場合は直前の５秒
分の入力の値を常に用いる．-progout も参照のこと．
.Ip "\-cmnsave filename"
認識中に計算したCMNパラメータをファイルへ保存する．保存は一入力認
識のたびに行われる．すでにファイルがある場合は上書きされる．
.Ip "\-cmnload filename"
初期CMNパラメータをファイルから読み込む．ファイルは "-cmnsave" で保存
したファイル．これによってマイク入力やネットワーク入力においても起動後
の入力第1発話からCMNを適用できる．
.SS 探索パラメータ（第2パス）
.Ip "\-b2 hyponum"
仮説エンベロープの幅．仮説の各長さごとに，この数を越える仮説が展開され
たらそれより短い仮説を展開しないようにする．探索失敗を防ぐ効果がある．
.br
(default: 30)
.Ip "\-n candidatenum"
この数の文仮説が得られるまで探索を続ける．
得られた仮説はスコアで再ソートして結果を出力する．
(参考：-outputオプション)．
.sp
Juliusでは第2パスの探索の最適性は厳密には保証されないため，最尤候補が
常に最初に得られるとは限らない．この値が大きいほど真の最尤仮説が得られる可
能性が高くなるが，長く探索するため処理時間は大きくなる．(default: 1)
.sp
default値：エンジン設定(--enable-setup=)に依存
.br
  10  (standard)
   1  (fast,v2.1)
.Ip "\-output N "
"-n"オプションで指定した仮説数のうち，上位N個を出力する
.br
(default: 1)．
.Ip "\-sb score"
スコアエンベロープの幅．各フレームごとに，それまでの最大スコアからこの
幅以上離れた部分についてはscanしない．第2パスの音響尤度計算の高速化に
効果がある．
.br
(default: 80.0)
.Ip "\-s stack_size"
解探索中にスタックに保持する仮説の最大数．
値が大きいほど安定した結果が得られるが必要メモリ量が増える．(default: 500)
.Ip "\-m overflow_pop_times"
解探索打ち切りと判断する展開仮説数のしきい値．
展開された仮説数がこの数を越えたとき，そこで探索を打ち切る．値が大きい
ほどあきらめずに探索を続けるが，探索失敗時の処理時間は長くなる．(default: 2000)
.Ip "\-lookuprange nframe"
単語展開時に前後何フレームまでみて展開単語を決めるかを指定する．短い単
語の脱落防止に効果があるが，値が大きいと展開仮説が増えるため遅くなる．
.br
(default: 5)
.SS "Forced alignment"
.Ip "\-walign"
認識結果に対して，単語単位のViterbiアラインメントを行う．単語ごとにマッ
チした区間，およびフレームごとの平均音響尤度が出力される．
.Ip "\-palign"
認識結果に対して，音素単位のViterbiアラインメントを行う．音素ごとにマッ
チした区間，およびフレームごとの平均音響尤度が出力される．
.Ip "\-salign"
認識結果に対して，状態単位のViterbiアラインメントを行う．状態ごとにマッ
チした区間，およびフレームごとの平均音響尤度が出力される．
.SS サーバーモジュールモード
.Ip "\-module [port]"
サーバーモジュールモードで起動する．起動後はクライアントからのtcpip接
続を待ち，クライアントからのコマンドの処理およびクライアントへの認識結
果や入力トリガ情報を送信する．複数文法認識はこのサーバーモジュールモー
ドでのみ使用することができる．詳細は関連ドキュメント参照のこと．ポート
番号のデフォルトは 10500 である．
.Ip "\-outcode [W][L][P][S][w][l][p][s]"
サーバーモジュールモード時に，クライアントへ送信する認識結果の内容を指
定する．それぞれ 'W' は単語の通常の出力文字列，'L' は文法エントリ，'P'
は音素列，'S' はスコアを表す．大文字は第2パス，小文字は第1パスに対応す
る．例えば第２パスの単語と音素列のみを送信したい場合は，"-outcode WP"
のように指定する．
.SS メッセージ出力
.Ip "\-separatescore"
言語スコアと音響スコアをわけて出力する．
.Ip "\-quiet "
音素列やスコアを省略して，ベストの仮説の単語列だけ出力する．
.Ip "\-progout "
第1パスの途中結果を一定時間おきに漸次出力する．
.Ip "\-proginterval msec"
\-progout 時の出力インターバルを指定(単位：ミリ秒)
.Ip "\-demo"
"-progout -quiet" と等価．
.SS その他
.Ip "\-debug"
大量のデバッグ用内部メッセージを出力する．
.Ip "\-C jconffile"
jconf設定ファイルの読み込み．これらの実行時オプションをあらかじめ記述
して読み込ませることができる．また，あるjconf設定ファイル内でこのオプ
ションにより他のjconf設定ファイルを include することができる．
.Ip "\-check wchmm"
(デバッグ用)木構造化辞書の構造を対話的にチェックする．
.Ip "\-check triphone"
(デバッグ用)音響モデル(とHMMList)による辞書上の単語の実際のマッピング
を対話的にチェックする．
.Ip "\-version "
プログラム名・コンパイル時刻・コンパイル時オプションを表示して
終了する．
.Ip "\-help "
簡単なオプション一覧を表示後終了する．
.SH "EXAMPLES"
使用例については付属のチュートリアルをご覧下さい．
.SH "NOTICE"
jconf設定ファイル内でファイルを相対パスで指定する場合，それは
実行時のカレントディレクトリは無関係に，その jconf ファイルが置いてあ
る場所からの相対パスとして解釈される点に注意してください．
.SH "SEE ALSO"
julian(1), mkbingram(1), mkss(1), jcontrol(1), adinrec(1), adintool(1), mkdfa(1),
mkgsmm(1), wav2mfcc(1)
.PP
http://julius.sourceforge.jp/  (main)
.br
http://sourceforge.jp/projects/julius/ (development site)
.SH DIAGNOSTICS
正常終了した場合，
.I Julius
は exit status として 0 を返します．エラーが見付かった場合は異常終了し，
exist status として 1 を返します．
.PP
入力ファイルが見つからない場合やうまく読み込めなかった場合は，そのファ
イルに対する処理をスキップします．
.SH BUGS
.I Julius
で使用できるモデルにはサイズやタイプに若干の制限があります．詳しくはパッ
ケージに付属のドキュメントを参照してください．
.PP
バグ報告・問い合わせ・コメントなどは 
julius@kuis.kyoto-u.ac.jp までお願いします．
.SH AUTHORS
.Ip "Rev.1.0 (1998/02/20)"
河原 達也  と  李 晃伸 (京都大学)
.br
が設計を行いました．
.sp
李晃伸 (京都大学)
.br
が実装しました．
.Ip "Rev.1.1 (1998/04/14)"
.Ip "Rev.1.2 (1998/10/31)"
.Ip "Rev.2.0 (1999/02/20)"
.Ip "Rev.2.1 (1999/04/20)"
.Ip "Rev.2.2 (1999/10/04)"
.Ip "Rev.3.0 (2000/02/14)"
.Ip "Rev.3.1 (2000/05/11)"
李 晃伸 (京都大学)
.br
が実装しました．
.Ip "Rev.3.2 (2001/08/15)"
.Ip "Rev.3.3 (2002/09/11)"
李 晃伸 (奈良先端大)
.br
が主に実装しました．
.SH "THANKS TO"
このプログラムは Rev.3.1 まで，情報処理振興事業協会(IPA)独創的情報技術育
成事業「日本語ディクテーションの基本ソフトウェアの開発」(代表者：鹿野
清宏 奈良先端科学技術大学院大学教授)の援助を受けて行われました．
.PP
Rev.3.2以降は「情報処理学会 連続音声認識コンソーシアム」において公開さ
れています．
.PP
Windows DLL版 は板野秀樹氏(名古屋大学)の手によって作成・公開されています．
.PP
Windows Microsoft Speech API対応版は住吉貴志氏(京都大学)の手によるもの
です．
.PP
上記の協力・貢献してくださった方々，およびさまざまな助言・コメントをい
ただく関係者各位に深く感謝いたします．
.PP
また，開発に際して言語モデルを提供して頂いた伊藤克亘氏(電子技術総合研
究所)，音素モデルを提供して頂いた武田一哉氏(名古屋大学)をはじめとする
関係各位に感謝します．また伊藤克亘氏をはじめ多くの方に動作確認とデバッ
グを行って頂きましたことを感謝します．
.PP
最後に，バグ報告や提案をしていただいている Julius users ML のメンバー
の方々をはじめとするLinuxコミュニティの方々に感謝します．
