[英]Plot Spectrogram of a wav audio file
我想在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
错误非常清楚: ValueError: only 1-dimensional arrays can be used
。 在您的情况下, X
不是一维的。 您可以通过打印X.shape
来查找。
虽然我不能没有一个完整的例子是某些这里,最好的猜测是,你有一个立体声wav文件,其中有2个通道。 所以,你需要选择,如果你想绘制左或右声道的频谱。 例如,用于左声道:
plt.specgram(X[:,0], Fs=sample_rate, xextent=(0,30))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.