diff trunk/src/Main/aimc.cc @ 292:10d0803e37ec

-Added a module to scale output values by the channel centre frequency -Fixed file input to support loading and processing of multiple files -Updated the aimc main file to generate profiles like in the recognition experiments
author tomwalters
date Mon, 22 Feb 2010 17:51:27 +0000
parents 6cf55200a199
children 30dde71d0230
line wrap: on
line diff
--- a/trunk/src/Main/aimc.cc	Mon Feb 22 12:45:05 2010 +0000
+++ b/trunk/src/Main/aimc.cc	Mon Feb 22 17:51:27 2010 +0000
@@ -28,19 +28,27 @@
 #include "Modules/SAI/ModuleSAI.h"
 #include "Modules/SSI/ModuleSSI.h"
 #include "Modules/Profile/ModuleSlice.h"
+#include "Modules/Profile/ModuleScaler.h"
 #include "Modules/Features/ModuleGaussians.h"
 #include "Modules/Output/FileOutputHTK.h"
 
 int main(int argc, char* argv[]) {
   aimc::Parameters params;
+
+  int buffer_length = 480;
+  params.SetInt("input.buffersize", buffer_length);
+  params.SetBool("slice.normalize", true);
+  params.SetFloat("nap.lowpass_cutoff", 100.0f);
+
   aimc::ModuleFileInput input(&params);
   aimc::ModuleGammatone bmm(&params);
   // aimc::ModulePZFC bmm(&params);
   aimc::ModuleHCL nap(&params);
-  aimc::ModuleParabola strobes(&params);
-  aimc::ModuleSAI sai(&params);
-  aimc::ModuleSSI ssi(&params);
+  // aimc::ModuleParabola strobes(&params);
+  // aimc::ModuleSAI sai(&params);
+  // aimc::ModuleSSI ssi(&params);
   aimc::ModuleSlice profile(&params);
+  aimc::ModuleScaler scaler(&params);
   aimc::ModuleGaussians features(&params);
   aimc::FileOutputHTK output(&params);
 
@@ -49,14 +57,26 @@
 
   input.AddTarget(&bmm);
   bmm.AddTarget(&nap);
-  nap.AddTarget(&strobes);
-  strobes.AddTarget(&sai);
-  sai.AddTarget(&ssi);
-  ssi.AddTarget(&profile);
-  profile.AddTarget(&features);
+  nap.AddTarget(&profile);
+  //strobes.AddTarget(&sai);
+  //sai.AddTarget(&ssi);
+  //ssi.AddTarget(&profile);
+  profile.AddTarget(&scaler);
+  scaler.AddTarget(&features);
   features.AddTarget(&output);
 
-  output.OpenFile("test_output.htk", params.GetFloat("sai.frame_period_ms"));
+  float frame_period_ms = 1000.0f * buffer_length
+                          / input.GetOutputBank()->sample_rate();
+
+  output.OpenFile("test_output.htk", frame_period_ms);
+  if (input.LoadFile("test.wav")) {
+    input.Process();
+  } else {
+    printf("LoadFile failed");
+  }
+
+  input.Reset();
+  output.OpenFile("test_output_2.htk", frame_period_ms);
   if (input.LoadFile("test.wav")) {
     input.Process();
   } else {