julius/gmm.c

Gaussian Mixture Model による入力発話のスコア計算. [詳細]

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

ソースコードを見る。

関数

static int gmm_find_insert_point (LOGPROB score, int len)
static int gmm_cache_push (int id, LOGPROB score, int len)
static LOGPROB gmm_compute_g_base (HTK_HMM_Dens *binfo)
static LOGPROB gmm_compute_g_safe (HTK_HMM_Dens *binfo, LOGPROB thres)
static void gmm_gprune_safe_init (HTK_HMM_INFO *hmminfo, int prune_num)
static void gmm_gprune_safe (HTK_HMM_Dens **g, int gnum)
 ガウス分布集合内の各ガウス分布の現フレームに対する出力確率を計算する.
static LOGPROB gmm_calc_mix (HTK_HMM_State *s)
static LOGPROB outprob_state_nocache (int t, HTK_HMM_State *stateinfo, HTK_Param *param)
void gmm_init (HTK_HMM_INFO *gmm, int gmm_prune_num)
void gmm_prepare (HTK_HMM_INFO *gmm)
void gmm_proceed (HTK_HMM_INFO *gmm, HTK_Param *param, int t)
void gmm_end (HTK_HMM_INFO *gmm)
 GMMの計算を終了し,結果を出力する..
boolean gmm_valid_input ()
void ttyout_gmm ()
void msock_gmm ()

変数

static LOGPROBgmm_score
 Current accumurated scores for each GMM.
static int framecount
 Current frame count.
static LOGPROBOP_calced_score
 Work area for Gaussian pruning on GMM: scores.
static int * OP_calced_id
 Work area for Gaussian pruning on GMM: id.
static int OP_calced_num
 Work area for Gaussian pruning on GMM: number of above.
static int OP_calced_maxnum
 Work area for Gaussian pruning on GMM: size of allocated area.
static int OP_gprune_num
 Number of Gaussians to be computed in Gaussian pruning.
static VECTOP_vec
 Local workarea to hold the input vector of current frame.
static short OP_veclen
 Local workarea to hold the length of above.
static HTK_HMM_Datamax_d
 Local workarea to hold the pointer to GMM which resulted in the maximum score.
static LOGPROB gmm_max_cm
 Local workarea to hold the posterior probability based confidence score of the maximum GMM above.
static HTK_HMM_INFOgmm_local
 Local workarea to hold the GMM definition used in the computation, for result output.

説明

Gaussian Mixture Model による入力発話のスコア計算.

作者:
Akinobu LEE
日付:
Tue Mar 15 05:14:10 2005

Gaussian Mixture Model (GMM) が起動時に指定された場合,Julius/Julian は 入力発話に対してフレームごとにスコアを計算し,その累積スコアを算出する. これはGMMに基づく入力音声の発話検証および棄却に用いられる.実際の計算は 第1パスの認識処理と並行してリアルタイムに行なわれ,第1パス終了と同時に 結果が出力される.

GMMのスコア計算には Gaussian pruning の safe algorithm が用いられ, 各フレームにおいて上位 N 個だけが正しく得られるように計算される. ただし通常の認識用音響モデルの場合と異なり,直前フレームの順位情報は 用いていない.

Revision
1.5

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


関数

static int gmm_find_insert_point ( LOGPROB  score,
int  len 
) [static]

Gaussianのスコアを計算済みGaussianリストのどの位置に挿入すべきかを返す.

引数:
score [in] 挿入したいスコア
len [in] 現在のリストの長さ
戻り値:
リスト内の挿入位置

gmm.c83 行で定義されています。

参照元 gmm_cache_push().

static int gmm_cache_push ( int  id,
LOGPROB  score,
int  len 
) [static]

あるGaussianの計算結果を計算済みGaussianリストに格納する.

引数:
id [in] Gaussian の GMM 内での番号
score [in] その Gaussian の計算された音響尤度
len [in] 現在のリストの長さ(現在格納されている Gaussian の数)
戻り値:
格納後のリストの長さ.

gmm.c122 行で定義されています。

参照元 gmm_gprune_safe().

static LOGPROB gmm_compute_g_base ( HTK_HMM_Dens binfo  )  [static]

現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する. Gaussian pruning は行なわない.

引数:
binfo [in] Gaussian
戻り値:
出力確率の対数値

gmm.c176 行で定義されています。

参照元 gmm_gprune_safe().

static LOGPROB gmm_compute_g_safe ( HTK_HMM_Dens binfo,
LOGPROB  thres 
) [static]

現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する. 計算時には固定しきい値による safe pruning を行なう.

引数:
binfo [in] Gaussian
thres [in] safe pruning のための枝刈りしきい値
戻り値:
出力確率の対数値

gmm.c216 行で定義されています。

参照元 gmm_gprune_safe().

static void gmm_gprune_safe_init ( HTK_HMM_INFO hmminfo,
int  prune_num 
) [static]

GMM計算における Gaussian pruning のためのワークエリアを確保する

引数:
hmminfo [in] HMM 構造体
prune_num [in] Gaussian pruning において計算する上位ガウス分布数

gmm.c252 行で定義されています。

参照元 gmm_init().

static void gmm_gprune_safe ( HTK_HMM_Dens **  g,
int  gnum 
) [static]

ガウス分布集合内の各ガウス分布の現フレームに対する出力確率を計算する.

Gaussian pruning により,実際には上位 N 個のみを保証する枝刈りが行なわれ, スコアの低いガウス分布は計算されない.

計算結果は計算済みGaussianリスト (OP_calced_score, OP_calced_id) に 格納される.

引数:
g [in] ガウス分布集合
gnum [in] g の長さ

gmm.c289 行で定義されています。

参照元 gmm_calc_mix().

static LOGPROB gmm_calc_mix ( HTK_HMM_State s  )  [static]

あるGMM状態の現フレームに対する出力確率を計算する.

引数:
s [in] GMM 状態
戻り値:
出力確率の対数スコア

gmm.c326 行で定義されています。

参照元 outprob_state_nocache().

static LOGPROB outprob_state_nocache ( int  t,
HTK_HMM_State stateinfo,
HTK_Param param 
) [static]

入力の指定フレームにおけるGMM状態のスコアを求めるメイン関数.

引数:
t [in] 計算するフレーム
stateinfo [in] GMM状態
param [in] 入力ベクトル系列
戻り値:
出力確率の対数スコア

gmm.c368 行で定義されています。

参照元 gmm_proceed().

void gmm_init ( HTK_HMM_INFO gmm,
int  gmm_prune_num 
)

GMMの計算のための初期化.起動時に一度だけ呼ばれる.

引数:
gmm [in] GMM定義構造体
gmm_prune_num [in] Gaussian pruning において計算するガウス分布数

gmm.c397 行で定義されています。

参照元 initialize_GMM().

void gmm_prepare ( HTK_HMM_INFO gmm  ) 

GMM計算のための準備を行なう.1入力開始ごとに呼ばれる.

引数:
gmm [in] GMM定義構造体

gmm.c444 行で定義されています。

参照元 get_back_trellis_init().

void gmm_proceed ( HTK_HMM_INFO gmm,
HTK_Param param,
int  t 
)

与えられた入力ベクトル列上のあるフレームについて,全GMMのスコアを計算し, 計算結果を gmm_score に積算する.

引数:
gmm [in] GMM定義構造体
param [in] 入力ベクトル列
t [in] 計算する時刻フレーム

gmm.c477 行で定義されています。

参照元 get_back_trellis_proceed().

void gmm_end ( HTK_HMM_INFO gmm  ) 

GMMの計算を終了し,結果を出力する..

gmm_proceed() によって累積された各フレームごとのスコアから, 最大スコアのGMMを決定する.その事後確率に基づく信頼度を計算し 最終的な結果を result_gmm() によって出力する.

引数:
gmm [in] GMM定義構造体

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

参照元 finalize_1st_pass().

boolean gmm_valid_input (  ) 

GMMの識別結果,最後の入力が音声入力として有効であったか 無効であったかを返す.

戻り値:
一位のGMMの名前が gmm_reject_cmn_string 内に無ければ valid として TRUE, あれば invalid として FALSE を返す.

gmm.c570 行で定義されています。

参照元 main_recognition_loop(), と RealTimeCMNUpdate().

void ttyout_gmm (  ) 

GMMの計算結果を標準出力に出力する.("-result tty" 用)

gmm.c592 行で定義されています。

参照元 setup_result_tty().

void msock_gmm (  ) 

GMMの計算結果をモジュールのクライアントに送信する ("-result msock" 用)

gmm.c630 行で定義されています。

参照元 setup_result_msock().


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