首页 热门歌手 正文

王力宏盖世英雄:听过的都老了?满满的回忆!

大家今天跟大家聊聊我最近搞的一个小项目,灵感来源于王力宏那首经典的《盖世英雄》。一开始只是觉得这歌的旋律太抓耳了,就想着能不能用代码把它“玩”出来。

第一步:确定方向,选工具!

我这个人做事喜欢先定个大方向。既然要用代码“玩”音乐,那肯定得找个合适的工具。我之前接触过Python,也用它做过一些小玩意儿,感觉还挺顺手的。而且Python有很多库可以用来处理音频,所以就决定用Python了!

王力宏盖世英雄:听过的都老了?满满的回忆!

第二步:啃文档,找轮子!

确定了用Python,接下来就是找合适的库。网上搜了一圈,发现Librosa这个库很强大,可以用来分析音频文件,提取各种特征。于是就开始啃Librosa的文档,边看边学,真是头大!不过还网上的教程也挺多的,可以参考一下。

第三步:分析音频,提取特征!

有了工具,接下来就是把《盖世英雄》的音频文件读进来,然后用Librosa提取它的特征。我主要提取了以下几个特征:

  • 梅尔频谱(Mel Spectrogram):这个可以用来表示音频的频率分布,简单来说就是能看到歌曲里各种声音的“频谱图”。
  • 王力宏盖世英雄:听过的都老了?满满的回忆!

  • 色度特征(Chroma Feature):这个可以用来表示音乐的和弦,简单来说就是能知道歌曲里用了哪些和弦。
  • 节奏(Tempo):这个就不用说了,就是歌曲的快慢。

提取特征的过程挺简单的,就是调用Librosa的几个函数,然后把结果存起来。但是理解这些特征的含义,以及如何用它们来做一些有趣的事情,就需要花一些功夫了。

第四步:数据处理,开始“玩”!

提取了音频特征之后,就可以开始“玩”了!我的想法是,能不能用这些特征来生成一些新的音乐片段,或者对原有的音乐片段进行一些修改。我尝试了以下几种方法:

王力宏盖世英雄:听过的都老了?满满的回忆!

  • 随机生成音符:根据色度特征,随机生成一些音符,然后把它们拼接起来。这个方法的效果不太生成的音乐听起来很杂乱,没有节奏感。
  • 音符替换:根据梅尔频谱,找到歌曲里一些比较相似的片段,然后用它们来替换原有的片段。这个方法的效果还不错,可以生成一些比较有趣的变奏。
  • 节奏调整:调整歌曲的节奏,让它变得更快或者更慢。这个方法的效果也挺明显的,可以让歌曲听起来更有活力或者更舒缓。

第五步:合成音频,听效果!

王力宏盖世英雄:听过的都老了?满满的回忆!

生成了新的音乐片段之后,一步就是把它们合成起来,然后听听效果。我用soundfile这个库来保存音频文件,然后用电脑自带的播放器来播放。刚开始听的时候,感觉有点“魔性”,但是听多了之后,也觉得挺有意思的。

3

这回用Python“玩”《盖世英雄》的经历,让我学到了很多东西。不仅熟悉了Librosasoundfile这两个库,还对音频处理有了一些更深入的理解。虽然生成的音乐可能不太好听,但是我觉得这个过程很有趣,也很有意义。以后有机会,我还会尝试用其他方法来“玩”音乐,看看能不能做出更好玩的东西!

如果你也对音乐编程感兴趣,不妨也尝试一下!你会发现,用代码来“玩”音乐,真的是一件很有意思的事情!

一些坑:

    王力宏盖世英雄:听过的都老了?满满的回忆!

  • 环境配置Librosa的安装比较麻烦,需要安装一些依赖库。
  • 音频格式:不同的音频格式,需要用不同的方法来读取。
  • 特征提取:不同的特征,需要用不同的参数来提取。

好了,今天就分享到这里了,下次再见!

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

相关推荐