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

📄 init_triphones.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: init_triphones.cc//// this program creates an initial set of triphones based on a clustered// phone list//// isip include files//#include "init_triphones.h"#include "init_triphones_constants.h"// main program//int main(int_4 argc, char_1** argv) {  // local variables  //  int_4 num_states;  int_4 new_num_states = 0;  int_4 num_models;  int_4 new_num_models = 0;  int_4 num_features;  int_4 num_trans;  int_4 num_ciphones = 0;    // variables to hold commandline parameters  //  char_1* params_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* in_models_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* out_models_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* in_trans_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* out_trans_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* in_states_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* out_states_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* tri_clist_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* ciphones_file = new char_1[ISIP_MAX_STRING_LENGTH];    // read the command line arguments  //  read_cmdline_cc(argc, argv, params_file);  // read parameters  //  FILE* fp_in = fopen((char*)params_file, "r");  read_params_cc(fp_in, in_models_file, out_models_file, in_trans_file,		 out_trans_file, in_states_file, out_states_file,		 tri_clist_file, ciphones_file);    delete [] params_file;  fclose(fp_in);    // read the input states file  //  fp_in = fopen((char*)in_states_file, "rb");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", in_states_file);    exit(ISIP_PROTO_ERROR);  }  // read the context-independent state file  //  Train_State** states = read_states_cc(fp_in, num_states, num_features);  delete [] in_states_file;  fclose(fp_in);  // read the input transitions file  //  fp_in = fopen((char*)in_trans_file, "r");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", in_trans_file);    exit(ISIP_PROTO_ERROR);  }  // read the transitions data  //  int_4* trans_size = (int_4*)NULL;  float_4*** transitions = read_trans_cc(fp_in, num_trans, trans_size);  delete [] in_trans_file;  fclose(fp_in);    // read the input transitions file  //  fp_in = fopen((char*)in_models_file, "r");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", in_models_file);    exit(ISIP_PROTO_ERROR);  }  // create a memory manager   //  Train_Memory_manager* manager = new Train_Memory_manager(ITRI_MAX_NUM_MODELS,							   ITRI_MAX_NUM_MODELS);  Train_Link_list::set_manager_cc(manager);    // read the base context independent HMM models  //  Train_Hash_table* trans_map = (Train_Hash_table*)NULL;  Train_Hash_table* models = read_models_cc(fp_in, states, transitions, trans_map,				      num_models);  delete [] in_models_file;  fclose(fp_in);  // open the original phones file  //  fp_in = fopen((char*)ciphones_file, "r");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", ciphones_file);    exit(ISIP_PROTO_ERROR);  }  delete [] ciphones_file;    // read the ciphones and their indices  //  Train_Hash_table* ci_models = read_cimodels_cc(fp_in, num_ciphones);  // open the clustered triphones list  //  fp_in = fopen((char*)tri_clist_file, "r");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", tri_clist_file);    exit(ISIP_PROTO_ERROR);  }  delete [] tri_clist_file;  // open the output models file  //  FILE* fp_model_out = fopen((char*)out_models_file, "w");  if (fp_in == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", out_models_file);    exit(ISIP_PROTO_ERROR);  }  delete [] out_models_file;  // open the output states file (binary output)  //  FILE* fp_state_out = fopen((char*)out_states_file, "wb");  if (fp_state_out == (FILE*)NULL) {    fprintf(stdout, "Error : cannot open input file %s\n", out_states_file);    exit(ISIP_PROTO_ERROR);  }  delete [] out_states_file;    // read the triphones cluster list (this function will also create the  // new states and models for all the physical triphones in the cluster list)  //  create_triphones_cc(fp_in, fp_model_out, fp_state_out, models,		      ci_models, trans_map, num_models, new_num_states,		      new_num_models);  fclose(fp_in);  fclose(fp_model_out);  fclose(fp_state_out);    // clean up memory  //  // delete states  //  for (int_4 i = 0; i < num_states; i++) {    delete states[i];  }    delete [] states;    // delete hash table of the ci models  //  Train_Model* ph = (Train_Model*)NULL;  Train_Hash_cell* next = (Train_Hash_cell*)NULL;  Train_Hash_cell** hash_cells = models->get_cells_cc();  int_4 hash_size = models->get_size_cc();  for (int_4 k = 0; k < hash_size; k++) {    for (Train_Hash_cell* cell = hash_cells[k]; cell != (Train_Hash_cell*)NULL;	 cell = next) {      next = cell->get_next_cc();      ph = (Train_Model*)(cell->get_item_cc());      delete ph;      manager->delete_cc(cell);    }    hash_cells[k] = (Train_Hash_cell*)NULL;  }  delete models;  // delete hash table of the ci models  //  ph = (Train_Model*)NULL;  next = (Train_Hash_cell*)NULL;  hash_cells = ci_models->get_cells_cc();  hash_size = ci_models->get_size_cc();  for (int_4 k = 0; k < hash_size; k++) {    for (Train_Hash_cell* cell = hash_cells[k]; cell != (Train_Hash_cell*)NULL;	 cell = next) {      next = cell->get_next_cc();      manager->delete_cc(cell);    }    hash_cells[k] = (Train_Hash_cell*)NULL;  }  delete ci_models;  // delete hash table of transitions  //  next = (Train_Hash_cell*)NULL;  hash_cells = trans_map->get_cells_cc();  hash_size = trans_map->get_size_cc();  for (int_4 k = 0; k < hash_size; k++) {    for (Train_Hash_cell* cell = hash_cells[k]; cell != (Train_Hash_cell*)NULL;	 cell = next) {      next = cell->get_next_cc();      manager->delete_cc(cell);    }    hash_cells[k] = (Train_Hash_cell*)NULL;  }  delete trans_map;  // delete transitions  //  for (int_4 i = 0; i < num_trans; i++) {    for (int_4 j = 0; j < trans_size[i]; j++) {      delete [] transitions[i][j];    }    delete [] transitions[i];  }  delete [] transitions;  delete [] trans_size;  // clean up  //  delete [] out_trans_file;  delete manager;  // exit gracefully  //  exit(ISIP_NO_ERROR);}

⌨️ 快捷键说明

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