Re: How to apply Fourier transform to speech signals?
- To: mathgroup at smc.vnet.net
- Subject: [mg113731] Re: How to apply Fourier transform to speech signals?
- From: hadi motamedi <motamedi24 at gmail.com>
- Date: Tue, 9 Nov 2010 03:54:14 -0500 (EST)
On 11/8/10, Nasser M. Abbasi <nma at 12000.org> wrote: > one way: > > -------------------------------- > (*showing how to load wav sound file, listen to it inside Mathematica > and plot its power spectrum. hacked by Nasser M. Abbasi on Nov 7.2010 at > the request of hadi motamedi while waiting for coeffe to be ready*) > > Remove["Global`*"]; > <<Audio` > > SetDirectory[ToFileName[Extract["FileName"/.NotebookInformation[EvaluationNotebook[]],{1},FrontEnd`FileName]]]; > > ele=Import["example.wav","Elements"] > Out[169]= > {AudioChannels,AudioEncoding,Data,SampledSoundList,SampleRate,Sound} > > In[170]:= (*listen to it *) > sound=Import["example.wav","Sound"]; > EmitSound[sound] > > In[172]:= Fs=Import["example.wav","SampleRate"] > Out[172]= 44100 > > (* now load the samples and do power spectrum *) > data=Import["example.wav","Data"]; > {nChannel,nSamples}=Dimensions[data] > > Out[174]= {2,324864} > > Py=Fourier[data[[1,All]]]; > nUniquePts=Ceiling[(nSamples+1)/2]; > Py=Py[[Range[1,nUniquePts]]]; > Py=Abs[Py]; > Py=Py/nSamples; > Py=Py^2; > Py=2 Py; > Py[[1]]=Py[[1]]/2;(*Py=Y*Conjugate[Y];*) > f=(Range[0,nUniquePts-1] Fs)/nSamples; > > ListPlot[Transpose[{f,Py}], > Joined->True, > PlotRange->All, > PlotLabel->"Power Spectrum of wav file", > AxesLabel->{"Freq. Hz","power"}, > ImageSize->400 > ] > > ----------------------------------- > > --Nasser > > Thank you very much for your help. Sorry did you have ever tried for your code? It seems that it needs some minor modifications to fit real case but I am not so expert to do that. Can you please help me to get the final result in real case?