Mercurial > hg > aimc
comparison src/Main/AIMCopy_SSI_Features.cc @ 33:f8fe1aadf097
-Modified AIMCopy for slices experiment
-Added gen_features script to just generate features for a given SNR
author | tomwalters |
---|---|
date | Thu, 25 Feb 2010 23:08:08 +0000 |
parents | 9122efd2b227 |
children | c5f5e9569863 |
comparison
equal
deleted
inserted
replaced
32:9122efd2b227 | 33:f8fe1aadf097 |
---|---|
47 #include "Modules/Input/ModuleFileInput.h" | 47 #include "Modules/Input/ModuleFileInput.h" |
48 #include "Modules/BMM/ModuleGammatone.h" | 48 #include "Modules/BMM/ModuleGammatone.h" |
49 #include "Modules/BMM/ModulePZFC.h" | 49 #include "Modules/BMM/ModulePZFC.h" |
50 #include "Modules/NAP/ModuleHCL.h" | 50 #include "Modules/NAP/ModuleHCL.h" |
51 #include "Modules/Strobes/ModuleParabola.h" | 51 #include "Modules/Strobes/ModuleParabola.h" |
52 #include "Modules/Strobes/ModuleLocalMax.h" | |
52 #include "Modules/SAI/ModuleSAI.h" | 53 #include "Modules/SAI/ModuleSAI.h" |
53 #include "Modules/SSI/ModuleSSI.h" | 54 #include "Modules/SSI/ModuleSSI.h" |
54 #include "Modules/SNR/ModuleNoise.h" | 55 #include "Modules/SNR/ModuleNoise.h" |
55 #include "Modules/Profile/ModuleSlice.h" | 56 #include "Modules/Profile/ModuleSlice.h" |
56 #include "Modules/Profile/ModuleScaler.h" | 57 #include "Modules/Profile/ModuleScaler.h" |
150 return -1; | 151 return -1; |
151 } | 152 } |
152 | 153 |
153 // Set up AIM-C processor here | 154 // Set up AIM-C processor here |
154 aimc::ModuleFileInput input(¶ms); | 155 aimc::ModuleFileInput input(¶ms); |
155 //aimc::ModuleNoise noise_maker(¶ms); | 156 aimc::ModuleNoise noise_maker(¶ms); |
156 aimc::ModuleGammatone bmm(¶ms); | 157 aimc::ModuleGammatone bmm(¶ms); |
157 aimc::ModuleHCL nap(¶ms); | 158 aimc::ModuleHCL nap(¶ms); |
158 aimc::ModuleParabola strobes(¶ms); | 159 aimc::ModuleLocalMax strobes(¶ms); |
159 aimc::ModuleSAI sai(¶ms); | 160 aimc::ModuleSAI sai(¶ms); |
160 aimc::ModuleSSI ssi(¶ms); | 161 aimc::ModuleSSI ssi(¶ms); |
161 | 162 |
162 params.SetBool("slice.all", false); | 163 params.SetBool("slice.all", false); |
163 params.SetInt("slice.lower_index", 40); | 164 params.SetInt("slice.lower_index", 77); |
164 params.SetInt("slice.upper_index", 56); | 165 params.SetInt("slice.upper_index", 150); |
165 aimc::ModuleSlice slice_1(¶ms); | 166 aimc::ModuleSlice slice_1(¶ms); |
166 | 167 |
167 params.SetInt("slice.lower_index", 88); | 168 params.SetInt("slice.lower_index", 210); |
168 params.SetInt("slice.upper_index", 104); | 169 params.SetInt("slice.upper_index", 240); |
169 aimc::ModuleSlice slice_2(¶ms); | 170 aimc::ModuleSlice slice_2(¶ms); |
170 | 171 |
171 params.SetInt("slice.lower_index", 184); | 172 params.SetInt("slice.lower_index", 280); |
172 params.SetInt("slice.upper_index", 200); | 173 params.SetInt("slice.upper_index", 304); |
173 aimc::ModuleSlice slice_3(¶ms); | 174 aimc::ModuleSlice slice_3(¶ms); |
174 | 175 |
175 params.SetInt("slice.lower_index", 376); | 176 params.SetInt("slice.lower_index", 328); |
176 params.SetInt("slice.upper_index", 392); | 177 params.SetInt("slice.upper_index", 352); |
177 aimc::ModuleSlice slice_4(¶ms); | 178 aimc::ModuleSlice slice_4(¶ms); |
178 | 179 |
179 params.SetBool("slice.all", true); | 180 params.SetBool("slice.all", true); |
180 aimc::ModuleSlice slice_5(¶ms); | 181 aimc::ModuleSlice slice_5(¶ms); |
182 | |
183 params.SetFloat("nap.lowpass_cutoff", 100.0); | |
184 aimc::ModuleHCL smooth_nap(¶ms); | |
185 params.SetBool("slice.all", true); | |
186 aimc::ModuleSlice nap_profile(¶ms); | |
187 aimc::ModuleScaler nap_scaler(¶ms); | |
188 aimc::ModuleGaussians nap_features(¶ms); | |
189 aimc::FileOutputHTK nap_out(¶ms); | |
181 | 190 |
182 aimc::ModuleGaussians features_1(¶ms); | 191 aimc::ModuleGaussians features_1(¶ms); |
183 aimc::ModuleGaussians features_2(¶ms); | 192 aimc::ModuleGaussians features_2(¶ms); |
184 aimc::ModuleGaussians features_3(¶ms); | 193 aimc::ModuleGaussians features_3(¶ms); |
185 aimc::ModuleGaussians features_4(¶ms); | 194 aimc::ModuleGaussians features_4(¶ms); |
189 aimc::FileOutputHTK output_2(¶ms); | 198 aimc::FileOutputHTK output_2(¶ms); |
190 aimc::FileOutputHTK output_3(¶ms); | 199 aimc::FileOutputHTK output_3(¶ms); |
191 aimc::FileOutputHTK output_4(¶ms); | 200 aimc::FileOutputHTK output_4(¶ms); |
192 aimc::FileOutputHTK output_5(¶ms); | 201 aimc::FileOutputHTK output_5(¶ms); |
193 | 202 |
194 input.AddTarget(&bmm); | 203 input.AddTarget(&noise_maker); |
195 // No noise for now | 204 noise_maker.AddTarget(&bmm); |
196 //noise_maker.AddTarget(&bmm); | |
197 bmm.AddTarget(&nap); | 205 bmm.AddTarget(&nap); |
206 bmm.AddTarget(&smooth_nap); | |
207 smooth_nap.AddTarget(&nap_profile); | |
208 nap_profile.AddTarget(&nap_scaler); | |
209 nap_scaler.AddTarget(&nap_features); | |
210 nap_features.AddTarget(&nap_out); | |
198 nap.AddTarget(&strobes); | 211 nap.AddTarget(&strobes); |
199 strobes.AddTarget(&sai); | 212 strobes.AddTarget(&sai); |
200 sai.AddTarget(&ssi); | 213 sai.AddTarget(&ssi); |
201 | 214 |
202 ssi.AddTarget(&slice_1); | 215 ssi.AddTarget(&slice_1); |
234 outfile << "# Run on: " << asctime(timeinfo); | 247 outfile << "# Run on: " << asctime(timeinfo); |
235 char * descr = getenv("USER"); | 248 char * descr = getenv("USER"); |
236 if (descr) { | 249 if (descr) { |
237 outfile << "# By user: " << descr <<"\n"; | 250 outfile << "# By user: " << descr <<"\n"; |
238 } | 251 } |
239 outfile << "# Module chain: "; | 252 outfile << "#Module chain: "; |
253 outfile << "#input"; | |
254 outfile << "# noise_maker"; | |
240 outfile << "# gt"; | 255 outfile << "# gt"; |
241 outfile << "# parabola"; | 256 outfile << "# nap"; |
242 outfile << "# sai_weighted"; | 257 outfile << "# slice"; |
243 outfile << "# ssi"; | 258 outfile << "# scaler"; |
244 outfile << "# slice"; | 259 outfile << "# features"; |
245 outfile << "# features"; | 260 outfile << "# output"; |
246 outfile << "# output"; | 261 outfile << "# local_max"; |
247 outfile << "# slice"; | 262 outfile << "# sai_weighted"; |
248 outfile << "# features"; | 263 outfile << "# ssi"; |
249 outfile << "# output"; | 264 outfile << "# slice"; |
250 outfile << "# slice"; | 265 outfile << "# features"; |
251 outfile << "# features"; | 266 outfile << "# output"; |
252 outfile << "# output"; | 267 outfile << "# slice"; |
253 outfile << "# slice"; | 268 outfile << "# features"; |
254 outfile << "# features"; | 269 outfile << "# output"; |
255 outfile << "# output"; | 270 outfile << "# slice"; |
256 outfile << "# slice"; | 271 outfile << "# features"; |
257 outfile << "# features"; | 272 outfile << "# output"; |
258 outfile << "# output"; | 273 outfile << "# slice"; |
274 outfile << "# features"; | |
275 outfile << "# output"; | |
276 outfile << "# slice"; | |
277 outfile << "# features"; | |
278 outfile << "# output"; | |
259 outfile << "# "; | 279 outfile << "# "; |
260 outfile << "# Module versions:\n"; | 280 outfile << "# Module versions:\n"; |
261 outfile << "# " << input.id() << " : " << input.version() << "\n"; | 281 outfile << "# " << input.id() << " : " << input.version() << "\n"; |
262 outfile << "# " << bmm.id() << " : " << bmm.version() << "\n"; | 282 outfile << "# " << bmm.id() << " : " << bmm.version() << "\n"; |
263 outfile << "# " << nap.id() << " : " << nap.version() << "\n"; | 283 outfile << "# " << nap.id() << " : " << nap.version() << "\n"; |
273 outfile << params.WriteString(); | 293 outfile << params.WriteString(); |
274 outfile.close(); | 294 outfile.close(); |
275 } | 295 } |
276 | 296 |
277 for (unsigned int i = 0; i < file_list.size(); ++i) { | 297 for (unsigned int i = 0; i < file_list.size(); ++i) { |
278 aimc::LOG_INFO(_T("In: %s"), file_list[i].first.c_str()); | 298 // aimc::LOG_INFO(_T("In: %s"), file_list[i].first.c_str()); |
279 aimc::LOG_INFO(_T("Out: %s"), file_list[i].second.c_str()); | 299 aimc::LOG_INFO(_T("Out: %s"), file_list[i].second.c_str()); |
280 | 300 |
281 string filename = file_list[i].second + "_1"; | 301 string filename = file_list[i].second + ".slice_1"; |
282 output_1.OpenFile(filename.c_str(), 10.0f); | 302 output_1.OpenFile(filename.c_str(), 10.0f); |
283 filename = file_list[i].second + "_2"; | 303 filename = file_list[i].second + ".slice_2"; |
284 output_2.OpenFile(filename.c_str(), 10.0f); | 304 output_2.OpenFile(filename.c_str(), 10.0f); |
285 filename = file_list[i].second + "_3"; | 305 filename = file_list[i].second + ".slice_3"; |
286 output_3.OpenFile(filename.c_str(), 10.0f); | 306 output_3.OpenFile(filename.c_str(), 10.0f); |
287 filename = file_list[i].second + "_4"; | 307 filename = file_list[i].second + ".slice_4"; |
288 output_4.OpenFile(filename.c_str(), 10.0f); | 308 output_4.OpenFile(filename.c_str(), 10.0f); |
289 filename = file_list[i].second + "_5"; | 309 filename = file_list[i].second + ".ssi_profile"; |
290 output_5.OpenFile(filename.c_str(), 10.0f); | 310 output_5.OpenFile(filename.c_str(), 10.0f); |
311 filename = file_list[i].second + ".smooth_nap_profile"; | |
312 nap_out.OpenFile(filename.c_str(), 10.0f); | |
291 | 313 |
292 if (input.LoadFile(file_list[i].first.c_str())) { | 314 if (input.LoadFile(file_list[i].first.c_str())) { |
293 input.Process(); | 315 input.Process(); |
294 } else { | 316 } else { |
295 printf("LoadFile failed for file %s\n", file_list[i].first.c_str()); | 317 printf("LoadFile failed for file %s\n", file_list[i].first.c_str()); |