/** * @file default.c * * * @brief 設定のデフォルト値のセット * * 設定可能なパラメータの初期値をセットします. * * * * @brief Set system default values for configuration parameters * * This file contains a function to set system default values for all the * configuration parameters. This will be called at initialization phase. * * * @author Akinobu Lee * @date Fri Feb 16 15:05:43 2007 * * $Revision: 1.16 $ * */ /* * Copyright (c) 1991-2012 Kawahara Lab., Kyoto University * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright (c) 2005-2012 Julius project team, Nagoya Institute of Technology * All rights reserved */ #include /** * * @brief パラメータ構造体 Jconf に初期値を代入する. * * ここで値が初期化されるのは,Jconf 自身に格納される値のみである. * 下位の構造(AM, LM, SEARCH)のパラメータはセットしないので, * それぞれ別の関数で初期化する必要が有る. * * @param j [in] パラメータ構造体 * * * @brief Fill in the system default values to a parameter structure Jconf. * * Only values of the Jconf will be set. The parameters in sub-structures * (AM, LM, SEARCH) will not be set in this function: they should be * initialized separatedly at each corresponding functions. * * @param j [in] parameter structure * * * @callgraph * @callergraph * */ void jconf_set_default_values(Jconf *j) { j->input.type = INPUT_VECTOR; j->input.speech_input = SP_MFCFILE; j->input.device = SP_INPUT_DEFAULT; j->input.plugin_source = -1; j->input.sfreq = 16000; j->input.period = 625; j->input.framesize = DEF_FRAMESIZE; j->input.frameshift = DEF_FRAMESHIFT; j->input.use_ds48to16 = FALSE; j->input.inputlist_filename = NULL; j->input.adinnet_port = ADINNET_PORT; #ifdef USE_NETAUDIO j->input.netaudio_devname = NULL; #endif j->input.paramtype_check_flag = TRUE; j->detect.level_thres = 2000; j->detect.head_margin_msec = 300; j->detect.tail_margin_msec = 400; j->detect.zero_cross_num = 60; j->detect.silence_cut = 2; /* accept device default */ j->detect.chunk_size = 1000; #ifdef GMM_VAD j->detect.gmm_margin = DEFAULT_GMM_MARGIN; j->detect.gmm_uptrigger_thres = 0.7; j->detect.gmm_downtrigger_thres = -0.2; #endif j->preprocess.strip_zero_sample = TRUE; j->preprocess.use_zmean = FALSE; j->preprocess.level_coef = 1.0; j->reject.gmm_filename = NULL; j->reject.gmm_gprune_num = 10; j->reject.gmm_reject_cmn_string = NULL; j->reject.rejectshortlen = 0; #ifdef POWER_REJECT j->reject.powerthres = POWER_REJECT_DEFAULT_THRES; #endif j->decodeopt.forced_realtime = FALSE; j->decodeopt.force_realtime_flag = FALSE; j->decodeopt.segment = FALSE; j->optsection = JCONF_OPT_DEFAULT; j->optsectioning = TRUE; } /** * * Fill in system default values to an AM parameter structure. * @param j [in] AM configuration parameter structure * * * AMパラメータ構造体に初期値を代入する. * * @param j [in] AMパラメータ構造体 * * * * @callgraph * @callergraph * */ void jconf_set_default_values_am(JCONF_AM *j) { j->name[0] = '\0'; j->hmmfilename = NULL; j->mapfilename = NULL; j->gprune_method = GPRUNE_SEL_UNDEF; j->mixnum_thres = 2; j->spmodel_name = NULL; j->hmm_gs_filename = NULL; j->gs_statenum = 24; j->iwcdmethod = IWCD_UNDEF; j->iwcdmaxn = 3; j->iwsp_penalty = -1.0; j->force_multipath = FALSE; undef_para(&(j->analysis.para)); undef_para(&(j->analysis.para_hmm)); undef_para(&(j->analysis.para_default)); undef_para(&(j->analysis.para_htk)); make_default_para(&(j->analysis.para_default)); make_default_para_htk(&(j->analysis.para_htk)); j->analysis.cmnload_filename = NULL; j->analysis.cmn_update = TRUE; j->analysis.cmnsave_filename = NULL; j->analysis.cmn_map_weight = 100.0; j->frontend.ss_alpha = DEF_SSALPHA; j->frontend.ss_floor = DEF_SSFLOOR; j->frontend.sscalc = FALSE; j->frontend.sscalc_len = 300; j->frontend.ssload_filename = NULL; } /** * * Fill in system default values to an LM parameter structure. * * @param j [in] LM configuration parameter structure * * * LMパラメータ構造体に初期値を代入する. * * @param j [in] LMパラメータ構造体 * * * @callgraph * @callergraph * */ void jconf_set_default_values_lm(JCONF_LM *j) { j->name[0] = '\0'; j->lmtype = LM_UNDEF; j->lmvar = LM_UNDEF; j->dictfilename = NULL; j->head_silname = NULL; j->tail_silname = NULL; j->forcedict_flag = FALSE; j->ngram_filename = NULL; j->ngram_filename_lr_arpa = NULL; j->ngram_filename_rl_arpa = NULL; j->dfa_filename = NULL; j->gramlist_root = NULL; j->wordlist_root = NULL; j->enable_iwsp = FALSE; j->enable_iwspword = FALSE; j->iwspentry = NULL; #ifdef SEPARATE_BY_UNIGRAM j->separate_wnum = 150; #endif strcpy(j->wordrecog_head_silence_model_name, "silB"); strcpy(j->wordrecog_tail_silence_model_name, "silE"); j->wordrecog_silence_context_name[0] = '\0'; strcpy(j->unknown_name, UNK_WORD_DEFAULT); // or UNK_WORD_DEFAULT2 j->additional_dict_files = NULL; j->additional_dict_entries = NULL; } /** * * Fill in system default values to a search parameter structure. * * @param j [in] search configuration parameter structure * * * 探索(SEARCH)パラメータ構造体に初期値を代入する. * * @param j [in] 探索パラメータ構造体 * * * @callgraph * @callergraph * */ void jconf_set_default_values_search(JCONF_SEARCH *j) { j->name[0] = '\0'; j->amconf = NULL; j->lmconf = NULL; j->compute_only_1pass = FALSE; j->force_ccd_handling = FALSE; j->ccd_handling = FALSE; /* default values below are assigned later using HMM information: j->lmp.* */ j->lmp.lm_penalty_trans = 0.0; j->lmp.penalty1 = 0.0; j->lmp.penalty2 = 0.0; j->lmp.lmp2_specified = FALSE; j->lmp.lmp_specified = FALSE; j->pass1.specified_trellis_beam_width = -1; #ifdef SCORE_PRUNING j->pass1.score_pruning_width = -1.0; #endif #if defined(WPAIR) && defined(WPAIR_KEEP_NLIMIT) j->pass1.wpair_keep_nlimit = 3; #endif #ifdef HASH_CACHE_IW j->pass1.iw_cache_rate = 10; #endif j->pass1.old_tree_function_flag = FALSE; #ifdef DETERMINE j->pass1.determine_score_thres = 10.0; j->pass1.determine_duration_thres = 6; #endif if (strmatch(JULIUS_SETUP, "fast")) { j->pass2.nbest = 1; j->pass2.enveloped_bestfirst_width = 30; } else { j->pass2.nbest = 10; j->pass2.enveloped_bestfirst_width = 100; } #ifdef SCAN_BEAM j->pass2.scan_beam_thres = 80.0; #endif j->pass2.hypo_overflow = 2000; j->pass2.stack_size = 500; j->pass2.lookup_range = 5; j->pass2.looktrellis_flag = FALSE; /* dfa */ j->graph.enabled = FALSE; j->graph.lattice = FALSE; j->graph.confnet = FALSE; j->graph.graph_merge_neighbor_range = 0; #ifdef GRAPHOUT_DEPTHCUT j->graph.graphout_cut_depth = 80; #endif #ifdef GRAPHOUT_LIMIT_BOUNDARY_LOOP j->graph.graphout_limit_boundary_loop_num = 20; #endif #ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION j->graph.graphout_search_delay = FALSE; #endif j->successive.enabled = FALSE; j->successive.sp_frame_duration = 10; j->successive.pausemodelname = NULL; #ifdef SPSEGMENT_NAIST j->successive.sp_margin = DEFAULT_SP_MARGIN; j->successive.sp_delay = DEFAULT_SP_DELAY; #endif #ifdef CONFIDENCE_MEASURE j->annotate.cm_alpha = 0.05; #ifdef CM_MULTIPLE_ALPHA j->annotate.cm_alpha_bgn = 0.03; j->annotate.cm_alpha_end = 0.15; j->annotate.cm_alpha_num = 5; j->annotate.cm_alpha_step = 0.03; #endif #ifdef CM_SEARCH_LIMIT j->annotate.cm_cut_thres = 0.03; #endif #ifdef CM_SEARCH_LIMIT_POPO j->annotate.cm_cut_thres_pop = 0.1; #endif #endif /* CONFIDENCE_MEASURE */ j->annotate.align_result_word_flag = FALSE; j->annotate.align_result_phoneme_flag = FALSE; j->annotate.align_result_state_flag = FALSE; j->output.output_hypo_maxnum = 1; j->output.progout_flag = FALSE; j->output.progout_interval = 300; j->output.multigramout_flag = FALSE; /* dfa */ j->sw.trellis_check_flag = FALSE; j->sw.triphone_check_flag = FALSE; j->sw.wchmm_check_flag = FALSE; j->sw.start_inactive = FALSE; j->sw.fallback_pass1_flag = FALSE; } /* end of file */