How would I go about using Python to read the frequency peaks from a WAV PCM file and then be able to generate an image of it, for spectogram analysis?
I'm trying to make a program that allows you to read any audio file, converting it to WAV PCM, and then finding the peaks and frequency cutoffs.
If you need to convert from PCM format to integers, you'll want to use struct.unpack.
Python's wave library will let you import the audio. After that, you can use numpy to take an FFT of the audio.
Then, matplotlib makes very nice charts and graphs - absolutely comparable to MATLAB.
It's old as dirt, but this article would probably get you started on almost exactly the problem you're describing (article in Python of course).
is the easiest. Also quite handy in this context:
But be warned: Matplotlib is very slow but it creates beautiful images. You should not use it for demanding animation, even less when you are dealing with 3D
Loading WAV files is easy using audiolab:
or for reading any general audio format and converting to WAV:
The spectrogram is built into PyLab:
Specifically, it's part of matplotlib. Here's a better example.