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

📄 bw_model_1.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: bw_model_1.cc//// system include files//#include <string.h>// isip include files//#include "bw_train.h"#include "bw_train_constants.h"// method: get_model_list_cc//// arguments://  int_4& num_mod : (output) the number of phones(models) in the current label//  int_4*& model_list : (output) the array containing the model index//  int_4& num_state : (output) the number of total emitting states in the//                              model list//  char_1* lab_file : (input) the word string//  char_1** monophones : (input) the monophones//  int_4 num_mono : (input) the number of monophones//  int_4 ph_size : (input) the context size//  int_4 context_mode : (input) the current context mode//  int_4* phones_map : (input) the mapping from phone index to line index//  int_4* mod_map : (input) the mapping from the line index to model index//  Model** models : (input) all models//  int_4* model_access_counts : (input) the number of times a model is used//// return: a logical flag to indicate success//// this method loops over all the words in the input string and return the// model index according to the context mode//logical_1 get_model_list_cc(int_4& num_mod_a, int_4*& model_list_a,			    int_4& num_state_a, char_1* lab_file_a,			    char_1** monophones_a, int_4 num_mono_a,			    int_4 ph_size_a, int_4 context_mode_a,			    int_4* phones_map_a, int_4* mod_map_a,			    Train_Model** models_a, int_4* model_access_counts_a) {  // string to hold temporary data  //  char_1 *tmp, *tmp_str, *tmp_str1, **phns_list;  int_4 ph_index = 0;  int_4 num_st = 0;  num_mod_a = (int_4)0;  num_state_a = (int_4)0;  // allocate memory for model list  //  tmp_str = new char_1[strlen((char*)lab_file_a)+1];  strcpy((char*)tmp_str, (char*)lab_file_a);  tmp_str1 = (char_1*)strtok((char*)tmp_str, ISIP_STRING_SPACE);  while((tmp_str1 != (char_1*)NULL) && (tmp_str1[0] != ISIP_NEWLINE)) {    num_mod_a++;    tmp_str1 = (char_1*)strtok(NULL, ISIP_STRING_SPACE);  }  model_list_a = new int_4[num_mod_a];  memset(model_list_a, (int_4)0, num_mod_a * sizeof(int_4));  // allocate memory for phones list  //  strcpy((char*)tmp_str, (char*)lab_file_a);  phns_list = new char_1*[num_mod_a];  tmp_str1 = (char_1*)strtok((char*)tmp_str, ISIP_STRING_SPACE);  for (int_4 i = 0; i < num_mod_a; i++) {    phns_list[i] = new char_1[ISIP_MAX_STRING_LENGTH];    strcpy((char*)phns_list[i], (char*)tmp_str1);    tmp_str1 = (char_1*)strtok(NULL, ISIP_STRING_SPACE);  }    // read data from lab file  //  for (int_4 i = 0; i < num_mod_a; i++) {        // get the phone    //    tmp = phns_list[i];        // remove line symbol    //    if (tmp[strlen((char*)tmp)-1] == '\n') {      tmp[strlen((char*)tmp)-1] = '\0';    }    ph_index = get_phn_index_cc(tmp, monophones_a, num_mono_a, ph_size_a,				context_mode_a, phones_map_a);    model_list_a[i] = mod_map_a[ph_index];    model_access_counts_a[model_list_a[i]]++;    num_st = models_a[model_list_a[i]]->get_num_states_cc();    num_st -= 2;    num_state_a += num_st;  }    // clean up  //  tmp = (char_1*)NULL;  delete [] tmp_str;  for (int_4 i = 0; i < num_mod_a; i++) {    delete [] phns_list[i];  }  delete [] phns_list;    // return gracefully  //  return(ISIP_TRUE);}

⌨️ 快捷键说明

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