Julius 4.1.5
|
00001 00036 /* 00037 * Copyright (c) 1991-2007 Kawahara Lab., Kyoto University 00038 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00039 * Copyright (c) 2005-2007 Julius project team, Nagoya Institute of Technology 00040 * All rights reserved 00041 */ 00042 00043 #ifndef __SENT_VOCA_H__ 00044 #define __SENT_VOCA_H__ 00045 00046 #include <sent/stddefs.h> 00047 #include <sent/htk_hmm.h> 00048 00050 #define MAXWSTEP 4000 00051 00053 typedef struct { 00054 WORD_ID maxnum; 00055 WORD_ID num; 00056 WORD_ID errnum; 00057 WORD_ID linenum; 00058 boolean do_conv; 00059 boolean ok_flag; 00060 00061 unsigned char *wlen; 00062 00063 char **wname; 00064 char **woutput; 00065 HMM_Logical ***wseq; 00066 WORD_ID *wton; 00067 #ifdef CLASS_NGRAM 00068 LOGPROB *cprob; 00069 WORD_ID cwnum; 00070 #endif 00071 WORD_ID head_silwid; 00072 WORD_ID tail_silwid; 00073 short maxwn; 00074 short maxwlen; 00075 int totalstatenum; 00076 int totalmodelnum; 00077 int totaltransnum; 00078 boolean *is_transparent; 00079 APATNODE *errph_root; 00080 BMALLOC_BASE *mroot; 00081 } WORD_INFO; 00082 00083 #ifdef __cplusplus 00084 extern "C" { 00085 #endif 00086 00087 WORD_INFO *word_info_new(); 00088 void word_info_free(WORD_INFO *winfo); 00089 void winfo_init(WORD_INFO *winfo); 00090 boolean winfo_expand(WORD_INFO *winfo); 00091 boolean init_voca(WORD_INFO *winfo, char *filename, HTK_HMM_INFO *hmminfo, boolean, boolean); 00092 boolean init_wordlist(WORD_INFO *winfo, char *filename, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone, boolean force_dict); 00093 void voca_set_stats(WORD_INFO *winfo); 00094 void voca_load_start(WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean ignore_tri_conv); 00095 boolean voca_load_line(char *buf, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo); 00096 boolean voca_load_end(WORD_INFO *winfo); 00097 boolean voca_load_htkdict(FILE *, WORD_INFO *, HTK_HMM_INFO *, boolean); 00098 boolean voca_load_htkdict_fp(FILE *, WORD_INFO *, HTK_HMM_INFO *, boolean); 00099 boolean voca_append_htkdict(char *entry, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean ignore_tri_conv); 00100 boolean voca_append(WORD_INFO *dstinfo, WORD_INFO *srcinfo, int coffset, int woffset); 00101 boolean voca_load_htkdict_line(char *buf, WORD_ID *vnum, int linenum, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean do_conv, boolean *ok_flag); 00102 00103 boolean voca_load_word_line(char *buf, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailpohone, char *contextphone); 00104 boolean voca_load_wordlist(FILE *fp, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone); 00105 boolean voca_load_wordlist_fp(FILE *fp, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone); 00106 boolean voca_load_wordlist_line(char *buf, WORD_ID *vnum, int linenum, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean do_conv, boolean *ok_flag, char *headphone, char *tailphone, char *contextphone); 00107 boolean voca_mono2tri(WORD_INFO *winfo, HTK_HMM_INFO *hmminfo); 00108 WORD_ID voca_lookup_wid(char *, WORD_INFO *); 00109 WORD_ID *new_str2wordseq(WORD_INFO *, char *, int *); 00110 char *cycle_triphone(char *p); 00111 char *cycle_triphone_flush(); 00112 void print_voca_info(FILE *fp, WORD_INFO *); 00113 void put_voca(FILE *fp, WORD_INFO *winfo, WORD_ID wid); 00114 00115 /* HMMList check */ 00116 boolean make_base_phone(HTK_HMM_INFO *hmminfo, WORD_INFO *winfo); 00117 void print_phone_info(FILE *fp, HTK_HMM_INFO *hmminfo); 00118 void print_all_basephone_detail(HMM_basephone *base); 00119 void print_all_basephone_name(HMM_basephone *base); 00120 void test_interword_triphone(HTK_HMM_INFO *hmminfo, WORD_INFO *winfo); 00121 00122 #ifdef __cplusplus 00123 } 00124 #endif 00125 00126 #endif /* __SENT_VOCA_H__ */