#include <sent/stddefs.h>
#include <sent/htk_param.h>
#include <sent/htk_hmm.h>
Go to the source code of this file.
#define | CD_STATE_SET_STEP 10 |
CD_State_Set memory allocation step. | |
static void | cdset_init (HTK_HMM_INFO *hmminfo) |
Initialize total pseudo HMM information in the given HMM definition data. | |
static CD_Set * | cdset_new () |
Allocate a CD_Set data for a new pseudo phone set. | |
CD_Set * | cdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr) |
Look up for a pseudo phone with the name, and return the content. | |
CD_Set * | lcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
Look up for a pseudo phone by the "left - center" name of the given phone name. | |
CD_Set * | rcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
Look up for a pseudo phone by the "center + right" name of the given phone name. | |
static void | put_cdset (void *ptr) |
Output text information of a pseudo phone to stdout. | |
void | put_all_cdinfo (HTK_HMM_INFO *hmminfo) |
Output all pseudo phone set information to stdout. | |
boolean | regist_cdset (APATNODE **root, HTK_HMM_Data *d, char *cdname, BMALLOC_BASE **mroot) |
Register a physical HMM as a member of a pseudo phone set. | |
boolean | make_cdset (HTK_HMM_INFO *hmminfo) |
Construct the whole pseudo HMM information, and also add them to the logical Triphone tree. | |
static void | callback_free_lcdset_content (void *arg) |
callback for aptree function to free the content of pseudo phone set. | |
void | free_cdset (APATNODE **root, BMALLOC_BASE **mroot) |
Remove all the registered category-indexed pseudo state sets. |
"Pseudo %HMM" is mainly for a substitution for unknown context-dependent biphone and monophone HMM that has not been defined in HTK HMM definition and HMMList mapping file. They are used mainly in the cross-word triphone computation on the 1st pass.
Julius first generates a list of possible biphone and monophone after reading HTK HMM definition file and HMMList logical name mapping file. It then generate CD_Set structure for each possible biphone and monophones by parsing all the HMM definition to find the same context as each phones.
For example, the triphones like "a-k+e", "a-k+b", "a-k+a" will be grouped as pseudo phone set "a-k". A pseudo phone "k" will contain all triphone variants of the same base phone "k". This generated pseudo HMM sets are stored in cdset_info in HTK_HMM_INFO.
Then, the pseudo phones, whose names (biphone or monophone) do not appear in both of the HTK HMM definitions and HMMList mapping file, will be added as aliases to unspecified phones in the HMM index tree. If biphones or monophones are explicitly defined in HMM definition or HMMList file, they will be used instead of this pseudo phone.
Definition in file cdset.c.