import math
import wave
import numpy as np
import pylab as pl
def ZeroCR(waveData,frameSize,overLap):
wlen = len(waveData)
step = frameSize - overLap
frameNum = math.ceil(wlen/step)
zcr = np.zeros((frameNum,1))
for i in range(frameNum):
curFrame = waveData[np.arange(i*step,min(i*step+frameSize,wlen))]
#To avoid DC bias, usually we need to perform mean subtraction on each frame
curFrame = curFrame - np.mean(curFrame) # zero-justified
zcr[i] = sum(curFrame[0:-1]*curFrame[1::]<=0)
# print(zcr[i])
return zcr
fw = wave.open(r'D:\Workspace\dejavu\preprocessing\tool\aim call wav file\guanji 4.wav','rb')
params = fw.getparams()
print(params)
nchannels, sampwidth, framerate, nframes = params[:4]
str_data = fw.readframes(nframes)
wave_data = np.fromstring(str_data, dtype=np.int16)
wave_data = wave_data*1.0/(max(abs(wave_
python wav文件过零率并plot出来
最新推荐文章于 2023-04-07 20:18:37 发布
本文介绍如何使用Python处理WAV音频文件,计算其过零率,并通过matplotlib进行可视化展示。过零率是音频信号处理中的一个重要指标,用于描述信号幅度变化的频繁程度。通过这段内容,读者将学习到Python音频处理的基础知识和数据可视化的技巧。
摘要由CSDN通过智能技术生成