#include <julius.h>
search_bestfirst_v1.cのインクルード依存関係図
関数 | |
void | free_node (NODE *node) |
< Define if want triphone debug messages | |
NODE * | cpy_node (NODE *dst, NODE *src) |
NODE * | newnode () |
void | malloc_wordtrellis () |
void | free_wordtrellis () |
void | scan_word (NODE *now, HTK_Param *param) |
void | next_word (NODE *now, NODE *new, NEXTWORD *nword, HTK_Param *param, BACKTRELLIS *backtrellis) |
void | start_word (NODE *new, NEXTWORD *nword, HTK_Param *param, BACKTRELLIS *backtrellis) |
void | last_next_word (NODE *now, NODE *new, HTK_Param *param) |
変数 | |
static LOGPROB * | wordtrellis [2] |
Buffer to compute viterbi path of a word. | |
static int | tn |
Temporal pointer to current buffer. | |
static int | tl |
Temporal pointer to previous buffer. | |
static LOGPROB * | g |
Buffer to hold source viterbi scores. | |
static HMM_Logical ** | phmmseq |
Phoneme sequence to be computed. | |
static int | phmmlen_max |
Maximum length of phmmseq. |
単語接続部の単語間音素環境依存性は,高速な backscan アルゴリズムに よって行われます.このファイルで定義されている関数は,config.h において PASS2_STRICT_IWCD が undef であるときに使用されます.逆に上記が define されているときは,search_bestfirst_v2.c の関数が用いられます.
Backscan アルゴリズムでは,デコーディングの高速化のため, 次単語とその前の単語の接続点について,「単語間音素コンテキストの遅延処理」 を行ないます:
仮説生成時にはすべての生成仮説に対して依存計算を行なず,あとでスコアが 高く POP された仮説についてのみ再計算を行ないます.このため処理が 高速化されますが,仮説スコア計算(next_word())において次単語接続部分の 環境依存性が考慮されないので, 探索中のスコアに誤差が生じる場合があります.
実装について:
なお,1音素のみからなる単語では backscan 開始点と単語境界が重なることを 考慮する必要があるため,実装はもう少し複雑になる.
search_bestfirst_v1.c で定義されています。
|
< Define if want triphone debug messages 仮説ノードを解放する.
search_bestfirst_v1.c の 129 行で定義されています。 参照元 free_all_nodes(), put_all_in_stack(), put_to_stack(), result_reorder_and_output(), と wchmm_fbs(). |
|
仮説をコピーする.
search_bestfirst_v1.c の 166 行で定義されています。 参照元 last_next_word(), と wchmm_fbs(). |
|
新たな仮説ノードを割り付ける.
search_bestfirst_v1.c の 240 行で定義されています。 参照元 wchmm_fbs(). |
|
1単語分のトレリス計算用のワークエリアを確保. search_bestfirst_v1.c の 321 行で定義されています。 参照元 wchmm_fbs(). |
|
1単語分のトレリス計算用のワークエアリアを解放 search_bestfirst_v1.c の 359 行で定義されています。 参照元 wchmm_fbs(). |
|
最後の1単語の前向きトレリスを計算して,文仮説の前向き尤度を更新する.
search_bestfirst_v1.c の 458 行で定義されています。 参照元 wchmm_fbs(). |
|
展開元仮説に次単語を接続して新しい仮説を生成する.次単語の単語トレリス上の スコアから最尤接続点を求め,仮説スコアを計算する.
search_bestfirst_v1.c の 1256 行で定義されています。 参照元 wchmm_fbs(). |
|
与えられた単語から初期仮説を生成する.
search_bestfirst_v1.c の 1544 行で定義されています。 参照元 wchmm_fbs(). |
|
終端処理:終端まで達した文仮説の最終的なスコアをセットする.
search_bestfirst_v1.c の 1650 行で定義されています。 参照元 wchmm_fbs(). |