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

📄 itri_read_2.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: itri_model_0.cc//// isip include files//#include "init_triphones.h"#include "init_triphones_constants.h" // method: read_models_cc//// arguments://  FILE* file : (input) data file name//  State** states : (input) the array of states//  float_4*** trans : (input) the array of transition matrices//  Train_Hash_table*& trans_map : (output) map between model name and//                                 transition index//  int_4& num_mod : (output) number of models//  // return: a Train_Hash_table* which hashes the models based on their//         phone symbol//Train_Hash_table* read_models_cc(FILE* file_a, Train_State** states_a,				 float_4*** trans_a,				 Train_Hash_table*& trans_map_a,				 int_4& num_mod_a) {    // variables to read data  //  char_1* tmp = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* name = new char_1[ISIP_MAX_STRING_LENGTH];  int_4 ind = (int_4)0;  logical_1 number_flag = ISIP_FALSE;    int_4 num_states = (int_4)0;  int_4 trans_ind = (int_4)0;  int_4 state_ind = (int_4)0;    Train_State** state_list = (Train_State**)NULL;  Train_Model** models = (Train_Model**)NULL;  Train_Hash_table* phone_table = (Train_Hash_table*)NULL;      // define the hash table to hold the monophone information and transition  // information  //  phone_table = new Train_Hash_table(TRAIN_HASH_TABLE_SIZE);  trans_map_a = new Train_Hash_table(TRAIN_HASH_TABLE_SIZE);  Train_Hash_cell* ph_cell = (Train_Hash_cell*)NULL;  Train_Hash_cell* tr_cell = (Train_Hash_cell*)NULL;    // define memory manager  //  Train_Memory_manager* manager = Train_Link_list::get_manager_cc();   // read data from file  //  while (fscanf(file_a, "%s", tmp) != EOF) {        // ignore comment lines    //    if (tmp[0] == (char_1)'#') {            // do nothing      //      fscanf(file_a, "%[^\n]", tmp);      fscanf(file_a, "%[\n]", tmp);    }        // read the model data    //    else if (strcmp((char*)tmp, (char*)ITRI_STR_NUM_MODELS) == 0) {      // change the flag      //      number_flag = ISIP_TRUE;            // read the number of models      //      fscanf(file_a, "%s%ld", tmp, &num_mod_a);            // allocate space for the model list      //      models = new Train_Model*[num_mod_a];            // now read the model data      //      for (int_4 i = 0; i < num_mod_a; i++) {		// read the model index	//	fscanf(file_a, "%s%ld", tmp, &ind);		// read the model string	//	fscanf(file_a, "%s%s", tmp, name);		// read the number of states	//	fscanf(file_a, "%s%ld", tmp, &num_states);		// allocate memory for the data	//	state_list = new Train_State*[num_states];		// read the transitions	//	fscanf(file_a, "%s%ld", tmp, &trans_ind);	// put the transition index in the hash table		//		tr_cell = manager->new_hash_cc();	tr_cell->set_cc(name, (void_p)trans_ind);	trans_map_a->hash_insert_cc(tr_cell);		// read the states	//	fscanf(file_a, "%s", tmp);	for (int_4 j = 0; j < num_states; j++) {	  	  // read the state index	  //	  fscanf(file_a, "%ld", &state_ind);	  	  // add to the state array	  //	  if (state_ind == 0) {	    state_list[j] = (Train_State*)NULL;	  }	  else {	    state_list[j] = states_a[state_ind];	  }	}	// create the model	//	models[ind] = new Train_Model(num_states, trans_a[trans_ind],				      state_list);	// put the model in the hash table       	//	ph_cell = manager->new_hash_cc();	ph_cell->set_cc(name, (void_p)models[ind]);	phone_table->hash_insert_cc(ph_cell);		// free memory	//	delete [] state_list;	state_list = (Train_State**)NULL;      }    }  }  // check the flag  //  if (number_flag == ISIP_FALSE) {    fprintf(stdout, "Error : no number of models specified.\n");    exit(ISIP_PROTO_ERROR);  }  // free memory  //  delete [] tmp;  delete [] name;  // free memory  //  delete [] models;  models = (Train_Model**)NULL;    // exit gracefully  //  return phone_table;}

⌨️ 快捷键说明

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