Python: Frequency Analysis Of Sound Files
I am generating some sound files that play tones at various frequencies with a certain number of harmonics. Ultimately, these sounds will be played on a device with a small speaker
Solution 1:
I know you didn't mention Pylab/Matplotlib, but it works. Here is an example (assumes single-channel signal):
x, fs, nbits = audiolab.wavread('schubert.wav')
audiolab.play(x, fs)
N = 4*fs # four seconds of audio
X = scipy.fft(x[:N])
Xdb = 20*scipy.log10(scipy.absolute(X))
f = scipy.linspace(0, fs, N, endpoint=False)
pylab.plot(f, Xdb)
pylab.xlim(0, 5000) # view up to 5 kHz
Y = X*H
y = scipy.real(scipy.ifft(Y))
Solution 2:
you can use numpy and matPlotLib. Something like the code below:
spectrum = numpy.fft.fft(signal)
frequencies = numpy.fft.fftfreq(len(spectrum))
pylab.plot(frequencies,spectrum)
pylab.show()
That will show a graph of the fft spectrum.
Solution 3:
scipy has an FFT and hooks nicely into gnuplot. You should be able to use the signal module to do the math.
Post a Comment for "Python: Frequency Analysis Of Sound Files"