Julius 4.2
関数
libjulius/src/word_align.c

単語・音素・状態単位のアラインメント [詳細]

#include <julius/julius.h>

ソースコードを見る。

関数

static HMM_Logical ** make_phseq (WORD_ID *wseq, short num, boolean **has_sp_ret, int *num_ret, int **end_ret, int per_what, RecogProcess *r)
 与えられた単語列からHMMを連結して文全体のHMMを構築する.
static void do_align (WORD_ID *words, short wnum, HTK_Param *param, int per_what, SentenceAlign *align, RecogProcess *r)
 文全体のHMMを構築し,Viterbiアラインメントを実行し,結果を出力する.
void word_align (WORD_ID *words, short wnum, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 単語ごとの forced alignment を行う.
void word_rev_align (WORD_ID *revwords, short wnum, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 単語ごとの forced alignment を行う(単語が逆順で与えられる場合)
void phoneme_align (WORD_ID *words, short num, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 音素ごとの forced alignment を行う.
void phoneme_rev_align (WORD_ID *revwords, short num, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 音素ごとの forced alignment を行う(単語が逆順で与えられる場合)
void state_align (WORD_ID *words, short num, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 HMM状態ごとの forced alignment を行う.
void state_rev_align (WORD_ID *revwords, short num, HTK_Param *param, SentenceAlign *align, RecogProcess *r)
 HMM状態ごとの forced alignment を行う(単語が逆順で与えられる場合)
void do_alignment_all (RecogProcess *r, HTK_Param *param)
 認識結果に対して必要なアラインメントを全て実行する.

説明

単語・音素・状態単位のアラインメント

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

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

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

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


関数

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

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

引数:
wseq[in] 単語列
num[in] wseq の数
has_sp_ret[out] ショートポーズを後続に挿入しうるユニットの情報
num_ret[out] 構築されたHMMに含まれる音素HMMの数
end_ret[out] アラインメントの区切りとなる状態番号の列
per_what[in] 単語・音素・状態のどの単位でアラインメントを取るかを指定
r[in] 認識処理インスタンス
戻り値:
あらたに割り付けられた文全体をあらわすHMMモデル列へのポインタを返す.

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

参照元 do_align().

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

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

引数:
words[in] 文仮説をあらわす単語列
wnum[in] words の長さ
param[in] 入力特徴パラメータ列
per_what[in] 単語・音素・状態のどの単位でアラインメントを取るかを指定
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

参照元 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,
SentenceAlign align,
RecogProcess r 
)

単語ごとの forced alignment を行う.

引数:
words[in] 単語列
wnum[in] words の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

参照元 do_alignment_all().

関数の呼び出しグラフ:

呼出しグラフ:

void word_rev_align ( WORD_ID revwords,
short  wnum,
HTK_Param param,
SentenceAlign align,
RecogProcess r 
)

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

引数:
revwords[in] 単語列(逆順)
wnum[in] revwords の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

関数の呼び出しグラフ:

void phoneme_align ( WORD_ID words,
short  num,
HTK_Param param,
SentenceAlign align,
RecogProcess r 
)

音素ごとの forced alignment を行う.

引数:
words[in] 単語列
num[in] words の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

参照元 do_alignment_all().

関数の呼び出しグラフ:

呼出しグラフ:

void phoneme_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param,
SentenceAlign align,
RecogProcess r 
)

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

引数:
revwords[in] 単語列(逆順)
num[in] revwords の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

関数の呼び出しグラフ:

void state_align ( WORD_ID words,
short  num,
HTK_Param param,
SentenceAlign align,
RecogProcess r 
)

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

引数:
words[in] 単語列
num[in] words の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

参照元 do_alignment_all().

関数の呼び出しグラフ:

呼出しグラフ:

void state_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param,
SentenceAlign align,
RecogProcess r 
)

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

引数:
revwords[in] 単語列(逆順)
num[in] revwords の単語数
param[in] 入力特徴ベクトル列
align[out] アラインメント結果を格納するSentence構造体
r[i/o] 認識処理インスタンス

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

関数の呼び出しグラフ:

void do_alignment_all ( RecogProcess r,
HTK_Param param 
)

認識結果に対して必要なアラインメントを全て実行する.

引数:
r[i/o] 認識処理インスタンス
param[in] 入力特徴ベクトル列

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

参照元 j_recognize_stream_core().

関数の呼び出しグラフ:

呼出しグラフ: