changeset 149:a61f41b221e1

corrected a bug in the swig example and added a new more complex example
author hamel.phil
date Wed, 05 Jan 2011 18:48:02 +0000
parents 89215dab69c5
children 9425901c60a6
files swig/audio_example.py swig/example.py test_data/short_example.wav
diffstat 3 files changed, 75 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/swig/audio_example.py	Wed Jan 05 18:48:02 2011 +0000
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+#
+#  audio_example.py
+#  
+#
+#  Created by Philippe Hamel on 10-12-22.
+#
+# Script to extract SAIs from an audio file using python
+
+# Example wav file
+wavfile = '../test_data/short_example.wav'
+
+
+def process_module(module, input_signal, global_params):
+	module.Initialize(input_signal,global_params)
+	module.Process(input_signal)
+	return module.GetOutputBank()
+
+import aimc
+import numpy
+#pygmy is available at hg clone https://bitbucket.org/douglaseck/pygmy/
+#TODO : find a more general way to open audio file
+from pygmy.io.audio import AudioFile
+
+af=AudioFile(wavfile)
+x,sr,z=af.read(mono=True)
+#x,sr,z=af.read(mono=True,tlen_sec=0.1)
+#x=x[:1024]
+
+print len(x)
+print sr
+
+sig = aimc.SignalBank()
+sig.Initialize(1,len(x),sr)
+sig.set_signal(0,x)
+
+pzfc_params = aimc.Parameters()
+#pzfc_params.SetString('name','PZFCFilterBank')
+#pzfc_params.SetString('child1','NAP')
+
+hcl_params = aimc.Parameters()
+#hcl_params.SetString('name','NAP')
+#hcl_params.SetString('child1','NAP')
+
+global_params = aimc.Parameters()
+
+pzfc = aimc.ModulePZFC(pzfc_params)
+pzfc.Initialize(sig,global_params)
+pzfc.Process(sig)
+pzfc_output = pzfc.GetOutputBank()
+
+hcl = aimc.ModuleHCL(hcl_params)
+hcl_output = process_module(hcl, pzfc_output, global_params)
+
+local_max = aimc.ModuleLocalMax( aimc.Parameters())
+local_max_output = process_module(local_max, hcl_output, global_params)
+
+sai = aimc.ModuleSAI( aimc.Parameters())
+sai_output = process_module(sai, local_max_output, global_params)
+
+
+if True:
+	output_bank=sai_output
+	n_channel = output_bank.channel_count()
+	sig_length = output_bank.buffer_length()
+	output_matrix = numpy.zeros((n_channel,sig_length))
+	for i in range(n_channel):
+		output_matrix[i] = numpy.array(output_bank.get_signal(i))
+	print output_matrix
+	print output_matrix.shape
+	print output_matrix.sum()
+
+#output_signal = numpy.array(output_bank.get_signal(0))
+
--- a/swig/example.py	Sun Nov 14 06:04:58 2010 +0000
+++ b/swig/example.py	Wed Jan 05 18:48:02 2011 +0000
@@ -19,7 +19,7 @@
 import aimc
 module_params = aimc.Parameters()
 global_params = aimc.Parameters()
-mod_gauss = aimc.ModuleGaussians(params)
+mod_gauss = aimc.ModuleGaussians(module_params)
 sig = aimc.SignalBank()
 sig.Initialize(115, 1, 44100)
 mod_gauss.Initialize(sig, global_params)
Binary file test_data/short_example.wav has changed