julius/dfa_decode.c

スタックデコーディング(第2パス)における記述文法に基づく次単語予測 [詳細]

#include <julius.h>

dfa_decode.cのインクルード依存関係図

ソースコードを見る。

関数

int dfa_firstwords (NEXTWORD **nw, int peseqlen, int maxnw, DFA_INFO *dfa)
int dfa_nextwords (NODE *hypo, NEXTWORD **nw, int maxnw, DFA_INFO *dfa)
boolean dfa_acceptable (NODE *hypo, DFA_INFO *dfa)
boolean dfa_look_around (NEXTWORD *nword, NODE *hypo, BACKTRELLIS *bt)


説明

スタックデコーディング(第2パス)における記述文法に基づく次単語予測

作者:
Akinobu LEE
日付:
Mon Mar 7 15:31:00 2005
与えられた仮説に対して,DFA 文法上接続可能な次単語の集合を決定する. ただし実際には, 展開元仮説の予測される始端フレーム周辺の単語トレリス 上に残っている単語のみが展開される.

Julian ではショートポーズは単語レベルで記述し,そのショートポーズ単語の 出現位置を文法で指定する.ただし,実際の入力ではその想定した位置に 必ずしもポーズが入らないため,次単語予測においてはショートポーズを 挟む場合と挟まない場合を考慮する必要がある.このため, 次単語集合にショートポーズがある場合は,さらにその次の単語集合まで見て 次単語集合に含める.実際にそこにショートポーズが挿入されるかどうかは, search_bestfirst_main.c で両者のスコアを比較して判断する.

Julian では dfa_firstwords(), dfa_nextwords(), dfa_acceptable(), dfa_eosscore() が第2パスのメイン関数 wchmm_fbs() から使用される. なお Julius では代わりに ngram_decode.c 内の関数が使われる.

Revision
1.3

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


関数

int dfa_firstwords ( NEXTWORD **  nw,
int  peseqlen,
int  maxnw,
DFA_INFO dfa 
)

文法にしたがって,文頭に接続しうる単語を最初の予測単語群として返す.

引数:
nw [out] 次単語集合の格納先へのポインタ
peseqlen [in] 入力フレーム長
maxnw [in] nw の許される最大長
dfa [in] DFA文法構造体
戻り値:
予測された単語数 (ただしエラー時は -1 を返す)

dfa_decode.c86 行で定義されています。

参照元 wchmm_fbs().

int dfa_nextwords ( NODE hypo,
NEXTWORD **  nw,
int  maxnw,
DFA_INFO dfa 
)

部分文仮説に対して,文法に従って次に接続しうる単語群を返す.

引数:
hypo [in] 展開元の部分文仮説
nw [out] 次単語集合の格納先へのポインタ
maxnw [in] nw の許される最大長
dfa [in] DFA文法構造体
戻り値:
予測された単語数 (ただしエラー時は -1 を返す)

dfa_decode.c144 行で定義されています。

boolean dfa_acceptable ( NODE hypo,
DFA_INFO dfa 
)

部分文仮説が文法上文として最終(受理可能)状態にあるかどうかを返す.

引数:
hypo [in] 部分文仮説
dfa [in] DFA文法構造体
戻り値:
受理可能状態にあるとき TRUE 受理不可能なとき FALSE

dfa_decode.c201 行で定義されています。

boolean dfa_look_around ( NEXTWORD nword,
NODE hypo,
BACKTRELLIS bt 
)

次単語候補がその推定された接続予測点の前後の単語トレリス上に あるかどうかをチェックし,もしあればそのトレリス単語へのポインタをセット する.なお最尤の接続点はあとで決まるので,ここでは最適なトレリス単語 でなくてよい.

引数:
nword [i/o] 次単語候補 (対応するトレリス単語へのポインタが セットされる)
hypo [in] 展開元仮説
bt [in] 単語トレリス構造体
戻り値:
単語トレリス上の予測位置付近に次単語が存在すれば TRUE,存在 しなければ FALSE を返す.

dfa_decode.c242 行で定義されています。


Julianに対してTue Dec 26 12:56:25 2006に生成されました。  doxygen 1.5.0