Julius 4.2
関数 | 変数
libsent/src/hmminfo/chkhmmlist.c

HMMList に全ての可能なトライフォンが含まれているかチェックする [詳細]

#include <sent/htk_hmm.h>
#include <sent/vocabulary.h>

ソースコードを見る。

関数

void make_hmm_basephone_list (HTK_HMM_INFO *hmminfo)
 Build a list of base phones by gathering center phones of the defined HMM.
static void print_callback_detail (void *x)
 Traverse function callback to output detailed information of a basephone in text to stdout.
static void print_callback_name (void *x)
 Traverse function callback to output name of a basephone in text to stdout.
void print_all_basephone_detail (HMM_basephone *base)
 Output all basephone informations to stdout.
void print_all_basephone_name (HMM_basephone *base)
 Output all basephone names to stdout.
static void count_callback (void *x)
 Traverse callback function to increment the number of base phones that can appear at beginning of word and end of word.
static void count_all_phone (HMM_basephone *base)
 Count the total number of base phones that can appear at beginning of word and end of word.
static boolean mark_word_edge (WORD_INFO *winfo, HMM_basephone *base)
 Mark each basephone if it can appear at beginning or end of a word.
static void add_to_error (char *lostname, HTK_HMM_INFO *hmminfo)
 Add unknown (error) triphone to error list.
static void print_error_callback (void *x)
 Traverse callback function to output error phone name.
static void triphone_callback_normal (void *x)
 Traverse callback function to check if the cross-word triphones "basephone x - word[current_w]" and "word[current_w] + basephone x" exist, according to the basephone mark.
static void triphone_callback_right (void *x)
 Traverse callback function to check if the cross-word triphone "basephone x - word[current_w] + basephone x" exist, for words with only one phone: right part.
static void triphone_callback_left (void *x)
 Traverse callback function to check if the cross-word triphone "basephone x - word[current_w] + basephone x" exist, for words with only one phone: left part.
void test_interword_triphone (HTK_HMM_INFO *hmminfo, WORD_INFO *winfo)
 Top function to check if all the possible triphones on given word dictionary actually exist in the logical HMM.
boolean make_base_phone (HTK_HMM_INFO *hmminfo, WORD_INFO *winfo)
 Build basephone information.
void print_phone_info (FILE *fp, HTK_HMM_INFO *hmminfo)
 Output general information concerning phone mapping in HMM definition.

変数

static int bncnt
 Count of basephone that can appear at the beginning of sentence.
static int edcnt
 Count of basephone that can appear at the end of sentence.
static HTK_HMM_INFOlocal_hmminfo
 Local work area to hold HTK HMM data.
static WORD_INFOlocal_winfo
 Local work area to hold word dictionary.
static APATNODElocal_root
 Local work area to hold basephone index root.
static WORD_ID current_w
 Local work area to hold current word ID.
static char gbuf [MAX_HMMNAME_LEN]
 Local work area for phone name handling.
static APATNODEerror_root
 Error phone list.
static int error_num
 Number of encountered error phone.

説明

HMMList に全ての可能なトライフォンが含まれているかチェックする

与えられた音響モデルにおいて,認識時に登場しうる全てのトライフォンが HMM定義あるいはHMMListで定義されているかどうかをチェックします.

チェック時には辞書の語彙が考慮されます.すなわち,与えられた語彙の単語内 および単語間で生じうるトライフォンについてのみチェックされます.

作者:
Akinobu LEE
日付:
Tue Feb 15 19:17:51 2005
Revision:
1.5

chkhmmlist.c で定義されています。


関数

void make_hmm_basephone_list ( HTK_HMM_INFO hmminfo)

Build a list of base phones by gathering center phones of the defined HMM.

引数:
hmminfo[i/o] HMM definition data

chkhmmlist.c48 行で定義されています。

参照元 init_hmminfo().

static void print_callback_detail ( void *  x) [static]

Traverse function callback to output detailed information of a basephone in text to stdout.

引数:
x[in] pointer to a basephone data.

chkhmmlist.c83 行で定義されています。

参照元 print_all_basephone_detail().

static void print_callback_name ( void *  x) [static]

Traverse function callback to output name of a basephone in text to stdout.

引数:
x[in] pointer to a basephone data.

chkhmmlist.c95 行で定義されています。

参照元 print_all_basephone_name().

void print_all_basephone_detail ( HMM_basephone base)

Output all basephone informations to stdout.

引数:
base[in] pointer to the top basephone data holder.

chkhmmlist.c106 行で定義されています。

参照元 hmm_check().

void print_all_basephone_name ( HMM_basephone base)

Output all basephone names to stdout.

引数:
base[in] pointer to the top basephone data holder.

chkhmmlist.c116 行で定義されています。

参照元 hmm_check().

static void count_callback ( void *  x) [static]

Traverse callback function to increment the number of base phones that can appear at beginning of word and end of word.

引数:
x[in] pointer

chkhmmlist.c131 行で定義されています。

参照元 count_all_phone().

static void count_all_phone ( HMM_basephone base) [static]

Count the total number of base phones that can appear at beginning of word and end of word.

引数:
base

chkhmmlist.c145 行で定義されています。

参照元 make_base_phone().

static boolean mark_word_edge ( WORD_INFO winfo,
HMM_basephone base 
) [static]

Mark each basephone if it can appear at beginning or end of a word.

引数:
winfo[in] word dictinary
base[in] top basephone data holder

chkhmmlist.c160 行で定義されています。

参照元 make_base_phone().

static void add_to_error ( char *  lostname,
HTK_HMM_INFO hmminfo 
) [static]

Add unknown (error) triphone to error list.

引数:
lostname[in] name of error triphone.
hmminfo[i/o] HMM definition data

chkhmmlist.c217 行で定義されています。

参照元 triphone_callback_normal(), と triphone_callback_right().

static void print_error_callback ( void *  x) [static]

Traverse callback function to output error phone name.

引数:
x[in] pointer to error phone name

chkhmmlist.c238 行で定義されています。

参照元 test_interword_triphone().

static void triphone_callback_normal ( void *  x) [static]

Traverse callback function to check if the cross-word triphones "basephone x - word[current_w]" and "word[current_w] + basephone x" exist, according to the basephone mark.

引数:
x[in] a basephone

chkhmmlist.c252 行で定義されています。

参照元 test_interword_triphone().

static void triphone_callback_right ( void *  x) [static]

Traverse callback function to check if the cross-word triphone "basephone x - word[current_w] + basephone x" exist, for words with only one phone: right part.

引数:
x[in] a basephone

chkhmmlist.c294 行で定義されています。

参照元 triphone_callback_left().

static void triphone_callback_left ( void *  x) [static]

Traverse callback function to check if the cross-word triphone "basephone x - word[current_w] + basephone x" exist, for words with only one phone: left part.

引数:
x[in] a basephone

chkhmmlist.c323 行で定義されています。

参照元 test_interword_triphone().

void test_interword_triphone ( HTK_HMM_INFO hmminfo,
WORD_INFO winfo 
)

Top function to check if all the possible triphones on given word dictionary actually exist in the logical HMM.

引数:
hmminfo[in] HMM definition information, with basephone list.
winfo[in] word dictionary information

chkhmmlist.c345 行で定義されています。

参照元 hmm_check().

boolean make_base_phone ( HTK_HMM_INFO hmminfo,
WORD_INFO winfo 
)

Build basephone information.

Extract base phones from HMM definition, mark them whether they appear on word head or word tail, and count the number.

引数:
hmminfo[i/o] HMM definition information, basephone list will be added.
winfo[in] word dictionary information

chkhmmlist.c386 行で定義されています。

参照元 hmm_check().

void print_phone_info ( FILE *  fp,
HTK_HMM_INFO hmminfo 
)

Output general information concerning phone mapping in HMM definition.

引数:
fp[in] file descriptor
hmminfo[in] HMM definition data.

chkhmmlist.c404 行で定義されています。

参照元 hmm_check().