The Julius book

LEE Akinobu [FAMILY Given]

このバージョンで書かれている内容は,Julius の rev. 4.1.5 に対応する.

改訂履歴
改訂 1.0.32010/06/04
バージョン4.1.5に対応:MSVCと cygwin のコンパイルにつ いて2章に加筆、特徴量の種類を4章に加筆.
改訂 1.0.22009/11/02
バージョン4.1.3に対応:portaudio のデバイス名指定,N-gram が任意長になったこと等を反映.
改訂 1.0.12009/02/12
バージョン4.1.2に対応:言語モデルの章に SRILM で学習したN-gramの使い方を新たに追加.オプション "-mapunk" の追加など.
改訂 1.0.02008/09/30
最初のリリース,バージョン4.1.0に対応.

目次

まえがき
1. 概要
動作環境
音声認識システムの実行に必要なもの
パッケージの構成
処理フロー
2. インストール
バイナリパッケージ
ソースからコンパイルする
コンパイル時オプション
libsent オプション
libjuliusオプション
juliusオプション
コンパイル手順の詳細
Linux
Windows - cygwin
Windows - mingw
Windows - Microsoft Visual C++
3. 音声データ入力
基本フォーマット
ビット数
チャンネル数
サンプリングレート
ファイル入力
サポートするファイル形式
録音デバイスからの直接入力
録音デバイスの条件
OSごとの詳細
入力遅延の調整
ネットワーク・ソケット経由の入力
ネットワーク経由
esd
標準入力
DATLINK/NetAudio
特徴量ファイル入力
プラグインによる入力拡張について
4. フロントエンド処理・特徴量抽出
フロントエンド処理
直流成分除去
スペクトルサブトラクション
特徴量抽出
サポートする特徴量
特徴量抽出パラメータの指定方法
正規化処理
ケプストラム平均正規化 (CMN)
ケプストラム分散正規化 (CVN)
周波数ワーピング(声道長正規化)
リアルタイム認識における正規化
実時間エネルギー正規化
実時間ケプストラム平均・分散正規化
プラグインによる拡張について
5. 音声区間検出・入力棄却
音声区間検出
振幅と零交差に基づく入力検知
GMMによる音声区間検出
デコーダベースの音声区間検出
入力棄却
GMMに基づく入力棄却
平均パワーによる棄却
6. 音響モデル
モデルの仕様
音響モデルのファイル形式
HTK ascii形式
Julius用バイナリ形式
HMMListファイル
テキスト形式
バイナリ形式
音素コンテキスト依存モデル
論理音素名と物理音素名
HMMListファイルによるマッピング
単語間トライフォン近似:pseudo phone
状態間遷移とマルチパスモード
複数音響モデルによるマルチデコーディング時の注意
7. 言語モデル
単語辞書
ファイル形式
透過単語の指定について
無音用単語の追加について
制約
単語 N-gram
指定方法
前向き N-gram および後ろ向き N-gram
ファイル形式
SRILM への対応について
制約
記述文法
フォーマット
コンパイル
コンパイルおよびチェックの方法
Julius への指定方法
複数の文法を使用するには
文法における文中の短時間無音の指定
DFAファイルの仕様
単語リスト(孤立単語認識)
ユーザ定義関数による言語制約拡張
8. 認識アルゴリズムとパラメータ
認識アルゴリズムの概要
探索アルゴリズムにおける調節可能なパラメータ
言語重みおよび挿入ペナルティ
ビーム幅
第1パス
第2パス
その他のオプション
認識結果の出力
N-bestリスト
単語ラティス形式
Confusion network
漸次出力
バージョン 3 との出力形式の互換性について
アラインメント出力
単語信頼度
認識処理に基づく入力区切り
ショートポーズセグメンテーション
デコーダベース VAD
9. 複数モデルを用いた認識
インスタンスの宣言
音響モデルインスタンス (-AM)
言語モデルインスタンス (-LM)
認識処理(デコーディング)インスタンス (-SR)
オプションの記述位置について
インスタンス宣言を用いた Jconf ファイルの例
10. モジュールモード
基本動作
サンプルクライアント jcontrol による動作確認
クライアントへの出力メッセージ仕様
クライアントから受信できる命令コマンド
11. プラグイン
動作環境
使用方法
プログラミング例
例1:認識結果出力プラグイン
例2:音声入力プラグイン
例3:認識開始・終了の検知プラグイン
例4:オプションを拡張する
プラグインの仕様
音声入力プラグイン
音声後処理プラグイン
特徴量入力プラグイン
特徴量後処理プラグイン
ガウス分布計算プラグイン
結果取得プラグイン
その他のプラグイン関数
複合プラグインについて
制限
12. JuliusLib
JuliusLibの構成と仕組み
JuliusLibを用いたコンパイル
julius-simple.c 解説
JuliusLib API (ver.xx)
処理フロー
Functions
Callbacks
Web Forum
A. バージョンごとの主な変更点
バージョン4.0 から 4.1 への変更点
バージョン 3.5.3 から 4.0 への変更点
バージョン 3.5 から 3.5.3 への変更点
バージョン 3.4.2 から 3.5 への変更点
B. オプション一覧
アプリケーション
全体オプション
オーディオ入力
レベルと零交差による入力検知
入力棄却
GMM / GMM-VAD
デコーディング
その他
インスタンス宣言
言語モデル (-LM)
N-gram
記述文法
単語辞書(孤立単語認識)
ユーザ定義LM
その他
音響モデル・特徴量抽出 (-AM) (-AM_GMM)
音響モデル・HMM
特徴量抽出
正規化処理
フロントエンド処理
その他
認識処理・探索 (-SR)
第1パスパラメータ
第2パスパラメータ
ショートポーズセグメンテーション / デコーダVAD
単語ラティス / confusion network 出力
複数文法認識
Forced alignment
その他
I. リファレンス・マニュアル
julius — 大語彙連続音声認識エンジン
jcontrol — Juliusモジュールモード用のサンプルクライアント
jclient.pl — perl 版サンプルクライアント
mkbingram — バイナリ N-gram 変換
mkbinhmm — バイナリ HMM 変換
mkbinhmmlist — HMMList ファイルをバイナリ形式に変換
adinrec — 1発話の音声入力データをファイルに記録する
adintool — 音声波形データの記録・分割・送信・受信ツール
mkss — スペクトルサブトラクション用のノイズスペクトル計算
mkgshmm — モノフォンHMMを GMS 用に変換する
generate-ngram — N-gram に従って文をランダム生成する
mkdfa.pl — Julius 形式の文法をオートマトンに変換するコンパイラ
generate — 文法から文をランダム生成する
nextword — DFA 文法で(逆向きに)次単語を予測するツール
accept_check — 文法における単語列の受理/非受理チェック
dfa_minimize — 有限オートマトン文法を最小化する
dfa_determinize — 有限オートマトン文法を決定化する
gram2sapixml.pl — 認識用文法を SAPI XML 文法に変換するスクリプト
C. 利用許諾

表目次

4.1. 特徴量抽出条件の設定オプションとデフォルト値
10.1. モジュールモードの送信メッセージ
10.2. モジュールモードの認識結果出力の詳細
10.3. クライアントから送信できるコマンド(共通)
10.4. クライアントから送信できるコマンド(カレントインスタンスが文法の場合)

例目次

11.1. test1.c: a simple output plugin
11.2. test2.c: OSS A/D-in plugin
11.3. test3.c: Start / stop notification plugin
11.4. test4.c: extend test3.c by adding an option "-notify"