如果您登录
Spotify.me ,则可以获得有关Spotify如何通过在此Spotify网站上收听的音乐了解您的个性化摘要。 太棒了!
我听很多音乐,并且喜欢处理数据,因此启发了我尝试分析我的音乐收藏。
我很好奇是否流行歌曲有任何特定成分。 是什么让它们很酷? 为什么我们喜欢热门歌曲,并且它们具有特定的“ DNA”?
挑战赛
这导致我尝试使用Spotify数据回答两个问题:
- 我的音乐播放列表是什么样的?
- 所有热门歌曲都具有特定的音频属性吗?
工具
幸运的是,有非常简单的工具可以连接到Spotify,接收数据并对其进行可视化。
我们将使用
Python 3编程
语言 Spotipy Python
库 ,该
库允许您连接到
Spotify Web API ,并且我们将使用
plot.ly和
Seaborn可视化数据。
数据数组
在每个代码的末尾,Spotify会编译100首播放次数最多的歌曲的播放列表。 我使用的数据集已经上传到Kaggle:
Top Spotify Tracks of 2018 。 Spotify上100首最受欢迎的歌曲的列表似乎足以用于研究热门歌曲,不是吗?
让我们开始吧!
首先,您需要在
developer.spotify.com上创建一个帐户。 之后,您可以直接访问
Spotify Web API控制台并开始探索各种API端点。
注意 :在本文的末尾有指向我用于项目的代码的链接。
连接到Spotify Web API之后,我们将使用Spotipy Python库创建一个Spotify对象,然后将其用于将请求发送到Spotify端点。
import spotipy from spotipy.oauth2 import SpotifyClientCredentials from spotipy import util cid =”Your-client-ID” secret = “Your-Secret” client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret) sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
分析我的播放列表数据
这是数据科学中最重要的步骤之一。 我们的目标是了解我的播放列表中的音乐类型,提取任何有趣的观察结果并将它们与2018年数百种流行歌曲的音频特征进行比较。
表演者频率图
艺术家在我的播放列表中出现的频率查看此直方图,我可以了解艺术家在我的一个播放列表中相遇的频率。
音频规格
现在,让我们看一下播放列表中歌曲的音频功能。 Spotify已为Spotify上的每个音轨编制了
音频规范列表! 这是我们将在本文中使用的功能的简要说明:
器乐性 :预测音轨中没有人声。 在这种情况下,声音“哦”和“ aaaa”被认为是有帮助的。 带有单词的说唱或曲目显然是“声音”。 乐器值越接近1.0,轨道不包含声音的可能性就越高。
能量 :这是一个介于0.0到1.0之间的值,它表示感知歌曲的“亮度”和“活动性”的标准。 通常,充满活力的构图是快速,响亮且嘈杂的。 例如,死亡金属具有很高的能量,而巴赫的前奏在这种规模上具有较低的指标。
声学 :组合物在0.0到1.0范围内的声学可信度。 值1.0表示该组合物是声学的高置信度。
生动感 :识别录音中听众的身影。 活跃度值越高,现场表演歌曲的可能性越高。 高于0.8的值会给现场表演带来很大的信心。
语音性(文本) :语音性检测歌曲中是否存在文本。 如果乐曲的语音清晰度高于0.66,则很可能由文字组成,值介于0.33到0.66之间意味着歌曲可以同时包含音乐和单词,而值小于0.33则意味着歌曲不包含任何单词。
舞蹈性:舞蹈性是根据节奏,节奏稳定性,拍子强度和整体稳定性等音乐元素来描述舞蹈曲目的适合性。 值为0.0的构图的最低舞率,值为1.0的构图的最高舞率。
价 :此值介于0.0到1.0之间,描述了歌曲传达的音乐正性。 价高的歌曲听起来更积极(即传达幸福,喜悦或欣快感),价低的歌曲听起来更消极(即悲伤,沮丧或生气)。
我的播放列表中音乐风格的分布观察结果:
- 我的播放列表中的大多数歌曲都具有很宽的舞步分布,并且其中没有很多“快乐”的歌曲,从0.5 价以下的高频率歌曲中可以看出。 因此,可以说我喜欢您可以跳舞的歌曲(的确如此!)
- 图表上的言语性,工具性和生动性都有明显的下降。 这告诉我们,在我的播放列表中的音乐中,很少有单词,几乎没有现场演奏的乐器作品和歌曲。
- 声音大约在0和1之间均匀分布,也就是说,在此属性中,我没有任何偏好。 (我通常喜欢原声歌曲,但我不会为每首歌曲寻找原声封面)。
- 最后, 能量分布正常,并且两端都有小尾巴,这意味着将其添加到我的播放列表的可能性较小。 也就是说,事实上,我喜欢中等能量的构图。
- 我的作品不太流行
2018前100首歌曲数据分析
从Kaggle下载数据数组并将其导入到我的应用程序之后,我首先分析了最受欢迎的艺术家,具体取决于此列表中的点击数。
2018年频率前100名歌曲表演者在2018年Top 100首歌曲中最常出现的艺术家程式码片段发布Malone和XXXTENTACION现在,让我们检查数据集中的一百首最受欢迎歌曲的音频特征,并查看它们的外观! 我们将创建与我的播放列表相同的直方图,以便以后进行比较。
2018年前100首歌曲的音乐风格分布查看直方图,我们可以看到排名前100位的作品具有以下特征:
- 舞蹈和精力充沛,但现场表演的可能性较低,没有文字和声音 (我们已经看到一些迹象表明,我的播放列表不如前100名那么酷)。
例如,我们数据集中Drake的歌曲“ In My Feelings”具有较高的可跳舞性和较高的能量值。
最后,我决定为前100首歌曲制作一张花瓣图,并在其上显示播放列表中音频的特征。
前100首歌曲以蓝色显示,而我的歌曲以橙色显示。
结论
因此,看起来我从帖子开始就对这两个问题都有答案。 我设法查看了音乐的外观,并找到了流行歌曲的DNA。 播放列表中音频的特征有点像前100名,但我的原声歌曲多而现场表演少。
想写一首热门歌曲吗? 充满活力和积极性地使她跳舞。
我对结果感到满意,但我想继续进行研究。
整个项目的代码发布在
GitHub上 。
这是我建议
下一步执行的操作 :
- 了解如何使用播放列表确定您的个人偏好和您可能喜欢的推荐广告。
- 使用K-Secondary机器学习聚类算法来找出哪些歌曲与您的歌曲相似。 因此,您可以搜索自己喜欢的新歌曲。
- 使用机器学习根据歌曲的音频特征预测歌曲的“受欢迎程度”
感谢 Alvin Chun , Ashrith 和 John Koch 提供了有关该主题的有用文章。 Spotify 和Spotipy,感谢出色的API和库!