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

📄 madb_02.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/asr/MachineDatabase/madb_02.cc//// isip include files//#include "MachineDatabase.h"#include <Console.h>#include <Filename.h>// method: diagnose//// arguments://  Integral::DEBUG level: (input) debug level for diagnostics//// return: a boolean value indicating status//boolean MachineDatabase::diagnose(Integral::DEBUG level_a) {  //----------------------------------------------------------------------  //  // 0. preliminaries  //  //----------------------------------------------------------------------  // output the class name  //  if (level_a > Integral::NONE) {    SysString output(L"diagnosing class ");    output.concat(CLASS_NAME);    output.concat(L": ");    Console::put(output);    Console::increaseIndention();  }  // --------------------------------------------------------------------  //  // 1. required public methods  //  // --------------------------------------------------------------------  // set indentation  //    if (level_a > Integral::NONE) {    Console::put(L"testing required public methods...\n");    Console::increaseIndention();   }  // declare the database object  //  String val;  MachineDatabase mdb;  val.assign(L"XYZ");  // test the database name methods  //  mdb.setDataBaseName(val);  if (!mdb.getDataBaseName().eq(val)) {    return Error::handle(name(), L"diagnose", Error::TEST, __FILE__, __LINE__);  }  // retrieve the list of machines in the database  //  Vector<Machine>& machines = mdb.getDataBase();  if (!mdb.isEmpty()) {    return Error::handle(name(), L"diagnose", Error::TEST, __FILE__, __LINE__);  }  // set the number of machines  //  machines.setLength(2);  // set the attributes for the first machine  //  VectorDouble speed_00(1);  machines(0).setProtocol(Machine::REMOTE_SHELL);    val.assign(L"isip100.isip.msstate.edu");  machines(0).setNodeName(val);  val.assign(L"i86pc");  machines(0).setArchitecture(val);  machines(0).setNumProcessors((long)1);  speed_00(0) = (double)8.0e8;  machines(0).setProcessorSpeed(speed_00);  machines(0).setMainMemory((double)5.12e8);  machines(0).setSwapMemory((double)9.2e7);  val.assign(L"SunOS");  machines(0).setOS(val);  val.assign(L"Generic_106542-20");  machines(0).setOSVersion(val);  // set the attributes of the second machine  //  VectorDouble speed_01(2);      machines(1).setProtocol(Machine::REMOTE_SHELL);    val.assign(L"isip217.isip.msstate.edu");  machines(1).setNodeName(val);    val.assign(L"i86pc");  machines(1).setArchitecture(val);    machines(1).setNumProcessors((long)2);  speed_01(0) = (double)1.0e9;  speed_01(1) = (double)1.0e9;    machines(1).setProcessorSpeed(speed_01);    machines(1).setMainMemory((double)2.048e9);    machines(1).setSwapMemory((double)3.0e7);    val.assign(L"SunOS");  machines(1).setOS(val);    val.assign(L"Generic_108529-14");  machines(1).setOSVersion(val);    // test the i/o methods  //  Filename file_text;  Filename file_bin;  Integral::makeTemp(file_text);  Integral::makeTemp(file_bin);  // write the database in ascii and binary  //  Sof sof0;  sof0.open(file_text, File::WRITE_ONLY, File::TEXT);  Sof sof1;  sof1.open(file_bin, File::WRITE_ONLY, File::BINARY);      mdb.write(sof0, 0);  mdb.write(sof1, 0);    sof0.close();  sof1.close();    // read the database in ascii and binary  //  sof0.open(file_text);  sof1.open(file_bin);  MachineDatabase mdb0;  MachineDatabase mdb1;    mdb0.read(sof0, 0);  mdb1.read(sof1, 0);    sof0.close();  sof1.close();  // verify that the databases are the same  //  if (!mdb.eq(mdb0)) {    return Error::handle(name(), L"diagnose", Error::TEST, __FILE__, __LINE__);  }  if (!mdb.eq(mdb1)) {    return Error::handle(name(), L"diagnose", Error::TEST, __FILE__, __LINE__);  }      // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }  //---------------------------------------------------------------------  //  // 2. print completion message  //  //---------------------------------------------------------------------    // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }    if (level_a > Integral::NONE) {    SysString output(L"diagnostics passed for class ");    output.concat(name());    output.concat(L"\n");    Console::put(output);  }  // exit gracefully  //  return true;}

⌨️ 快捷键说明

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