libsent/src/phmm/gms.c File Reference

Calculate state probability with Gaussian Mixture Selection. More...

#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"

Include dependency graph for gms.c:

Go to the source code of this file.

Defines

#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.

Functions

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 ()

Variables

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.


Detailed Description

Calculate state probability with Gaussian Mixture Selection.

Author:
Akinobu LEE
Date:
Thu Feb 17 14:52:18 2005
See the comments in the source for details about implementation.

Revision
1.4

Definition in file gms.c.


Function Documentation

static void build_gsset (  )  [static]

Register all state defs in GS HMM to GS_SET.

Definition at line 102 of file gms.c.

Referenced by gms_init().

static void free_gsset (  )  [static]

Free gsset.

Definition at line 120 of file gms.c.

Referenced by gms_free().

static boolean build_state2gs (  )  [static]

Build the correspondence from GS states to triphone states.

Returns:
TRUE on success, FALSE on failure.

Definition at line 133 of file gms.c.

Referenced by gms_init().

static void free_state2gs (  )  [static]

free state2gs.

Definition at line 186 of file gms.c.

Referenced by gms_free().

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

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

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

Definition at line 205 of file gms.c.

Referenced by do_gms().

static void do_gms (  )  [static]

Calculate all GS state scores and select the best ones.

Definition at line 249 of file gms.c.

Referenced by gms_state().

boolean gms_init ( int  nbest  ) 

Initialize the GMS related functions and data.

Parameters:
nbest [in] N-best state to compute the precise triphone.
Returns:
TRUE on success, FALSE on failure.

Definition at line 282 of file gms.c.

Referenced by outprob_init().

boolean gms_prepare ( int  framenum  ) 

Setup GMS parameters for next input.

Parameters:
framenum [in] length of next input in frames
Returns:
TRUE on success, FALSE on failure.

Definition at line 332 of file gms.c.

Referenced by outprob_prepare().

void gms_free (  ) 

Free GMS related work areas.

Definition at line 366 of file gms.c.

Referenced by 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.

Returns:
the state output probability score in log10.

Definition at line 392 of file gms.c.

Referenced by outprob_init().


Generated on Tue Dec 26 16:18:10 2006 for Julius by  doxygen 1.5.0