Julius 4.1.5
libjulius/include/julius/jconf.h
説明を見る。
00001 
00029 /*
00030  * Copyright (c) 1991-2007 Kawahara Lab., Kyoto University
00031  * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
00032  * Copyright (c) 2005-2007 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__ {
00227 
00232   short id;
00233 
00238   char name[JCONF_MODULENAME_MAXLEN];
00239 
00244   int lmtype;
00245 
00251   int lmvar;
00252 
00256   char *dictfilename;
00257   
00261   char *head_silname;
00265   char *tail_silname;
00266   
00270   boolean forcedict_flag;
00271   
00275   char *ngram_filename;
00279   char *ngram_filename_lr_arpa;
00283   char *ngram_filename_rl_arpa;
00284   
00288   char *dfa_filename;
00289   
00293   GRAMLIST *gramlist_root;
00294   
00298   GRAMLIST *wordlist_root;
00299   
00304   boolean enable_iwsp; 
00305   
00310   boolean enable_iwspword;
00314   char *iwspentry;
00315   
00316 #ifdef SEPARATE_BY_UNIGRAM
00317 
00321   int separate_wnum;
00322 #endif
00323 
00327   char wordrecog_head_silence_model_name[MAX_HMMNAME_LEN];
00331   char wordrecog_tail_silence_model_name[MAX_HMMNAME_LEN];
00335   char wordrecog_silence_context_name[MAX_HMMNAME_LEN];
00336 
00340   char unknown_name[UNK_WORD_MAXLEN];
00341 
00346   struct __jconf_lm__ *next;
00347   
00348 } JCONF_LM;
00349 
00354 typedef struct __jconf_search__ {
00355 
00360   short id;
00361 
00366   char name[JCONF_MODULENAME_MAXLEN];
00367 
00372   JCONF_AM *amconf;
00373 
00378   JCONF_LM *lmconf;
00379 
00383   boolean compute_only_1pass;
00384     
00388   boolean ccd_handling;
00389     
00393   boolean force_ccd_handling;
00394 
00399   struct {
00403     LOGPROB lm_weight;  
00407     LOGPROB lm_penalty; 
00411     LOGPROB lm_weight2; 
00415     LOGPROB lm_penalty2;        
00419     LOGPROB lm_penalty_trans;
00420     
00424     LOGPROB penalty1;
00428     LOGPROB penalty2;
00429     
00433     boolean lmp2_specified;
00434     
00438     boolean lmp_specified;
00439   } lmp;
00440     
00445   struct {
00451     int specified_trellis_beam_width;
00452     
00453 #if defined(WPAIR) && defined(WPAIR_KEEP_NLIMIT)
00454 
00457     int wpair_keep_nlimit;
00458 #endif
00459 
00460 #ifdef HASH_CACHE_IW
00461 
00464     int iw_cache_rate;
00465 #endif
00466 
00471     boolean old_tree_function_flag;
00472 
00473 #ifdef DETERMINE
00474 
00479     LOGPROB determine_score_thres;
00480 
00485     int determine_duration_thres;
00486 
00487 #endif /* DETERMINE */
00488 
00489 
00490   } pass1;
00491 
00496   struct {
00500     int nbest;                
00504     int enveloped_bestfirst_width;
00505 #ifdef SCAN_BEAM
00506 
00509     LOGPROB scan_beam_thres;
00510 #endif
00511 
00514     int hypo_overflow;
00518     int stack_size;
00523     int lookup_range;
00524     
00529     boolean looktrellis_flag;
00530     
00531   } pass2;
00532 
00537   struct {
00538 
00543     boolean enabled;
00544 
00549     boolean lattice;
00550 
00555     boolean confnet;
00556 
00562     int graph_merge_neighbor_range;
00563 
00564 #ifdef   GRAPHOUT_DEPTHCUT
00565 
00569     int graphout_cut_depth;
00570 #endif
00571 
00572 #ifdef   GRAPHOUT_LIMIT_BOUNDARY_LOOP
00573 
00577     int graphout_limit_boundary_loop_num;
00578 #endif
00579 
00580 #ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION
00581 
00586     boolean graphout_search_delay;
00587 #endif
00588 
00589   } graph;
00590   
00595   struct {
00596 
00601     boolean enabled;
00602 
00606     int sp_frame_duration;
00607 
00612     char *pausemodelname;
00613 
00614 #ifdef SPSEGMENT_NAIST
00615 
00620     int sp_margin;
00621 
00627     int sp_delay;
00628 #endif
00629 
00630   } successive;
00631 
00632 
00637   struct {
00638 
00639 #ifdef CONFIDENCE_MEASURE
00640 
00643     LOGPROB cm_alpha;
00644 
00645 #ifdef   CM_MULTIPLE_ALPHA
00646 
00649     LOGPROB cm_alpha_bgn;
00653     LOGPROB cm_alpha_end;
00657     int cm_alpha_num;
00661     LOGPROB cm_alpha_step;
00662 #endif
00663 
00664 #ifdef   CM_SEARCH_LIMIT
00665 
00668     LOGPROB cm_cut_thres;
00669 #endif
00670 
00671 #ifdef   CM_SEARCH_LIMIT_POPO
00672 
00675     LOGPROB cm_cut_thres_pop;
00676 #endif
00677 
00678 #endif /* CONFIDENCE_MEASURE */
00679 
00680 
00684     boolean align_result_word_flag;
00688     boolean align_result_phoneme_flag;
00692     boolean align_result_state_flag;
00693 
00694   } annotate;
00695 
00700   struct {
00704     int output_hypo_maxnum;
00708     boolean progout_flag;
00712     int progout_interval;
00716     int progout_interval_frame;
00717 
00722     boolean multigramout_flag;
00723 
00724   } output;
00725 
00730   struct {
00734     boolean trellis_check_flag;
00738     boolean triphone_check_flag;
00742     boolean wchmm_check_flag;
00748     boolean start_inactive;
00755     boolean fallback_pass1_flag;
00756     
00757   } sw;
00758 
00759   /* pointer to next instance */
00760   struct __jconf_search__ *next;
00761 
00762 } JCONF_SEARCH;
00763 
00768 typedef struct __Jconf__ {
00769 
00773   struct {
00774 
00779     int type;
00780 
00785     int speech_input;
00786 
00791     int device;
00792 
00797     int plugin_source;
00798 
00803     long sfreq;
00808     long period;
00813     int framesize;
00818     int frameshift;
00819 
00823     boolean use_ds48to16;
00827     char *inputlist_filename;
00831     int adinnet_port;
00832 #ifdef USE_NETAUDIO
00833 
00836     char *netaudio_devname;
00837 #endif
00838 
00842     boolean paramtype_check_flag;
00843 
00844   } input;
00845 
00850   struct {
00854     int level_thres;
00858     int head_margin_msec;
00862     int tail_margin_msec;
00866     int zero_cross_num;
00871     int silence_cut;
00872 #ifdef GMM_VAD
00873 
00877     int gmm_margin;
00887     float gmm_uptrigger_thres;
00897     float gmm_downtrigger_thres;
00898 #endif
00899   } detect;
00900 
00905   struct {
00906 
00910     boolean strip_zero_sample;
00911 
00915     boolean use_zmean;
00916 
00917   } preprocess;
00918 
00923   struct {
00927     char *gmm_filename;
00931     int gmm_gprune_num;
00935     char *gmm_reject_cmn_string;
00939     int rejectshortlen;
00940 #ifdef POWER_REJECT
00941 
00945     float powerthres;
00946 #endif
00947   } reject;
00948 
00953   struct {
00958     boolean realtime_flag;    
00959     
00965     boolean force_realtime_flag;
00966     
00971     boolean forced_realtime;
00972     
00977     boolean segment;
00978 
00979   } decodeopt;
00980 
00986   JCONF_AM *am_root;
00987 
00992   JCONF_LM *lm_root;
00993 
00999   JCONF_SEARCH *search_root;
01000 
01005   JCONF_LM *lmnow;
01010   JCONF_AM *amnow;
01015   JCONF_SEARCH *searchnow;
01016 
01022   JCONF_AM *gmm;
01023 
01028   short optsection;
01029 
01034   boolean optsectioning;
01035 
01036 
01037 } Jconf;
01038 
01039 enum {
01040   JCONF_OPT_DEFAULT,
01041   JCONF_OPT_GLOBAL,
01042   JCONF_OPT_AM,
01043   JCONF_OPT_LM,
01044   JCONF_OPT_SR,
01045   SIZEOF_JCONF_OPT
01046 };
01047 
01048 #endif /* __J_JCONF_H__ */
01049 
01050 /*
01051 
01052 =======================================================
01053   An OLD variable name mapping from old global.h to common.h
01054 
01055   These data are bogus, left here only for reference
01056 =======================================================
01057 
01058 result_reorder_flag -> DELETED
01059 adinnet_port ->jconf.input.adinnet_port
01060 align_result_phoneme_flag ->jconf.annotate.align_result_phoneme_flag
01061 align_result_state_flag ->jconf.annotate.align_result_state_flag
01062 align_result_word_flag ->jconf.annotate.align_result_word_flag
01063 backmax ->recog.backmax
01064 backtrellis ->recog.backtrellis
01065 ccd_flag ->jconf.am.ccd_flag
01066 ccd_flag_force ->jconf.am.ccd_flag_force
01067 cm_alpha ->jconf.annotate.cm_alpha
01068 cm_alpha_bgn ->jconf.annotate.cm_alpha_bgn
01069 cm_alpha_end ->jconf.annotate.cm_alpha_end
01070 cm_alpha_num ->jconf.annotate.cm_alpha_num
01071 cm_alpha_step ->jconf.annotate.cm_alpha_step
01072 cm_cut_thres ->jconf.annotate.cm_cut_thres
01073 cm_cut_thres_pop ->jconf.annotate.cm_cut_thres_pop
01074 cmn_loaded ->recog.cmn_loaded
01075 cmn_map_weight ->jconf.frontend.cmn_map_weight
01076 cmn_update ->jconf.frontend.cmn_update
01077 cmnload_filename ->jconf.frontend.cmnload_filename
01078 cmnsave_filename ->jconf.frontend.cmnsave_filename
01079 compute_only_1pass ->jconf.sw.compute_only_1pass
01080 dfa ->model.dfa
01081 dfa_filename ->jconf.lm.dfa_filename
01082 dictfilename ->jconf.lm.dictfilename
01083 enable_iwsp ->jconf.lm.enable_iwsp
01084 enable_iwspword ->jconf.lm.enable_iwspword
01085 enveloped_bestfirst_width ->jconf.search.pass2.enveloped_bestfirst_width
01086 force_realtime_flag ->jconf.search.pass1.force_realtime_flag
01087 forced_realtime ->jconf.search.pass1.forced_realtime
01088 forcedict_flag ->jconf.lm.forcedict_flag
01089 framemaxscore ->recog.framemaxscore
01090 from_code ->jconf.output.from_code
01091 gmm ->model.gmm
01092 gmm_filename ->jconf.reject.gmm_filename
01093 gmm_gprune_num ->jconf.reject.gmm_gprune_num
01094 gmm_reject_cmn_string ->jconf.reject.gmm_reject_cmn_string
01095 gprune_method ->jconf.am.gprune_method
01096 gramlist ->model.grammars
01097 gramlist_root ->jconf.lm.gramlist_root
01098 graph_merge_neighbor_range ->jconf.graph.graph_merge_neighbor_range
01099 graph_totalwordnum ->recog.graph_totalwordnum
01100 graphout_cut_depth ->jconf.graph.graphout_cut_depth
01101 graphout_limit_boundary_loop_num ->jconf.graph.graphout_limit_boundary_loop_num
01102 graphout_search_delay ->jconf.graph.graphout_search_delay
01103 gs_statenum ->jconf.am.gs_statenum
01104 head_margin_msec ->jconf.detect.head_margin_msec
01105 head_silname ->jconf.lm.head_silname
01106 hmm_gs ->model.hmm_gs
01107 hmm_gs_filename ->jconf.am.hmm_gs_filename
01108 hmmfilename ->jconf.am.hmmfilename
01109 hmminfo ->model.hmminfo
01110 hypo_overflow ->jconf.search.pass2.hypo_overflow
01111 inputlist_filename ->jconf.input.inputlist_filename
01112 iw_cache_rate ->jconf.search.pass1.iw_cache_rate
01113 iwcdmaxn ->jconf.search.pass1.iwcdmaxn
01114 iwcdmethod ->jconf.search.pass1.iwcdmethod
01115 iwsp_penalty ->jconf.lm.iwsp_penalty
01116 iwspentry ->jconf.lm.iwspentry
01117 level_thres ->jconf.detect.level_thres
01118 lm_penalty ->jconf.lm.lm_penalty
01119 lm_penalty2 ->jconf.lm.lm_penalty2
01120 lm_penalty_trans ->jconf.lm.lm_penalty_trans
01121 lm_weight ->jconf.lm.lm_weight
01122 lm_weight2 ->jconf.lm.lm_weight2
01123 lmp_specified ->jconf.lm.lmp_specified
01124 lmp2_specified ->jconf.lm.lmp2_specified
01125 looktrellis_flag ->jconf.search.pass2.looktrellis_flag
01126 lookup_range ->jconf.search.pass2.lookup_range
01127 mapfilename ->jconf.am.mapfilename
01128 mixnum_thres ->jconf.am.mixnum_thres
01129 module_mode -> (app)
01130 module_port -> (app)
01131 module_sd -> (app)
01132 multigramout_flag ->jconf.output.multigramout_flag
01133 nbest ->jconf.search.pass2.nbest
01134 netaudio_devname ->jconf.input.netaudio_devname
01135 ngram ->model.ngram
01136 ngram_filename ->jconf.lm.ngram_filename
01137 ngram_filename_lr_arpa ->jconf.lm.ngram_filename_lr_arpa
01138 ngram_filename_rl_arpa ->jconf.lm.ngram_filename_rl_arpa
01139 old_iwcd_flag -> USE_OLD_IWCD (define.h)
01140 old_tree_function_flag ->jconf.search.pass1.old_tree_function_flag
01141 output_hypo_maxnum ->jconf.output.output_hypo_maxnum
01142 para ->jconf.analysis.para
01143 para_default ->jconf.analysis.para_default
01144 para_hmm ->jconf.analysis.para_hmm
01145 para_htk ->jconf.analysis.para_htk
01146 paramtype_check_flag ->jconf.analysis.paramtype_check_flag
01147 pass1_score ->recog.pass1_score
01148 pass1_wnum ->recog.pass1_wnum
01149 pass1_wseq ->recog.pass1_wseq
01150 penalty1 ->jconf.lm.penalty1
01151 penalty2 ->jconf.lm.penalty2
01152 peseqlen ->recog.peseqlen
01153 progout_flag ->jconf.output.progout_flag
01154 progout_interval ->jconf.output.progout_interval
01155 progout_interval_frame (beam.c) ->jconf.output.progout_interval
01156 realtime_flag ->jconf.search.pass1.realtime_flag
01157 record_dirname ->jconf.output.record_dirname
01158 rejectshortlen ->jconf.reject.rejectshortlen
01159 rest_param ->recog.rest_param
01160 result_output -> (app)
01161 scan_beam_thres ->jconf.search.pass2.scan_beam_thres
01162 separate_score_flag ->jconf.output.separate_score_flag
01163 separate_wnum ->jconf.search.pass1.separate_wnum
01164 silence_cut ->jconf.detect.silence_cut
01165 sp_break_2_begin_word ->recog.sp_break_2_begin_word
01166 sp_break_2_end_word ->recog.sp_break_2_end_word
01167 sp_break_last_nword ->recog.sp_break_last_nword
01168 sp_break_last_nword_allow_override ->recog.sp_break_last_nword_allow_override
01169 sp_break_last_word ->recog.sp_break_last_word
01170 sp_frame_duration ->jconf.successive.sp_frame_duration
01171 specified_trellis_beam_width ->jconf.search.pass1.specified_trellis_beam_width
01172 speech ->recog.speech
01173 speech_input ->jconf.input.speech_input
01174 speechlen ->recog.speechlen
01175 spmodel_name ->jconf.am.spmodel_name
01176 ssbuf ->recog.ssbuf
01177 sscalc ->jconf.frontend.sscalc
01178 sscalc_len ->jconf.frontend.sscalc_len
01179 sslen ->recog.sslen
01180 ssload_filename ->jconf.frontend.ssload_filename
01181 stack_size ->jconf.search.pass2.stack_size
01182 strip_zero_sample ->jconf.frontend.strip_zero_sample
01183 tail_margin_msec ->jconf.detect.tail_margin_msec
01184 tail_silname ->jconf.lm.tail_silname
01185 to_code ->jconf.output.to_code
01186 trellis_beam_width ->recog.trellis_beam_width
01187 trellis_check_flag ->jconf.sw.trellis_check_flag
01188 triphone_check_flag ->jconf.sw.triphone_check_flag
01189 use_ds48to16 ->jconf.input.use_ds48to16
01190 use_zmean ->jconf.frontend.use_zmean
01191 wchmm ->recog.wchmm
01192 wchmm_check_flag ->jconf.sw.wchmm_check_flag
01193 winfo ->model.winfo
01194 wpair_keep_nlimit ->jconf.search.pass1.wpair_keep_nlimit
01195 zero_cross_num ->jconf.detect.zero_cross_num
01196 
01197 verbose_flag -> (remain in global.h)
01198 debug2_flag -> (remain in global.h)
01199 
01200 */
01201