Julius 4.2
libsent/include/sent/vocabulary.h
説明を見る。
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__ */