我怎么会去使用Python读取从WAV PCM文件的频率峰值,然后能够产生它的一个形象,对频谱图分析?
我试图做一个程序,它可以读取任何音频文件,将其转换为WAV PCM,然后找到高峰和频率截止。
我怎么会去使用Python读取从WAV PCM文件的频率峰值,然后能够产生它的一个形象,对频谱图分析?
我试图做一个程序,它可以读取任何音频文件,将其转换为WAV PCM,然后找到高峰和频率截止。
Python的波库将让您导入音频。 在此之后,你可以使用numpy的采取的FFT的音频。
然后, matplotlib使得非常漂亮的图表和图形-绝对媲美MATLAB。
这是旧如粪土,但这篇文章很可能让你开始几乎正是你描述的(当然,在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 。 这里有一个更好的例子。
from pylab import *
specgram(signal)
是最简单的。 也非常方便在这种情况下:
subplot
但要注意:Matplotlib是很慢,但它创造美丽的图像。 你不应该使用它为要求苛刻的动画,甚至更少,当你在处理3D
如果您需要从PCM格式的整数转换,你需要使用struct.unpack。