我怎么会去使用Python读取从WAV PCM文件的频率峰值,然后能够产生它的一个形象,对频谱图分析?FFT的频谱图在Python
我试图做一个程序,它可以读取任何音频文件,将其转换为WAV PCM,然后找到高峰和频率截止。
我怎么会去使用Python读取从WAV PCM文件的频率峰值,然后能够产生它的一个形象,对频谱图分析?FFT的频谱图在Python
我试图做一个程序,它可以读取任何音频文件,将其转换为WAV PCM,然后找到高峰和频率截止。
Python's wave library会让你输入的音频。之后,您可以use numpy to take an FFT的音频。
然后,matplotlib使得非常漂亮的图表和图形 - 绝对媲美MATLAB。
这是旧如粪土,但this article很可能让你开始几乎正是你描述的(当然,在Python的文章)的问题。
加载WAV文件可以方便地使用audiolab:
from audiolab import wavread
signal, fs, enc = wavread('test.wav')
或读取任何一般的音频格式,并转换为WAV:
from audiolab import Sndfile
sound_file = Sndfile('test.w64', 'r')
signal = wave_file.read_frames(wave_file.nframes)
的频谱内置PyLab:
from pylab import *
specgram(signal)
具体而言,它是matplotlib的一部分。 Here's a better example.
from pylab import *
specgram(signal)
是最简单的。也非常方便在这种情况下:
subplot
但要注意:Matplotlib是很慢,但它创造美丽的图像。当你在处理3D
如果您需要从PCM格式的整数转换,则不应使用它为要求苛刻的动画,甚至更少,你要使用struct.unpack。
matplotlib也可以用命令'specgram'直接计算谱图。 – tom10 2009-08-20 03:00:20
看起来像它将正是我所需要的。谢谢 :) – 2009-08-23 22:29:56