首页 热门歌手 正文

陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

OK,没问题,这就来分享一下我最近鼓捣的“周杰伦 陈奕迅”这个实践记录,纯属个人瞎玩,大家图一乐呵就行。

一开始想搞这个,纯粹是因为我在车上听歌,随机播放,结果连着来了好几首周杰伦和陈奕迅的,突然就冒出一个想法:能不能用什么方法,把他们的歌风格、相似度啥的给分析一下?

第一步:搜集数据!

陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

  • 那就先从网易云音乐下手,把周杰伦和陈奕迅的热门歌曲都扒下来。我用的是Python,写了个简单的爬虫,把歌名、歌手、专辑这些基本信息存到Excel里。别说,爬的时候还遇到了点小反爬,不过改了几个header就搞定了。

第二步:提取音频特征

陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

  • 光有歌名可不行,得有实际的音频数据才行。我又写了个脚本,根据歌名去下载歌曲的mp3文件。
  • 拿到mp3之后,就开始提取音频特征。这里我用了librosa这个Python库,它可以提取像梅尔频谱、色度特征、节奏等等。我把每首歌都提取了一堆特征,然后把这些特征存到了一个大的csv文件里。

第三步:数据分析和可视化

    陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

  • 数据准备好了,就开始分析了。我主要想看看能不能通过这些音频特征,把周杰伦和陈奕迅的歌曲区分开。

  • 我先用了PCA(主成分分析)降维,把那些乱七八糟的特征变成几个主要的成分。然后用散点图把这些成分可视化出来。颜色区分周杰伦和陈奕迅的歌。

  • 陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

  • 结果嘛一开始效果不太两个人的歌混在一起,分不太开。后来我尝试调整了特征的权重,加了一些其他的特征,效果稍微好了一点,但还是不够理想。

第四步:一些有趣的发现

    陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

  • 虽然没有完美区分开,但是还是发现了一些有趣的现象。比如,周杰伦的歌在某些特征上比较集中,说明他的风格比较稳定。而陈奕迅的歌分布比较散,可能说明他的风格更多变。

  • 我还发现,有些歌,比如周杰伦的《青花瓷》和陈奕迅的《十年》,在特征空间里离得比较近,可能说明这两首歌在某些方面有相似之处,比如旋律或者情感表达。

  • 陈奕迅VS周杰伦:风格迥异,你更喜欢哪位?

3

这回瞎搞,虽然没有得出什么惊天动地的但是让我对音频分析有了一些初步的了解。也让我意识到,想真正理解音乐,光靠数据分析是不够的,还得结合乐理知识和对音乐的理解才行。以后有机会,再深入研究研究!

这回折腾就是:下载歌曲 -> 提取特征 -> PCA降维 -> 可视化分析,就这样。挺好玩的,推荐大家也试试。

本文转载自互联网,如有侵权,联系删除

相关推荐