Mercurial > hg > aimc
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)