def get_wavedata(wavfile):#获取处理好的wave数据
#打开wav文件
wav=wave.open(wavfile,"rb")
#创建pyaudio对象
pwav=pyaudio.PyAudio()
stream=pwav.open(format=pwav.get_format_from_width(wav.getsampwidth()),
channels=wav.getnchannels(),
rate=wav.getframerate(),
output=True)
nframes=wav.getnframes()#帧数
framerate=wav.getframerate()#帧频
#读取完整的数据到data中,为一个string类型的数据
data=wav.readframes(nframes)
wav.close()
#将波形数据转化为数组,左右两个声道
wave_data=np.frombuffer(data,dtype=np.short)
wave_data.shape=-1,2
wave_data=wave_data.T
return wave_data,framerate,nframes
def plot_timedomain(wave_data,framerate,nframes):#画出时域图
#time=np.arange(0,nframes)/framerate
time=np.arange(0,nframes)*(1.0/framerate)
#pylab.figure(figuresize=(40,10))
pylab.subplot(211)
pylab.plot(time,wave_data[0])#左声道
pylab.subplot(212)
pylab.plot(time,wave_data[1],c="g")#右声道
pylab.show()
return None
读取音频并画出时域图python
最新推荐文章于 2024-05-14 11:00:23 发布