comparison src/Main/aimc.cc @ 46:c8024714e13e

- Added support for a very basic AIM-C file format
author tomwalters@google.com
date Thu, 27 May 2010 07:25:03 +0000
parents c5f5e9569863
children e914b02b31b0
comparison
equal deleted inserted replaced
45:c5f5e9569863 46:c8024714e13e
21 21
22 #include "Modules/Input/ModuleFileInput.h" 22 #include "Modules/Input/ModuleFileInput.h"
23 #include "Modules/BMM/ModuleGammatone.h" 23 #include "Modules/BMM/ModuleGammatone.h"
24 #include "Modules/BMM/ModulePZFC.h" 24 #include "Modules/BMM/ModulePZFC.h"
25 #include "Modules/NAP/ModuleHCL.h" 25 #include "Modules/NAP/ModuleHCL.h"
26 #include "Modules/Strobes/ModuleParabola.h" 26 #include "Modules/Strobes/ModuleLocalMax.h"
27 #include "Modules/SAI/ModuleSAI.h" 27 #include "Modules/SAI/ModuleSAI.h"
28 #include "Modules/SSI/ModuleSSI.h" 28 #include "Modules/SSI/ModuleSSI.h"
29 #include "Modules/Profile/ModuleSlice.h" 29 #include "Modules/Profile/ModuleSlice.h"
30 #include "Modules/Profile/ModuleScaler.h" 30 #include "Modules/Profile/ModuleScaler.h"
31 #include "Modules/Features/ModuleGaussians.h" 31 #include "Modules/Features/ModuleGaussians.h"
32 #include "Modules/Output/FileOutputHTK.h" 32 #include "Modules/Output/FileOutputHTK.h"
33 #include "Modules/Output/FileOutputAIMC.h"
33 34
34 int main(int argc, char* argv[]) { 35 int main(int argc, char* argv[]) {
35 aimc::Parameters params; 36 aimc::Parameters params;
36 37
37 int buffer_length = 480; 38 int buffer_length = 480;
38 params.SetInt("input.buffersize", buffer_length); 39 params.SetInt("input.buffersize", buffer_length);
39 params.SetBool("slice.normalize", true);
40 params.SetFloat("nap.lowpass_cutoff", 100.0f);
41 40
42 aimc::ModuleFileInput input(&params); 41 aimc::ModuleFileInput input(&params);
43 aimc::ModuleGammatone bmm(&params); 42 aimc::ModuleGammatone bmm(&params);
44 // aimc::ModulePZFC bmm(&params);
45 aimc::ModuleHCL nap(&params); 43 aimc::ModuleHCL nap(&params);
46 // aimc::ModuleParabola strobes(&params); 44 aimc::ModuleLocalMax strobes(&params);
47 // aimc::ModuleSAI sai(&params); 45 aimc::ModuleSAI sai(&params);
48 // aimc::ModuleSSI ssi(&params); 46 aimc::FileOutputAIMC output(&params);
49 aimc::ModuleSlice profile(&params);
50 aimc::ModuleScaler scaler(&params);
51 aimc::ModuleGaussians features(&params);
52 aimc::FileOutputHTK output(&params);
53 47
54 std::string parameters_string = params.WriteString(); 48 std::string parameters_string = params.WriteString();
55 printf("%s", parameters_string.c_str()); 49 printf("%s", parameters_string.c_str());
56 50
57 input.AddTarget(&bmm); 51 input.AddTarget(&bmm);
58 bmm.AddTarget(&nap); 52 bmm.AddTarget(&nap);
59 nap.AddTarget(&profile); 53 nap.AddTarget(&strobes);
60 //strobes.AddTarget(&sai); 54 strobes.AddTarget(&sai);
61 //sai.AddTarget(&ssi); 55 sai.AddTarget(&output);
62 //ssi.AddTarget(&profile);
63 profile.AddTarget(&scaler);
64 scaler.AddTarget(&features);
65 features.AddTarget(&output);
66 56
67 float frame_period_ms = 1000.0f * buffer_length 57 output.OpenFile("test_output.aimc", params.GetFloat("sai.frame_period_ms"));
68 / input.GetOutputBank()->sample_rate();
69
70 output.OpenFile("test_output.htk", frame_period_ms);
71 if (input.LoadFile("test.wav")) {
72 input.Process();
73 } else {
74 printf("LoadFile failed");
75 }
76
77 input.Reset();
78 output.OpenFile("test_output_2.htk", frame_period_ms);
79 if (input.LoadFile("test.wav")) { 58 if (input.LoadFile("test.wav")) {
80 input.Process(); 59 input.Process();
81 } else { 60 } else {
82 printf("LoadFile failed"); 61 printf("LoadFile failed");
83 } 62 }