libsent/src/hmminfo/cdset.c File Reference

Generate and manage the pseudo HMM set. More...

#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
static void cdset_init (HTK_HMM_INFO *hmminfo)
 Initialize total pseudo HMM information in the given HMM definition data.
static CD_Setcdset_new ()
 Allocate a CD_Set data for a new pseudo phone set.
CD_Setcdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr)
 Look up for a pseudo phone with the name, and return the content.
CD_Setlcdset_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_Setrcdset_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)
 Register a physical HMM as a member of a pseudo phone set.
boolean remove_cdset (HTK_HMM_INFO *hmminfo, char *cdname)
 Remove an pseudo phone set entry from index tree.
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)
 Remove all the registered category-indexed pseudo state sets.


Detailed Description

Generate and manage the pseudo HMM set.

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

Author:
Akinobu LEE
Date:
Tue Feb 15 17:58:54 2005
Revision
1.1.1.1

Definition in file cdset.c.


Generated on Tue Dec 18 16:01:38 2007 for Julius by  doxygen 1.5.4