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

📄 grammar_compiler.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: grammar_compiler.cc// // isip include files//#include "grammar_compiler.h"#include "grammar_compiler_constants.h"// Synopsis://   grammar_compiler.exe -probablistic -input inputfile -output//   outputfile//// main program//int main(int_4 argc, char_1** argv) {    // variables to hold command line parameters  //  char_1* input_file = new char_1[ISIP_MAX_STRING_LENGTH];  char_1* output_file = new char_1[ISIP_MAX_STRING_LENGTH];  logical_1 probablistic_flag = ISIP_FALSE;    // read and decipher the command line  //  read_cmdline_cc(argc, argv, probablistic_flag, input_file, output_file);  // create a memory manager and set it in the trace linked lists  //  Memory_manager* manager = new Memory_manager(GC_DEFAULT_BLOCK_SIZE,                                               GC_NODE_BLOCK_SIZE);  Link_list::set_manager_cc(manager);  // create a hash cell  //  Hash_cell** hcells = (Hash_cell**)NULL;  Hash_cell* next = (Hash_cell*)NULL;    Hash_table* lnode_d = (Hash_table*)NULL;  Lattice_node* ltn = (Lattice_node*)NULL;  Word* word = (Word*)NULL;    // node and arc parameters  //    int_4 num_nodes =  (int_4)0;  int_4 num_arcs = (int_4)0;    // create a lattice  //  Lattice* lattice = new Lattice();  Lattice_node* start_latn = (Lattice_node*)NULL;  start_latn = create_latnode_cc((char_1*)WRD_NULL, num_nodes, lattice);  lattice->set_start_node_cc(start_latn);  Lattice_node* end_latn = (Lattice_node*)NULL;    // read the grammar from file into an array of symobls  //  int_4 num = (int_4)0;  char_1** symbols = (char_1**)NULL;  symbols = new char_1*[GC_GRAM_MAX_SYMBOL_SIZE];  int_4 buffer_size = GC_GRAM_MAX_SYMBOL_SIZE*GC_COMMON_SYMBOL_LEN+1;  char_1* buffer = new char_1[buffer_size];  read_grammar_cc(symbols, num, input_file, buffer, buffer_size);    // parse the regular expression grammar and build the word graph  //  int_4 index = 0;  logical_1 allprob_flag = ISIP_FALSE;  build_net_cc(symbols, index, start_latn, end_latn, start_latn,	       lattice, num_nodes, num_arcs, allprob_flag);    lattice->set_num_nodes_cc(num_nodes);  lattice->set_num_arcs_cc(num_arcs);    // output the word graph into a lattice file  //  FILE* fpo = fopen((char*)output_file, "w");  if (fpo == (FILE*)NULL) {    fprintf(stdout, "Cannot open output file %s\n", output_file);    fprintf(stdout, "output to the stdout\n");  }  lattice->write_lattice_cc(fpo, ISIP_TRUE, probablistic_flag, allprob_flag);    fclose(fpo);    // free memory  //  delete [] input_file;  delete [] output_file;  delete [] buffer;  delete [] symbols;  symbols = (char_1**)NULL;  // get the table pointing to list of lattice nodes  //  lnode_d = lattice->get_lnodes_cc();  hcells = lnode_d->get_cells_cc();  int_4 hsize = lnode_d->get_size_cc();  for (int_4 k = 0; k < hsize; k++) {    for (Hash_cell* lcell = hcells[k]; lcell != (Hash_cell*)NULL;	 lcell = next) {      next = lcell->get_next_cc();      ltn = (Lattice_node*)(lcell->get_item_cc());      word = ltn->get_word_cc();      delete word;      word = (Word*)NULL;      ltn->clear_cc();      manager->delete_cc(ltn);      manager->delete_cc(lcell);    }    hcells[k] = (Hash_cell*)NULL;  }    delete lattice;  lattice = (Lattice*)NULL;  delete manager;    // exit gracefully  //  exit(ISIP_NO_ERROR);}

⌨️ 快捷键说明

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