wave
常见的语音信号处理python库有librosa, scipy, soundfile等等。wave库是python的标准库,对于python来说相对底层,wave不支持压缩/解压,但支持单声道/立体声语音的读取。
读取音频
import wave
file_path = 'D:/ba.wav' #文件路径
f = wave.open(file_path, "rb") #读取参数
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
str_data = f.readframes(nframes)
f.close()
那我们看看参数params:
里面包含6个子参数:
getparams()得到的params,返回6个参数分别是:(nchannels,sampwidth,framerate,nframe,comptype,compname)
- nchannels:返回音频通道的数量(单声道为1,立体声为2)。
- sampwidth:返回以字节为单位的样本宽度。
- framerate:返回采样频率。
- nframe:返回音频帧数。(这里应该是点数,看后面解释)
- comptype:返回压缩类型(“ NONE”是唯一受支持的类型)。
- compname:压缩名称。
注:
疑问:它的帧数是如何计算的?
这条语音长度是多少采样点?
data, sr = librosa.load(file_path, sr =None) #必须加sr =None,不然默认采样成22050
所以nframe应该是语音采样点数。