python - Scipy.signal.spectrogram输出长度

标签 python audio scipy signal-processing spectrogram

我正在尝试分析数组中某些时间点的歌曲频率。

我正在使用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) 

其中noverlap256/8=32

关于python - Scipy.signal.spectrogram输出长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709861/

相关文章:

swift - 将 NSSound 转换为 AVAudioPlayer

python - 生成仅填充值 0 或 1 的随机稀疏矩阵

python - 由两个散点曲面之间的交点定义的曲线,以不同方式采样

python - 使用行为进行 API 端点测试

python - 如何格式化Python解释器文本?

python - 在 python 3.5 中关联列表,我该怎么做?

ios - AVPlayereekToTime导致播放器停止播放

audio - 组合两个 WebRTC 对等点时是否可以同步音频?

python - PyDSTool 无法识别 SciPy 版本

python - Python 中的 OpenCV 无法扫描像素