手记

不用叫方文山!AI 能拯救杰伦的土味歌词

前两天,当小探第一次听到周杰伦的《不爱我就拉倒》时,虽然做好了心理准备,但还是被歌词里愉快的乡土气息给震到了:




“哥练的胸肌,如果你还想靠”?!是这样么:



图自网络,版权属于原作者


不少网友听到这个歌词后,纷纷涌入周杰伦的老搭档方文山微博底下喊他出山,别再让杰伦朝着乡味情歌的方向一路狂奔了。




其实除了方文山,还有一种方式能 “拯救” 杰伦的歌词,那就是人工智能(Artificial Intelligence,下文简称 AI)!今天我们就来聊聊,AI 都能写什么样的歌词、歌词写得好么?


对说唱(Rap)来说,什么才叫好歌词?


歌词对任何一首歌都很重要,尤其是说唱音乐(rap)。说唱说唱,说在前、唱在后嘛!歌词重要性可见一斑。因此说唱音乐对歌词的考验也最高:既要有节奏感、又要紧紧围绕一个主题说、还要押韵。


我们先来看几个人类写的 rap 歌词。这是写得比较好的一个,南拳妈妈的《牡丹江》,虽然不是周董唱的,但词是方文山写的:


“牡丹江弯了几个

小鱼儿甭上船咱们不稀

捞月亮张网补星

给爷爷下酒喝一碗家

牡丹江弯了几个

小虾米甭靠岸咱们没空

捞月亮张网补星

给姥姥熬汤喝一碗家


看到没?“弯” 和 “罕”、“光” 和 “乡”,每句结尾都很押韵、没有华丽辞藻堆砌、没有脏话,但很走心。


不过,爱听音乐的小探近几年发现在写词的时候有个非常不好的潮流:押韵太难了,所以“偷懒式押韵” 越来越多,比如 Lil Wayne 这首歌:




第一、第二、第四句末尾的词居然都是 “mine”?!押韵不了就都用一个词,能再懒点吗?要小探说,这还不如 “哥的胸肌给你靠” 呢,至少真诚点。


那么,AI 写的歌词能比人类写得好吗?


哪些词 “很 rap”、哪些词 “不 rap”?


既然要写 rap,我们首先要解决一个问题:rap 里最常出现哪些词?换言之,哪些词够 rap、哪些词不够 rap?


某种角度上来说,AI 就像小孩,你教啥它就学啥。既然我们想让它给我们写首 Rap,那我们就要先 “喂” 给 AI 大量的原材料,也就是现有的 Rap。好比汪峰的歌里经常出现 “彷徨”、“孤独”、“瞬间”、“生命” 一样,我们也可以来分析下英文 Rap 词库里有哪些 “基本款”。   


大数据研究者、可视化文章作者马特•丹尼尔斯(Matt Daniels)在他的《流行歌的语言》里,发现了一些很有意思的现象。


马特选取了“公告牌” 榜单上排在前 500 名说唱歌手的 5 万首歌、2600 万个词,作为他研究的数据库。


起初他发现,他注意到 “爱” 这个词在说唱音乐里频繁出现,但他随后发现:虽然在说唱音乐里 “爱” 出现频繁,达到了每 10000 个词里有 21 个,但在其他所有音乐流派(乡村民谣、流行音乐等)里,“爱” 出现的次数反而更多,达到 71次/每 10000 词。看来,戴着大金链子唱 rap 的铁血真汉子们,不轻易说爱!


如果我们把 “很 rap 的词” 定义为 “在 rap 里出现很多次、但在其他种类音乐里出现得少”,那么哪些词 “很 rap”、哪些词 “不够 rap ”呢?结果如下:


 图自https://pudding.cool/2017/09/hip-hop-words/


左上(红点和黄点)是其他种类音乐的常见词,比如 “爱”、“痛苦”、“午夜”、“轻语” 等。


而右下则是 rap 专用词汇,除了 game “游戏”、struggle “挣扎” 是显著的高频词汇以外,还有 money “金钱”、hood “街头”、homie “好兄弟”、以及(手动和谐)、(手动和谐)、和(手动和谐)等词。


小标题:AI 填词填得好吗?


知道了哪些词很 rap 后,我们现在就可以开始填词了!


有一款叫做 DeepBeat 的在线写歌词工具,就能做这件事情。开发 DeepBeat 的团队收集了 100位艺术家的 50 万首 rap 歌曲,然后他们把这些歌词变成了 “信息检索” 问题,比如你输入前几行的歌词,它来给你“写” 出后面的歌词。


这种方法有什么好处呢?AI 写的歌词好不好我们不知道,但在这种情况下,我们至少可以把 AI 续写的歌词和原本歌词进行对照,看看写得有多像出自人类之手。当然了,这种以 “一行歌词” 为单位写的歌,肯定没有让 AI 一个字、一个字写歌写得有创意,但 “一个字一个字地写歌” 难度也更大。


在把歌词输入 DeepBeat 系统后,它会用 “Ranking SVM” 去挑选最适合成为下一句歌词的那句话。RankSVM 主要是将排序问题转化为 pairwise 的分类问题,之后再用 SVM 分类模型进行学习。


像 PageRank 这种算法用的是“单个静态排名(single static ranking)”,但如果用机器学习把多种算法结合起来,就能让句子配对的结果更精准。通常,在写歌词这种文本预测领域内,递归神经网络(RNN)使用得最为频繁—— 否则就会写出来的句子每句读着都对、但放一起就前言不搭后语。



DeepBeat 背后技术 DopeLearning 论文

截自康奈尔大学官网


现在我们来谈一件很严肃的事情:押韵!!!


押韵可远远没有 “大明湖里有荷花,荷花上面有蛤蟆” 这么简单。押韵分为声母押韵(“信息”、“时尚”)和韵母押韵(你小时候背的大部分唐诗都是韵母押韵)。押韵还可以是声母连续押韵、或者韵母连续押韵。正因为押韵难,所以即兴说唱(freestyle)更难上加难。




那么,AI 怎么确保自己写出来的东西押韵呢?


DeepBeat 背后的技术 DopeLearning 先把单词都按音标“翻译” 出来,然后再按照音标计算 “韵密度” 来检测押韵。事实证明,这种方法和人类说唱歌手的评判标准还是比较像的。


除了押韵,AI 还要学习歌曲的结构。我们知道,一首歌曲有主歌和副歌(以《至少还有你》举例,主歌就是“我怕来不及...”,副歌就是“如果 / 全世界我也可以放弃” 部分)。而在 rap 音乐里,主歌和副歌的韵脚、甚至风格都会略有改动。什么时候改动?怎么知道现在这部分是主歌还是副歌?这都是 AI 要继续学习的。


让 AI 写说唱歌曲的 00 后


即使在人才济济的硅谷,像谷歌、微软、Facebook 之类的大公司还是对在 AI 方面有研究的人才求贤若渴。在硅谷,AI 方面的博士生刚毕业就有望拿30万美元左右的年薪!



彭博社文章:“天价薪酬是 AI 人才抢夺战的杀手锏”


有位叫罗比•巴拉特(Robbie Barrat)的 00 后,估计就是这种人才。这位来自美国西弗吉尼亚州的年轻人只用了不到一周,就做出了个能自己写词的 “说唱AI”!


这位自学成才的小朋友住在西弗吉尼亚州的一个农场。他对编程很感兴趣,就自己从网上下载了个开源软件自学编程。他用基于 Python 的机器学习库 PyBrain 训练他的神经网络,再加上超过六千句侃爷的歌词作为素材训练 AI、又花了几天的时间调试结果,就有了这个说唱 AI。


小探从这首歌里截取了一部分,我们来看看这个集侃爷之大成者的 AI 写出来什么样的歌词:


You the number one I'mma beat my brother

(你就是第一,我等会就去把我哥揍一顿)

And I know a sign when I heard it's the magic hour

(我听说这是魔幻小时,我知道一个标致)

Get Olga Kurylenko, tell her to do better

把 Olga Kurylenko 给我叫来,告诉她要多加油。

注:Olga Kurylenko 是性感女演员)

That know we get them hammers, go on, call the lawyer

我们给他们带了些锤子,去啊,去叫律师啊

But still supported me when I get richer

但还是在我变得更富有时支持了我


这是他的 Github 链接:

https://github.com/robbiebarrat/rapping-neural-network


怎么样?就算有些句子缺主语,意思、逻辑也尚不完美,但至少押韵得很像那么回事吧?虽然小探也不知道为什么他要揍哥...


小探又在 Github 上找到了个 “汪峰歌词生成器” (https://github.com/phunterlau/wangfeng-rnn)

这首 AI 写出来的歌词,比刚才那个要揍哥的写得好多了!


“我在哭泣
我不能及你的时光
我是我们在这是一种无法少得可以没有一天
我们想这样
我们远在一场我在我一个相多地在此向
可我是个想已经把我的时候
我看到在心悄一种痛定的时候

我看着我的感觉在飞歌
我不能在这多在心中
就像在我一瞬间
我的生命中的感觉
我在我一次到孤独所
我们在这是一看可以是一场我们在这样
我在这里失命
我不能在这感觉在天里
夜里
夜里
没有一天 我想心的是不吗到了”


是不是写得很像那么回事?!


当然,AI 再聪明,也只能从被 “喂” 给它的信息里找出规律、再编写成歌词,但它并不理解每个词到底是什么意思,所以歌词的意思和逻辑都不太通顺。这也反应出了目前人工智能的局限性:虽然可以找出匹配的字句、找出合适的韵脚,但读起来仍然感觉很奇怪。毕竟现阶段人工智能再怎么字面分析,也很难根据上下文真正理解语义、更不会明白什么是 “锤子”、什么是 “律师”、就更别提“幽默”、“尴尬” 这些人类特有的高级情感了。


让 AI 更智能是万里长征,能写词只是第一步。刚才提到的 AI 写歌 00 后在接受美媒采访时说,“如果我们知道那些神经网络( neural network)是怎么思考的就好了,这样我们就可以反过来向它学习它是怎么下围棋、怎么学语言的。”


说了这么一大篇,现在让我们回到周杰伦,他的歌就是小探的青春记忆啊有没有!如果真用 AI 来帮杰伦写歌词的话,只要简单两步:一,AI 把歌词写出来;二,我们往里面加些他歌里的高频词汇就大功告成啦!


所以现在问题来了,你们觉得哪些词才是杰伦歌里的 “高频词汇” 呢?


本文参考

https://pudding.cool/2017/09/hip-hop-words/

https://venturebeat.com/2017/05/03/ai-tool-generates-deepbeats-to-challenge-human-rappers/

封面图自网络,版权属于原作者

原文链接

0人推荐
随时随地看视频
慕课网APP