libjulius/include/julius/jconf.h

Go to the documentation of this file.
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 
00212   /* pointer to next instance */
00213   struct __jconf_am__ *next;
00214 
00215 } JCONF_AM;
00216 
00221 typedef struct __jconf_lm__ {
00222 
00227   short id;
00228 
00233   char name[JCONF_MODULENAME_MAXLEN];
00234 
00239   int lmtype;
00240 
00246   int lmvar;
00247 
00251   char *dictfilename;
00252   
00256   char *head_silname;
00260   char *tail_silname;
00261   
00265   boolean forcedict_flag;
00266   
00270   char *ngram_filename;
00274   char *ngram_filename_lr_arpa;
00278   char *ngram_filename_rl_arpa;
00279   
00283   char *dfa_filename;
00284   
00288   GRAMLIST *gramlist_root;
00289   
00293   GRAMLIST *wordlist_root;
00294   
00299   boolean enable_iwsp; 
00300   
00305   boolean enable_iwspword;
00309   char *iwspentry;
00310   
00311 #ifdef SEPARATE_BY_UNIGRAM
00312 
00316   int separate_wnum;
00317 #endif
00318 
00322   char wordrecog_head_silence_model_name[MAX_HMMNAME_LEN];
00326   char wordrecog_tail_silence_model_name[MAX_HMMNAME_LEN];
00330   char wordrecog_silence_context_name[MAX_HMMNAME_LEN];
00331 
00336   struct __jconf_lm__ *next;
00337   
00338 } JCONF_LM;
00339 
00344 typedef struct __jconf_search__ {
00345 
00350   short id;
00351 
00356   char name[JCONF_MODULENAME_MAXLEN];
00357 
00362   JCONF_AM *amconf;
00363 
00368   JCONF_LM *lmconf;
00369 
00373   boolean compute_only_1pass;
00374     
00378   boolean ccd_handling;
00379     
00383   boolean force_ccd_handling;
00384 
00389   struct {
00393     LOGPROB lm_weight;  
00397     LOGPROB lm_penalty; 
00401     LOGPROB lm_weight2; 
00405     LOGPROB lm_penalty2;        
00409     LOGPROB lm_penalty_trans;
00410     
00414     LOGPROB penalty1;
00418     LOGPROB penalty2;
00419     
00423     boolean lmp2_specified;
00424     
00428     boolean lmp_specified;
00429   } lmp;
00430     
00435   struct {
00441     int specified_trellis_beam_width;
00442     
00443 #if defined(WPAIR) && defined(WPAIR_KEEP_NLIMIT)
00444 
00447     int wpair_keep_nlimit;
00448 #endif
00449 
00450 #ifdef HASH_CACHE_IW
00451 
00454     int iw_cache_rate;
00455 #endif
00456 
00461     boolean old_tree_function_flag;
00462 
00463 #ifdef DETERMINE
00464 
00469     LOGPROB determine_score_thres;
00470 
00475     int determine_duration_thres;
00476 
00477 #endif /* DETERMINE */
00478 
00479 
00480   } pass1;
00481 
00486   struct {
00490     int nbest;                
00494     int enveloped_bestfirst_width;
00495 #ifdef SCAN_BEAM
00496 
00499     LOGPROB scan_beam_thres;
00500 #endif
00501 
00504     int hypo_overflow;
00508     int stack_size;
00513     int lookup_range;
00514     
00519     boolean looktrellis_flag;
00520     
00521   } pass2;
00522 
00527   struct {
00528 
00533     boolean enabled;
00534 
00539     boolean lattice;
00540 
00545     boolean confnet;
00546 
00552     int graph_merge_neighbor_range;
00553 
00554 #ifdef   GRAPHOUT_DEPTHCUT
00555 
00559     int graphout_cut_depth;
00560 #endif
00561 
00562 #ifdef   GRAPHOUT_LIMIT_BOUNDARY_LOOP
00563 
00567     int graphout_limit_boundary_loop_num;
00568 #endif
00569 
00570 #ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION
00571 
00576     boolean graphout_search_delay;
00577 #endif
00578 
00579   } graph;
00580   
00585   struct {
00586 
00591     boolean enabled;
00592 
00596     int sp_frame_duration;
00597 
00602     char *pausemodelname;
00603 
00604 #ifdef SPSEGMENT_NAIST
00605 
00610     int sp_margin;
00611 
00617     int sp_delay;
00618 #endif
00619 
00620   } successive;
00621 
00622 
00627   struct {
00628 
00629 #ifdef CONFIDENCE_MEASURE
00630 
00633     LOGPROB cm_alpha;
00634 
00635 #ifdef   CM_MULTIPLE_ALPHA
00636 
00639     LOGPROB cm_alpha_bgn;
00643     LOGPROB cm_alpha_end;
00647     int cm_alpha_num;
00651     LOGPROB cm_alpha_step;
00652 #endif
00653 
00654 #ifdef   CM_SEARCH_LIMIT
00655 
00658     LOGPROB cm_cut_thres;
00659 #endif
00660 
00661 #ifdef   CM_SEARCH_LIMIT_POPO
00662 
00665     LOGPROB cm_cut_thres_pop;
00666 #endif
00667 
00668 #endif /* CONFIDENCE_MEASURE */
00669 
00670 
00674     boolean align_result_word_flag;
00678     boolean align_result_phoneme_flag;
00682     boolean align_result_state_flag;
00683 
00684   } annotate;
00685 
00690   struct {
00694     int output_hypo_maxnum;
00698     boolean progout_flag;
00702     int progout_interval;
00706     int progout_interval_frame;
00707 
00712     boolean multigramout_flag;
00713 
00714   } output;
00715 
00720   struct {
00724     boolean trellis_check_flag;
00728     boolean triphone_check_flag;
00732     boolean wchmm_check_flag;
00738     boolean start_inactive;
00739     
00740   } sw;
00741 
00742   /* pointer to next instance */
00743   struct __jconf_search__ *next;
00744 
00745 } JCONF_SEARCH;
00746 
00751 typedef struct __Jconf__ {
00752 
00756   struct {
00757 
00762     int speech_input;
00767     long sfreq;
00772     long period;
00777     int framesize;
00782     int frameshift;
00783 
00787     boolean use_ds48to16;
00791     char *inputlist_filename;
00795     int adinnet_port;
00796 #ifdef USE_NETAUDIO
00797 
00800     char *netaudio_devname;
00801 #endif
00802 
00806     boolean paramtype_check_flag;
00807 
00808   } input;
00809 
00814   struct {
00818     int level_thres;
00822     int head_margin_msec;
00826     int tail_margin_msec;
00830     int zero_cross_num;
00835     int silence_cut;
00836 #ifdef GMM_VAD
00837 
00841     int gmm_margin;
00842 #endif
00843   } detect;
00844 
00849   struct {
00850 
00854     boolean strip_zero_sample;
00855 
00859     boolean use_zmean;
00860 
00861   } preprocess;
00862 
00867   struct {
00871     char *gmm_filename;
00875     int gmm_gprune_num;
00879     char *gmm_reject_cmn_string;
00883     int rejectshortlen;
00884 #ifdef POWER_REJECT
00885 
00889     float powerthres;
00890 #endif
00891   } reject;
00892 
00897   struct {
00902     boolean realtime_flag;    
00903     
00909     boolean force_realtime_flag;
00910     
00915     boolean forced_realtime;
00916     
00921     boolean segment;
00922 
00923   } decodeopt;
00924 
00930   JCONF_AM *am_root;
00931 
00936   JCONF_LM *lm_root;
00937 
00943   JCONF_SEARCH *search_root;
00944 
00949   JCONF_LM *lmnow;
00954   JCONF_AM *amnow;
00959   JCONF_SEARCH *searchnow;
00960 
00966   JCONF_AM *gmm;
00967 
00968 } Jconf;
00969 
00970 #endif /* __J_JCONF_H__ */
00971 
00972 /*
00973 
00974 =======================================================
00975   An OLD variable name mapping from old global.h to common.h
00976 
00977   These data are bogus, left here only for reference
00978 =======================================================
00979 
00980 result_reorder_flag -> DELETED
00981 adinnet_port ->jconf.input.adinnet_port
00982 align_result_phoneme_flag ->jconf.annotate.align_result_phoneme_flag
00983 align_result_state_flag ->jconf.annotate.align_result_state_flag
00984 align_result_word_flag ->jconf.annotate.align_result_word_flag
00985 backmax ->recog.backmax
00986 backtrellis ->recog.backtrellis
00987 ccd_flag ->jconf.am.ccd_flag
00988 ccd_flag_force ->jconf.am.ccd_flag_force
00989 cm_alpha ->jconf.annotate.cm_alpha
00990 cm_alpha_bgn ->jconf.annotate.cm_alpha_bgn
00991 cm_alpha_end ->jconf.annotate.cm_alpha_end
00992 cm_alpha_num ->jconf.annotate.cm_alpha_num
00993 cm_alpha_step ->jconf.annotate.cm_alpha_step
00994 cm_cut_thres ->jconf.annotate.cm_cut_thres
00995 cm_cut_thres_pop ->jconf.annotate.cm_cut_thres_pop
00996 cmn_loaded ->recog.cmn_loaded
00997 cmn_map_weight ->jconf.frontend.cmn_map_weight
00998 cmn_update ->jconf.frontend.cmn_update
00999 cmnload_filename ->jconf.frontend.cmnload_filename
01000 cmnsave_filename ->jconf.frontend.cmnsave_filename
01001 compute_only_1pass ->jconf.sw.compute_only_1pass
01002 dfa ->model.dfa
01003 dfa_filename ->jconf.lm.dfa_filename
01004 dictfilename ->jconf.lm.dictfilename
01005 enable_iwsp ->jconf.lm.enable_iwsp
01006 enable_iwspword ->jconf.lm.enable_iwspword
01007 enveloped_bestfirst_width ->jconf.search.pass2.enveloped_bestfirst_width
01008 force_realtime_flag ->jconf.search.pass1.force_realtime_flag
01009 forced_realtime ->jconf.search.pass1.forced_realtime
01010 forcedict_flag ->jconf.lm.forcedict_flag
01011 framemaxscore ->recog.framemaxscore
01012 from_code ->jconf.output.from_code
01013 gmm ->model.gmm
01014 gmm_filename ->jconf.reject.gmm_filename
01015 gmm_gprune_num ->jconf.reject.gmm_gprune_num
01016 gmm_reject_cmn_string ->jconf.reject.gmm_reject_cmn_string
01017 gprune_method ->jconf.am.gprune_method
01018 gramlist ->model.grammars
01019 gramlist_root ->jconf.lm.gramlist_root
01020 graph_merge_neighbor_range ->jconf.graph.graph_merge_neighbor_range
01021 graph_totalwordnum ->recog.graph_totalwordnum
01022 graphout_cut_depth ->jconf.graph.graphout_cut_depth
01023 graphout_limit_boundary_loop_num ->jconf.graph.graphout_limit_boundary_loop_num
01024 graphout_search_delay ->jconf.graph.graphout_search_delay
01025 gs_statenum ->jconf.am.gs_statenum
01026 head_margin_msec ->jconf.detect.head_margin_msec
01027 head_silname ->jconf.lm.head_silname
01028 hmm_gs ->model.hmm_gs
01029 hmm_gs_filename ->jconf.am.hmm_gs_filename
01030 hmmfilename ->jconf.am.hmmfilename
01031 hmminfo ->model.hmminfo
01032 hypo_overflow ->jconf.search.pass2.hypo_overflow
01033 inputlist_filename ->jconf.input.inputlist_filename
01034 iw_cache_rate ->jconf.search.pass1.iw_cache_rate
01035 iwcdmaxn ->jconf.search.pass1.iwcdmaxn
01036 iwcdmethod ->jconf.search.pass1.iwcdmethod
01037 iwsp_penalty ->jconf.lm.iwsp_penalty
01038 iwspentry ->jconf.lm.iwspentry
01039 level_thres ->jconf.detect.level_thres
01040 lm_penalty ->jconf.lm.lm_penalty
01041 lm_penalty2 ->jconf.lm.lm_penalty2
01042 lm_penalty_trans ->jconf.lm.lm_penalty_trans
01043 lm_weight ->jconf.lm.lm_weight
01044 lm_weight2 ->jconf.lm.lm_weight2
01045 lmp_specified ->jconf.lm.lmp_specified
01046 lmp2_specified ->jconf.lm.lmp2_specified
01047 looktrellis_flag ->jconf.search.pass2.looktrellis_flag
01048 lookup_range ->jconf.search.pass2.lookup_range
01049 mapfilename ->jconf.am.mapfilename
01050 mixnum_thres ->jconf.am.mixnum_thres
01051 module_mode -> (app)
01052 module_port -> (app)
01053 module_sd -> (app)
01054 multigramout_flag ->jconf.output.multigramout_flag
01055 nbest ->jconf.search.pass2.nbest
01056 netaudio_devname ->jconf.input.netaudio_devname
01057 ngram ->model.ngram
01058 ngram_filename ->jconf.lm.ngram_filename
01059 ngram_filename_lr_arpa ->jconf.lm.ngram_filename_lr_arpa
01060 ngram_filename_rl_arpa ->jconf.lm.ngram_filename_rl_arpa
01061 old_iwcd_flag -> USE_OLD_IWCD (define.h)
01062 old_tree_function_flag ->jconf.search.pass1.old_tree_function_flag
01063 output_hypo_maxnum ->jconf.output.output_hypo_maxnum
01064 para ->jconf.analysis.para
01065 para_default ->jconf.analysis.para_default
01066 para_hmm ->jconf.analysis.para_hmm
01067 para_htk ->jconf.analysis.para_htk
01068 paramtype_check_flag ->jconf.analysis.paramtype_check_flag
01069 pass1_score ->recog.pass1_score
01070 pass1_wnum ->recog.pass1_wnum
01071 pass1_wseq ->recog.pass1_wseq
01072 penalty1 ->jconf.lm.penalty1
01073 penalty2 ->jconf.lm.penalty2
01074 peseqlen ->recog.peseqlen
01075 progout_flag ->jconf.output.progout_flag
01076 progout_interval ->jconf.output.progout_interval
01077 progout_interval_frame (beam.c) ->jconf.output.progout_interval
01078 realtime_flag ->jconf.search.pass1.realtime_flag
01079 record_dirname ->jconf.output.record_dirname
01080 rejectshortlen ->jconf.reject.rejectshortlen
01081 rest_param ->recog.rest_param
01082 result_output -> (app)
01083 scan_beam_thres ->jconf.search.pass2.scan_beam_thres
01084 separate_score_flag ->jconf.output.separate_score_flag
01085 separate_wnum ->jconf.search.pass1.separate_wnum
01086 silence_cut ->jconf.detect.silence_cut
01087 sp_break_2_begin_word ->recog.sp_break_2_begin_word
01088 sp_break_2_end_word ->recog.sp_break_2_end_word
01089 sp_break_last_nword ->recog.sp_break_last_nword
01090 sp_break_last_nword_allow_override ->recog.sp_break_last_nword_allow_override
01091 sp_break_last_word ->recog.sp_break_last_word
01092 sp_frame_duration ->jconf.successive.sp_frame_duration
01093 specified_trellis_beam_width ->jconf.search.pass1.specified_trellis_beam_width
01094 speech ->recog.speech
01095 speech_input ->jconf.input.speech_input
01096 speechlen ->recog.speechlen
01097 spmodel_name ->jconf.am.spmodel_name
01098 ssbuf ->recog.ssbuf
01099 sscalc ->jconf.frontend.sscalc
01100 sscalc_len ->jconf.frontend.sscalc_len
01101 sslen ->recog.sslen
01102 ssload_filename ->jconf.frontend.ssload_filename
01103 stack_size ->jconf.search.pass2.stack_size
01104 strip_zero_sample ->jconf.frontend.strip_zero_sample
01105 tail_margin_msec ->jconf.detect.tail_margin_msec
01106 tail_silname ->jconf.lm.tail_silname
01107 to_code ->jconf.output.to_code
01108 trellis_beam_width ->recog.trellis_beam_width
01109 trellis_check_flag ->jconf.sw.trellis_check_flag
01110 triphone_check_flag ->jconf.sw.triphone_check_flag
01111 use_ds48to16 ->jconf.input.use_ds48to16
01112 use_zmean ->jconf.frontend.use_zmean
01113 wchmm ->recog.wchmm
01114 wchmm_check_flag ->jconf.sw.wchmm_check_flag
01115 winfo ->model.winfo
01116 wpair_keep_nlimit ->jconf.search.pass1.wpair_keep_nlimit
01117 zero_cross_num ->jconf.detect.zero_cross_num
01118 
01119 verbose_flag -> (remain in global.h)
01120 debug2_flag -> (remain in global.h)
01121 
01122 */
01123  

Generated on Tue Dec 18 15:59:50 2007 for Julius by  doxygen 1.5.4