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

📄 cmmf_read_2.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: cmmf_read_2.cc// // isip include files//#include "convert_mmf.h"#include "convert_mmf_constants.h" // method: read_states_bin_cc//// arguments://  int_4& num_st : (output) number of states//  int_4& num_feat : (output) number of features in data vector//  char_1* file : (input) data file name//  // return: a State** pointing to a list of States//// this method reads the State models from file --- each mixture// component in the States is assumed to have a diagonal covariance// matrix//Train_State** read_states_bin_cc(int_4& num_st_a, int_4& num_feat_a,			   char_1* file_a) {    // open file  //  FILE* fp = fopen((char*)file_a, "rb");  if (fp == (FILE*)NULL) {    fprintf(stdout, "cannot open file %s\n", file_a);    exit(ISIP_PROTO_ERROR);	  }	    // variables to read data  //  int_4 num_mix = (int_4)0;  float_4* weights = (float_4*)NULL;  float_4* scale = (float_4*)NULL;  float_4** mean = (float_4**)NULL;  float_4** covar = (float_4**)NULL;    Train_State** states = (Train_State**)NULL;    // read the number of features and number of states  //  fread((void*)&num_feat_a, sizeof(int_4), 1, fp);  fread((void*)&num_st_a, sizeof(int_4), 1, fp);    // initialize the states  //  Train_State::set_num_features_cc(num_feat_a);  states = new Train_State*[num_st_a];    // for each state read the contents  //  for (int_4 i = 0; i < num_st_a; i++) {    // read the number of mixtures in the state    //    fread((void*)&num_mix, sizeof(int_4), 1, fp);    if (num_mix != 0) {            // declare memory for the mean, covar, scale and weights for this state      //      weights = new float_4[num_mix];      scale = new float_4[num_mix];      mean = new float_4*[num_mix];      covar = new float_4*[num_mix];            for (int_4 j = 0; j < num_mix; j++) {	mean[j] = new float_4[num_feat_a];	covar[j] = new float_4[num_feat_a];      }            // read in mean and covar for each mix      //      for (int_4 j = 0; j < num_mix; j++) {		// read the mixture weight	//	fread((void*)&weights[j], sizeof(float_4), 1, fp);		// read the mean	//	for (int_4 k = 0; k < num_feat_a; k++) {	  fread((void*)&mean[j][k], sizeof(float_4), 1, fp);	}		// read the covar	//	for (int_4 k = 0; k < num_feat_a; k++) {	  fread((void*)&covar[j][k], sizeof(float_4), 1, fp);	}		// read in the scale factor	//	fread((void*)&scale[j], sizeof(float_4), 1, fp);      }            // create the state      //      states[i] = new Train_State();      states[i]->set_num_mixtures_cc(num_mix);      states[i]->set_weights_cc(weights);      states[i]->set_scale_cc(scale);      states[i]->set_covar_cc(covar);      states[i]->set_mean_cc(mean);              // clean up      //      delete [] weights;      delete [] scale;      for (int_4 j = 0; j < num_mix; j++) {	delete [] mean[j];	delete [] covar[j];      }      delete [] covar;      delete [] mean;    }  }  // close file  //  fclose(fp);      // exit gracefully  //  return states;}

⌨️ 快捷键说明

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