#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_Set * | lcdset_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) |
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 |
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:
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.
Definition in file outprob_style.c.
void outprob_style_cache_init | ( | WCHMM_INFO * | wchmm | ) |
Initialize cache for triphone alternation on word head.
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).
wchmm | [in] word lexicon tree | |
hmm | [in] logical HMM | |
category | [in] belonging category |
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.
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.
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().
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.
wchmm | [i/o] lexicon tree information |
Definition at line 318 of file outprob_style.c.
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.
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 |
Definition at line 354 of file outprob_style.c.
Referenced by bt_discount_pescore(), 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.
base | [in] base triphone | |
rc_name | [in] name of right context phone |
Definition at line 513 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.
base | [in] base triphone | |
lc_name | [in] name of left context phone |
Definition at line 538 of file outprob_style.c.
Referenced by outprob_style(), and scan_word().