Julius 4.2
libjulius/include/julius/jconf.h
説明を見る。
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