Julius 4.2
データ構造
Context-Dependent HMM set

同じベース音素の同じ位置にあるHMM状態の集合 [詳細]

データ構造

struct  CD_State_Set
struct  CD_Set
 Context-dependent HMM set (called "pseudo") for a logical context. [詳細]
struct  HMM_CDSET_INFO
 Top structure to hold all the HMM sets. [詳細]
struct  HMM_Logical
 Logical HMM to map logical names to physical/pseudo HMM. [詳細]
#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, 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.

説明

同じベース音素の同じ位置にあるHMM状態の集合

この構造体は第1パスで単語間トライフォンを扱うのに用いられます. 木構造化辞書上で,単語の末端のトライフォンHMMにおける各状態は, 通常のHMMとは異なりその終端音素と同じベース音素を持つトライフォンの 同じ位置の状態のリストを持ちます.このリスト化されたコンテキスト依存 HMMの集合は,"pseudo" phone とも呼ばれます.

第1パス計算時には,その状態の音響尤度は,真の単語間トライフォンの 近似値として,リスト中の各状態の音響尤度の最大値(あるいは平均値, あるいはNbestの状態の平均値)が用いられる.

この近似値は第2パスで再計算される.

参照:
htk_hmm.h
libsent/src/hmminfo/cdhmm.c
libsent/src/hmminfo/cdset.c
libsent/src/hmminfo/guess_cdHMM.c

マクロ定義

#define CD_STATE_SET_STEP   10

CD_State_Set memory allocation step

cdset.c80 行で定義されています。

参照元 regist_cdset().


関数

static void cdset_init ( HTK_HMM_INFO hmminfo) [static]

Initialize total pseudo HMM information in the given HMM definition data.

引数:
hmminfo[i/o] HTK HMM definitions

cdset.c88 行で定義されています。

参照元 make_cdset().

static CD_Set* cdset_new ( ) [static]

Allocate a CD_Set data for a new pseudo phone set.

戻り値:
pointer to newly allocated CD_Set.

cdset.c100 行で定義されています。

参照元 regist_cdset().

CD_Set* cdset_lookup ( HTK_HMM_INFO hmminfo,
char *  cdstr 
)

Look up for a pseudo phone with the name, and return the content.

引数:
hmminfo[in] HMM information to search for.
cdstr[in] string of pseudo phone name to search.
戻り値:
pointer to the pseudo phone if found, or NULL if not found.

cdset.c114 行で定義されています。

参照元 hmm_add_pseudo_phones_sub(), lcdset_lookup_by_hmmname(), と rcdset_lookup_by_hmmname().

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.

引数:
hmminfo[in] HMM information to search for.
hmmname[in] string of the phone name.
戻り値:
pointer to the pseudo phone if found, or NULL if not found.

cdset.c134 行で定義されています。

参照元 outprob_style(), と wchmm_add_word().

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.

引数:
hmminfo[in] HMM information to search for.
hmmname[in] string of the phone name.
戻り値:
pointer to the pseudo phone if found, or NULL if not found.

cdset.c150 行で定義されています。

static void put_cdset ( void *  ptr) [static]

Output text information of a pseudo phone to stdout.

引数:
ptr[in] pointer to a pseudo phone set.

cdset.c164 行で定義されています。

参照元 put_all_cdinfo().

void put_all_cdinfo ( HTK_HMM_INFO hmminfo)

Output all pseudo phone set information to stdout.

引数:
hmminfo[in] HMM definition data that holds pseudo phone data.

cdset.c195 行で定義されています。

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.

引数:
root[i/o] root node of HMM search index node.
d[in] a physical defined HMM to be added.
cdname[in] name of the pseudo phone set.
戻り値:
TRUE if newly registered, FALSE if the specified physical HMM already exists in the pseudo phone.

cdset.c211 行で定義されています。

参照元 make_cdset().

boolean make_cdset ( HTK_HMM_INFO hmminfo)

Construct the whole pseudo HMM information, and also add them to the logical Triphone tree.

引数:
hmminfo[i/o] HMM definition data. The generated data will also be stored within this.
戻り値:
TRUE on success, FALSE on failure.

cdset.c324 行で定義されています。

参照元 initialize_HMM().

static void callback_free_lcdset_content ( void *  arg) [static]

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

引数:
arg[in] pointer to the pseudo phone set to be free

cdset.c362 行で定義されています。

参照元 free_cdset().

void free_cdset ( APATNODE **  root,
BMALLOC_BASE **  mroot 
)

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.

引数:
root[i/o] pointer to hold the root index pointer

cdset.c384 行で定義されています。

参照元 hmminfo_free().