comparison trunk/src/Main/AIMCopy_SSI_Features.cc @ 306:42d154648b93

-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 ed91095d9240
children 30dde71d0230
comparison
equal deleted inserted replaced
305:ed91095d9240 306:42d154648b93
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(&params); 155 aimc::ModuleFileInput input(&params);
155 //aimc::ModuleNoise noise_maker(&params); 156 aimc::ModuleNoise noise_maker(&params);
156 aimc::ModuleGammatone bmm(&params); 157 aimc::ModuleGammatone bmm(&params);
157 aimc::ModuleHCL nap(&params); 158 aimc::ModuleHCL nap(&params);
158 aimc::ModuleParabola strobes(&params); 159 aimc::ModuleLocalMax strobes(&params);
159 aimc::ModuleSAI sai(&params); 160 aimc::ModuleSAI sai(&params);
160 aimc::ModuleSSI ssi(&params); 161 aimc::ModuleSSI ssi(&params);
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(&params); 166 aimc::ModuleSlice slice_1(&params);
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(&params); 170 aimc::ModuleSlice slice_2(&params);
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(&params); 174 aimc::ModuleSlice slice_3(&params);
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(&params); 178 aimc::ModuleSlice slice_4(&params);
178 179
179 params.SetBool("slice.all", true); 180 params.SetBool("slice.all", true);
180 aimc::ModuleSlice slice_5(&params); 181 aimc::ModuleSlice slice_5(&params);
182
183 params.SetFloat("nap.lowpass_cutoff", 100.0);
184 aimc::ModuleHCL smooth_nap(&params);
185 params.SetBool("slice.all", true);
186 aimc::ModuleSlice nap_profile(&params);
187 aimc::ModuleScaler nap_scaler(&params);
188 aimc::ModuleGaussians nap_features(&params);
189 aimc::FileOutputHTK nap_out(&params);
181 190
182 aimc::ModuleGaussians features_1(&params); 191 aimc::ModuleGaussians features_1(&params);
183 aimc::ModuleGaussians features_2(&params); 192 aimc::ModuleGaussians features_2(&params);
184 aimc::ModuleGaussians features_3(&params); 193 aimc::ModuleGaussians features_3(&params);
185 aimc::ModuleGaussians features_4(&params); 194 aimc::ModuleGaussians features_4(&params);
189 aimc::FileOutputHTK output_2(&params); 198 aimc::FileOutputHTK output_2(&params);
190 aimc::FileOutputHTK output_3(&params); 199 aimc::FileOutputHTK output_3(&params);
191 aimc::FileOutputHTK output_4(&params); 200 aimc::FileOutputHTK output_4(&params);
192 aimc::FileOutputHTK output_5(&params); 201 aimc::FileOutputHTK output_5(&params);
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());