import scipy.io.wavfile as wav
import matplotlib.pyplot as plt
import scipy
sample_rate, X = wav.read("/Users/sinaastani/Downloads/partynextdoor.wav")
X = scipy.mean(X, axis=1)
plt.specgram(X, Fs=sample_rate, xextent=(0,30))
每当我运行上面的代码时,我都会收到错误:
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/matplotlib/axes/_axes.py:7017: RuntimeWarning: divide by zero encountered in log10
Z = 10. * np.log10(spec)
我尝试了几个wav文件。我只是试图复制一个例子来自#34;使用Python构建机器学习系统 - 第二版"。
wavfile.read函数返回一个numpy数组。看起来在这个数组的开头和结尾,有一堆0值,所以当它试图计算log(0)时,它是未定义的。什么是适当的处理?我应该简单地从数组中删除0值吗?