julius/word_align.c

単語・音素・状態アラインメントを取る. [詳細]

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

ソースコードを見る。

マクロ定義

#define PER_WORD   1
#define PER_PHONEME   2
#define PER_STATE   3

関数

static HMM_Logical ** make_phseq (WORD_ID *wseq, short num, int *num_ret, int **end_ret, int per_what)
static void do_align (WORD_ID *words, short wnum, HTK_Param *param, int per_what)
void word_align (WORD_ID *words, short wnum, HTK_Param *param)
void word_rev_align (WORD_ID *revwords, short wnum, HTK_Param *param)
void phoneme_align (WORD_ID *words, short num, HTK_Param *param)
void phoneme_rev_align (WORD_ID *revwords, short num, HTK_Param *param)
void state_align (WORD_ID *words, short num, HTK_Param *param)
void state_rev_align (WORD_ID *revwords, short num, HTK_Param *param)

説明

単語・音素・状態アラインメントを取る.

作者:
Akinobu Lee
日付:
Sat Sep 24 16:09:46 2005

ここでは,認識結果に対する入力音声のアラインメントを出力するための 関数が定義されています.

Julius/Julian では,認識結果においてその単語や音素,あるいはHMMの状態が それぞれ入力音声のどの区間にマッチしたのかを知ることができます. より正確なアラインメントを求めるために,Julius/Julian では認識中の 近似を含む情報は用いずに,認識が終わった後に得られた認識結果の単語列に 対して,あらためて forced alignment を実行しています.

Revision
1.3

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


関数

static HMM_Logical** make_phseq ( WORD_ID wseq,
short  num,
int *  num_ret,
int **  end_ret,
int  per_what 
) [static]

与えられた単語列からHMMを連結して文全体のHMMを構築する.

引数:
wseq [in] 単語列
num [in] wseq の数
num_ret [out] 構築されたHMMに含まれる音素HMMの数
end_ret [out] アラインメントの区切りとなる状態番号の列
per_what [in] 単語・音素・状態のどの単位でアラインメントを取るかを指定
戻り値:
あらたに割り付けられた文全体をあらわすHMMモデル列へのポインタを返す.

word_align.c77 行で定義されています。

参照元 do_align().

static void do_align ( WORD_ID words,
short  wnum,
HTK_Param param,
int  per_what 
) [static]

文全体のHMMを構築し,Viterbiアラインメントを実行し,結果を出力する.

引数:
words [in] 文仮説をあらわす単語列
wnum [in] words の長さ
param [in] 入力特徴パラメータ列
per_what [in] 単語・音素・状態のどの単位でアラインメントを取るかを指定

word_align.c187 行で定義されています。

参照元 phoneme_align(), phoneme_rev_align(), state_align(), state_rev_align(), word_align(), と word_rev_align().

void word_align ( WORD_ID words,
short  wnum,
HTK_Param param 
)

単語ごとの forced alignment を行う.

引数:
words [in] 単語列
wnum [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c381 行で定義されています。

void word_rev_align ( WORD_ID revwords,
short  wnum,
HTK_Param param 
)

単語ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
wnum [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c403 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().

void phoneme_align ( WORD_ID words,
short  num,
HTK_Param param 
)

音素ごとの forced alignment を行う.

引数:
words [in] 単語列
num [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c430 行で定義されています。

void phoneme_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param 
)

音素ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
num [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c452 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().

void state_align ( WORD_ID words,
short  num,
HTK_Param param 
)

HMM状態ごとの forced alignment を行う.

引数:
words [in] 単語列
num [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c479 行で定義されています。

void state_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param 
)

HMM状態ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
num [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c501 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().


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