⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_info.c

📁 julius version 4.12.about sound recognition.
💻 C
📖 第 1 页 / 共 2 页
字号:
    jlog("\n\n");    if (r->wchmm != NULL) {      print_wchmm_info(r->wchmm); jlog("\n");    }    if (r->lmtype == LM_PROB) {      jlog(" Inter-word N-gram cache: \n");      {	int num, len;#ifdef UNIGRAM_FACTORING	len = r->wchmm->isolatenum;	jlog("\troot node to be cached = %d / %d (isolated only)\n",	     len, r->wchmm->startnum);#else	len = r->wchmm->startnum;	jlog("\troot node to be cached = %d (all)\n", len);#endif#ifdef HASH_CACHE_IW	num = (r->config->pass1.iw_cache_rate * r->lm->ngram->max_word_num) / 100;	jlog("\tword ends to be cached = %d / %d\n", num, r->lm->ngram->max_word_num);#else	num = r->lm->ngram->max_word_num;	jlog("\tword ends to be cached = %d (all)\n", num);#endif	jlog("\t  max. allocation size = %dMB\n", num * len / 1000 * sizeof(LOGPROB) / 1000);      }    }    if (r->lmtype == LM_PROB) {      jlog("\t(-lmp)  pass1 LM weight = %2.1f  ins. penalty = %+2.1f\n", r->config->lmp.lm_weight, r->config->lmp.lm_penalty);      jlog("\t(-lmp2) pass2 LM weight = %2.1f  ins. penalty = %+2.1f\n", r->config->lmp.lm_weight2, r->config->lmp.lm_penalty2);      jlog("\t(-transp)trans. penalty = %+2.1f per word\n", r->config->lmp.lm_penalty_trans);    } else if (r->lmtype == LM_DFA && r->lmvar == LM_DFA_GRAMMAR) {      jlog("\t(-penalty1) IW penalty1 = %+2.1f\n", r->config->lmp.penalty1);      jlog("\t(-penalty2) IW penalty2 = %+2.1f\n", r->config->lmp.penalty2);    }#ifdef CONFIDENCE_MEASURE#ifdef CM_MULTIPLE_ALPHA    jlog("\t(-cmalpha)CM alpha coef = from %f to %f by step of %f (%d outputs)\n", r->config->annotate.cm_alpha_bgn, r->config->annotate.cm_alpha_end, r->config->annotate.cm_alpha_step, r->config->annotate.cm_alpha_num);#else    jlog("\t(-cmalpha)CM alpha coef = %f\n", r->config->annotate.cm_alpha);#endif#ifdef CM_SEARCH_LIMIT    jlog("\t(-cmthres) CM cut thres = %f for hypo generation\n", r->config->annotate.cm_cut_thres);#endif#ifdef CM_SEARCH_LIMIT_POP    jlog("\t(-cmthres2)CM cut thres = %f for popped hypo\n", r->config->annotate.cm_cut_thres_pop);#endif#endif /* CONFIDENCE_MEASURE */    jlog("\n");    if (r->am->hmminfo->multipath) {      if (r->lm->config->enable_iwsp) {	jlog("\t inter-word short pause = on (append \"%s\" for each word tail)\n", r->am->hmminfo->sp->name);	jlog("\t  sp transition penalty = %+2.1f\n", r->am->config->iwsp_penalty);      }    }    if (r->lmvar == LM_DFA_WORD) {#ifdef DETERMINE      jlog("    early word determination:  (-wed)\n");      jlog("\tscore threshold    = %f\n", r->config->pass1.determine_score_thres);      jlog("\tframe dur. thres   = %d\n", r->config->pass1.determine_duration_thres);#endif    }    jlog(" Search parameters: \n");    jlog("\t    multi-path handling = ");    if (r->am->hmminfo->multipath) {      jlog("yes, multi-path mode enabled\n");    } else {      jlog("no\n");    }    jlog("\t(-b) trellis beam width = %d", r->trellis_beam_width);    if (r->config->pass1.specified_trellis_beam_width == -1) {      jlog(" (-1 or not specified - guessed)\n");    } else if (r->config->pass1.specified_trellis_beam_width == 0) {      jlog(" (0 - full)\n");    } else {      jlog("\n");    }    jlog("\t(-n)search candidate num= %d\n", r->config->pass2.nbest);    jlog("\t(-s)  search stack size = %d\n", r->config->pass2.stack_size);    jlog("\t(-m)    search overflow = after %d hypothesis poped\n", r->config->pass2.hypo_overflow);    jlog("\t        2nd pass method = ");    if (r->config->graph.enabled) {#ifdef GRAPHOUT_DYNAMIC#ifdef GRAPHOUT_SEARCH      jlog("searching graph, generating dynamic graph\n");#else      jlog("searching sentence, generating dynamic graph\n");#endif /* GRAPHOUT_SEARCH */#else  /* ~GRAPHOUT_DYNAMIC */      jlog("searching sentence, generating static graph from N-best\n");#endif    } else {      jlog("searching sentence, generating N-best\n");    }    if (r->config->pass2.enveloped_bestfirst_width >= 0) {      jlog("\t(-b2)  pass2 beam width = %d\n", r->config->pass2.enveloped_bestfirst_width);    }    jlog("\t(-lookuprange)lookup range= %d  (tm-%d <= t <tm+%d)\n",r->config->pass2.lookup_range,r->config->pass2.lookup_range,r->config->pass2.lookup_range);#ifdef SCAN_BEAM    jlog("\t(-sb)2nd scan beamthres = %.1f (in logscore)\n", r->config->pass2.scan_beam_thres);#endif    jlog("\t(-n)        search till = %d candidates found\n", r->config->pass2.nbest);    jlog("\t(-output)    and output = %d candidates out of above\n", r->config->output.output_hypo_maxnum);    if (r->ccd_flag) {      jlog("\t IWCD handling:\n");#ifdef PASS1_IWCD      jlog("\t   1st pass: approximation ");      switch(r->am->hmminfo->cdset_method) {      case IWCD_AVG:	jlog("(use average prob. of same LC)\n");	break;      case IWCD_MAX:	jlog("(use max. prob. of same LC)\n");	break;      case IWCD_NBEST:	jlog("(use %d-best of same LC)\n", r->am->hmminfo->cdmax_num);	break;      }#else      jlog("\t   1st pass: ignored\n");#endif#ifdef PASS2_STRICT_IWCD      jlog("\t   2nd pass: strict (apply when expanding hypo. )\n");#else      jlog("\t   2nd pass: loose (apply when hypo. is popped and scanned)\n");#endif    }    if (r->lmtype == LM_PROB) {      jlog("\t factoring score: ");#ifdef UNIGRAM_FACTORING      jlog("1-gram prob. (statically assigned beforehand)\n");#else      jlog("2-gram prob. (dynamically computed while search)\n");#endif    }    if (r->config->annotate.align_result_word_flag) {      jlog("\t output word alignments\n");    }    if (r->config->annotate.align_result_phoneme_flag) {      jlog("\t output phoneme alignments\n");    }    if (r->config->annotate.align_result_state_flag) {      jlog("\t output state alignments\n");    }    if (r->lmtype == LM_DFA && r->lmvar == LM_DFA_GRAMMAR) {      if (r->config->pass2.looktrellis_flag) {	jlog("\t only words in backtrellis will be expanded in 2nd pass\n");      } else {	jlog("\t all possible words will be expanded in 2nd pass\n");      }    }    if (r->wchmm != NULL) {      if (r->wchmm->category_tree) {	if (r->config->pass1.old_tree_function_flag) {	  jlog("\t build_wchmm() used\n");	} else {	  jlog("\t build_wchmm2() used\n");	}#ifdef PASS1_IWCD#ifdef USE_OLD_IWCD	jlog("\t full lcdset used\n");#else	jlog("\t lcdset limited by word-pair constraint\n");#endif#endif /* PASS1_IWCD */      }    }    if (r->config->output.progout_flag) {      jlog("\tprogressive output on 1st pass\n");    }    if (r->config->compute_only_1pass) {      jlog("\tCompute only 1-pass\n");    }        if (r->config->graph.enabled) {      jlog("\n");      jlog("Graph-based output with graph-oriented search:\n");      jlog("\t(-lattice)      word lattice = %s\n", r->config->graph.lattice ? "yes" : "no");      jlog("\t(-confnet) confusion network = %s\n", r->config->graph.confnet ? "yes" : "no");      if (r->config->graph.lattice == TRUE) {	jlog("\t(-graphrange)         margin = %d frames", r->config->graph.graph_merge_neighbor_range);	if (r->config->graph.graph_merge_neighbor_range < 0) {	  jlog(" (all post-marging disabled)\n");	} else if (r->config->graph.graph_merge_neighbor_range == 0) {	  jlog(" (merge same word with the same boundary)\n");	} else {	  jlog(" (merge same words around this margin)\n");	}      }#ifdef GRAPHOUT_DEPTHCUT      jlog("\t(-graphcut)cutoff depth      = ");      if (r->config->graph.graphout_cut_depth < 0) {	jlog("disabled (-1)\n");      } else {	jlog("%d words\n",r->config->graph.graphout_cut_depth);      }#endif#ifdef GRAPHOUT_LIMIT_BOUNDARY_LOOP      jlog("\t(-graphboundloop)loopmax     = %d for boundary adjustment\n",r->config->graph.graphout_limit_boundary_loop_num);#endif#ifdef GRAPHOUT_SEARCH_DELAY_TERMINATION      jlog("\tInhibit graph search termination before 1st sentence found = ");      if (r->config->graph.graphout_search_delay) {	jlog("enabled\n");      } else {	jlog("disabled\n");      }#endif    }        if (r->config->successive.enabled) {      jlog("\tshort pause segmentation = on\n");      jlog("\t      sp duration length = %d frames\n", r->config->successive.sp_frame_duration);#ifdef SPSEGMENT_NAIST      jlog("      backstep margin on trigger = %d frames\n", r->config->successive.sp_margin);      jlog("\t        delay on trigger = %d frames\n", r->config->successive.sp_delay);#endif      if (r->config->successive.pausemodelname) {	jlog("\t   pause models for seg. = %s\n",  r->config->successive.pausemodelname);      }    } else {      jlog("\tshort pause segmentation = off\n");    }    if (r->config->output.progout_flag) {      jlog("\t        progout interval = %d msec\n", r->config->output.progout_interval);    }    jlog("\tfall back on search fail = ");    if (r->config->sw.fallback_pass1_flag) {      jlog("on, adopt 1st pass result as final\n");    } else {      jlog("off, returns search failure\n");    }    jlog("\n");  }  jlog("------------------------------------------------------------\n");  jlog("Decoding algorithm:\n\n");  jlog("\t1st pass input processing = ");  if (jconf->decodeopt.force_realtime_flag) jlog("(forced) ");  if (jconf->decodeopt.realtime_flag) {    jlog("real time, on-the-fly\n");  } else {    jlog("buffered, batch\n");  }  jlog("\t1st pass method = ");#ifdef WPAIR# ifdef WPAIR_KEEP_NLIMIT  jlog("word-pair approx., keeping only N tokens ");# else  jlog("word-pair approx. ");# endif#else  jlog("1-best approx. ");#endif#ifdef WORD_GRAPH  jlog("generating word_graph\n");#else  jlog("generating indexed trellis\n");#endif#ifdef CONFIDENCE_MEASURE  jlog("\toutput word confidence measure ");#ifdef CM_NBEST  jlog("based on N-best candidates\n");#endif#ifdef CM_SEARCH  jlog("based on search-time scores\n");#endif#endif /* CONFIDENCE_MEASURE */    jlog("\n");  jlog("------------------------------------------------------------\n");  jlog("FrontEnd:\n\n");  jlog(" Input stream:\n");  jlog("\t             input type = ");  switch(jconf->input.type) {  case INPUT_WAVEFORM:    jlog("waveform\n");    break;  case INPUT_VECTOR:    jlog("feature vector sequence\n");    break;  }  jlog("\t           input source = ");  if (jconf->input.plugin_source != -1) {    jlog("plugin\n");  } else if (jconf->input.speech_input == SP_RAWFILE) {    jlog("waveform file\n");    jlog("\t          input filelist = ");    if (jconf->input.inputlist_filename == NULL) {      jlog("(none, get file name from stdin)\n");    } else {      jlog("%s\n", jconf->input.inputlist_filename);    }  } else if (jconf->input.speech_input == SP_MFCFILE) {    jlog("feature vector file (HTK format)\n");    jlog("\t                filelist = ");    if (jconf->input.inputlist_filename == NULL) {      jlog("(none, get file name from stdin)\n");    } else {      jlog("%s\n", jconf->input.inputlist_filename);    }  } else if (jconf->input.speech_input == SP_STDIN) {    jlog("standard input\n");  } else if (jconf->input.speech_input == SP_ADINNET) {    jlog("adinnet client\n");#ifdef USE_NETAUDIO  } else if (jconf->input.speech_input == SP_NETAUDIO) {    char *p;    jlog("NetAudio server on ");    if (jconf->input.netaudio_devname != NULL) {      jlog("%s\n", jconf->input.netaudio_devname);    } else if ((p = getenv("AUDIO_DEVICE")) != NULL) {      jlog("%s\n", p);    } else {      jlog("local port\n");    }#endif  } else if (jconf->input.speech_input == SP_MIC) {    jlog("microphone\n");    jlog("\t    device API          = ");    switch(jconf->input.device) {    case SP_INPUT_DEFAULT: jlog("default\n"); break;    case SP_INPUT_ALSA: jlog("alsa\n"); break;    case SP_INPUT_OSS: jlog("oss\n"); break;    case SP_INPUT_ESD: jlog("esd\n"); break;    }  }  if (jconf->input.type == INPUT_WAVEFORM) {    if (jconf->input.speech_input == SP_RAWFILE || jconf->input.speech_input == SP_STDIN || jconf->input.speech_input == SP_ADINNET) {      if (jconf->input.use_ds48to16) {	jlog("\t          sampling freq. = assume 48000Hz, then down to %dHz\n", jconf->input.sfreq);      } else {	jlog("\t          sampling freq. = %d Hz required\n", jconf->input.sfreq);      }    } else {      if (jconf->input.use_ds48to16) {	jlog("\t          sampling freq. = 48000Hz, then down to %d Hz\n", jconf->input.sfreq);      } else { 	jlog("\t          sampling freq. = %d Hz\n", jconf->input.sfreq);      }    }  }  if (jconf->input.type == INPUT_WAVEFORM) {    jlog("\t         threaded A/D-in = ");#ifdef HAVE_PTHREAD    if (recog->adin->enable_thread) {      jlog("supported, on\n");    } else {      jlog("supported, off\n");    }#else    jlog("not supported (live input may be dropped)\n");#endif  }  if (jconf->preprocess.strip_zero_sample) {    jlog("\t   zero frames stripping = on\n");  } else {    jlog("\t   zero frames stripping = off\n");  }  if (jconf->input.type == INPUT_WAVEFORM) {    if (recog->adin->adin_cut_on) {      jlog("\t         silence cutting = on\n");      jlog("\t             level thres = %d / 32767\n", jconf->detect.level_thres);      jlog("\t         zerocross thres = %d / sec.\n", jconf->detect.zero_cross_num);      jlog("\t             head margin = %d msec.\n", jconf->detect.head_margin_msec);      jlog("\t             tail margin = %d msec.\n", jconf->detect.tail_margin_msec);    } else {      jlog("\t         silence cutting = off\n");    }    if (jconf->preprocess.use_zmean) {      jlog("\t    long-term DC removal = on");      if (jconf->input.speech_input == SP_RAWFILE) {	jlog(" (will compute for each file)\n");      } else {	jlog(" (will compute from first %.1f sec)\n", (float)ZMEANSAMPLES / (float)jconf->input.sfreq);      }    } else {      jlog("\t    long-term DC removal = off\n");    }  }  jlog("\t      reject short input = ");  if (jconf->reject.rejectshortlen > 0) {    jlog("< %d msec\n", jconf->reject.rejectshortlen);  } else {    jlog("off\n");  }#ifdef POWER_REJECT  jlog("\t   power rejection thres = %f", jconf->reject.powerthres);#endif  jlog("\n");  jlog("----------------------- System Information end -----------------------\n");#ifdef USE_MIC  if (jconf->decodeopt.realtime_flag) {    boolean flag;    flag = FALSE;    for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {      if (mfcc->para->cmn && mfcc->cmn.loaded) {	flag = TRUE;	break;      }    }    if (flag) {      jlog("\n");      jlog("initial CMN parameter loaded from file\nfor");      for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {	if (mfcc->para->cmn && mfcc->cmn.loaded) {	  jlog(" MFCC%02d", mfcc->id);	}      }      jlog("\n");    }    flag = FALSE;    for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {      if (mfcc->para->cmn && !mfcc->cmn.loaded) {	flag = TRUE;	break;      }    }    if (flag) {      jlog("\n");      jlog("\t*************************************************************\n");      jlog("\t* NOTICE: The first input may not be recognized, since      *\n");      jlog("\t*         no initial CMN parameter is available on startup. *\n");      jlog("\t* for");      for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {	if (mfcc->para->cmn && !mfcc->cmn.loaded) {	  jlog(" MFCC%02d", mfcc->id);	}      }      jlog("*\n");      jlog("\t*************************************************************\n");    }    flag = FALSE;    for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {      if (mfcc->para->energy && mfcc->para->enormal) {	flag = TRUE;	break;      }    }    if (flag) {      jlog("\t*************************************************************\n");      jlog("\t* NOTICE: Energy normalization is activated on live input:  *\n");      jlog("\t*         maximum energy of LAST INPUT will be used for it. *\n");      jlog("\t*         So, the first input will not be recognized.       *\n");      jlog("\t* for");      for(mfcc=recog->mfcclist; mfcc; mfcc=mfcc->next) {	if (mfcc->para->energy && mfcc->para->enormal) {	  jlog(" MFCC%02d", mfcc->id);	}      }      jlog("*\n");      jlog("\t*************************************************************\n");    }  }#endif}/* end of file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -