我正在尝试分析数组中某些时间点的歌曲频率。
我正在使用scipy.signal.spectrogram函数生成那些频率。歌曲的长度为2:44或164秒,读取的scipy.wavfile的采样率为44100。
当我使用频谱图时:
f, t, Sxx= signal.spectrogram(data[:, 1], sr)
f的长度很小,只有129个元素。 t更长,为32322,但与原始wavfile.read中的7240320采样窗口仍相去甚远。
(data [:, 1]是音频数据的右声道)
最佳答案
nperseg
256的默认stft
的长度除以2(仅频率标度的正侧)+ 1(频率0)。
及时的采样数量是通过
t.size = len(data[:, 1]) / nperseg * (1 + noverlap)
其中
noverlap
是256/8=32
。
关于python - Scipy.signal.spectrogram输出长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709861/