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

📄 ht_lattice_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: ht_lattice_0.cc//// isip include files//#include "hmm_train.h"#include "hmm_train_constants.h"// method: build_lattice_cc //// arguments:////  Train_Trace** array: (input) array of sentence-end traces//  int_4 num_hyp: (input) number of sentence end traces//  float_4 lmscale: (input) the desired language model scale factor//  float_4 wdpenalty: (input) the desired word insertion penalty//  Train_Lattice*& lattice: (output) the lattice built from these hyps//// return: a logical_1 indicating status//// this method backtracks all word end traces for the given hypotheses// and writes them into a lattice structure//logical_1 build_lattice_cc(Train_Trace** array_a, int_4 num_hyp_a,			   float_4 lmscale_a, float_4 wdpenalty_a,			   Train_Lattice*& lattice_a) {  // memory manager  //  Train_Memory_manager* manager = Train_Link_list::get_manager_cc();    // dummy variables  //  int_4 num_nodes = (int_4)0;   int_4 num_arcs = (int_4)0;   // set up a hash table to temporarily hold the lattice nodes  //  Train_Hash_table* lathash = new Train_Hash_table(TRAIN_HASH_TABLE_SIZE);    // create the lattice start node  //  Train_Lattice_node* latn = manager->new_lat_cc();  latn->set_frame_index_cc((int_4)0);  latn->set_node_index_cc(num_nodes++);  // insert it in the hash table  //  Train_Hash_cell* hcell = manager->new_hash_cc();  char_1* str = new char_1[TRAIN_LATTICE_KEYSTR_LENGTH];  sprintf((char*)str, "%p", (Train_Trace*)NULL);  hcell->set_cc(str, latn);  lathash->hash_insert_cc(hcell);    // loop over all sentence end traces  //  for (int_4 i = 0; i < num_hyp_a; i++) {    // for each sentence end trace back-track over all paths merging    // here and construct lattice    //    construct_lattice_cc(array_a[i], (Train_Lattice_node*)NULL, (float_8)0,			 lmscale_a, wdpenalty_a, num_nodes, num_arcs,			 lathash);  }    // create a new lattice, if the lattice is already created free memory  //  if (lattice_a != (Train_Lattice*)NULL) {    delete lattice_a;  }  lattice_a = new Train_Lattice();  // set the lattice properties  //  if (lmscale_a == (float_4)0) {    lmscale_a = (float_4)1.0;  }  lattice_a->set_lm_scale_cc(lmscale_a);  lattice_a->set_word_penalty_cc(wdpenalty_a);  // set the lattice start node  //  lattice_a->set_start_node_cc(latn);    // set the correct numbers of nodes and arcs  //   lattice_a->set_num_nodes_cc(num_nodes);  lattice_a->set_num_arcs_cc(num_arcs);    // insert the lattice nodes in the lattice  //  Train_Hash_cell* ncell = (Train_Hash_cell*)NULL;  Train_Hash_cell** hcells = lathash->get_cells_cc();  int_4 hsize = lathash->get_size_cc();  for (int_4 i = 0; i < hsize; i++) {    for (Train_Hash_cell* cell = hcells[i]; cell != (Train_Hash_cell*)NULL;	 cell = ncell) {      latn = (Train_Lattice_node*)(cell->get_item_cc());      lattice_a->set_lat_node_cc(latn);      ncell = cell->get_next_cc();      manager->delete_cc(cell);    }    hcells[i] = (Train_Hash_cell*)NULL;  }  // free memory  //  delete lathash;  // reorder the lattice  //  lattice_a->index_nodes_cc();  // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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