libsent/include/sent/gprune.h

Gaussian pruning に関する定義. [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

データ構造

struct  MIXCACHE
 A component of per-codebook probability cache while search. [詳細]

マクロ定義

#define TMBEAMWIDTH   5.0
 Score beam offset for GPRUNE_SEL_BEAM.

列挙型

enum  {
  GPRUNE_SEL_UNDEF, GPRUNE_SEL_NONE, GPRUNE_SEL_SAFE, GPRUNE_SEL_HEURISTIC,
  GPRUNE_SEL_BEAM
}
 

Symbols to specify which Gaussian pruning algorithm to use.

[詳細]

関数

int cache_push (int id, LOGPROB score, int len)
 Store a score to the current list of computed Gaussians.
LOGPROB compute_g_base (HTK_HMM_Dens *binfo)
boolean gprune_none_init ()
void gprune_none_free ()
void gprune_none (HTK_HMM_Dens **g, int num, int *last_id)
 Compute a set of Gaussians with no pruning.
LOGPROB compute_g_safe (HTK_HMM_Dens *binfo, LOGPROB thres)
 Calculate probability with safe pruning.
boolean gprune_safe_init ()
void gprune_safe_free ()
void gprune_safe (HTK_HMM_Dens **g, int gnum, int *last_id)
 Compute a set of Gaussians with safe pruning.
boolean gprune_heu_init ()
void gprune_heu_free ()
void gprune_heu (HTK_HMM_Dens **g, int gnum, int *last_id)
 Compute a set of Gaussians with heuristic pruning.
boolean gprune_beam_init ()
void gprune_beam_free ()
void gprune_beam (HTK_HMM_Dens **g, int gnum, int *last_id)
 Compute a set of Gaussians with beam pruning.

説明

Gaussian pruning に関する定義.

作者:
Akinobu LEE
日付:
Thu Feb 10 18:55:11 2005

このファイルには, 混合ガウス出力分布を持つHMMにおける音響尤度計算の 高速計算手法の一つである Gaussian pruning に関する定義が含まれています.

Revision
1.4

gprune.h で定義されています。


マクロ定義

#define TMBEAMWIDTH   5.0

Score beam offset for GPRUNE_SEL_BEAM.

Larger value may ease pruning error, but processing may become slower. Smaller value can speed up the acoustic computation, but may cause error.

gprune.h57 行で定義されています。

参照元 set_dimthres().


列挙型

anonymous enum

Symbols to specify which Gaussian pruning algorithm to use.

  • GPRUNE_SEL_UNDEF: unspecified by user
  • GPRUNE_SEL_NONE: no pruning
  • GPRUNE_SEL_SAFE: safe pruning
  • GPRUNE_SEL_HEURISTIC: heuristic pruning
  • GPRUNE_SEL_BEAM: beam pruning

gprune.h42 行で定義されています。


関数

int cache_push ( int  id,
LOGPROB  score,
int  len 
)

Store a score to the current list of computed Gaussians.

Store the calculated score of a Gaussian to OP_calced_score, with its corresponding mixture id to OP_calced_id.

The OP_calced_score and OP_calced_id always holds the (OP_gprune_num)-best scores and ids. If the number of stored Gaussian from start has reached OP_gprune_num and the given score is below the bottom, it will be dropped. Else, the new score will be inserted and the bottom will be dropped from the list.

The OP_calced_score will always kept sorted by the scores.

引数:
id [in] mixture id of the Gaussian to store
score [in] score of the Gaussian to store
len [in] current number of stored scores in OP_calced_score
戻り値:
the resulting number of stored scores in OP_calced_score.

gprune_common.c87 行で定義されています。

参照元 gprune_beam(), gprune_heu(), と gprune_safe().

LOGPROB compute_g_base ( HTK_HMM_Dens binfo  ) 

Calculate probability of a Gaussian density against input vector on OP_vec.

引数:
binfo [in] a Gaussian density
戻り値:
the output log probability.

gprune_none.c58 行で定義されています。

参照元 compute_gs_scores(), gprune_beam(), gprune_heu(), gprune_none(), と gprune_safe().

boolean gprune_none_init (  ) 

Initialize and setup work area for Gaussian computation

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

gprune_none.c84 行で定義されています。

参照元 outprob_init().

void gprune_none_free (  ) 

Free gprune_none related work area.

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

参照元 outprob_init().

void gprune_none ( HTK_HMM_Dens **  g,
int  num,
int *  last_id 
)

Compute a set of Gaussians with no pruning.

The calculated scores will be stored to OP_calced_score, with its corresponding mixture id to OP_calced_id. The number of calculated mixtures is also stored in OP_calced_num.

This can be called from calc_tied_mix() or calc_mix().

引数:
g [in] set of Gaussian densities to compute the output probability.
num [in] length of above
last_id [in] ID list of N-best mixture in previous input frame, or NULL if not exist

gprune_none.c121 行で定義されています。

参照元 outprob_init().

LOGPROB compute_g_safe ( HTK_HMM_Dens binfo,
LOGPROB  thres 
)

Calculate probability with safe pruning.

Calculate probability of a Gaussian toward OP_vec, performing pruning using the scholar threshold.

引数:
binfo [in] Gaussian density
thres [in] threshold
戻り値:
the output log probability.

gprune_safe.c77 行で定義されています。

参照元 gprune_beam(), gprune_heu(), と gprune_safe().

boolean gprune_safe_init (  ) 

Initialize and setup work area for Gaussian pruning by safe algorithm.

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

gprune_safe.c106 行で定義されています。

参照元 outprob_init().

void gprune_safe_free (  ) 

Free gprune_safe related work area.

gprune_safe.c123 行で定義されています。

参照元 outprob_init().

void gprune_safe ( HTK_HMM_Dens **  g,
int  gnum,
int *  last_id 
)

Compute a set of Gaussians with safe pruning.

If the N-best mixtures in the previous frame is specified in last_id, They are first computed to set the initial threshold. After that, the rest of the Gaussians will be computed with the thresholds to drop unpromising Gaussians from computation at early stage of likelihood computation. If the computation of a Gaussian reached to the end, the threshold will be updated to always hold the likelihood of current N-best score.

The calculated scores will be stored to OP_calced_score, with its corresponding mixture id to OP_calced_id. These are done by calling cache_push(). The number of calculated mixtures is also stored in OP_calced_num.

This can be called from calc_tied_mix() or calc_mix().

引数:
g [in] set of Gaussian densities to compute the output probability
gnum [in] length of above
last_id [in] ID list of N-best mixture in previous input frame, or NULL if not exist

gprune_safe.c154 行で定義されています。

参照元 outprob_init().

boolean gprune_heu_init (  ) 

Initialize and setup work area for Gaussian pruning by heuristic algorithm.

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

gprune_heu.c235 行で定義されています。

参照元 outprob_init().

void gprune_heu_free (  ) 

Free gprune_heu related work area.

gprune_heu.c255 行で定義されています。

参照元 outprob_init().

void gprune_heu ( HTK_HMM_Dens **  g,
int  gnum,
int *  last_id 
)

Compute a set of Gaussians with heuristic pruning.

If the N-best mixtures in the previous frame is specified in last_id, They are first computed to get the maximum value for each dimension. After that, the rest of the Gaussians will be computed using the maximum values as heuristics of uncomputed dimensions to drop unpromising Gaussians from computation at early stage of likelihood computation. If the last_id is not specified (typically at the first frame of the input), a safe pruning as same as one in gprune_safe.c will be applied.

The calculated scores will be stored to OP_calced_score, with its corresponding mixture id to OP_calced_id. These are done by calling cache_push(). The number of calculated mixtures is also stored in OP_calced_num.

This can be called from calc_tied_mix() or calc_mix().

引数:
g [in] set of Gaussian densities to compute the output probability
gnum [in] length of above
last_id [in] ID list of N-best mixture in previous input frame, or NULL if not exist

gprune_heu.c288 行で定義されています。

参照元 outprob_init().

boolean gprune_beam_init (  ) 

Initialize and setup work area for Gaussian pruning by beam algorithm.

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

gprune_beam.c225 行で定義されています。

参照元 outprob_init().

void gprune_beam_free (  ) 

Free gprune_beam related work area.

gprune_beam.c245 行で定義されています。

参照元 outprob_init().

void gprune_beam ( HTK_HMM_Dens **  g,
int  gnum,
int *  last_id 
)

Compute a set of Gaussians with beam pruning.

If the N-best mixtures in the previous frame is specified in last_id, They are first computed to set the thresholds for each dimension. After that, the rest of the Gaussians will be computed with those dimension thresholds to drop unpromising Gaussians from computation at early stage of likelihood computation. If the last_id is not specified (typically at the first frame of the input), a safe pruning as same as one in gprune_safe.c will be applied.

The calculated scores will be stored to OP_calced_score, with its corresponding mixture id to OP_calced_id. These are done by calling cache_push(). The number of calculated mixtures is also stored in OP_calced_num.

This can be called from calc_tied_mix() or calc_mix().

引数:
g [in] set of Gaussian densities to compute the output probability
gnum [in] length of above
last_id [in] ID list of N-best mixture in previous input frame, or NULL if not exist

gprune_beam.c277 行で定義されています。

参照元 outprob_init().


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