Julius 4.2
|
00001 00029 /* 00030 * Copyright (c) 1991-2011 Kawahara Lab., Kyoto University 00031 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00032 * Copyright (c) 2005-2011 Julius project team, Nagoya Institute of Technology 00033 * All rights reserved 00034 */ 00035 00036 /* 00037 */ 00038 00039 #ifndef __J_JCONF_H__ 00040 #define __J_JCONF_H__ 00041 00042 #include <sent/stddefs.h> 00043 #include <sent/hmm.h> 00044 #include <sent/vocabulary.h> 00045 #include <sent/ngram2.h> 00046 #include <sent/dfa.h> 00047 #include <sent/mfcc.h> 00048 #include <julius/wchmm.h> 00049 #include <julius/search.h> 00050 #include <julius/callback.h> 00051 00056 #define JCONF_MODULENAME_MAXLEN 64 00057 00062 #define JCONF_MODULENAME_DEFAULT "_default" 00063 00068 typedef struct __jconf_am__ { 00069 00074 short id; 00075 00080 char name[JCONF_MODULENAME_MAXLEN]; 00081 00085 char *hmmfilename; 00089 char *mapfilename; 00094 int gprune_method; 00098 int mixnum_thres; 00103 char *spmodel_name; 00107 char *hmm_gs_filename; 00111 int gs_statenum; 00112 00117 short iwcdmethod; 00118 00122 short iwcdmaxn; 00123 00128 LOGPROB iwsp_penalty; 00129 00134 boolean force_multipath; 00135 00141 struct { 00145 Value para; 00149 Value para_default; 00153 Value para_hmm; 00157 Value para_htk; 00161 char *cmnload_filename; 00166 boolean cmn_update; 00170 char *cmnsave_filename; 00174 float cmn_map_weight; 00175 00176 } analysis; 00177 00178 00183 struct { 00188 float ss_alpha; 00189 00194 float ss_floor; 00195 00199 boolean sscalc; 00200 00204 int sscalc_len; 00205 00209 char *ssload_filename; 00210 } frontend; 00211 00215 int gprune_plugin_source; 00216 00217 /* pointer to next instance */ 00218 struct __jconf_am__ *next; 00219 00220 } JCONF_AM; 00221 00226 typedef struct __jconf_lm_namelist__ { 00230 char *name; 00234 struct __jconf_lm_namelist__ *next; 00235 00236 } JCONF_LM_NAMELIST; 00237 00242 typedef struct __jconf_lm__ { 00243 00248 short id; 00249 00254 char name[JCONF_MODULENAME_MAXLEN]; 00255 00260 int lmtype; 00261 00267 int lmvar; 00268 00272 char *dictfilename; 00273 00277 char *head_silname; 00281 char *tail_silname; 00282 00286 boolean forcedict_flag; 00287 00291 char *ngram_filename; 00295 char *ngram_filename_lr_arpa; 00299 char *ngram_filename_rl_arpa; 00300 00304 char *dfa_filename; 00305 00309 GRAMLIST *gramlist_root; 00310 00314 GRAMLIST *wordlist_root; 00315 00320 boolean enable_iwsp; 00321 00326 boolean enable_iwspword; 00330 char *iwspentry; 00331 00332 #ifdef SEPARATE_BY_UNIGRAM 00333 00337 int separate_wnum; 00338 #endif 00339 00343 char wordrecog_head_silence_model_name[MAX_HMMNAME_LEN]; 00347 char wordrecog_tail_silence_model_name[MAX_HMMNAME_LEN]; 00351 char wordrecog_silence_context_name[MAX_HMMNAME_LEN]; 00352 00356 char unknown_name[UNK_WORD_MAXLEN]; 00357 00361 JCONF_LM_NAMELIST *additional_dict_files; 00362 00366 JCONF_LM_NAMELIST *additional_dict_entries; 00367 00372 struct __jconf_lm__ *next; 00373 00374 } JCONF_LM; 00375 00380 typedef struct __jconf_search__ { 00381 00386 short id; 00387 00392 char name[JCONF_MODULENAME_MAXLEN]; 00393 00398 JCONF_AM *amconf; 00399 00404 JCONF_LM *lmconf; 00405 00409 boolean compute_only_1pass; 00410 00414 boolean ccd_handling; 00415 00419 boolean force_ccd_handling; 00420 00425 struct { 00429 LOGPROB lm_weight; 00433 LOGPROB lm_penalty; 00437 LOGPROB lm_weight2; 00441 LOGPROB lm_penalty2; 00445 LOGPROB lm_penalty_trans; 00446 00450 LOGPROB penalty1; 00454 LOGPROB penalty2; 00455 00459 boolean lmp2_specified; 00460 00464 boolean lmp_specified; 00465 } lmp; 00466 00471 struct { 00478 int specified_trellis_beam_width; 00479 00480 #ifdef SCORE_PRUNING 00481 00485 #endif 00486 LOGPROB score_pruning_width; 00487 00488 #if defined(WPAIR) && defined(WPAIR_KEEP_NLIMIT) 00489 00492 int wpair_keep_nlimit; 00493 #endif 00494 00495 #ifdef HASH_CACHE_IW 00496 00499 int iw_cache_rate; 00500 #endif 00501 00506 boolean old_tree_function_flag; 00507 00508 #ifdef DETERMINE 00509 00514 LOGPROB determine_score_thres; 00515 00520 int determine_duration_thres; 00521 00522 #endif /* DETERMINE */ 00523 00524 00525 } pass1; 00526 00531 struct { 00535 int nbest; 00539 int enveloped_bestfirst_width; 00540 #ifdef SCAN_BEAM 00541 00544 LOGPROB scan_beam_thres; 00545 #endif 00546 00549 int hypo_overflow; 00553 int stack_size; 00558 int lookup_range; 00559 00564 boolean looktrellis_flag; 00565 00566 } pass2; 00567 00572 struct { 00573 00578 boolean enabled; 00579 00584 boolean lattice; 00585 00590 boolean confnet; 00591 00597 int graph_merge_neighbor_range; 00598 00599 #ifdef GRAPHOUT_DEPTHCUT 00600 00604 int graphout_cut_depth; 00605 #endif 00606 00607 #ifdef GRAPHOUT_LIMIT_BOUNDARY_LOOP 00608 00612 int graphout_limit_boundary_loop_num; 00613 #endif 00614 00615 #ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION 00616 00621 boolean graphout_search_delay; 00622 #endif 00623 00624 } graph; 00625 00630 struct { 00631 00636 boolean enabled; 00637 00641 int sp_frame_duration; 00642 00647 char *pausemodelname; 00648 00649 #ifdef SPSEGMENT_NAIST 00650 00655 int sp_margin; 00656 00662 int sp_delay; 00663 #endif 00664 00665 } successive; 00666 00667 00672 struct { 00673 00674 #ifdef CONFIDENCE_MEASURE 00675 00678 LOGPROB cm_alpha; 00679 00680 #ifdef CM_MULTIPLE_ALPHA 00681 00684 LOGPROB cm_alpha_bgn; 00688 LOGPROB cm_alpha_end; 00692 int cm_alpha_num; 00696 LOGPROB cm_alpha_step; 00697 #endif 00698 00699 #ifdef CM_SEARCH_LIMIT 00700 00703 LOGPROB cm_cut_thres; 00704 #endif 00705 00706 #ifdef CM_SEARCH_LIMIT_POPO 00707 00710 LOGPROB cm_cut_thres_pop; 00711 #endif 00712 00713 #endif /* CONFIDENCE_MEASURE */ 00714 00715 00719 boolean align_result_word_flag; 00723 boolean align_result_phoneme_flag; 00727 boolean align_result_state_flag; 00728 00729 } annotate; 00730 00735 struct { 00739 int output_hypo_maxnum; 00743 boolean progout_flag; 00747 int progout_interval; 00751 int progout_interval_frame; 00752 00757 boolean multigramout_flag; 00758 00759 } output; 00760 00765 struct { 00769 boolean trellis_check_flag; 00773 boolean triphone_check_flag; 00777 boolean wchmm_check_flag; 00783 boolean start_inactive; 00790 boolean fallback_pass1_flag; 00791 00792 } sw; 00793 00794 /* pointer to next instance */ 00795 struct __jconf_search__ *next; 00796 00797 } JCONF_SEARCH; 00798 00803 typedef struct __Jconf__ { 00804 00808 struct { 00809 00814 int type; 00815 00820 int speech_input; 00821 00826 int device; 00827 00832 int plugin_source; 00833 00838 long sfreq; 00843 long period; 00848 int framesize; 00853 int frameshift; 00854 00858 boolean use_ds48to16; 00862 char *inputlist_filename; 00866 int adinnet_port; 00867 #ifdef USE_NETAUDIO 00868 00871 char *netaudio_devname; 00872 #endif 00873 00877 boolean paramtype_check_flag; 00878 00879 } input; 00880 00885 struct { 00889 int level_thres; 00893 int head_margin_msec; 00897 int tail_margin_msec; 00901 int zero_cross_num; 00906 int silence_cut; 00907 #ifdef GMM_VAD 00908 00912 int gmm_margin; 00922 float gmm_uptrigger_thres; 00932 float gmm_downtrigger_thres; 00933 #endif 00934 } detect; 00935 00940 struct { 00941 00945 boolean strip_zero_sample; 00946 00950 boolean use_zmean; 00951 00952 } preprocess; 00953 00958 struct { 00962 char *gmm_filename; 00966 int gmm_gprune_num; 00970 char *gmm_reject_cmn_string; 00974 int rejectshortlen; 00975 #ifdef POWER_REJECT 00976 00980 float powerthres; 00981 #endif 00982 } reject; 00983 00988 struct { 00993 boolean realtime_flag; 00994 01000 boolean force_realtime_flag; 01001 01006 boolean forced_realtime; 01007 01012 boolean segment; 01013 01014 } decodeopt; 01015 01021 JCONF_AM *am_root; 01022 01027 JCONF_LM *lm_root; 01028 01034 JCONF_SEARCH *search_root; 01035 01040 JCONF_LM *lmnow; 01045 JCONF_AM *amnow; 01050 JCONF_SEARCH *searchnow; 01051 01057 JCONF_AM *gmm; 01058 01063 short optsection; 01064 01069 boolean optsectioning; 01070 01071 01072 } Jconf; 01073 01074 enum { 01075 JCONF_OPT_DEFAULT, 01076 JCONF_OPT_GLOBAL, 01077 JCONF_OPT_AM, 01078 JCONF_OPT_LM, 01079 JCONF_OPT_SR, 01080 SIZEOF_JCONF_OPT 01081 }; 01082 01083 #endif /* __J_JCONF_H__ */ 01084 01085 /* 01086 01087 ======================================================= 01088 An OLD variable name mapping from old global.h to common.h 01089 01090 These data are bogus, left here only for reference 01091 ======================================================= 01092 01093 result_reorder_flag -> DELETED 01094 adinnet_port ->jconf.input.adinnet_port 01095 align_result_phoneme_flag ->jconf.annotate.align_result_phoneme_flag 01096 align_result_state_flag ->jconf.annotate.align_result_state_flag 01097 align_result_word_flag ->jconf.annotate.align_result_word_flag 01098 backmax ->recog.backmax 01099 backtrellis ->recog.backtrellis 01100 ccd_flag ->jconf.am.ccd_flag 01101 ccd_flag_force ->jconf.am.ccd_flag_force 01102 cm_alpha ->jconf.annotate.cm_alpha 01103 cm_alpha_bgn ->jconf.annotate.cm_alpha_bgn 01104 cm_alpha_end ->jconf.annotate.cm_alpha_end 01105 cm_alpha_num ->jconf.annotate.cm_alpha_num 01106 cm_alpha_step ->jconf.annotate.cm_alpha_step 01107 cm_cut_thres ->jconf.annotate.cm_cut_thres 01108 cm_cut_thres_pop ->jconf.annotate.cm_cut_thres_pop 01109 cmn_loaded ->recog.cmn_loaded 01110 cmn_map_weight ->jconf.frontend.cmn_map_weight 01111 cmn_update ->jconf.frontend.cmn_update 01112 cmnload_filename ->jconf.frontend.cmnload_filename 01113 cmnsave_filename ->jconf.frontend.cmnsave_filename 01114 compute_only_1pass ->jconf.sw.compute_only_1pass 01115 dfa ->model.dfa 01116 dfa_filename ->jconf.lm.dfa_filename 01117 dictfilename ->jconf.lm.dictfilename 01118 enable_iwsp ->jconf.lm.enable_iwsp 01119 enable_iwspword ->jconf.lm.enable_iwspword 01120 enveloped_bestfirst_width ->jconf.search.pass2.enveloped_bestfirst_width 01121 force_realtime_flag ->jconf.search.pass1.force_realtime_flag 01122 forced_realtime ->jconf.search.pass1.forced_realtime 01123 forcedict_flag ->jconf.lm.forcedict_flag 01124 framemaxscore ->recog.framemaxscore 01125 from_code ->jconf.output.from_code 01126 gmm ->model.gmm 01127 gmm_filename ->jconf.reject.gmm_filename 01128 gmm_gprune_num ->jconf.reject.gmm_gprune_num 01129 gmm_reject_cmn_string ->jconf.reject.gmm_reject_cmn_string 01130 gprune_method ->jconf.am.gprune_method 01131 gramlist ->model.grammars 01132 gramlist_root ->jconf.lm.gramlist_root 01133 graph_merge_neighbor_range ->jconf.graph.graph_merge_neighbor_range 01134 graph_totalwordnum ->recog.graph_totalwordnum 01135 graphout_cut_depth ->jconf.graph.graphout_cut_depth 01136 graphout_limit_boundary_loop_num ->jconf.graph.graphout_limit_boundary_loop_num 01137 graphout_search_delay ->jconf.graph.graphout_search_delay 01138 gs_statenum ->jconf.am.gs_statenum 01139 head_margin_msec ->jconf.detect.head_margin_msec 01140 head_silname ->jconf.lm.head_silname 01141 hmm_gs ->model.hmm_gs 01142 hmm_gs_filename ->jconf.am.hmm_gs_filename 01143 hmmfilename ->jconf.am.hmmfilename 01144 hmminfo ->model.hmminfo 01145 hypo_overflow ->jconf.search.pass2.hypo_overflow 01146 inputlist_filename ->jconf.input.inputlist_filename 01147 iw_cache_rate ->jconf.search.pass1.iw_cache_rate 01148 iwcdmaxn ->jconf.search.pass1.iwcdmaxn 01149 iwcdmethod ->jconf.search.pass1.iwcdmethod 01150 iwsp_penalty ->jconf.lm.iwsp_penalty 01151 iwspentry ->jconf.lm.iwspentry 01152 level_thres ->jconf.detect.level_thres 01153 lm_penalty ->jconf.lm.lm_penalty 01154 lm_penalty2 ->jconf.lm.lm_penalty2 01155 lm_penalty_trans ->jconf.lm.lm_penalty_trans 01156 lm_weight ->jconf.lm.lm_weight 01157 lm_weight2 ->jconf.lm.lm_weight2 01158 lmp_specified ->jconf.lm.lmp_specified 01159 lmp2_specified ->jconf.lm.lmp2_specified 01160 looktrellis_flag ->jconf.search.pass2.looktrellis_flag 01161 lookup_range ->jconf.search.pass2.lookup_range 01162 mapfilename ->jconf.am.mapfilename 01163 mixnum_thres ->jconf.am.mixnum_thres 01164 module_mode -> (app) 01165 module_port -> (app) 01166 module_sd -> (app) 01167 multigramout_flag ->jconf.output.multigramout_flag 01168 nbest ->jconf.search.pass2.nbest 01169 netaudio_devname ->jconf.input.netaudio_devname 01170 ngram ->model.ngram 01171 ngram_filename ->jconf.lm.ngram_filename 01172 ngram_filename_lr_arpa ->jconf.lm.ngram_filename_lr_arpa 01173 ngram_filename_rl_arpa ->jconf.lm.ngram_filename_rl_arpa 01174 old_iwcd_flag -> USE_OLD_IWCD (define.h) 01175 old_tree_function_flag ->jconf.search.pass1.old_tree_function_flag 01176 output_hypo_maxnum ->jconf.output.output_hypo_maxnum 01177 para ->jconf.analysis.para 01178 para_default ->jconf.analysis.para_default 01179 para_hmm ->jconf.analysis.para_hmm 01180 para_htk ->jconf.analysis.para_htk 01181 paramtype_check_flag ->jconf.analysis.paramtype_check_flag 01182 pass1_score ->recog.pass1_score 01183 pass1_wnum ->recog.pass1_wnum 01184 pass1_wseq ->recog.pass1_wseq 01185 penalty1 ->jconf.lm.penalty1 01186 penalty2 ->jconf.lm.penalty2 01187 peseqlen ->recog.peseqlen 01188 progout_flag ->jconf.output.progout_flag 01189 progout_interval ->jconf.output.progout_interval 01190 progout_interval_frame (beam.c) ->jconf.output.progout_interval 01191 realtime_flag ->jconf.search.pass1.realtime_flag 01192 record_dirname ->jconf.output.record_dirname 01193 rejectshortlen ->jconf.reject.rejectshortlen 01194 rest_param ->recog.rest_param 01195 result_output -> (app) 01196 scan_beam_thres ->jconf.search.pass2.scan_beam_thres 01197 separate_score_flag ->jconf.output.separate_score_flag 01198 separate_wnum ->jconf.search.pass1.separate_wnum 01199 silence_cut ->jconf.detect.silence_cut 01200 sp_break_2_begin_word ->recog.sp_break_2_begin_word 01201 sp_break_2_end_word ->recog.sp_break_2_end_word 01202 sp_break_last_nword ->recog.sp_break_last_nword 01203 sp_break_last_nword_allow_override ->recog.sp_break_last_nword_allow_override 01204 sp_break_last_word ->recog.sp_break_last_word 01205 sp_frame_duration ->jconf.successive.sp_frame_duration 01206 specified_trellis_beam_width ->jconf.search.pass1.specified_trellis_beam_width 01207 speech ->recog.speech 01208 speech_input ->jconf.input.speech_input 01209 speechlen ->recog.speechlen 01210 spmodel_name ->jconf.am.spmodel_name 01211 ssbuf ->recog.ssbuf 01212 sscalc ->jconf.frontend.sscalc 01213 sscalc_len ->jconf.frontend.sscalc_len 01214 sslen ->recog.sslen 01215 ssload_filename ->jconf.frontend.ssload_filename 01216 stack_size ->jconf.search.pass2.stack_size 01217 strip_zero_sample ->jconf.frontend.strip_zero_sample 01218 tail_margin_msec ->jconf.detect.tail_margin_msec 01219 tail_silname ->jconf.lm.tail_silname 01220 to_code ->jconf.output.to_code 01221 trellis_beam_width ->recog.trellis_beam_width 01222 trellis_check_flag ->jconf.sw.trellis_check_flag 01223 triphone_check_flag ->jconf.sw.triphone_check_flag 01224 use_ds48to16 ->jconf.input.use_ds48to16 01225 use_zmean ->jconf.frontend.use_zmean 01226 wchmm ->recog.wchmm 01227 wchmm_check_flag ->jconf.sw.wchmm_check_flag 01228 winfo ->model.winfo 01229 wpair_keep_nlimit ->jconf.search.pass1.wpair_keep_nlimit 01230 zero_cross_num ->jconf.detect.zero_cross_num 01231 01232 verbose_flag -> (remain in global.h) 01233 debug2_flag -> (remain in global.h) 01234 01235 */ 01236