libsent/src/phmm/gms.c

Gaussian Mixture Selection による状態尤度計算. [詳細]

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

ソースコードを見る。

マクロ定義

#define MAXHMMNAMELEN   40
 Assumed maximum length of HMM name.
#define SD(A)   gsindex[A-1]
 Index macro for heap sort.
#define SCOPY(D, S)   D = S
 Element copy macro for heap sort.
#define SVAL(A)   (t_fs[gsindex[A-1]])
 Element evaluation macro for heap sort.
#define STVAL   (t_fs[s])
 Element current value macro for heap sort.

関数

static void build_gsset ()
static void free_gsset ()
static boolean build_state2gs ()
static void free_state2gs ()
static void sort_gsindex_upward (int neednum, int totalnum)
static void do_gms ()
boolean gms_init (int nbest)
boolean gms_prepare (int framenum)
void gms_free ()
LOGPROB gms_state ()

変数

static int my_nbest
 Number of states to be selected.
static int allocframenum
 Allocated number of frame for storing fallback scores per frame.
static GS_SETgsset
 Set of GS states.
static int gsset_num
 Num of above.
static int * state2gs
 Mapping from triphone state id to gs id.
static booleanis_selected
 TRUE if the frame is already selected.
static LOGPROB ** fallback_score = NULL
 [t][gssetid], LOG_ZERO if selected
static int * gsindex
 Index buffer.
static LOGPROBt_fs
 Current fallback_score.

説明

Gaussian Mixture Selection による状態尤度計算.

作者:
Akinobu LEE
日付:
Thu Feb 17 14:52:18 2005

実装方法についてはソース内のコメントをご覧ください.

Revision
1.4

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


関数

static void build_gsset (  )  [static]

Register all state defs in GS HMM to GS_SET.

gms.c102 行で定義されています。

参照元 gms_init().

static void free_gsset (  )  [static]

Free gsset.

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

参照元 gms_free().

static boolean build_state2gs (  )  [static]

Build the correspondence from GS states to triphone states.

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

gms.c133 行で定義されています。

参照元 gms_init().

static void free_state2gs (  )  [static]

free state2gs.

gms.c186 行で定義されています。

参照元 gms_free().

static void sort_gsindex_upward ( int  neednum,
int  totalnum 
) [static]

Heap sort of gsindex to determine which model gets N best likelihoods.

引数:
neednum [in] needed number N
totalnum [in] total number of data

gms.c205 行で定義されています。

参照元 do_gms().

static void do_gms (  )  [static]

Calculate all GS state scores and select the best ones.

gms.c249 行で定義されています。

参照元 gms_state().

boolean gms_init ( int  nbest  ) 

Initialize the GMS related functions and data.

引数:
nbest [in] N-best state to compute the precise triphone.
戻り値:
TRUE on success, FALSE on failure.

gms.c282 行で定義されています。

参照元 outprob_init().

boolean gms_prepare ( int  framenum  ) 

Setup GMS parameters for next input.

引数:
framenum [in] length of next input in frames
戻り値:
TRUE on success, FALSE on failure.

gms.c332 行で定義されています。

参照元 outprob_prepare().

void gms_free (  ) 

Free GMS related work areas.

gms.c366 行で定義されています。

参照元 outprob_free().

LOGPROB gms_state (  ) 

Get HMM State probability of current state with Gaussiam Mixture Selection.

If the GMS HMM score of the corresponding basephone is below the N-best, the triphone score will not be computed, and the score of the GMS HMM will be returned instead as a fallback score. Else, the precise triphone will be computed and returned.

戻り値:
the state output probability score in log10.

gms.c392 行で定義されています。

参照元 outprob_init().


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