音声認識メモ(Julius)その5(連続単語認識(DFA))
前回の続き。
孤立単語の場合、"単語内(intra word)の遷移"のみを計算したが、連続単語の場合は、単語内に加え、"単語間(inter word)の遷移"を計算する。
連続単語の場合の木構造化辞書を以下に示す。
丸枠の下はノード番号を表す。
単語間の接続は、DFA文法として別途保持する。
今回、単語のカテゴリ番号が全て異なるため、音素が共有されないが、カテゴリ番号が同一であれば、孤立単語の例のように共有される。
第1パスの計算において、各単語の開始時刻と終端時刻を単語トレリス上に格納しておく。
単語トレリスは単語(atom)を連結したリストで、計算途中で見つかった単語(atom)が先頭に追加されていく。
単語トレリスの例
TRELLIS_ATOM構造体
struct __trellis_atom__ { LOGPROB backscore; LOGPROB lscore; WORD_ID wid; short begintime; short endtime; struct __trellis_atom__ *last_tre; struct __trellis_atom__ *next; }