如何使用librosa从文件加载频谱图?

时间:2019-07-12 13:37:54

标签: python librosa

目前,我有来自数据集here的一堆mp3文件及其功能。所有的频谱图都是预先计算的,所以我想知道如何从文件中加载给定的频谱图并至少显示它。理想情况下,我希望能够使用给定的时间码跳到频谱图中的某个点。

1 个答案:

答案 0 :(得分:0)

功能的生成脚本已发布here。它指出使用np.savetxt保存功能,这意味着您可以使用np.loadtext加载功能。

功能/频谱图一旦加载,它们的行为就类似于常规的numpy数组。知道跳长和采样率将使您找出频谱图帧的时间码。注意,也许不是所有的频谱图都具有相同的跳长!因此,值得密切注意脚本中特征的提取方式。

例如,考虑基于melspec的{​​{1}}(请参见here)。 librosa默认情况下将音频重新采样到22,050 Hz(单声道),然后将音频传递到librosa.feature.melspectrogram,默认情况下,它使用512个样本的跳变长度(请参阅docs)。因此,如果22050个采样对应于一秒钟的音频(这就是22.05 kHz的采样率),那么512个采样对应于512/22050 Hz = 0.023s。也就是说,频谱图中的每一帧大约对应23毫秒。

要显示频谱图,请使用melspectrogram

根据docs改编的代码示例:

librosa.display.specshow