julius/backtrellis.c

単語トレリスの保存・参照 [詳細]

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

ソースコードを見る。

関数

void bt_init (BACKTRELLIS *bt)
void bt_prepare (BACKTRELLIS *bt)
void bt_store (BACKTRELLIS *bt, TRELLIS_ATOM *tatom)
void bt_relocate_rw (BACKTRELLIS *bt)
void bt_discount_pescore (WCHMM_INFO *wchmm, BACKTRELLIS *bt, HTK_Param *param)
static int compare_wid (TRELLIS_ATOM **a, TRELLIS_ATOM **b)
void bt_sort_rw (BACKTRELLIS *bt)
TRELLIS_ATOMbt_binsearch_atom (BACKTRELLIS *bt, int t, WORD_ID wkey)

説明

単語トレリスの保存・参照

作者:
Akinobu LEE
日付:
Tue Feb 22 15:40:01 2005

第1パスの結果を単語トレリスとして保存し,第2パスで参照するための関数群 です.Julius では,第1パスで探索中に終端が生き残っていた単語は全て, その始終端フレーム,始端からの累積尤度および単語履歴とともに 保存され,第2パスでその集合の中から再探索が行われます. この第1パスでフレームごとに残される単語情報のことを「トレリス単語」, トレリス単語の集合全体を「単語トレリス」と呼びます.

トレリス単語は,第1パスの認識中に各フレームごとに保存されます. 第1パス終了後,トレリス全体の整形・再配置とフレームごとのインデックス を作成します.

第2パスでは,この単語トレリスを参照して 各時間(入力フレーム)における展開可能な仮説のリストを得るとともに, その第1パスでの(後ろ向きの)累積尤度を,第2パスにおける仮説の未展開部分の 推定スコアとして用います.このしくみから,単語トレリスは「バックトレリス」 とも呼ばれています.

Revision
1.6

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


関数

void bt_init ( BACKTRELLIS bt  ) 

単語トレリスを保持する 単語トレリス 構造体を初期化する(起動時に1回だけ実行)

引数:
bt [in] 初期化する 単語トレリス 構造体へのポインタ

backtrellis.c74 行で定義されています。

参照元 final_fusion().

void bt_prepare ( BACKTRELLIS bt  ) 

次回の認識用に 単語トレリス 構造体を準備する (認識開始時ごとに実行).

引数:
bt [in] 対象とする単語トレリス構造体へのポインタ

backtrellis.c96 行で定義されています。

参照元 get_back_trellis_init().

void bt_store ( BACKTRELLIS bt,
TRELLIS_ATOM tatom 
)

第1パスで出現したトレリス単語(単語終端のトレリス情報)を格納する.

ここでは格納だけ行い,第1パス終了後に bt_relocate_rw() で フレーム順に再配置する.

引数:
bt [i/o] トレリス単語を格納するバックトレリス構造体
tatom [in] 出現したトレリス単語へのポインタ

backtrellis.c134 行で定義されています。

参照元 get_back_trellis_end(), と get_back_trellis_proceed().

void bt_relocate_rw ( BACKTRELLIS bt  ) 

第1パス終了後, 格納された単語トレリス情報をフレーム順に再配置する.

引数:
bt [i/o] 単語トレリス構造体

backtrellis.c161 行で定義されています。

参照元 finalize_1st_pass().

void bt_discount_pescore ( WCHMM_INFO wchmm,
BACKTRELLIS bt,
HTK_Param param 
)

第1パス終了後, 第2パスでのトレリス再接続計算のために, 全時間に渡って各トレリス単語の終端の最終状態の出力尤度を再計算し, それを累積から差し引いておく.第2パスでは,仮説接続時には 接続仮説を考慮して接続点の状態の尤度が再計算される.

引数:
wchmm [in] 木構造化辞書
bt [in] 単語トレリス構造体
param [in] 入力パラメータ情報

backtrellis.c307 行で定義されています。

参照元 main_recognition_loop().

static int compare_wid ( TRELLIS_ATOM **  a,
TRELLIS_ATOM **  b 
) [static]

bt_sort_rw()用のqsortコールバック.

引数:
a [in] 要素1
b [in] 要素2
戻り値:
昇順ソートに必要な値

backtrellis.c356 行で定義されています。

参照元 bt_sort_rw().

void bt_sort_rw ( BACKTRELLIS bt  ) 

bt_relocate_rw() 終了後, 高速アクセスのために バックトレリス構造体内のトレリス単語をフレームごとに 単語IDでソートしておく.

引数:
bt [i/o] 単語トレリス構造体

backtrellis.c382 行で定義されています。

参照元 finalize_1st_pass().

TRELLIS_ATOM* bt_binsearch_atom ( BACKTRELLIS bt,
int  t,
WORD_ID  wkey 
)

単語トレリス内の指定時刻フレーム上に,指定単語の終端があるかどうかを 検索する.

引数:
bt [in] 単語トレリス構造体
t [in] 検索する終端時刻(フレーム)
wkey [in] 検索する単語の単語ID
戻り値:
見つかった場合そのトレリス単語へのポインタ,見つからなければ NULL.

backtrellis.c420 行で定義されています。

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


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