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

📄 jt_04.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/asr/JSGFToken/jt_04.cc//// implementation file for Token class//// isip include files//#include "JSGFToken.h"#include <Console.h>//-------------------------------------------------------------------//// class-specified public methods////--------------------------------------------------------------------// method: setToken//boolean JSGFToken::setToken(const String& arg_a) {  // token type is 0 for header  //  if (isHeader(arg_a)) {    token_type_d = 0;    header_d = arg_a;  }  // token type is 1 for keyword  //  else if (isKeyword(arg_a)) {    token_type_d = 1;    keyword_d = arg_a;  }      // token type is 2 for grammar name  //  else if (isGrammarName(arg_a)) {    token_type_d = 2;    // set the leading "grammar" as keyword    //    arg_a.substr(keyword_d, 0, 7);    // looking for the first character after the keyword    //    long start = arg_a.firstNotSpace(7);    long end = arg_a.lastNotSpace(arg_a.length() - 2);        // set grammar name    //    arg_a.substr(grammar_name_d, start, end - start + 1);    // set the ending sign as operator     //    operator_d[0].assign(L";");  }  // token type is 3 for import grammar  //  else if(isImportGrammar(arg_a)) {    token_type_d = 3;    // set the leading "import" as keyword    //    arg_a.substr(keyword_d, 0, 6);    // get the imported graammar name    //    long len = arg_a.length();    long start = arg_a.firstNotSpace(6);		          long end = arg_a.lastNotSpace(len - 2);    // set the string in the <> brackets as the import grammar name    //    arg_a.substr(import_grammar_d, start + 1, end - start - 1);        // set the ending sign as operator     //    operator_d[0] = L"<";    operator_d[1] = L">";  }    // token type is 4 for rulename  //  else if(isRulename(arg_a)) {    token_type_d = 4;    operator_d[0] = L"<";    operator_d[1] = L">";    arg_a.substr(rulename_d, 1, arg_a.length() - 2);  }  // token type is 5 for terminal  //  else if(isTerminal(arg_a)) {    token_type_d = 5;    terminal_d.assign(arg_a);  }  // token type is 6 for tag  //  else if(isTag(arg_a)) {    token_type_d = 6;    operator_d[0] = L"{";    operator_d[1] = L"}";    arg_a.substr(tag_d, 1, arg_a.length() - 2);  }  // token type is 7 for quoted token  //  else if(isQuotedToken(arg_a)) {    token_type_d = 7;    operator_d[0] = L"\"";    operator_d[1] = L"\"";    arg_a.substr(terminal_d, 1, arg_a.length() - 2);  }  // token type is 8 for weight  //  else if(isWeight(arg_a)) {    token_type_d = 8;    operator_d[0] = L"/";    operator_d[1] = L"/";    // set the weight number as weight_d data    //    String tmp;    arg_a.substr(tmp, 1, arg_a.length() - 2);    // cast string to double    //    Float weight;    weight.assign(tmp);    weight_d = weight;  }  // token type is 9 for operator  //  else if(isOperator(arg_a)) {    token_type_d = 9;    operator_d[0] = arg_a;  }  // exception: input string cannot be accepted as a legal token  //  else {    return false;  }    // gracefully exit  //  return true;}// method: setVertexIndex//boolean JSGFToken::setVertexIndex(const long vertex_index_a) {  vertex_index_d = vertex_index_a;  // gracefully exit  //  return true; }// method: setRuleName//boolean JSGFToken::setRuleName(const String& rule_name_a) {  term_rule_name_d.assign(rule_name_a);  // gracefully exit  //  return true; }// method: setMarker//boolean JSGFToken::setMarker(const String& marker_a,			     const JSGFToken& name_a) {  // token type is 10 for marker  //  token_type_d = 10;  operator_d[0] = marker_a;  rulename_d.assign(name_a.rulename_d);  // gracefully exit  //  return true; }// method: printToken//boolean JSGFToken::printToken() {  // header  //  if (token_type_d == 0) {    Console::put(header_d);  }  // grammar name  //  else if (token_type_d == 2) {    String output(keyword_d);    output.concat(L" ");    output.concat(grammar_name_d);    Console::put(output);  }  // import grammar  //  else if (token_type_d == 3) {    String output(keyword_d);    output.concat(L" ");    output.concat(operator_d[0]);    output.concat(import_grammar_d);    output.concat(operator_d[1]);    Console::put(output);  }  // keyword for public rulename  //  else if (token_type_d == 1) {    Console::put(keyword_d);  }  // rulename  //  else if (token_type_d == 4) {    String output(operator_d[0]);    output.concat(rulename_d);    output.concat(operator_d[1]);    Console::put(output);  }  // terminal   //  else if (token_type_d == 5) {    Console::put(terminal_d);  }  // tag  //  else if (token_type_d == 6) {    String output(operator_d[0]);    output.concat(tag_d);    output.concat(operator_d[1]);    Console::put(output);  }  // quoted token  //  else if (token_type_d == 7) {    String output(operator_d[0]);    output.concat(terminal_d);    output.concat(operator_d[1]);    Console::put(output);  }  // weight  //  else if (token_type_d == 8) {    Float weight(weight_d);    String output(operator_d[0]);    output.concat(weight);    output.concat(operator_d[1]);    Console::put(output);  }  // operator  //  else if (token_type_d == 9) {    Console::put(operator_d[0]);  }  // marker  //  else if (token_type_d == 10) {    String output(operator_d[0]);    output.concat(L" <");    output.concat(rulename_d);    output.concat(L">");    Console::put(output);  }  // exit gracefully  //  return true;}// method: setCoordinate// set coordinate for terminal token in DiGraph//boolean JSGFToken::setCoordinate(long row_a, long col_a) {  term_row_d = row_a;  term_col_d = col_a;    // gracefully exit  //  return true;}// method: setTerminalWeight//// arguments: JSGFToken& arg_a: (input) a JSGF weight token //// return: a boolean value indicating status//// set a weight value of input weight token to the given terminal,// quoted token, or grouping operator( or [ //boolean JSGFToken::setTerminalWeight(JSGFToken& arg_a) {    // pick up the input weight value and set it to this token  //  weight_d = arg_a.weight_d;    // set weight flag to indicate a weight value has been assigned  //  weighted_terminal_d = true;  // gracefully exit  //  return true;}

⌨️ 快捷键说明

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