Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

outprob_style.c File Reference

Compute output probability of a state on lexicon tree. More...

#include <julius.h>

Include dependency graph for outprob_style.c:

Go to the source code of this file.

Functions

void outprob_style_cache_init (WCHMM_INFO *wchmm)
CD_Setlcdset_lookup_with_category (WCHMM_INFO *wchmm, HMM_Logical *hmm, WORD_ID category)
static void lcdset_register_with_category (WCHMM_INFO *wchmm, HTK_HMM_INFO *hmminfo, DFA_INFO *dfa, HMM_Logical *hmm, WORD_ID category)
 Make a category-indexed context-dependent (pseudo) state set for the given logical HMM.
void lcdset_register_with_category_all (WCHMM_INFO *wchmm, HTK_HMM_INFO *hmminfo, WORD_INFO *winfo, DFA_INFO *dfa)
static void callback_free_lcdset_content (void *arg)
void lcdset_remove_with_category_all (WCHMM_INFO *wchmm)
LOGPROB outprob_style (WCHMM_INFO *wchmm, int node, int last_wid, int t, HTK_Param *param)
void error_missing_right_triphone (HMM_Logical *base, char *rc_name)
void error_missing_left_triphone (HMM_Logical *base, char *lc_name)

Variables

static char rbuf [MAX_HMMNAME_LEN]
 Local workarea for HMM name conversion.
static char lccbuf [MAX_HMMNAME_LEN+7]
 work area for HMM name conversion
static char lccbuf2 [MAX_HMMNAME_LEN+7]
 work area for HMM name conversion


Detailed Description

Compute output probability of a state on lexicon tree.

Author:
Akinobu Lee
Date:
Mon Aug 22 17:14:26 2005
These functions compute the output probability of an input vector from a state on the lexicon tree.

When using triphone acoustic model, the cross-word triphone handling is done here. The head and tail phoneme of every words has corresponding pseudo phone set on the tree lexicon, so the actual likelihood computation will be done as the following:

  1. word-internal: compute as normal.
  2. Word head phone: the correct triphone phone, according to the last word information on the passing token, will be dynamically assigned to compute the cross-word dependency.
  3. Word tail phone: all the states in the pseudo phone set (they are states of triphones that has the same left context as the word end) will be computed, and use
  4. word with only one state: both of above should be considered.

To denote which operation to do for a state, AS_Style ID is assigned to each state.

The triphone transformation, that will be performed on the state of 2 and 4 above, will be cached on the tree lxicon by each state per frame, to suppress computation overhead.

Revision
1.1.1.1

Definition in file outprob_style.c.


Function Documentation

void outprob_style_cache_init WCHMM_INFO wchmm  ) 
 

Initialize cache for triphone alternation on word head.

Parameters:
wchmm [i/o] tree lexicon

Definition at line 99 of file outprob_style.c.

Referenced by init_nodescore().

CD_Set* lcdset_lookup_with_category WCHMM_INFO wchmm,
HMM_Logical hmm,
WORD_ID  category
 

Lookup an pseudo phone set with category number (for Julian).

Parameters:
wchmm [in] word lexicon tree
hmm [in] logical HMM
category [in] belonging category
Returns:
pointer to the corresponding phone set if found, or NULL if not found.

Definition at line 144 of file outprob_style.c.

Referenced by lcdset_register_with_category(), outprob_style(), and wchmm_add_word().

static void lcdset_register_with_category WCHMM_INFO wchmm,
HTK_HMM_INFO hmminfo,
DFA_INFO dfa,
HMM_Logical hmm,
WORD_ID  category
[static]
 

Make a category-indexed context-dependent (pseudo) state set for the given logical HMM.

In Julian, the word-end pseudo triphone set can be shrinked by using the category-pair constraint, since the number of possible right-context phones on the word end will be smaller than all phone. This shrinking not only saves computation time but also improves recognition since the approximated value will be closer to the actual value.

For example, if a word belongs to category ID 38 and has a phone "a-k" at word end, CD_Set "a-k::38" is generated and assigned to the phone instead of normal CD_Set "a-k". The "a-k::38" set consists of triphones whose right context are the beginning phones within possibly fllowing categories. These will be separated from the normal pseudo phone set.

Parameters:
wchmm [i/o] tree lexicon
hmminfo [in] HMM definition data
dfa [in] DFA grammar information
hmm [in] logical HMM at the end of a word, of which the category-indexed pseudo state set will be generated.
category [in] category ID of the word.

Definition at line 209 of file outprob_style.c.

Referenced by lcdset_register_with_category_all().

void lcdset_register_with_category_all WCHMM_INFO wchmm,
HTK_HMM_INFO hmminfo,
WORD_INFO winfo,
DFA_INFO dfa
 

Generate all possible category-indexed pseudo phone sets for Julian.

Parameters:
wchmm [i/o] tree lexicon
hmminfo [in] HMM definition
winfo [in] word dictionary
dfa [in] DFA grammar

Definition at line 273 of file outprob_style.c.

Referenced by build_wchmm(), and build_wchmm2().

static void callback_free_lcdset_content void *  arg  )  [static]
 

callback for aptree function to free the content of pseudo phone set.

Parameters:
d [in] pointer to pseudo phone set in the index tree

Definition at line 315 of file outprob_style.c.

Referenced by lcdset_remove_with_category_all().

void lcdset_remove_with_category_all WCHMM_INFO wchmm  ) 
 

Remove all the registered category-indexed pseudo state sets. This function will be called when a grammar is changed to re-build the state sets.

Parameters:
wchmm [i/o] lexicon tree information

Definition at line 343 of file outprob_style.c.

Referenced by wchmm_free().

LOGPROB outprob_style WCHMM_INFO wchmm,
int  node,
int  last_wid,
int  t,
HTK_Param param
 

Calculate output log probability of an input vector on time frame t in input paramter param at a node on tree lexicon.

Parameters:
wchmm [in] tree lexicon structure
node [in] node ID to compute the output probability
last_wid [in] word ID of last word hypothesis (used when the node is within the word beginning phone and triphone is used.
t [in] time frame of input vector in param to compute.
param [in] input parameter structure
Returns:
the computed log probability.

Definition at line 383 of file outprob_style.c.

Referenced by bt_discount_pescore(), get_back_trellis_proceed(), and init_nodescore().

void error_missing_right_triphone HMM_Logical base,
char *  rc_name
 

Output error message when a triphone with the specified right context is not defined.

Parameters:
base [in] base triphone
rc_name [in] name of right context phone

Definition at line 542 of file outprob_style.c.

Referenced by lcdset_register_with_category(), next_word(), and scan_word().

void error_missing_left_triphone HMM_Logical base,
char *  lc_name
 

Output error message when a triphone with the specified right context is not defined.

Parameters:
base [in] base triphone
lc_name [in] name of left context phone

Definition at line 567 of file outprob_style.c.

Referenced by outprob_style(), and scan_word().


Generated on Tue Mar 28 16:18:05 2006 for Julius by  doxygen 1.4.2