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

📄 ht_model_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: ht_model_0.cc//// isip include files//#include "hmm_train.h"#include "hmm_train_constants.h" // method: read_models_cc//// arguments://  int_4& num_mod : (output) number of models//  char_1* file : (input) data file name//  Train_State** states : (input) the array of states//  float_4*** trans : (input) the array of transition matrices//  // return: a Train_Model** pointing to a list of phone models//Train_Model** read_models_cc(int_4& num_mod_a, char_1* file_a,		       Train_State** states_a, float_4*** trans_a) {    // open file  //  FILE* fp = fopen((char*)file_a, "r");  if (fp == (FILE*)NULL) {    fprintf(stdout, "Cannot open file %s\n", file_a);    exit(ISIP_PROTO_ERROR);  }    // 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;    // read data from file  //  while (fscanf(fp, "%s", tmp) != EOF) {        // ignore comment lines    //    if (tmp[0] == (char_1)'#') {            // do nothing      //      fscanf(fp, "%[^\n]", tmp);      fscanf(fp, "%[\n]", tmp);    }        // read the model data    //    else if (strcmp((char*)tmp, (char*)HT_STR_NUM_MODELS) == 0) {      // change the flag      //      number_flag = ISIP_TRUE;            // read the number of models      //      fscanf(fp, "%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(fp, "%s%ld", tmp, &ind);		// read the model string	//	fscanf(fp, "%s%s", tmp, name);		// read the number of states	//	fscanf(fp, "%s%ld", tmp, &num_states);		// allocate memory for the data	//	state_list = new Train_State*[num_states];		// read the transitions	//	fscanf(fp, "%s%ld", tmp, &trans_ind);		// read the states	//	fscanf(fp, "%s", tmp);	for (int_4 j = 0; j < num_states; j++) {	  	  // read the state index	  //	  fscanf(fp, "%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);	// free memory	//	delete state_list;	state_list = (Train_State**)NULL;      }    }  }  if (number_flag == ISIP_FALSE) {    fprintf(stdout, "Error : no number of models specified in %s\n",	    (char*)file_a);    exit(ISIP_PROTO_ERROR);  }  // close file  //  fclose(fp);      // free memory  //  delete [] tmp;  delete [] name;    // exit gracefully  //  return models;}

⌨️ 快捷键说明

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