Mercurial > hg > aimc
diff src/Main/aimc.cc @ 20:fff25824d1d1
-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 | f4e712d41321 |
children | c5f5e9569863 |
line wrap: on
line diff
--- a/src/Main/aimc.cc Mon Feb 22 12:45:05 2010 +0000 +++ b/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(¶ms); aimc::ModuleGammatone bmm(¶ms); // aimc::ModulePZFC bmm(¶ms); aimc::ModuleHCL nap(¶ms); - aimc::ModuleParabola strobes(¶ms); - aimc::ModuleSAI sai(¶ms); - aimc::ModuleSSI ssi(¶ms); + // aimc::ModuleParabola strobes(¶ms); + // aimc::ModuleSAI sai(¶ms); + // aimc::ModuleSSI ssi(¶ms); aimc::ModuleSlice profile(¶ms); + aimc::ModuleScaler scaler(¶ms); aimc::ModuleGaussians features(¶ms); aimc::FileOutputHTK output(¶ms); @@ -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 {