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

📄 dec_clean_2.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: dec_clean_2.cc//// isip include files//#include "decoder.h"#include "decoder_constants.h" // method: clean_cc//// arguments: none//// return: logical_1 indicating status//// this is the method that does clean up of all memory use to process// an utterance//logical_1 Decoder::clean_cc(logical_1 isCommunicator_a) {  // local variables  //  Link_node* nd = (Link_node*)NULL;  Link_node* pd = (Link_node*)NULL;  Link_list* trlist = (Link_list*)NULL;    History* hist = (History*)NULL;  Lex_tree* tree = (Lex_tree*)NULL;  Trace* tr = (Trace*)NULL;  int_4* ele = (int_4*)NULL;    // increment the number of utterances decoded  //  num_utt_d++;    // free memory in history nodes  //  for (nd = history_list_d->get_head_cc(); nd != (Link_node*)NULL; nd = pd) {    pd = nd->get_next_cc();    hist = (History*)(nd->get_item_cc());    manager_d->delete_cc(hist);    history_list_d->remove_cc(nd);  }  delete history_list_d;  history_list_d = (Link_list*)NULL;    // reset the instance table and remove the instance list  //  delete inst_list_d;  inst_list_d = (Link_list*)NULL;  clean_instances_cc();    // free lattice-related memory  //  if (((function_mode_d == DEC_LATTICE_RESCORE_FUNCTION) &&       (isCommunicator_a == ISIP_FALSE)) ||      (function_mode_d == DEC_LATTICE_VERIFY_FUNCTION) ||      (function_mode_d == DEC_LATTICE_LATTICE_FUNCTION) ||      (function_mode_d == DEC_FORCE_ALIGN_FUNCTION)) {        // free memory in active lexical tree list    //    for (nd = lextree_list_d->get_head_cc(); nd != (Link_node*)NULL;	 nd = pd) {      pd = nd->get_next_cc();      tree = (Lex_tree*)(nd->get_item_cc());      lextree_list_d->remove_cc(nd);      if (tree != (Lex_tree*)NULL) {	delete tree;      }    }    delete lextree_list_d;    lextree_list_d = (Link_list*)NULL;        // free memory    //    delete lattice_d;    lattice_d = (Lattice*)NULL;  }  else if ((function_mode_d == DEC_LATTICE_RESCORE_FUNCTION) &&	   (isCommunicator_a == ISIP_FALSE)) {        // free memory in active lexical tree list    //    for (nd = lextree_list_d->get_head_cc(); nd != (Link_node*)NULL;	 nd = pd) {      pd = nd->get_next_cc();      tree = (Lex_tree*)(nd->get_item_cc());      lextree_list_d->remove_cc(nd);      if (tree != (Lex_tree*)NULL) {	delete tree;      }    }    delete lextree_list_d;    lextree_list_d = (Link_list*)NULL;  }  // free memory in word-level trace lists  //  for (int_4 i = 0; i < num_active_words_d; i++) {    trlist = word_trlist_d[active_words_d[i]];    if (trlist != (Link_list*)NULL) {      for (nd = trlist->get_head_cc(); nd != (Link_node*)NULL; nd = pd) {	pd = nd->get_next_cc();	tr = (Trace*)(nd->get_item_cc());	if (tr != (Trace*)NULL) {	  manager_d->delete_cc(tr);	}	trlist->remove_cc(nd);      }    }    delete trlist;  }    // free memory in phone-level trace lists  //  for (int_4 i = 0; i < num_active_models_d; i++) {    trlist = model_trlist_d[active_models_d[i]];    if (trlist != (Link_list*)NULL) {      for (nd = trlist->get_head_cc(); nd != (Link_node*)NULL; nd = pd) {	pd = nd->get_next_cc();	tr = (Trace*)(nd->get_item_cc());	if (tr != (Trace*)NULL) {	  manager_d->delete_cc(tr);	}	trlist->remove_cc(nd);      }    }    delete trlist;  }  // reset Communicator API parameters  //  size_d = 0;  current_d = 0;  // release memory for model-level segments (alignments)  //  if (segment_mode_d == DEC_MODEL_SEGMENT_MODE) {    for (nd = model_seglist_d->get_head_cc();	 nd != (Link_node*)NULL; nd = pd) {      	pd = nd->get_next_cc();	ele = (int_4*)(nd->get_item_cc());	if (ele != (int_4*)NULL) {	  delete ele;	}	model_seglist_d->remove_cc(nd);    }  }  if (model_seglist_d != (Link_list*)NULL) {    delete model_seglist_d;    model_seglist_d = (Link_list*)NULL;  }    // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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