Har*_*rry 1 python audio matplotlib
我想在wav中绘制30s音频文件的频谱图。但是我在python中这样做时遇到错误。我如何实现我的目标?
import scipy
import matplotlib.pyplot as plt
import scipy.io.wavfile
sample_rate, X = scipy.io.wavfile.read('595.wav')
print (sample_rate, X.shape )
plt.specgram(X, Fs=sample_rate, xextent=(0,30))
Run Code Online (Sandbox Code Playgroud)
和错误
ValueError: only 1-dimensional arrays can be used
Run Code Online (Sandbox Code Playgroud)
错误非常明显:ValueError: only 1-dimensional arrays can be used。你的情况X不是一维的。您将通过打印找出答案X.shape。
虽然我无法确定这里没有完整的示例,但最好的猜测是您有一个立体声wav文件,该文件有2个通道。因此,您需要选择是否要绘制左声道或右声道的频谱图。例如,左声道:
plt.specgram(X[:,0], Fs=sample_rate, xextent=(0,30))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |