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

📄 dec_inst_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: dec_inst_0.cc// // system include files//#include <string.h>// isip include files//#include "decoder.h"#include "decoder_constants.h"static int_4* hash_key = (int_4*)NULL;static int_4 hash_key_length = 0;// method: get_instance_cc//// arguments://  Instance*& inst: (output) the instance for this trace//  History* hist: (input) the history node for this trace//  Lex_node* lexch: (input) the next lexical node//  int_4 phn: (input) the cd model index//  // return: a logical_1 indicating status//// this method procures the instance based on the given data, and// creates a new one if one does not exist; in which case it also// updates the instance count and calculates the lm lookahead score//logical_1 Decoder::get_instance_cc(Instance*& inst_a, History* hist_a,				   Lex_node* lex_a, int_4 phn_a) {  // dummy variables  //  Hash_cell* instcell = (Hash_cell*)NULL;  Hash_cell* newcell = (Hash_cell*)NULL;  float_4 lmscore = (float_4)0;  int_4 index = 0;    // history word  //  int_4 hist_len = History::get_hist_len_cc();  void_p* histwords = hist_a->get_histwords_cc();  if (hash_key_length < (hist_len + 2)) {    hash_key_length = hist_len + 2;    if (hash_key != (int_4*)NULL) {      delete [] hash_key;    }    hash_key = new int_4[hash_key_length];    memset(hash_key, (int_4)0, hash_key_length * sizeof(int_4));     }    // see if this instance is already active  //  hash_key[0] = phn_a;  hash_key[1] = (int_4)lex_a;    // clear hash key at each function call  memset(hash_key+2, (int_4)0, hist_len * sizeof(int_4));    if (histwords != (void_p*)NULL) {    while (index < hist_len && histwords[index] != (void_p)NULL) {      hash_key[index + 2] = (int_4)histwords[index];      index++;    }  }  else {    while (index < hist_len) {      hash_key[index + 2] = 0;      index++;    }  }    instcell = inst_table_d->hash_lookup_cc(hash_key, hist_len + 2);    // if this instance didn't exist previously, create one and put it  // in the table  //  if (instcell == (Hash_cell*)NULL) {        // create a new instance    //    inst_a = manager_d->new_instance_cc();    inst_a->set_params_cc(lex_a, phn_a);        // put the new instance in the hash table and the instance list    //    newcell = manager_d->new_hash_cc();    newcell->set_cc(hash_key, hist_len + 2, (void_p)inst_a);    inst_table_d->hash_insert_cc(newcell);  }    // else get the instance from the instance table  //  else {    inst_a = (Instance*)(instcell->get_item_cc());  }    // set the instance lm score and scale the lm score  //  if (inst_a->get_lmscore_cc() == INSTANCE_DEFAULT_SCORE) {    lmscore = get_lmahead_cc(lex_a, hist_a);    inst_a->set_lmscore_cc(lmscore);  }  // check to see if this is an active instance, if not insert into  // list  //  if (inst_a->get_score_cc() == INSTANCE_DEFAULT_SCORE) {    inst_a->set_score_cc(INSTANCE_ACTIVE_SCORE);    inst_list_d->insert_cc((void_p)inst_a);    inst_count_d++;  }  // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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