完全开源的实现与Spotify API兼容,可以从自定义音乐文件中提取高级音频功能?

时间:2019-04-14 08:39:15

标签: python audio spotify librosa audio-analysis

我想获得包含与Spotify API兼容的音乐的音频文件的音频功能,如果不兼容,则应具有相似的功能。 (https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/)。

我想使用Python(如果可能的话,请使用C / C ++或Java,或者这三种语言可以从中实现的任何其他实现)。

但是,在https://github.com/spotify/web-api/issues/209#issuecomment-254040416

Spotify开发人员建议“使用较低级别的功能提取器,如librosa,essentia和meyda,它们涵盖Python,C和Javascript。”

此外,在https://github.com/spotify/web-api/issues/209#issuecomment-297585403中 替代网站不是开源的,并且该API不可用。

由于我不知道如何使用此“低级特征提取器”来复制Spotify的比例,是否有其他替代实现或方法可以定制可创建相同或相似音频功能指标的代码?

非常感谢您。

1 个答案:

答案 0 :(得分:0)

制造此类主观高级特征的行之有效的方法是建立一个大型的标记数据集,然后使用监督学习来训练估计量。 有人需要从头开始收集这些数据。基本上,人们会听很多首歌,并对每个功能进行评分。应该让多人听每一首歌,以确定人们在多大程度上同意“正确”的价值。这是一个非常耗时的步骤,因为人们希望在这样的数据集中找到成千上万首不同的歌曲。如果您和Spotify都做得透彻,那么从理论上讲,结果应该有很多共识。

理想情况下,将存在一个带有此类注释的开放数据集。您可以在Open Data Stack Exchange上询问。

一个技巧是使用现有的估算器(例如Spotify)作为“ oracle”来构建标记的数据集。基本上选择一堆音轨,使用它们的API来获取关联的高级特征值,并将其视为真实标签。 请注意,这是一种反向工程,可能可能违反了他们的服务条款。因此,请务必先检查一下。