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