julius/outprob_style.c

木構造化辞書上の状態の出力確率計算を行う [詳細]

#include <julius.h>
outprob_style.cのインクルード依存関係図

ソースコードを見る。

関数

void outprob_style_cache_init (WCHMM_INFO *wchmm)
LOGPROB outprob_style (WCHMM_INFO *wchmm, int node, int last_wid, int t, HTK_Param *param)
void error_missing_right_triphone (HMM_Logical *base, char *rc_name)
void error_missing_left_triphone (HMM_Logical *base, char *lc_name)

変数

static char rbuf [MAX_HMMNAME_LEN]
 Local workarea for HMM name conversion.

説明

木構造化辞書上の状態の出力確率計算を行う

作者:
Akinobu Lee
日付:
Mon Aug 22 17:14:26 2005

第1パスで,木構造化辞書上のノードの,入力ベクトルに対する HMM の 出力対数確率を計算する.

トライフォン使用時は,単語内の音素環境依存については辞書読み込み時に 考慮されて対応するトライフォンがすでに割り当てられているので,ここで 特別な処理は行われない.単語先頭および末尾の音素は,木構造化辞書上では pseudo triphone が割り当たっており,これらについては,以下のように 単語間を音素環境依存性を考慮した計算が行われる.

  1. 単語内音素: 通常通り計算する.
  2. 単語の先頭音素: 直前単語の情報から,pseudo triphone を正しい トライフォンに動的に切り替えて計算.
  3. 単語の末尾音素: その pseudo triphone に含まれる(同じ左コンテキストを 持つトライフォンの)状態集合中のすべての状態について尤度を計算し,
    • "-iwcd1 max" 指定時は最大値
    • "-iwcd1 avg" 指定時は平均値(default)
    • "-iwcd1 best N" 指定時は上位N個の平均値 をその状態の尤度として採用する.(これは outprob_cd() 内で自動的に選択 され計算される.
  4. 1音素からなる単語の場合: 上記を両方とも考慮する.

上記の処理を行うには,木構造化辞書の状態ごとに,それぞれが単語内でどの 位置の音素に属する状態であるかの情報が必要である.木構造化辞書では, 状態ごとに上記のどの処理を行えば良いかを AS_Style であらかじめ保持している.

また,上記の 2 と 4 の状態では,コンテキストに伴うtriphone変化を, 直前単語ID とともに状態ごとにフレーム単位でキャッシュしている.これにより 計算量の増大を防ぐ.

Revision
1.5

outprob_style.c で定義されています。


関数

void outprob_style_cache_init ( WCHMM_INFO wchmm  ) 

単語先頭のトライフォン変化用キャッシュを初期化

引数:
wchmm [i/o] 木構造化辞書

outprob_style.c99 行で定義されています。

参照元 init_nodescore().

LOGPROB outprob_style ( WCHMM_INFO wchmm,
int  node,
int  last_wid,
int  t,
HTK_Param param 
)

木構造化辞書中のある状態(ノード)について対数出力確率を計算する.

引数:
wchmm [in] 木構造化辞書情報
node [in] ノード番号
last_wid [in] 直前単語(単語先頭のトライフォン計算に用いる)
t [in] 時間フレーム
param [in] 特徴量パラメータ構造体 (t 番目のベクトルについて計算する)
戻り値:
出力確率の対数値を返す.

outprob_style.c354 行で定義されています。

参照元 bt_discount_pescore(), get_back_trellis_proceed(), と init_nodescore().

void error_missing_right_triphone ( HMM_Logical base,
char *  rc_name 
)

指定した右コンテキストを持つトライフォンが 見つからなかった場合にエラーメッセージを出力する関数.

引数:
base [in] ベースのトライフォン
rc_name [in] 右コンテキストの音素名

outprob_style.c513 行で定義されています。

参照元 next_word(), と scan_word().

void error_missing_left_triphone ( HMM_Logical base,
char *  lc_name 
)

指定した左コンテキストを持つトライフォンが 見つからなかった場合にエラーメッセージを出力する関数.

引数:
base [in] ベースのトライフォン
lc_name [in] 左コンテキストの音素名

outprob_style.c538 行で定義されています。

参照元 outprob_style(), と scan_word().


Juliusに対してTue Sep 22 00:14:21 2009に生成されました。  doxygen 1.6.0