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

📄 plist_grow_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: plist_grow_0.cc//// isip include files//#include "path_list.h"#include "path_list_constants.h"#include <word.h>#include <nbest_node.h>// method: grow_paths_cc//// arguments://  Path_list**& path_lists: (input) set of path lists//  float_8 lm_scale_a: (input) lm scale//  float_8 ac_scale_a: (input) word insertion penalty//  int_4 max_paths_a: (input) maximum number of partial paths in a list//  float_8 beam: (input) beam for pruning//// return: a logical_1 indicating status//// this method grow the current path list based on the nodes the// lattice nodes in the list can transition to//logical_1 Path_list::grow_paths_cc(Path_list**& path_lists_a,				   float_8 lm_scale_a,				   float_8 wd_penalty_a,				   int_4 max_paths_a,				   float_8 beam_a) {    // define local variables  //  Lattice_node* lat_node = (Lattice_node*)NULL;  Lattice_node* next_latnode = (Lattice_node*)NULL;  Nbest_node* nnode = (Nbest_node*)NULL;  Nbest_node* new_nbest_node = (Nbest_node*)NULL;  Link_list* next_latnodes = (Link_list*)NULL;  Link_node* next_pnode = (Link_node*)NULL;  Link_node* next_lnode = (Link_node*)NULL;  float_8 ac_score = (float_8)0;  float_8 lm_score = (float_8)0;  float_8 score = (float_8)0;  int_4 frame_index = (int_4)0;  // loop through the partial path list  //  if (paths_d != (Link_list*)NULL) {    for (Link_node* node = paths_d->get_head_cc(); node != (Link_node*)NULL;	 node = next_pnode) {            // get the nbest node and the lattice node corresponding to this      // partial path      //      nnode = (Nbest_node*)(node->get_item_cc());            lat_node = nnode->get_lnode_cc();      // get the next lattice nodes and acoustic scores      //      next_latnodes = lat_node->get_next_nodes_cc();      // loop through the possible next lattice nodes      //            if (next_latnodes != (Link_list*)NULL) {	for (Link_node* lnode = next_latnodes->get_head_cc(); 	     lnode != (Link_node*)NULL;	     lnode = next_lnode) {	  // get the next lattice node, create a corresponding nbest node	  //	  next_latnode = (Lattice_node*)(lnode->get_item_cc());	  ac_score = lat_node->get_acscore_cc(next_latnode);	  lm_score = lat_node->get_lmscore_cc(next_latnode);	  frame_index = next_latnode->get_frame_index_cc();	  score = nnode->get_score_cc() + ac_score +	    (lm_scale_a*lm_score) + wd_penalty_a;	  // create and add this partial list to the path list only	  // if it falls within the beam at this time	  //	  if (score > (path_lists_a[frame_index]->max_score_d - beam_a)) {	    	    // create the partial path	    //	    new_nbest_node = new Nbest_node(next_latnode, nnode, score);	    	    // and add it to the appropriate path list	    //	    path_lists_a[frame_index]->add_path_cc(new_nbest_node);	    	    // set the max score	    //	    if (score > path_lists_a[frame_index]->max_score_d) {	      path_lists_a[frame_index]->max_score_d = score;	    }	  }	  	  // get next node in the link list	  //	  next_lnode = lnode->get_next_cc();	}      }      // get next node in the link list      //      next_pnode = node->get_next_cc();    }  }  // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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