python音频分析(一)绘制wav的时域频域图
一.引入
时域图:x轴为时间,y轴为振幅
频域图:x轴为频率,y轴为振幅
(上述频域图为线性振幅谱,还另有对数振幅谱、自功率谱,y轴不是单纯振幅)
时域与频域的直观关系见下图
二.画时域图
1.读入wav文件
(pyaudio.PyAudio)
2.波形数据转换为数组
(numpy.frombuffer )
3.构建横坐标
(numpy.arange)
4.画图
(matplotlib)
import wave
import pyaudio
import pylab
import numpy as np
import matplotlib.pyplot as plt
def get_framerate(wavefile):
'''
输入文件路径,获取帧率
'''
wf=wave.open(wavfile,"rb")#打开wav
p = pyaudio.PyAudio()#创建PyAudio对象
params = wf.getparams()#参数获取
nchannels, sampwidth, framerate, nframes = params[:4]
return framerate
def get_nframes(wavefile):
'''
输入文件路径,获取帧数
'''
wf=wave.open(wavfile,"rb")#打开wav
p = pyaudio.PyAudio()