#include <julius/julius.h>
関数 | |
static int | gmm_find_insert_point (GMMCalc *gc, LOGPROB score, int len) |
Gaussianのスコアを計算済みGaussianリストのどの位置に挿入すべきかを返す. | |
static int | gmm_cache_push (GMMCalc *gc, int id, LOGPROB score, int len) |
あるGaussianの計算結果を計算済みGaussianリストに格納する. | |
static LOGPROB | gmm_compute_g_base (GMMCalc *gc, HTK_HMM_Dens *binfo) |
現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する. | |
static LOGPROB | gmm_compute_g_safe (GMMCalc *gc, HTK_HMM_Dens *binfo, LOGPROB thres) |
現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する. | |
static void | gmm_gprune_safe_init (GMMCalc *gc, HTK_HMM_INFO *hmminfo, int prune_num) |
GMM計算における Gaussian pruning のためのワークエリアを確保する | |
static void | gmm_gprune_safe (GMMCalc *gc, HTK_HMM_Dens **g, int gnum) |
ガウス分布集合内の各ガウス分布の現フレームに対する出力確率を計算する. | |
static LOGPROB | gmm_calc_mix (GMMCalc *gc, HTK_HMM_State *s) |
あるGMM状態の現フレームに対する出力確率を計算する. | |
static LOGPROB | outprob_state_nocache (GMMCalc *gc, int t, HTK_HMM_State *stateinfo, HTK_Param *param) |
入力の指定フレームにおけるGMM状態のスコアを求めるメイン関数. | |
boolean | gmm_init (Recog *recog) |
GMMの計算のための初期化. | |
void | gmm_prepare (Recog *recog) |
GMM計算のための準備を行なう. | |
void | gmm_proceed (Recog *recog) |
与えられた入力ベクトル列上のあるフレームについて,全GMMのスコアを計算し, 計算結果を gmm_score に積算する. | |
void | gmm_end (Recog *recog) |
GMMの計算を終了し,結果を出力する. | |
boolean | gmm_valid_input (Recog *recog) |
GMMの識別結果,最後の入力が音声入力として有効であったか 無効であったかを返す. | |
void | gmm_free (Recog *recog) |
GMM計算に用いたワークエリアを開放する. |
Gaussian Mixture Model (GMM) が起動時に指定された場合,Julius/Julian は 入力発話に対してフレームごとにスコアを計算し,その累積スコアを算出する. これはGMMに基づく入力音声の発話検証および棄却に用いられる. 実際の計算は 第1パスの認識処理と並行してリアルタイムに行なわれ,第1パス終了と同時に 結果が出力される.
GMMのスコア計算には Gaussian pruning の safe algorithm が用いられ, 各フレームにおいて上位 N 個だけが正しく得られるように計算される. ただし通常の認識用音響モデルの場合と異なり,直前フレームの順位情報は 用いていない.
GMM_VAD 定義時は,上記の入力棄却に加えて,short-pause segmentation と 同じ枠組にを用いた VAD が行われる.
gmm.c で定義されています。
Gaussianのスコアを計算済みGaussianリストのどの位置に挿入すべきかを返す.
gc | [i/o] GMM計算用ワークエリア | |
score | [in] 挿入したいスコア | |
len | [in] 現在のリストの長さ |
参照元 gmm_cache_push().
あるGaussianの計算結果を計算済みGaussianリストに格納する.
gc | [i/o] GMM計算用ワークエリア | |
id | [in] Gaussian の GMM 内での番号 | |
score | [in] その Gaussian の計算された音響尤度 | |
len | [in] 現在のリストの長さ(現在格納されている Gaussian の数) |
参照元 gmm_gprune_safe().
static LOGPROB gmm_compute_g_base | ( | GMMCalc * | gc, | |
HTK_HMM_Dens * | binfo | |||
) | [static] |
現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する.
Gaussian pruning は行なわない.
gc | [i/o] GMM計算用ワークエリア | |
binfo | [in] Gaussian |
参照元 gmm_gprune_safe().
static LOGPROB gmm_compute_g_safe | ( | GMMCalc * | gc, | |
HTK_HMM_Dens * | binfo, | |||
LOGPROB | thres | |||
) | [static] |
現在のフレームの入力ベクトルに対する Gaussian の出力確率を計算する.
計算時には固定しきい値による safe pruning を行なう.
gc | [i/o] GMM計算用ワークエリア | |
binfo | [in] Gaussian | |
thres | [in] safe pruning のための枝刈りしきい値 |
参照元 gmm_gprune_safe().
static void gmm_gprune_safe_init | ( | GMMCalc * | gc, | |
HTK_HMM_INFO * | hmminfo, | |||
int | prune_num | |||
) | [static] |
GMM計算における Gaussian pruning のためのワークエリアを確保する
gc | [i/o] GMM計算用ワークエリア | |
hmminfo | [in] HMM 構造体 | |
prune_num | [in] Gaussian pruning において計算する上位ガウス分布数 |
参照元 gmm_init().
static void gmm_gprune_safe | ( | GMMCalc * | gc, | |
HTK_HMM_Dens ** | g, | |||
int | gnum | |||
) | [static] |
ガウス分布集合内の各ガウス分布の現フレームに対する出力確率を計算する.
Gaussian pruning により,実際には上位 N 個のみを保証する枝刈りが行なわれ, スコアの低いガウス分布は計算されない.
計算結果は計算済みGaussianリスト (OP_calced_score, OP_calced_id) に 格納される.
gc | [i/o] GMM計算用ワークエリア | |
g | [in] ガウス分布集合 | |
gnum | [in] g の長さ |
参照元 gmm_calc_mix().
static LOGPROB gmm_calc_mix | ( | GMMCalc * | gc, | |
HTK_HMM_State * | s | |||
) | [static] |
あるGMM状態の現フレームに対する出力確率を計算する.
gc | [i/o] GMM計算用ワークエリア | |
s | [in] GMM 状態 |
static LOGPROB outprob_state_nocache | ( | GMMCalc * | gc, | |
int | t, | |||
HTK_HMM_State * | stateinfo, | |||
HTK_Param * | param | |||
) | [static] |
入力の指定フレームにおけるGMM状態のスコアを求めるメイン関数.
gc | [i/o] GMM計算用ワークエリア | |
t | [in] 計算するフレーム | |
stateinfo | [in] GMM状態 | |
param | [in] 入力ベクトル系列 |
参照元 gmm_proceed().
boolean gmm_init | ( | Recog * | recog | ) |
void gmm_prepare | ( | Recog * | recog | ) |
void gmm_proceed | ( | Recog * | recog | ) |
与えられた入力ベクトル列上のあるフレームについて,全GMMのスコアを計算し, 計算結果を gmm_score に積算する.
GMM_VAD 定義時は,後で VAD 判定するために,過去 jconf->detect.gmm_margin フレーム分の VAD スコア (音声GMMの最大スコア - 雑音GMMの最大スコア)が 保存される.
recog | [i/o] エンジンインスタンス |
参照元 decode_proceed().
void gmm_end | ( | Recog * | recog | ) |
GMMの計算を終了し,結果を出力する.
gmm_proceed() によって累積された各フレームごとのスコアから, 最大スコアのGMMを決定する. その事後確率に基づく信頼度を計算し 最終的な結果を result_gmm() によって出力する.
recog | [i/o] エンジンインスタンス |
参照元 decode_end(), と decode_end_segmented().
boolean gmm_valid_input | ( | Recog * | recog | ) |
void gmm_free | ( | Recog * | recog | ) |