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

📄 ht_project_4.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: ht_project_4.cc//// isip include files//#include "hmm_train.h"#include "hmm_train_constants.h"static int_4* trans_states = (int_4*)NULL;static float_4* trans_scores = (float_4*)NULL;static int_4 trans_states_size = 0;// method: grow_trace_cc//// arguments://  Train_Trace* trace : (input) the input trace to be projected//  Train_Link_list*& tok_list : (input) linked list of active tokens for this phone//  Train_Lex_node* lexnode : (input) the lexical node for the new trace//  Train_Lattice_node* latnode : (input) the lattice node for the new trace//  float_8 lmscore : (input) the language model score for this trace//  Train_Phone** phones : (input) phone models//  int_4 phn : (input) the triphone index of the new trace//  int_4*& wd_active : (output) list of active words//  int_4& wd_numact : (output) number of active words//  int_4*& ph_active : (output) list of active phones//  int_4& ph_numact : (output) number of active phones//  int_4*& ngen : (output) number of traces generated//  float_8& max_score : (output) maximum path score so far//// return: a logical_1 indicating status//// this method projects the given trace onto all traces for the given// next phone//logical_1 grow_trace_cc(Train_Trace* trace_a, Train_Link_list*& tok_list_a,			Train_Lex_node* lexnode_a, Train_Lattice_node* latnode_a,			float_8 lmscore_a, Train_Phone** phones_a, int_4 phn_a,			int_4*& wd_active_a, int_4& wd_numact_a,			int_4*& ph_active_a, int_4& ph_numact_a,			int_4*& ngen_a, float_8& max_score_a) {  // dummy variables  //  int_4 num_trans = (int_4)0;  // new trace  //  Train_Trace* new_trace = (Train_Trace*)NULL;  // model params  //  int_4 num_st = (int_4)0;  Train_Model* model = (Train_Model*)NULL;      // memory manager  //  Train_Memory_manager* manager = Train_Link_list::get_manager_cc();  // current lattice node  //  Train_Lattice_node* curr_lat = trace_a->get_lat_node_cc();    // add the current word to the list of active words  //  Train_Word* word = latnode_a->get_word_cc();  int_4 ind = word->get_index_cc();  if (word->get_active_cc() == ISIP_FALSE) {    word->set_active_cc(ISIP_TRUE);    wd_active_a[wd_numact_a++] = ind;  }  // add the current phone to the list of active phones  //  if (phones_a[phn_a]->get_active_cc() == ISIP_FALSE) {    phones_a[phn_a]->set_active_cc(ISIP_TRUE);    ph_active_a[ph_numact_a++] = phn_a;  }  // get the triphone model params  //  model = phones_a[phn_a]->get_model_cc();  num_st = model->get_num_states_cc();    // find all possible start states for this phone  //  model->get_next_states_cc((int_4)0, num_trans, trans_states, trans_scores,			    trans_states_size);    // loop over all of the possible next states and  // pass traces to each  //  for (int_4 kk = 0; kk < num_trans; kk++) {        // check for phones in their stop state    //    if (trans_states[kk] < num_st - (int_4)1) {            // create a new trace with the transitioned state      //      new_trace = manager->new_trace_cc();      new_trace->project_trace_cc(trace_a, (float_8)trans_scores[kk] +				  lmscore_a);            // update the new lexical node      //      new_trace->set_lex_node_cc(lexnode_a);      // set the level to state and state index      //      new_trace->set_level_cc(HT_STATE_LEVEL);      new_trace->set_state_ind_cc(trans_states[kk]);            // set the back-pointer      //      new_trace->set_back_size_cc(HT_STATE_BACKPTR);      new_trace->add_back_ptr_cc(trace_a);                  // update the lattice node if necessary      //      if (latnode_a != curr_lat) {	new_trace->set_lat_node_cc(latnode_a);      }            // set the phone index      //      new_trace->set_phone_ind_cc(phn_a);            // insert this in the corresponding state list      //      insert_token_cc(tok_list_a, new_trace, trans_states[kk],		      ngen_a[HT_STATE_LEVEL], max_score_a);    }  } // end loop over all transitions    // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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