2018-11-22 回答
这是python的matplotlib里的一个画wav文件的时频分析(specgram)的函数。和matlab里的那个差不多。使用超级方便,自动就做好了短时傅立叶变换(short
time fourier
transform)~函数用法具体可参照http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram
关于短时傅立叶变换的具体内容可google之~下面介绍程序。
#首先import各种library。wave和struct都是安装python2.6自带的。scipy可以在
#http://www.scipy.org/download下载。pylab可在http://matplotlib.sourceforge.net/下载。都是非常#强大的包包啊~~
import wave
import struct
from scipy import *
from pylab import *
#读取wav文件,我这儿读了个自己用python写的音阶的wav
filename = '/users/rongjin/desktop/scale.wav'
wavefile = wave.open(filename, 'r') # open for writing
#读取wav文件的四种信息的函数。期中numframes表示一共读取了几个frames,在后面要用到滴。
nchannels = wavefile.getnchannels()
sample_width = wavef