绘制wav音频文件的频谱图

时间:2017-07-03 06:31:13

标签: 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))

错误

    ValueError: only 1-dimensional arrays can be used

1 个答案:

答案 0 :(得分:4)

错误很明显:ValueError: only 1-dimensional arrays can be used。 在您的情况下,X不是一维的。您可以通过打印X.shape找到答案。

虽然我不能在没有完整示例的情况下确定,但最好的猜测是你有一个立体声wav文件,它有2个通道。因此,您需要选择是否要绘制左声道或右声道的频谱图。例如。对于左声道:

plt.specgram(X[:,0], Fs=sample_rate, xextent=(0,30))
相关问题