#include <sent/stddefs.h>
#include <sent/htk_param.h>
#include <sent/htk_hmm.h>
Include dependency graph for cdset.c:
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) |
static CD_Set * | cdset_new () |
CD_Set * | cdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr) |
CD_Set * | lcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
CD_Set * | rcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
static void | put_cdset (void *ptr) |
void | put_all_cdinfo (HTK_HMM_INFO *hmminfo) |
boolean | regist_cdset (APATNODE **root, HTK_HMM_Data *d, char *cdname) |
boolean | remove_cdset (HTK_HMM_INFO *hmminfo, char *cdname) |
boolean | make_cdset (HTK_HMM_INFO *hmminfo) |
static void | callback_free_lcdset_content (void *arg) |
void | free_cdset (APATNODE **root) |
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.