#include <julius/julius.h>
関数 | |
int | decode_proceed (Recog *recog) |
全ての認識処理インスタンス処理を1フレーム分進める. | |
void | decode_end_segmented (Recog *recog) |
第1パスの終了処理(セグメント時) | |
void | decode_end (Recog *recog) |
第1パスの終了処理 | |
boolean | get_back_trellis (Recog *recog) |
フレーム同期ビーム探索メイン関数(バッチ処理用) |
静的木構造辞書を用いて,入力特徴量ベクトル列に対して,Juliusの第1パス であるフレーム同期ビーム探索を行います.
入力データ全体があらかじめ得られている場合は,一括で計算を 行う関数 get_back_trellis() がメインから呼ばれます. オンライン認識 の場合は realtime_1stpass.c から,初期化,フレームごとの計算, 終了処理のそれぞれが入力の進行にあわせて個別に呼ばれます.
実際の個々の認識処理インスタンスごとの処理は beam.c に記述されています.
pass1.c で定義されています。
int decode_proceed | ( | Recog * | recog | ) |
全ての認識処理インスタンス処理を1フレーム分進める.
全ての認識処理インスタンスについて,割り付けられているMFCC計算インスタンス の mfcc->f をカレントフレームとして処理を1フレーム進める.
なお,mfcc->invalid が TRUE となっている処理インスタンスの処理はスキップ される.
GMMの計算もここで呼び出される. GMM_VAD 定義時は,GMM による 発話区間開始・終了の検出がここで行われる. また,GMMの計算結果, あるいは認識処理内のショートポーズセグメンテーション判定やデバイス・外部 からの要求によりセグメンテーションが要求されたかどうかの判定も行う.
フレーム単位で呼び出されるコールバックが登録されている場合は,それらの 呼出しも行う.
recog | [in] engine instance |
参照元 get_back_trellis(), RealTimeParam(), RealTimePipeLine(), と RealTimeResume().
void decode_end_segmented | ( | Recog * | recog | ) |
第1パスの終了処理(セグメント時)
入力が何らかの事由によって途中でセグメントされた時に,第1パスの認識処理を 終了して次回再開するための処理を行う.
まず,各認識処理インスタンスに対して,最尤単語系列を見付け,第1パスの 認識結果として格納する. また,認識失敗・入力棄却の時はエラーステータスをそ れぞれセットする.
そして,次回の認識で,次のセグメントの認識を,検出された末尾雑音 区間から再開するために,その末尾雑音区間を切り出しておく処理を呼ぶ.
recog | [in] engine instance |
参照元 get_back_trellis(), と RealTimeParam().
void decode_end | ( | Recog * | recog | ) |
第1パスの終了処理
入力が最後まで処理されて終了したときに,第1パスの認識処理を 終了させる.
各認識処理インスタンスに対して,その時点での第1パスの最尤単語 系列を格納する. また,認識失敗・入力棄却の時はエラーステータスをそ れぞれセットする.
recog | [in] engine instance |
参照元 get_back_trellis(), RealTimeParam(), と RealTimeTerminate().
boolean get_back_trellis | ( | Recog * | recog | ) |
フレーム同期ビーム探索メイン関数(バッチ処理用)
与えられた入力ベクトル列に対して第1パス(フレーム同期ビーム探索)を 行い,その結果を出力する. また全フレームに渡る単語終端を,第2パス のために単語トレリス構造体に格納する.
この関数は入力ベクトル列があらかじめ得られている場合に用いられる. 第1パスが入力と並列して実行されるオンライン認識の場合, この関数は用いられず,代わりにこのファイルで定義されている各サブ関数が 直接 realtime-1stpass.c 内から呼ばれる.
recog | [in] エンジンインスタンス |