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

📄 dec_cstr_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: dec_cstr_0.cc//// isip include files//#include "decoder.h"#include "decoder_constants.h" // method: destructor//// arguments: none//// return: none//// this is the destructor for the class//Decoder::~Decoder() {  // local variables  //  Link_node* nd = (Link_node*)NULL;  Link_node* pd = (Link_node*)NULL;    Lex_tree* tree = (Lex_tree*)NULL;  // make sure free lattice-related memory first  //  if(lextree_list_d != NULL) {    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;  Hash_cell* hcell = (Hash_cell*)NULL;  Hash_cell** hcells = (Hash_cell**)NULL;  int_4 hsize = (int_4)0;  Instance* inst = (Instance*)NULL;  Word* word = (Word*)NULL;  // reset function and align modes  //  function_mode_d = DEC_DEFAULT_INDEX;  context_mode_d = DEC_DEFAULT_INDEX;  align_mode_d = DEC_DEFAULT_INDEX;  input_format_d = DEC_DEFAULT_INDEX;  input_feature_format_d = DEC_ISIP_PROTO_FORMAT;  demo_mode_d = ISIP_FALSE;  // reset delta and acceleration computaional modes  //  delta_win_d = DEC_DEFAULT_DELTA_WIN;  delta_d = DEC_DEFAULT_DELTA;  acc_d = DEC_DEFAULT_ACC;    // number of utterances decoded  //  num_utt_d = DEC_DEFAULT_INDEX;    // levels in the search hierarchy  //  num_levels_d = DEC_DEFAULT_INDEX;  // timing information  //  frame_d = DEC_DEFAULT_INDEX;  frame_dur_d = DEC_DEFAULT_VALUE;  // input feature data information  //  num_feat_d = DEC_DEFAULT_INDEX;  if (features_d != (float_4*)NULL) {    delete [] features_d;    features_d = (float_4*)NULL;  }    // acoustic model information  //  // context independent models  //  for (int_4 i = 0; i < num_ci_d; i++) {    delete [] ci_models_d[i];    ci_models_d[i] = (char_1*)NULL;  }  delete [] ci_models_d;  ci_models_d = (char_1**)NULL;  num_ci_d = DEC_DEFAULT_INDEX;  // context dependent models  //  for (int_4 i = 0; i < num_cd_d; i++) {    delete cd_models_d[i];    cd_models_d[i] = (Phone*)NULL;  }  delete [] cd_models_d;  cd_models_d = (Phone**)NULL;  delete [] cdmap_d;  cdmap_d = (int_4*)NULL;  cd_size_d = DEC_DEFAULT_INDEX;  num_cd_d = DEC_DEFAULT_INDEX;    // Hidden Markov models  //  for (int_4 i = 0; i < num_models_d; i++) {    delete models_d[i];    models_d[i] = (Model*)NULL;  }  delete [] models_d;  models_d = (Model**)NULL;  num_models_d = DEC_DEFAULT_INDEX;    // state transition matrices  //  for (int_4 i = 0; i < num_trans_d; i++) {    delete [] transitions_d[i];    transitions_d[i] = (float_4*)NULL;  }  delete [] transitions_d;  transitions_d = (float_4**)NULL;  num_trans_d = DEC_DEFAULT_INDEX;  // model states  //  for (int_4 i = 0; i < num_states_d; i++) {    delete states_d[i];    states_d[i] = (State*)NULL;  }  delete [] states_d;  states_d = (State**)NULL;  num_states_d = DEC_DEFAULT_INDEX;  // lexicon  //  hcells = lexicon_d->get_cells_cc();  hsize = lexicon_d->get_size_cc();  for (int_4 k = 0; k < hsize; k++) {    for (Hash_cell* cell = hcells[k]; cell != (Hash_cell*)NULL;	 cell = hcell) {      hcell = cell->get_next_cc();      word = (Word*)(cell->get_item_cc());      delete word;      manager_d->delete_cc(cell);    }    hcells[k] = (Hash_cell*)NULL;  }  delete lexicon_d;  lexicon_d = (Hash_table*)NULL;  num_words_d = DEC_DEFAULT_INDEX;    // lm related parameters  //  lmscale_d = DEC_LM_SCALE;  wdpenalty_d = DEC_DEFAULT_VALUE;  ngram_order_d = DEC_DEFAULT_INDEX;  if (ngram_d != (Ngram*)NULL) {    delete ngram_d;    ngram_d = (Ngram*)NULL;  }  if (lattice_d != (Lattice*)NULL) {    delete lattice_d;    lattice_d = (Lattice*)NULL;  }    // path information  //  // cleanup active model instances table and linked list  //  inst_count_d = DEC_DEFAULT_INDEX;  if (inst_table_d != (Hash_table*)NULL) {    // deallocate the instance hash-table    //    hcells = inst_table_d->get_cells_cc();    hsize = inst_table_d->get_size_cc();    for (int_4 k = 0; k < hsize; k++) {      for (Hash_cell* cell = hcells[k]; cell != (Hash_cell*)NULL;	   cell = hcell) {	hcell = cell->get_next_cc();	inst = (Instance*)(cell->get_item_cc());	manager_d->delete_cc(inst);	manager_d->delete_cc(cell);      }      hcells[k] = (Hash_cell*)NULL;    }    delete inst_table_d;    inst_table_d = (Hash_table*)NULL;  }  if (inst_list_d != (Link_list*)NULL) {    delete inst_list_d;    inst_list_d = (Link_list*)NULL;  }  // hypotheses information  //  if (nbest_d != (Trace**)NULL) {    delete [] nbest_d;    nbest_d = (Trace**)NULL;  }  num_hyps_d = DEC_DEFAULT_INDEX;  num_nbest_d = DEC_DEFAULT_INDEX;    // path history information  //  if (history_list_d != (Link_list*)NULL) {    delete history_list_d;    history_list_d = (Link_list*)NULL;  }  num_hist_d = DEC_DEFAULT_INDEX;  // lexical tree information  //  if (lextree_list_d != (Link_list*)NULL) {    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;  }  if (proto_tree_d != (Lex_tree*)NULL) {    delete proto_tree_d;    proto_tree_d = (Lex_tree*)NULL;  }    // list of lattices corresponding to the grammars  //  Lattice* gram = (Lattice*)NULL;  if (gram_list_d != (Link_list*)NULL) {    for (nd = gram_list_d->get_head_cc(); nd != (Link_node*)NULL;	 nd = pd) {      pd = nd->get_next_cc();      gram = (Lattice*)(nd->get_item_cc());      gram_list_d->remove_cc(nd);      if (gram != (Lattice*)NULL) {	delete gram;      }    }    delete gram_list_d;    gram_list_d = (Link_list*)NULL;  }  // list of traces at model level  //  if (active_models_d != (int_4*)NULL) {    delete [] active_models_d;    active_models_d = (int_4*)NULL;  }  if (model_trlist_d != (Link_list**)NULL) {    delete [] model_trlist_d;    model_trlist_d = (Link_list**)NULL;  }  num_active_models_d = DEC_DEFAULT_INDEX;  // list of traces at word level  //  if (active_words_d != (int_4*)NULL) {    delete [] active_words_d;    active_words_d = (int_4*)NULL;  }  if (word_scores_d != (float_4*)NULL) {    delete [] word_scores_d;    word_scores_d = (float_4*)NULL;  }  if (word_trlist_d != (Link_list**)NULL) {    delete [] word_trlist_d;    word_trlist_d = (Link_list**)NULL;  }  num_active_words_d = DEC_DEFAULT_INDEX;    // pruning-related information  //  // beam pruning information  //  if (max_score_d != (float_4*)NULL) {    delete [] max_score_d;    max_score_d = (float_4*)NULL;  }  if (beam_d != (float_4*)NULL) {    delete [] beam_d;    beam_d = (float_4*)NULL;  }  if (beam_thresh_d != (float_4*)NULL) {    delete [] beam_thresh_d;    beam_thresh_d = (float_4*)NULL;  }  // instance pruning information  //  mapmi_limit_d = DEC_DEFAULT_INDEX;  mapmi_thresh_d = DEC_DEFAULT_SCORE;  // word-end pruning information  //  num_wordends_d = DEC_DEFAULT_INDEX;  wordend_thresh_d = DEC_DEFAULT_SCORE;  // demo information  //  num_steps_d = DEC_DEFAULT_INDEX;  // trace generation and other statistics  //  if (num_traces_total_d != (int_4*)NULL) {    delete [] num_traces_total_d;    num_traces_total_d = (int_4*)NULL;  }  if (num_traces_gen_d != (int_4*)NULL) {    delete [] num_traces_gen_d;    num_traces_gen_d = (int_4*)NULL;  }  if (num_traces_del_d != (int_4*)NULL) {    delete [] num_traces_del_d;    num_traces_del_d = (int_4*)NULL;  }  if (total_gen_d != (int_4*)NULL) {    delete [] total_gen_d;    total_gen_d = (int_4*)NULL;  }  if (total_del_d != (int_4*)NULL) {    delete [] total_del_d;    total_del_d = (int_4*)NULL;  }  // release memory for model-level segments (alignments)  //  int_4* ele = (int_4*)NULL;  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;    }      }  // special models  //  sil_model_d = DEC_DEFAULT_INDEX;  sp_model_d = DEC_DEFAULT_INDEX;  sp_score_d = DEC_DEFAULT_SCORE;    // memory manager  //  if (manager_d != (Memory_manager*)NULL) {    delete manager_d;    manager_d = (Memory_manager*)NULL;  }    // exit gracefully  //}

⌨️ 快捷键说明

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