#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_ATOM * | bt_binsearch_atom (BACKTRELLIS *bt, int t, WORD_ID wkey) | 
トレリス単語は,第1パスの認識中に各フレームごとに保存されます. 第1パス終了後,トレリス全体の整形・再配置とフレームごとのインデックス を作成します.
第2パスでは,この単語トレリスを参照して 各時間(入力フレーム)における展開可能な仮説のリストを得るとともに, その第1パスでの(後ろ向きの)累積尤度を,第2パスにおける仮説の未展開部分の 推定スコアとして用います.このしくみから,単語トレリスは「バックトレリス」 とも呼ばれています.
backtrellis.c で定義されています。
      
  | 
  
| 
 単語トレリスを保持する 単語トレリス 構造体を初期化する(起動時に1回だけ実行) 
 
 backtrellis.c の 74 行で定義されています。 参照元 final_fusion().  | 
  
      
  | 
  
| 
 次回の認識用に 単語トレリス 構造体を準備する (認識開始時ごとに実行). 
 
 backtrellis.c の 96 行で定義されています。  | 
  
      
  | 
  ||||||||||||
| 
 第1パスで出現したトレリス単語(単語終端のトレリス情報)を格納する. ここでは格納だけ行い,第1パス終了後に bt_relocate_rw() で フレーム順に再配置する. 
 
 backtrellis.c の 144 行で定義されています。  | 
  
      
  | 
  
| 
 第1パス終了後, 格納された単語トレリス情報をフレーム順に再配置する. 
 
 backtrellis.c の 170 行で定義されています。 参照元 finalize_1st_pass().  | 
  
      
  | 
  ||||||||||||||||
| 
 第1パス終了後, 第2パスでのトレリス再接続計算のために, 全時間に渡って各トレリス単語の終端の最終状態の出力尤度を再計算し, それを累積から差し引いておく.第2パスでは,仮説接続時には 接続仮説を考慮して接続点の状態の尤度が再計算される. 
 
 backtrellis.c の 315 行で定義されています。  | 
  
      
  | 
  ||||||||||||
| 
 bt_sort_rw()用のqsortコールバック. 
 
 
 backtrellis.c の 364 行で定義されています。 参照元 bt_sort_rw().  | 
  
      
  | 
  
| 
 bt_relocate_rw() 終了後, 高速アクセスのために バックトレリス構造体内のトレリス単語をフレームごとに 単語IDでソートしておく. 
 
 backtrellis.c の 390 行で定義されています。 参照元 finalize_1st_pass().  | 
  
      
  | 
  ||||||||||||||||
| 
 単語トレリス内の指定時刻フレーム上に,指定単語の終端があるかどうかを 検索する. 
 
 
 backtrellis.c の 428 行で定義されています。 参照元 next_word(), ngram_firstwords(), print_1pass_result(), と start_word().  | 
  
 1.4.2