Julius 4.2
|
00001 00036 /* 00037 * Copyright (c) 1991-2011 Kawahara Lab., Kyoto University 00038 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00039 * Copyright (c) 2005-2011 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 void *work; 00082 int work_num; 00083 } WORD_INFO; 00084 00085 #ifdef __cplusplus 00086 extern "C" { 00087 #endif 00088 00089 WORD_INFO *word_info_new(); 00090 void word_info_free(WORD_INFO *winfo); 00091 void winfo_init(WORD_INFO *winfo); 00092 boolean winfo_expand(WORD_INFO *winfo); 00093 boolean init_voca(WORD_INFO *winfo, char *filename, HTK_HMM_INFO *hmminfo, boolean, boolean); 00094 boolean init_wordlist(WORD_INFO *winfo, char *filename, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone, boolean force_dict); 00095 void voca_set_stats(WORD_INFO *winfo); 00096 void voca_load_start(WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean ignore_tri_conv); 00097 boolean voca_load_line(char *buf, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo); 00098 boolean voca_load_end(WORD_INFO *winfo); 00099 boolean voca_load_htkdict(FILE *, WORD_INFO *, HTK_HMM_INFO *, boolean); 00100 boolean voca_load_htkdict_fp(FILE *, WORD_INFO *, HTK_HMM_INFO *, boolean); 00101 boolean voca_append_htkdict(char *entry, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, boolean ignore_tri_conv); 00102 boolean voca_append(WORD_INFO *dstinfo, WORD_INFO *srcinfo, int coffset, int woffset); 00103 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); 00104 00105 boolean voca_load_word_line(char *buf, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailpohone, char *contextphone); 00106 boolean voca_load_wordlist(FILE *fp, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone); 00107 boolean voca_load_wordlist_fp(FILE *fp, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo, char *headphone, char *tailphone, char *contextphone); 00108 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); 00109 boolean voca_mono2tri(WORD_INFO *winfo, HTK_HMM_INFO *hmminfo); 00110 WORD_ID voca_lookup_wid(char *, WORD_INFO *); 00111 WORD_ID *new_str2wordseq(WORD_INFO *, char *, int *); 00112 char *cycle_triphone(char *p); 00113 char *cycle_triphone_flush(); 00114 void print_voca_info(FILE *fp, WORD_INFO *); 00115 void put_voca(FILE *fp, WORD_INFO *winfo, WORD_ID wid); 00116 00117 /* HMMList check */ 00118 boolean make_base_phone(HTK_HMM_INFO *hmminfo, WORD_INFO *winfo); 00119 void print_phone_info(FILE *fp, HTK_HMM_INFO *hmminfo); 00120 void print_all_basephone_detail(HMM_basephone *base); 00121 void print_all_basephone_name(HMM_basephone *base); 00122 void test_interword_triphone(HTK_HMM_INFO *hmminfo, WORD_INFO *winfo); 00123 00124 #ifdef __cplusplus 00125 } 00126 #endif 00127 00128 #endif /* __SENT_VOCA_H__ */