#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 LOGPROB * | gmm_score |
Current accumurated scores for each GMM | |
static int | framecount |
Current frame count | |
static LOGPROB * | OP_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 VECT * | OP_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_Data * | max_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_INFO * | gmm_local |
Local workarea to hold the GMM definition used in the computation, for result output |
GMMのスコア計算には Gaussian pruning の safe algorithm が用いられ, 各フレームにおいて上位 N 個だけが正しく得られるように計算される. ただし通常の認識用音響モデルの場合と異なり,直前フレームの順位情報は 用いていない.
gmm.c で定義されています。
static int gmm_find_insert_point | ( | LOGPROB | score, | |
int | len | |||
) | [static] |
Gaussianのスコアを計算済みGaussianリストのどの位置に挿入すべきかを返す.
score | [in] 挿入したいスコア | |
len | [in] 現在のリストの長さ |
参照元 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_gprune_safe().
static LOGPROB gmm_compute_g_base | ( | HTK_HMM_Dens * | binfo | ) | [static] |
現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する. Gaussian pruning は行なわない.
binfo | [in] Gaussian |
参照元 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_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_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_calc_mix().
static LOGPROB gmm_calc_mix | ( | HTK_HMM_State * | s | ) | [static] |
あるGMM状態の現フレームに対する出力確率を計算する.
s | [in] GMM 状態 |
static LOGPROB outprob_state_nocache | ( | int | t, | |
HTK_HMM_State * | stateinfo, | |||
HTK_Param * | param | |||
) | [static] |
入力の指定フレームにおけるGMM状態のスコアを求めるメイン関数.
t | [in] 計算するフレーム | |
stateinfo | [in] GMM状態 | |
param | [in] 入力ベクトル系列 |
参照元 gmm_proceed().
void gmm_init | ( | HTK_HMM_INFO * | gmm, | |
int | gmm_prune_num | |||
) |
GMMの計算のための初期化.起動時に一度だけ呼ばれる.
gmm | [in] GMM定義構造体 | |
gmm_prune_num | [in] Gaussian pruning において計算するガウス分布数 |
参照元 initialize_GMM().
void gmm_prepare | ( | HTK_HMM_INFO * | gmm | ) |
GMM計算のための準備を行なう.1入力開始ごとに呼ばれる.
gmm | [in] GMM定義構造体 |
void gmm_proceed | ( | HTK_HMM_INFO * | gmm, | |
HTK_Param * | param, | |||
int | t | |||
) |
void gmm_end | ( | HTK_HMM_INFO * | gmm | ) |
GMMの計算を終了し,結果を出力する.
gmm_proceed() によって累積された各フレームごとのスコアから, 最大スコアのGMMを決定する.その事後確率に基づく信頼度を計算し 最終的な結果を result_gmm() によって出力する.
gmm | [in] GMM定義構造体 |
参照元 finalize_1st_pass().
boolean gmm_valid_input | ( | ) |
GMMの識別結果,最後の入力が音声入力として有効であったか 無効であったかを返す.
void ttyout_gmm | ( | ) |
void msock_gmm | ( | ) |