📄 m_options.c
字号:
#endif } else if (strmatch(tmparg,"oss")) {#ifdef HAS_OSS jconf->input.type = INPUT_WAVEFORM; jconf->input.speech_input = SP_MIC; jconf->input.device = SP_INPUT_OSS; jconf->decodeopt.realtime_flag = TRUE;#else jlog("ERROR: m_options: \"-input oss\": OSS support is not built-in\n"); return FALSE;#endif } else if (strmatch(tmparg,"esd")) {#ifdef HAS_ESD jconf->input.type = INPUT_WAVEFORM; jconf->input.speech_input = SP_MIC; jconf->input.device = SP_INPUT_ESD; jconf->decodeopt.realtime_flag = TRUE;#else jlog("ERROR: m_options: \"-input oss\": OSS support is not built-in\n"); return FALSE;#endif#endif#ifdef ENABLE_PLUGIN } else if ((sid = plugin_find_optname("adin_get_optname", tmparg)) != -1) { /* adin plugin */ jconf->input.plugin_source = sid; jconf->input.type = INPUT_WAVEFORM; jconf->input.speech_input = SP_MIC; func = (FUNC_INT) plugin_get_func(sid, "adin_get_configuration"); if (func == NULL) { jlog("ERROR: invalid plugin: adin_get_configuration() not exist\n"); jlog("ERROR: skip option \"-input %s\"\n", tmparg); continue; } jconf->decodeopt.realtime_flag = (*func)(0); } else if ((sid = plugin_find_optname("fvin_get_optname", tmparg)) != -1) { /* vector input plugin */ jconf->input.plugin_source = sid; jconf->input.type = INPUT_VECTOR; jconf->input.speech_input = SP_MFCMODULE; jconf->decodeopt.realtime_flag = FALSE;#endif } else { jlog("ERROR: m_options: unknown speech input source \"%s\"\n", tmparg); return FALSE; } continue; } else if (strmatch(argv[i],"-filelist")) { /* input file list */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; FREE_MEMORY(jconf->input.inputlist_filename); //jconf->input.inputlist_filename = strcpy((char*)mymalloc(strlen(tmparg)+1),tmparg); jconf->input.inputlist_filename = filepath(tmparg, cwd); continue; } else if (strmatch(argv[i],"-rejectshort")) { /* short input rejection */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->reject.rejectshortlen = atoi(tmparg); continue;#ifdef POWER_REJECT } else if (strmatch(argv[i],"-powerthres")) { /* short input rejection */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->reject.powerthres = atoi(tmparg); continue;#endif } else if (strmatch(argv[i],"-force_realtime")) { /* force realtime */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; if (strmatch(tmparg, "on")) { jconf->decodeopt.forced_realtime = TRUE; } else if (strmatch(tmparg, "off")) { jconf->decodeopt.forced_realtime = FALSE; } else { jlog("ERROR: m_options: \"-force_realtime\" should be either \"on\" or \"off\"\n"); return FALSE; } jconf->decodeopt.force_realtime_flag = TRUE; continue; } else if (strmatch(argv[i],"-realtime")) { /* equal to "-force_realtime on" */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->decodeopt.forced_realtime = TRUE; jconf->decodeopt.force_realtime_flag = TRUE; continue; } else if (strmatch(argv[i], "-norealtime")) { /* equal to "-force_realtime off" */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->decodeopt.forced_realtime = FALSE; jconf->decodeopt.force_realtime_flag = TRUE; continue; } else if (strmatch(argv[i],"-forcedict")) { /* skip dict error */ if (!check_section(jconf, argv[i], JCONF_OPT_LM)) return FALSE; jconf->lmnow->forcedict_flag = TRUE; continue; } else if (strmatch(argv[i],"-check")) { /* interactive model check mode */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; if (strmatch(tmparg, "wchmm")) { jconf->searchnow->sw.wchmm_check_flag = TRUE; } else if (strmatch(tmparg, "trellis")) { jconf->searchnow->sw.trellis_check_flag = TRUE; } else if (strmatch(tmparg, "triphone")) { jconf->searchnow->sw.triphone_check_flag = TRUE; } else { jlog("ERROR: m_options: invalid argument for \"-check\": %s\n", tmparg); return FALSE; } continue; } else if (strmatch(argv[i],"-notypecheck")) { /* don't check param type */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->input.paramtype_check_flag = FALSE; continue; } else if (strmatch(argv[i],"-nlimit")) { /* limit N token in a node */#ifdef WPAIR_KEEP_NLIMIT if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->pass1.wpair_keep_nlimit = atoi(tmparg);#else jlog("WARNING: m_options: WPAIR_KEEP_NLIMIT disabled, \"-nlimit\" ignored\n");#endif continue; } else if (strmatch(argv[i],"-lookuprange")) { /* trellis neighbor range */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->pass2.lookup_range = atoi(tmparg); continue; } else if (strmatch(argv[i],"-graphout")) { /* enable graph output */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.enabled = TRUE; jconf->searchnow->graph.lattice = TRUE; jconf->searchnow->graph.confnet = FALSE; continue; } else if (strmatch(argv[i],"-lattice")) { /* enable graph output */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.enabled = TRUE; jconf->searchnow->graph.lattice = TRUE; continue; } else if (strmatch(argv[i],"-nolattice")) { /* disable graph output */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.enabled = FALSE; jconf->searchnow->graph.lattice = FALSE; continue; } else if (strmatch(argv[i],"-confnet")) { /* enable confusion network */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.enabled = TRUE; jconf->searchnow->graph.confnet = TRUE; continue; } else if (strmatch(argv[i],"-noconfnet")) { /* disable graph output */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.enabled = FALSE; jconf->searchnow->graph.confnet = FALSE; continue; } else if (strmatch(argv[i],"-graphrange")) { /* neighbor merge range frame */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->graph.graph_merge_neighbor_range = atoi(tmparg); continue;#ifdef GRAPHOUT_DEPTHCUT } else if (strmatch(argv[i],"-graphcut")) { /* cut graph word by depth */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->graph.graphout_cut_depth = atoi(tmparg); continue;#endif#ifdef GRAPHOUT_LIMIT_BOUNDARY_LOOP } else if (strmatch(argv[i],"-graphboundloop")) { /* neighbor merge range frame */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->graph.graphout_limit_boundary_loop_num = atoi(tmparg); continue;#endif#ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION } else if (strmatch(argv[i],"-graphsearchdelay")) { /* not do graph search termination before the 1st sentence is found */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.graphout_search_delay = TRUE; continue; } else if (strmatch(argv[i],"-nographsearchdelay")) { /* not do graph search termination before the 1st sentence is found */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->graph.graphout_search_delay = FALSE; continue;#endif } else if (strmatch(argv[i],"-looktrellis")) { /* activate loopuprange */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->pass2.looktrellis_flag = TRUE; continue; } else if (strmatch(argv[i],"-multigramout")) { /* enable per-grammar decoding on 2nd pass */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->output.multigramout_flag = TRUE; continue; } else if (strmatch(argv[i],"-nomultigramout")) { /* disable per-grammar decoding on 2nd pass */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->output.multigramout_flag = FALSE; continue; } else if (strmatch(argv[i],"-oldtree")) { /* use old tree function */ if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; jconf->searchnow->pass1.old_tree_function_flag = TRUE; continue; } else if (strmatch(argv[i],"-sb")) { /* score envelope width in 2nd pass */#ifdef SCAN_BEAM if (!check_section(jconf, argv[i], JCONF_OPT_SR)) return FALSE; GET_TMPARG; jconf->searchnow->pass2.scan_beam_thres = atof(tmparg);#else jlog("WARNING: m_options: SCAN_BEAM disabled, \"-sb\" ignored\n");#endif continue; } else if (strmatch(argv[i],"-discount")) { /* (bogus) */ jlog("WARNING: m_options: option \"-discount\" is now bogus, ignored\n"); continue; } else if (strmatch(argv[i],"-cutsilence")) { /* force (long) silence detection on */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->detect.silence_cut = 1; continue; } else if (strmatch(argv[i],"-nocutsilence")) { /* force (long) silence detection off */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->detect.silence_cut = 0; continue; } else if (strmatch(argv[i],"-pausesegment")) { /* force (long) silence detection on (for backward compatibility) */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->detect.silence_cut = 1; continue; } else if (strmatch(argv[i],"-nopausesegment")) { /* force (long) silence detection off (for backward comatibility) */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; jconf->detect.silence_cut = 0; continue; } else if (strmatch(argv[i],"-lv")) { /* silence detection threshold level */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->detect.level_thres = atoi(tmparg); continue; } else if (strmatch(argv[i],"-zc")) { /* silence detection zero cross num */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->detect.zero_cross_num = atoi(tmparg); continue; } else if (strmatch(argv[i],"-headmargin")) { /* head silence length */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->detect.head_margin_msec = atoi(tmparg); continue; } else if (strmatch(argv[i],"-tailmargin")) { /* tail silence length */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE; GET_TMPARG; jconf->detect.tail_margin_msec = atoi(tmparg); continue; } else if (strmatch(argv[i],"-hipass")||strmatch(argv[i],"-hifreq")) { /* frequency of upper band limit */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.hipass = atoi(tmparg); continue; } else if (strmatch(argv[i],"-lopass")||strmatch(argv[i],"-lofreq")) { /* frequency of lower band limit */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.lopass = atoi(tmparg); continue; } else if (strmatch(argv[i],"-smpPeriod")) { /* sample period (ns) */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.smp_period = atoi(tmparg); jconf->amnow->analysis.para.smp_freq = period2freq(jconf->amnow->analysis.para.smp_period); continue; } else if (strmatch(argv[i],"-smpFreq")) { /* sample frequency (Hz) */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.smp_freq = atoi(tmparg); jconf->amnow->analysis.para.smp_period = freq2period(jconf->amnow->analysis.para.smp_freq); continue; } else if (strmatch(argv[i],"-fsize")) { /* Window size */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.framesize = atoi(tmparg); continue; } else if (strmatch(argv[i],"-fshift")) { /* Frame shiht */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.frameshift = atoi(tmparg); continue; } else if (strmatch(argv[i],"-preemph")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.preEmph = atof(tmparg); continue; } else if (strmatch(argv[i],"-fbank")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.fbank_num = atoi(tmparg); continue; } else if (strmatch(argv[i],"-ceplif")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.lifter = atoi(tmparg); continue; } else if (strmatch(argv[i],"-rawe")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.raw_e = TRUE; continue; } else if (strmatch(argv[i],"-norawe")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.raw_e = FALSE; continue; } else if (strmatch(argv[i],"-enormal")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.enormal = TRUE; continue; } else if (strmatch(argv[i],"-noenormal")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.enormal = FALSE; continue; } else if (strmatch(argv[i],"-escale")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.escale = atof(tmparg); continue; } else if (strmatch(argv[i],"-silfloor")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.silFloor = atof(tmparg); continue; } else if (strmatch(argv[i],"-delwin")) { /* Delta window length */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.delWin = atoi(tmparg); continue; } else if (strmatch(argv[i],"-accwin")) { /* Acceleration window length */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.accWin = atoi(tmparg); continue; } else if (strmatch(argv[i],"-ssalpha")) { /* alpha coef. for SS */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->frontend.ss_alpha = atof(tmparg); continue; } else if (strmatch(argv[i],"-ssfloor")) { /* spectral floor for SS */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->frontend.ss_floor = atof(tmparg); continue; } else if (strmatch(argv[i],"-cvn")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.cvn = 1; continue; } else if (strmatch(argv[i],"-nocvn")) { if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.cvn = 0; continue; } else if (strmatch(argv[i],"-vtln")) { /* VTLN */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; GET_TMPARG; jconf->amnow->analysis.para.vtln_alpha = (float)atof(tmparg); GET_TMPARG; jconf->amnow->analysis.para.vtln_lower = (float)atof(tmparg); GET_TMPARG; jconf->amnow->analysis.para.vtln_upper = (float)atof(tmparg); continue; } else if (strmatch(argv[i],"-novtln")) { /* disable VTLN */ if (!check_section(jconf, argv[i], JCONF_OPT_AM)) return FALSE; jconf->amnow->analysis.para.vtln_alpha = 1.0; continue; } else if (strmatch(argv[i],"-48")) { /* use 48kHz input and down to 16kHz */ if (!check_section(jconf, argv[i], JCONF_OPT_GLOBAL)) return FALSE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -