Skip to main content
 首页 » 编程设计

python之绘制 wav 音频文件的频谱图

2025年05月04日1798°冷暖

我想在 wav 中绘制 30 秒的音频文件的频谱图。但是我在 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 

请您参考如下方法:

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

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

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