用Scipy输出频谱图?

时间:2019-07-11 22:13:58

标签: python numpy scipy spectrogram

我正在读取wavfile,并尝试绘制音频数据图。 scipy wave.read函数将声音数据组织成两列的数组(4351200,2)。不幸的是,signal.spectrogram错误出来了,并出现了意外的尺寸错误。

我尝试使用np.reshape,np.hsplit,np.flatten来整理声音数据。我不再遇到尺寸错误(似乎是问题的核心之一),但是输出图为空白。任何建议将不胜感激!

import matplotlib.pyplot as plt
from scipy import signal
from scipy.io import wavfile
import numpy as np

sample_rate, samples = wavfile.read('C:\\Users\\tkim1\\Desktop\\WAV 
sounds\\ANNOY 1m38s angry_cow.wav')

frequencies, times, spectrogram = signal.spectrogram(samples, sample_rate)

plt.pcolormesh(times, frequencies, spectrogram) #the time series does not make sense when i just flatten the data. it is now twice as long.
plt.imshow(spectrogram)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

0 个答案:

没有答案