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

📄 mod_hmm_1.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: mod_hmm_1.cc//// isip include files//#include "model.h"#include "model_constants.h"static int_4* tmp_next = (int_4*)NULL;static int_4 tmp_next_size = 0;// method: get_next_states_cc//// arguments://  int_4 state : (input) the state index for source state//  int_4& num_trans : (output) number of possible transitions//  int_4*& trans_states : (output) array of possible next state indices//  float_4*& trans_scores : (output) array of transition scores//  int_4&  trans_states_size: (input/output) current size of the input vectors//  //// return: logical_1 indicating suuccess//// this methods checks all possible transitions from the specified// state and returns the number of transitions along with the// coresponding destination state indices and the transition scores//logical_1 Model::get_next_states_cc(int_4 state_ind_a, int_4& num_trans_a,				    int_4*& trans_states_a,				    float_4*& trans_scores_a,				    int_4& trans_states_size_a) {    // check the validity of the input state index  //  if (state_ind_a > num_states_d - (int_4)1) {    return ISIP_FALSE;  }  if (tmp_next_size < num_states_d) {    if (tmp_next != (int_4*)NULL) {      delete [] tmp_next;    }    tmp_next = new int_4[num_states_d];    tmp_next_size = num_states_d;  }  // initialize the number of transitions  //  num_trans_a = (int_4)0;  int_4 ind = state_ind_a * num_states_d;  // now check all transitions from the current state  //  for (int_4 i = 0; i < num_states_d; i++) {    // if this transition exists    //    if (trans_prob_d[ind + i] > MODEL_NOTRANS_SCORE) {      // record this transition and increment transition count      //      tmp_next[num_trans_a++] = i;    }  }  // make sure some transitions exist  //  if (num_trans_a == 0) {    return ISIP_FALSE;  }  // now copy this to the output array  //  if (trans_states_size_a < num_trans_a) {    if (trans_states_a != (int_4*)NULL) {      delete [] trans_states_a;    }    trans_states_a = new int_4[num_trans_a];    if (trans_scores_a != (float_4*)NULL) {      delete [] trans_scores_a;    }    trans_scores_a = new float_4[num_trans_a];    trans_states_size_a = num_trans_a;  }  // copy the states and the scores  //  for (int_4 i = 0; i < num_trans_a; i++) {    trans_states_a[i] = tmp_next[i];    trans_scores_a[i] = trans_prob_d[ind + trans_states_a[i]];  }   // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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