澳门威斯尼人平台登录 19

澳门威斯尼人平台登录要让方文山先生失掉工作有多难,李健(Li Jian卡塔 尔(阿拉伯语:قطر‎总括引全场爆笑

原标题:人工智能写歌词,要让方文山下岗有多难?

《中国好声音》自重返以后,新任导师李健以段子式的点评手段获取了众网友的广泛好评。甚至有网友称把这档节目当成了一档脱口秀来看,并成功被音乐诗人的睿智幽默圈粉。在上周五播出的这期《中国好声音》节目中,音乐诗人在再一次展示了自己笑话手的部分,并引起笑翻全场。

澳门威斯尼人平台登录 1

澳门威斯尼人平台登录 2

具备语言能力,是人类智能的一大特征,在机器智能大火的今天,人们对AI抱以人类智能的幻想,首先走出的一步,往往就是让AI具备语言能力。

在这期节目中,好声音迎来了一位音乐诗人导师的同门师弟,来自清华大学的生物医学工程专业的四年级博士宿涵,宿涵和自己的同学们在做一个人工智能创作音乐的项目,并成功的用人工智能写出了自己在好声音舞台上演唱的《止战之殇》改编版的歌词。而且就连周董都没有听出歌词有被修改过,即便周董一向对自己歌词的记忆力很差,再加之选手唱的速度很快。但也必须佩服人工智能的写词能力,能够促使整首歌曲没有任何的违和感。

这不,一大波技术极客和研究机构正在绞尽脑汁写代码,让AI完成写歌词这一本来专属文艺青年的任务,但是成果似乎有些差强人意……

澳门威斯尼人平台登录 3

整理:方道文山流微信

[page]

来源:方道文山流(ID:bjfangdao)

澳门威斯尼人平台登录 4

前段时间,综艺节目“中国好声音”参赛学员,清华在读博士生宿涵给大家带来了他用人工智能改编的《止战之殇》,引起网友们的热烈讨论。

澳门威斯尼人平台登录 5

这位16岁就进入清华大学,并直接跳过研究生读博的男孩子,24岁的他已经是清华四年级的博士生了。

AI人工智能的发展确实十分迅速,就连《极限挑战》中也有一期是对它的推荐。人工智能现在越来越开始收紧于人脑,而且开始能够替代现在的人类进行一些简单的智力活动。而哈林也对AI人工智能的发展表示很恐怖。但周杰伦表示仍然对音乐很有信心,因为计算机的容量很大可以包括从古至今的全部字词语法,想要押韵也很简单,但音乐的创造寄予了人类的感情所以是不可能被人工智能所替代的。

澳门威斯尼人平台登录 6

[page]

让宿涵走红的不是他的学历,而是他的作品,这位清华学霸将方文山《止战之殇》的主歌部分的歌词全部更换,新版歌词是他用AI写成的。

澳门威斯尼人平台登录 7

澳门威斯尼人平台登录 8

澳门威斯尼人平台登录 9

改编歌词如下:

听见周董的这些观点,音乐诗人还用了一个笑话进行了总结,“方文山有可能失业,但周杰伦是没问题的”,听到这句话,好声音的现场逗笑全场。可以说音乐诗人的这句玩笑是很有水平了,即完美的诠释了周董刚刚的观点,还借机调侃了周董。

“怎么会

舍得就让回忆冲走了相片

也冲走了往日时光

讽刺挂满美丽的太阳

快看不到蔚蓝的那个地方

再见了避风港 好苍凉

这残酷的月光

他不谅不忘 只想止战之殇

坼裂的橱窗

凝固了翅膀

罪掩埋欢喜

染红他目光

泪水在黑暗飘荡

自己没忘”

宿涵在写这首《止战之殇》时,当他输入指令后程序会无限输出匹配的歌词,他只需要挑选合适并且高质量的歌词来使用,光是这一点恐怕人类就已经望尘莫及了。

利用人工智能来创作歌曲,宿涵不是第一人。早在去年国内就有一个团队做出了一款名叫“歆雅”的软件,你只要给她一首曲子,随意定个主题,她就能立刻创作出一首特定风格的歌词,虽然好像词并不能达意。

但听说了人工智能写歌词,小编的内心是这样的:大家是不是终于可以不用催文山写歌词了!

澳门威斯尼人平台登录 10

然而,事实好像并没有那么简单。更多人关注的并不是人工智能到底能不能代替人,而是AI
都能写什么样的歌词、歌词写得好么?这片神奇的领域,不仅仅是你,小编也很好奇,所以找来了一篇“硅谷密探”做的分析,想来研究一下。(以下部分内容出自微信公众号“硅谷密探”,公众号ID:guigudiyixian)

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

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

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

“牡丹江弯了几个

小鱼儿甭上船咱们不稀

捞月亮张网补星

给爷爷下酒喝一碗家

牡丹江弯了几个

小虾米甭靠岸咱们没空

捞月亮张网补星

给姥姥熬汤喝一碗家

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

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

澳门威斯尼人平台登录 11

第一、第二、第四句末尾的词居然都是
“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 ”呢?结果如下:

澳门威斯尼人平台登录 12

图自

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

而右下则是 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)使用得最为频繁——
否则就会写出来的句子每句读着都对、但放一起就前言不搭后语。

澳门威斯尼人平台登录 13

DeepBeat 背后技术 DopeLearning
论文

来自康奈尔大学官网

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

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

澳门威斯尼人平台登录 14

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

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

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

让 AI 写说唱歌曲的 00 后

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

澳门威斯尼人平台登录 15

彭博社文章:“天价薪酬是 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 链接:

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

小探又在 Github 上找到了个 “汪峰歌词生成器” (

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

“我在哭泣

我不能及你的时光

我是我们在这是一种无法少得可以没有一天

我们想这样

我们远在一场我在我一个相多地在此向

可我是个想已经把我的时候

我看到在心悄一种痛定的时候

我看着我的感觉在飞歌

我不能在这多在心中

就像在我一瞬间

我的生命中的感觉

我在我一次到孤独所

我们在这是一看可以是一场我们在这样

我在这里失命

我不能在这感觉在天里

夜里

夜里

没有一天 我想心的是不吗到了”

是不是写得很像那么回事?!但一味听来就像是无病呻吟,没有内核,只有一堆的形容词往上堆砌。

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

让 AI 更智能是万里长征,写词只是其中一小步。刚才提到的 AI 写歌 00
后在接受美媒采访时说,“如果我们知道那些神经网络( neural
network)是怎么思考的就好了,这样我们就可以反过来向它学习它是怎么下围棋、怎么学语言的。”但人的大脑到现在还是未解之谜,唉,想让方文山下岗也好难。

澳门威斯尼人平台登录 16

关于AI写诗写词这类事儿,小编更倾向于马云评价阿尔法狗时发表so
what的几个观点,耐听又实际:智能时代应该是解决人解决不了的问题,了解人不能了解的东西,一切做人能够做到的事的机器都是愚蠢的,我们应该让机器去做人类做不到的东西,让机器去发挥自己智能的力量,尊重机器,敬畏机器。

澳门威斯尼人平台登录 17

换言之,曾经人们一天工作 16 个小时,现在人们朝九晚五一周工作五天,但不出
30 年,人们一天工作 4 小时,一礼拜工作 3
天,但还是会觉得很忙,这是人工智能将给我们的生活带来的改变。在未来,让人活得更像个人,机器更像机器,才是我们的主要任务。我们最怕的不是机器学人,我们最怕的是我们的教育让人都开始学机器的时候,这个时代、这个世界才真正危险。

澳门威斯尼人平台登录 18

说到最后,我们来总结下——如果真用 AI 写歌词的话,只要简单两步:一,AI
把歌词写出来;二,我们往里面加些以前歌里的高频词汇就大功告成啦!

附:手把手教你做写词机

准备一:押韵表

这个地方可以去网上搜押韵表

import jieba

import re

from xpinyin import Pinyin

p = Pinyin()

RhymeIndex = [(‘1’, [‘a’, ‘ia’, ‘ua’]), (‘2’, [‘ai’, ‘uai’]), (‘3’,
[‘an’, ‘ian’, ‘uan’]),

(‘4’, [‘ang’, ‘iang’, ‘uang’]), (‘5’, [‘ao’, ‘iao’]), (‘6’, [‘e’,
‘o’, ‘uo’]), (‘7’, [‘ei’, ‘ui’]),

(‘8’, [‘en’, ‘in’, ‘un’]), (‘9’, [‘eng’, ‘ing’, ‘ong’, ‘iong’]),
(’10’, [‘er’]), (’11’, [‘i’]),

(’12’, [‘ie’, ‘ye’]), (’13’, [‘ou’, ‘iu’]), (’14’, [‘u’]), (’16’,
[‘ue’]), (’15’, [‘qu’, ‘xu’, ‘yu’])]

RhymeDct = {‘ui’: ‘7’, ‘uan’: ‘3’, ‘ian’: ‘3’, ‘iu’: ’13’, ‘en’: ‘8’,
‘ue’: ’16’, ‘ing’: ‘9’, ‘a’: ‘1’, ‘ei’: ‘7’,

‘eng’: ‘9’, ‘uo’: ‘6’, ‘ye’: ’12’, ‘in’: ‘8’, ‘ou’: ’13’, ‘ao’: ‘5’,
‘uang’: ‘4’, ‘ong’: ‘9’, ‘ang’: ‘4’,

‘ai’: ‘2’, ‘ua’: ‘1’, ‘uai’: ‘2’, ‘an’: ‘3’, ‘iao’: ‘5’, ‘ia’: ‘1’,
‘ie’: ’12’, ‘iong’: ‘9’, ‘i’: ’11’,

‘er’: ’10’, ‘e’: ‘6’, ‘u’: ’14’, ‘un’: ‘8’, ‘iang’: ‘4’, ‘o’: ‘6’, ‘qu’:
’15’, ‘xu’: ’15’, ‘yu’: ’15’}

准备二:分词对应押韵表编码

分好的词与押韵表对应起来,

举个栗子,

比如“没有”对应的是“7-13”,

就等于你给每个词都贴了一个标签,

这样你以后想搜索的时候,

就可以根据标签找到这些词了。

def _analysis_words(words):

word_py =p.get_pinyin((u'{}’.format(words)))

lst_words = word_py.split(‘-‘)

r = []

for i in lst_words:

while True:

if not i:

break

token = RhymeDct.get(i, None)

if token:

r.append(token)

break

i = i[1:]

if len(r) == len(words):

return ‘-‘.join(r)

# print(_analysis_words(‘兄弟’))

第一步:爬虫抓取歌词信息

这个地方数据爬取的越多,

肯定你的词库就越壮大,

后面分词也越高,

这里只爬取了3首歌曲的歌词,

并且最后是存储到txt中,

当然,放数据库里就更好了。

def GetKeyword():

#歌曲列表

# url = ”

# req = requests.get(url)

# data = req.json()

# print(data[‘result’][‘tracks’] )

# tracks =data[‘result’][‘tracks’] #歌曲列表

tracks=[“431795900”,’33850315′,’430053482′]

#写入记事本文件

with open(‘keyword.txt’,’a’) as f:

f.write(“[“)

for i in tracks:

print(111)

#歌词

# lrcurl =
“”

lrcurl =
“”

lrcreq = requests.get(lrcurl)

dt = lrcreq.json()

lrc=re.sub(u”[.*?]”, “”, dt[‘lrc’][‘lyric’])

#jieba分词

seg_list = list(jieba.cut(lrc, cut_all=True))

for i in seg_list:

#加入判断,只写入2个字组成的词

if len(i)==2:

#写入格式:{‘7-13′:’追求’}

if _analysis_words(i)!=None:

f.write(“{‘”+_analysis_words(i)+”‘:'”+i+”‘},”)

f.write(“]”)

f.close()

第二步:调用分词的方法

GetKeyword()

第三步:分析分词后的txt

def Findkey(str):

result={}

with open(‘keyword.txt’, ‘r’) as f:

# print(f.readlines())

list=eval(f.readlines()[0])

for item in list:

if item.get(str):

key=item.get(str)

number=result.get(key)

#如果一个词出现多次,进行次数累加,用来表示频次

if number !=None and number>=1:

result[key]=number+1

else:

result.update({key:1})

f.close()

print(result)

第四步:程序入口

key=input(“请输入关键词:”)

str=_analysis_words(key)

print(“匹配押韵的词:”)

Findkey(str)

第五步:创作自己的FreeStyle

# hello 大家好,我的名字叫离岛

# 没事爱在博客写写,这感觉让我惬惬

# 写代码不是男生的事,女生不是只能做测试

# 热爱编码,没有办法

# 他们都叫我是热爱编码的Coding女生

澳门威斯尼人平台登录 19

本文技术部分转载自公众号:硅谷密探(guigudiyixian)

关注硅谷密探

紧盯全球创新趋势返回搜狐,查看更多

责任编辑:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:,
网站地图xml地图