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

📄 ts_model_4.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: ts_model_4.cc//// isip include files//#include "tie_state.h"#include "tie_state_constants.h"// method: update_models_cc//// arguments://   char_1** mono       : (input)  monophone list//   int_4 num_mono      : (input)  number of monophones//   int_4 num_cd_models : (output) number of Cd_models//   Cd_model**& cd_models: (input)  pointers to all Cd_models//   int_4 num_spe_model    :  (input) number of special phones//   char_1** special_model :  (input) special phone list//   Decision_trees** trees :  (input) pointers to all decision trees//   int_4 ph_size_a        :  (input) phone size//   Hash_table* answers    :  (input) answers to questions in decision trees//// return: a logical_1 showing status//// this method pools all the Cd_models and update the state information//logical_1 update_models_cc(char_1** mono_a, int_4 num_mono_a, 			   int_4 num_cd_models_a, Cd_model**& cd_models_a,			   int_4 num_spe_models_a, char_1** special_models_a,			   Decision_tree** trees_a, int_4 ph_size_a,			   Hash_table* answers_a) {    // local variables   //  int_4 st_pos;  int_4 tree_index;  int_4 state_index;  logical_1 result;  logical_1 leaf_flag;  Dt_node* curr_dt_node;    int_4 j;    char_1* lph ;   char_1* cph ;   char_1* rph ;    int_4 n_lph = 0;  int_4 n_cph = 0;  int_4 n_rph = 0;  char_1** phn = (char_1**)NULL;  logical_1 tag_special_model = ISIP_FALSE;   for (int_4 i = 0; i < num_cd_models_a; i++) {        // get the phones in the Cd_models    //    phn = cd_models_a[i]->get_phones_cc();    cph = phn[1];    // check if this is a special model    //    for(j=0; j < num_spe_models_a ;j++) {      if(strcmp((char*)cph, (char*)special_models_a[j])==0) {	tag_special_model = ISIP_TRUE;	break;      }    }    if(tag_special_model != ISIP_TRUE) {      lph = phn[0];      rph = phn[2];      // reset the phone indices      //      n_lph = 0;      n_cph = 0;      n_rph = 0;            // get the left context index      //      if(lph!=(char_1*)NULL) {	for(j=0; j<num_mono_a; j++) {	  if(strcmp((char*)lph, (char*)mono_a[j])==0) {	    n_lph = j;	    break;	  }	}      }      else {	n_lph = TS_EMPTY_PHN;      }            // get the control phone index      //      if(cph!=(char_1*)NULL) {		for(j=0;j<num_mono_a;j++) {  	  if(strcmp((char*)cph, (char*)mono_a[j])==0) {	    n_cph = j;	    break;	  }	}      }      else {	n_cph = TS_EMPTY_PHN;      }            // get the right context index      //      if(rph!=(char_1*)NULL) {		for(j=0; j<num_mono_a; j++) {	    	  if(strcmp((char*)rph, (char*)mono_a[j])==0) {	    n_rph = j;	    break;	  }	}      }      else {	n_rph = TS_EMPTY_PHN;      }      	      // get the states of the current phone      //      for(st_pos = 1; st_pos < CDM_DEFAULT_NUM_STATES - 1; st_pos++) {	tree_index = map_tr_index_cc(n_cph, num_spe_models_a, st_pos);	curr_dt_node = trees_a[tree_index]->get_root_cc();	leaf_flag = curr_dt_node->get_leaf_flag_cc();	  	if(leaf_flag == ISIP_TRUE) {	  state_index = curr_dt_node->get_label_cc();	  cd_models_a[i] ->set_state_ind_cc(state_index, st_pos);	}	else {	  while(leaf_flag != ISIP_TRUE) {	    result = curr_dt_node->ask_opt_question_cc(answers_a,						       n_lph, n_rph);	    if(result == ISIP_TRUE) {	      curr_dt_node = curr_dt_node->get_l_child_cc();	    }	    else {	      curr_dt_node = curr_dt_node->get_r_child_cc();	    }	    leaf_flag = curr_dt_node->get_leaf_flag_cc();	  }	  state_index = curr_dt_node->get_label_cc();	  cd_models_a[i] ->set_state_ind_cc(state_index, st_pos);	}      }    }        else {	tag_special_model = ISIP_FALSE;    }  }         // exist gracefully  //  return ISIP_TRUE;  }

⌨️ 快捷键说明

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