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

📄 dec_lmahead_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: dec_lmahead_0.cc// // isip include files//#include "decoder.h"#include "decoder_constants.h" // method: get_lmahead_cc//// arguments://  Lex_node* lex: (input) lexical node for the current trace//  History* hist: (input) history node//  // return: a float_4 with the lm look-ahead score//// this method computes the lm look-ahead score given the current// history and the next word//float_4 Decoder::get_lmahead_cc(Lex_node* lex_a, History* hist_a) {    // dummy variables  //  float_4 lmscore = DEC_DEFAULT_SCORE;  float_4 score = DEC_DEFAULT_SCORE;     // if this is a lattice-related mode  //  if ((function_mode_d == DEC_LATTICE_RESCORE_FUNCTION) ||      (function_mode_d == DEC_LATTICE_LATTICE_FUNCTION) ||      (function_mode_d == DEC_FORCE_ALIGN_FUNCTION)) {        // get the lm score for this word    //    lmscore = lex_a->get_score_cc();        // exit gracefully    //    return lmscore;  }  // if this a ngram decoding mode, but uses dynamic networks  //  if (((function_mode_d == DEC_NGRAM_DECODE_FUNCTION) ||       (function_mode_d == DEC_LATTICE_GENERATE_FUNCTION)) &&      (lex_a->get_type_cc() == LXN_WORDGRAPH)) {    // get the lm score for this word    //    lmscore = lex_a->get_score_cc();        // exit gracefully    //    return lmscore;  }    // define ngram mode specific variables  //  int_4 wdcount = (int_4)0;  Word** histlist = (Word**)NULL;  Word** wordlist = new Word*[ngram_order_d];  Word* curword = (Word*)NULL;      // list of words that end at this point  //  Link_list* wrd_list = lex_a->get_words_cc();  // list of old history words  //  void_p* histwords = hist_a->get_histwords_cc();    // find the nodes corresponding to the words that end here  //  for (Link_node* lln = wrd_list->get_head_cc();       lln != (Link_node*)NULL; lln = lln->get_next_cc()) {    // word list    //    wdcount = (int_4)0;          // if this is an ngram-related node    //    if ((function_mode_d == DEC_NGRAM_DECODE_FUNCTION) ||	(function_mode_d == DEC_LATTICE_GENERATE_FUNCTION)) {            // get the current word and put it in the word list      //      Ngram_node* ngnode = (Ngram_node*)(lln->get_item_cc());      curword = ngnode->get_word_cc();      wordlist[ngram_order_d - 1] = curword;      wdcount++;      if (histwords != (void_p*)NULL && ngram_order_d >= 2) {	curword = ((Ngram_node*)histwords[0])->get_word_cc();		// make sure this is not the dummy start node	//	if (curword != (Word*)NULL) {	  wordlist[ngram_order_d - 1 - wdcount] = curword;	  wdcount++;	}      }    }        // otherwise this is lattice rescoring with ngram lm    //    else if (function_mode_d == DEC_LATTICE_VERIFY_FUNCTION) {            // get the current word      //      Lattice_node* latnode = (Lattice_node*)(lln->get_item_cc());      curword = latnode->get_word_cc();      wordlist[ngram_order_d - 1] = curword;      wdcount++;      if (histwords != (void_p*)NULL && ngram_order_d >= 2) {	curword = ((Lattice_node*)histwords[0])->get_word_cc();		// make sure this is not the dummy lat start node	//	if (curword != (Word*)NULL) {	  wordlist[ngram_order_d - 1 - wdcount] = curword;	  wdcount++;	}      }    }        // find more previous history words if needed    //    if ( ngram_order_d >= 3 && histwords != (void_p*)NULL	 && curword != (Word*)NULL) {      while (wdcount < ngram_order_d &&	     histwords[wdcount-1] != (void_p)NULL) {		// add this word	//	wordlist[ngram_order_d - 1 - wdcount] = (Word*)histwords[wdcount-1];	wdcount++;      }    }        // get the lm score for this ngram    //    histlist = wordlist + ngram_order_d - wdcount;    score = ngram_d->get_score_cc(wdcount, histlist);    if (lmscore < score) {      lmscore = score;    }	        /*--      printf("Frame %ld : dcount %ld : Lmscore %.6f",      frame_d, wdcount, score);      for (int_4 q = 0; q < wdcount; q++) {      printf (" %s", histlist[q]->get_name_cc());      }      printf ("\n");      --*/  } // end loop over all words covered by this lex node  // free memory  //  delete [] wordlist;  wordlist = (Word**)NULL;     // exit gracefully  //  return lmscore;}

⌨️ 快捷键说明

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