libsent/src/phmm/outprob.c

音響尤度計算の実行および状態レベルキャッシュ [詳細]

#include <sent/stddefs.h>
#include <sent/speech.h>
#include <sent/htk_hmm.h>
#include <sent/htk_param.h>
#include <sent/hmm.h>
#include <sent/gprune.h>
#include "globalvars.h"
outprob.cのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define LOG_UNDEF   (LOG_ZERO - 1)
 Value to be used as the initial cache value.

関数

boolean outprob_cache_init ()
boolean outprob_cache_prepare ()
static void outprob_cache_extend (int reqframe)
void outprob_cache_free ()
LOGPROB outprob_state (int t, HTK_HMM_State *stateinfo, HTK_Param *param)
 Compute output probability of a state.
void outprob_cd_nbest_init (int num)
void outprob_cd_nbest_free ()
static LOGPROB outprob_cd_nbest (int t, CD_State_Set *lset, HTK_Param *param)
static LOGPROB outprob_cd_max (int t, CD_State_Set *lset, HTK_Param *param)
static LOGPROB outprob_cd_avg (int t, CD_State_Set *lset, HTK_Param *param)
LOGPROB outprob_cd (int t, CD_State_Set *lset, HTK_Param *param)
LOGPROB outprob (int t, HMM_STATE *hmmstate, HTK_Param *param)

変数

static int statenum
 Local work area that holds total number of HMM states in the HMM definition data.
static LOGPROB ** outprob_cache = NULL
 State-level cache [t][stateid].
static int allocframenum
 Allocated frames of the cache.
static int allocblock
 Allocation block size per allocateion of the cache.
static BMALLOC_BASEcroot
 Root alloc pointer to state outprob cache.
static LOGPROBlast_cache
 Local work are to hold cache list of current time.
static LOGPROBmaxprobs
 Work area that holds N-best state scores for pseudo state set.
static int maxn
 Allocated length of above.

説明

音響尤度計算の実行および状態レベルキャッシュ

作者:
Akinobu LEE
日付:
Fri Feb 18 18:45:21 2005

HMM の状態の出力確率(対数尤度)を計算します.状態の型(単語末端の pseudo HMM set かどうか)にしたがっていくつか定義されていますが, 全て下位の outprob_state() を呼びます.outprob_state() は 必要な情報を OP_ で始まる大域変数に格納し,calc_outprob_state() を呼び 出します.calc_outprob_state() は関数のポインタであり,実体は tied-mixture モデルの場合 calc_tied_mix(), それ以外の場合は calc_mix() となります. (GMS を使用する場合は gms_state())になります.

状態レベルの音響尤度キャッシュが行なわれます.キャッシュは 状態 x 入力フレームで格納され,必要な長さにしたがって伸長されます.このキャッシュは 第2パスの計算でも用いるため,全時間に渡って記録されています.

なお tied-mixture の場合はコードブックレベルでのキャッシュも同時に 行なわれます.これについては calc_tied_mix.c をご覧下さい.

Revision
1.5

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


関数

boolean outprob_cache_init (  ) 

Initialize the cache data, should be called once on startup.

戻り値:
TRUE on success, FALSE on failure.

outprob.c82 行で定義されています。

参照元 outprob_init().

boolean outprob_cache_prepare (  ) 

Prepare cache for the next input, by clearing the existing cache.

戻り値:
TRUE on success, FALSE on failure.

outprob.c100 行で定義されています。

参照元 outprob_prepare().

static void outprob_cache_extend ( int  reqframe  )  [static]

Expand the cache to time axis if needed.

引数:
reqframe [in] required frame length

outprob.c120 行で定義されています。

参照元 outprob_state().

void outprob_cache_free (  ) 

Free work area for cache.

outprob.c159 行で定義されています。

参照元 outprob_free().

LOGPROB outprob_state ( int  t,
HTK_HMM_State stateinfo,
HTK_Param param 
)

Compute output probability of a state.

Set the needed values to the global variables that begins with "OP_", and call calc_outprob_state(). The calc_outprob_state() is actually a function pointer, and the entity is either calc_tied_mix() for tied-mixture model and calc_mix() for others. (If you use GMS, the entity will be gms_state() instead.)

The state-level cache is also consulted here.

戻り値:
output log probability.

outprob.c180 行で定義されています。

参照元 next_word(), outprob(), outprob_cd_avg(), outprob_cd_max(), outprob_cd_nbest(), outprob_style(), と start_word().

void outprob_cd_nbest_init ( int  num  ) 

Initialize work area for outprob_cd_nbest().

引数:
num [in] number of top states to be calculated.

outprob.c217 行で定義されています。

参照元 outprob_init().

void outprob_cd_nbest_free (  ) 

Free work area for outprob_cd_nbest().

outprob.c228 行で定義されています。

参照元 outprob_free().

static LOGPROB outprob_cd_nbest ( int  t,
CD_State_Set lset,
HTK_Param param 
) [static]

Return average of N-beat outprob for pseudo state set.

引数:
t [in] input frame
lset [in] pseudo state set
param [in] input parameter data
戻り値:
outprob log probability, average of top N states in lset.

outprob.c243 行で定義されています。

参照元 outprob_cd().

static LOGPROB outprob_cd_max ( int  t,
CD_State_Set lset,
HTK_Param param 
) [static]

Return maximum outprob of the pseudo state set.

引数:
t [in] input frame
lset [in] pseudo state set
param [in] input parameter data
戻り値:
maximum output log probability among states in lset.

outprob.c287 行で定義されています。

参照元 outprob_cd().

static LOGPROB outprob_cd_avg ( int  t,
CD_State_Set lset,
HTK_Param param 
) [static]

Return average outprob of the pseudo state set.

引数:
t [in] input frame
lset [in] pseudo state set
param [in] input parameter data
戻り値:
average output log probability of states in lset.

outprob.c309 行で定義されています。

参照元 outprob_cd().

LOGPROB outprob_cd ( int  t,
CD_State_Set lset,
HTK_Param param 
)

Compute the log output probability of a pseudo state set.

引数:
t [in] input frame
lset [in] pseudo state set
param [in] input parameter data
戻り値:
the computed log output probability.

outprob.c335 行で定義されています。

参照元 next_word(), outprob(), outprob_style(), と start_word().

LOGPROB outprob ( int  t,
HMM_STATE hmmstate,
HTK_Param param 
)

Top function to compute the output probability of a HMM state.

引数:
t [in] input frame
hmmstate [in] HMM state
param [in] input parameter data
戻り値:
the computed log output probability.

outprob.c369 行で定義されています。

参照元 scan_word(), と viterbi_segment().


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