0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用AI自动生成嘻哈歌词的队伍获得了“最佳DEMO奖”

电子工程师 来源:未知 作者:李倩 2018-08-28 09:14 次阅读

8月23日,“2018年全球高校学生DeeCamp AI训练营”在北大举行闭幕式,经过层层评比,来自全球高校的300学生组成的28支队伍选出了8支优胜队伍。其中,一只用AI自动生成嘻哈歌词的队伍获得了“最佳DEMO奖”。

AI写嘻哈歌词的水平如何?能达到以假乱真的地步吗?不看广告看疗效,我们先来猜猜下面的歌词哪些是AI写的:

不是乐理专修 做点儿曲式研究 我们的力量来自宇宙 自己的节奏不是乐理专修 所有听的观众 打破他们传统 进到环球 继续让你感受

再来一个:

自己就带上了有色眼镜 金钱摧毁多少事情 瓦解你的中枢神经自己就带上了有色眼镜 我只想把世界分的更清 却发现自己却模糊了心

正确答案是:第一行都是模型生成的,第二行是原作。可以看出,AI的效果还是不错的,至少挺押韵的。

那么,这个有嘻哈精神的团队到底是怎样搭建这个 AI 模型的?

首先我们需要定义这个问题,也就是根据一句歌词迭代生成一段嘻哈歌词。另外一个是押韵,这是嘻哈歌词一大特点。

清楚了问题,我们去调研一下已经有的文本声称方案,最终把它的优点和缺点列出来,然后我们选择了SequenceGAN作为基础模型,并且在这个之上提出我们的模型——SequenceGAN。

SequenceGAN 有两个组件,生成器、判读器,让生成器生成足以逼真的歌词。

我们在这个基础之上,有一个嘻哈生成网络。第一点是在这个之前我们增加了一个编码网络,将然后生成一些跟主题相关的歌词,第二点是把目标函数修改。

以下是SequenceGAN的效果,它有非常多的重复的语句,这就是GAN的一个通病,对于不同的输入,输出却很相同。

我们知道嘻哈歌手不可能一句话唱一整首,所以我们调研了一些文献,并且借鉴今年SentiGAN的想法,对生成器的目标函数进行修改,最后效果非常显著,有一个质的变化。

有了多样化的文本之后,我们下一步要解决的问题就是如何去实现押韵。我们尝试两种方案,一种是基于目标函数,增加押韵场景项,就好像考试的附加题,做对了给额外得分。但是我们希望它一直能够去做附加题,实现押韵的功能。但是它并不能很自主地学习到押韵的关。

最后我们尝试了基于规则的方式来实现这个押韵。比如输入“你真美丽”,我们根据这个i的韵脚去构建一个向量,做一个简单的操作,就能够得到必然是押韵的结果,同时可以控制押韵的概率。

▌附完整解读

项目作者:孙蒙新(厦门大学)、项瑞昌(华中科技大学)、伊玮雯(北京邮电大学)、陆亦扬(合肥工业大学)、石华(西南石油大学)、汪自力(西安电子科技大学)、庞雲升(重庆大学)、周子群(东北大学)、王超群(北京林业大学)、詹珏岑(VanderniltUniversity)

1、数据

我们一共使用了 10w 条嘻哈歌词,并且已经将一些不符合社会主义核心价值观的句子标注了出来。数据的预处理主要步骤如下:

在对句子进行筛选之后,我们利用 Jieba 进行分词,观察到单句长度集中在 8~10 左右;

在利用 Tensorflow 中的 Tokenizer 进行 tokenize 并构建 word2idex 字典后,词表大小在 11000 左右,考虑到这个大小还可以接受,没有做限制词表大小的操作;

利用 pad_sequence 将句子 padding 到 20(和 SeqGAN 中相同);

构建 x-y pair,利用上一句预测下一句(导师后来建议可以借鉴用 Skip-gram 的思路,同时预测上一句和下一句,但没有时间去尝试了),分割数据集。

训练数据地址:

https://drive.google.com/drive/folders/1QrO0JAti3A3vlZlUemouOW7jC3K5dFZr)

2、模型

我们的生成模型的整体基于 SeqGAN,并对其做了一些修改,模型架构如下:

主要改动有两点:

1.增加输入语句的编码:这一点类似 Seq2Seq 的 Encoder,SeqGAN 原本的 initial state 是全 0 的,为了将上文的信息传递给生成器,我们采用了一个简单的全连接层(Fully Connected Layer),将输入句子的 Word Embedding 经过一个线性变化之后作为生成器的 LSTM。事实上也可以尝试使用 RNN(LSTM)来作为 Encoder,不过这样模型的速度可能会比较慢。

2.将原先 Generator 的 Loss Function 改为 Penalty-based Objective:在训练模型的过程中我们发现,模型在 Adversarial Training 多轮之后出现了严重的 mode collapse 问题,比如:

别质疑自己 遮罩错的消息不要过得消极 世间人都笑我太疯癫 世间人都笑我太疯癫 守护地狱每座坟墓 世间人都笑我太疯癫你不知道rapper付出多少才配纸醉金迷 世间人都笑我太疯癫 但却从来没有心狠过 如果你再想听你不知道rapper付出多少才配纸醉金迷 你不知道rapper付出多少才配纸醉金迷

可以看到“世间人都笑我太疯癫”和“你不知道rapper付出多少才配纸醉金迷”占据了我们生成的结果。mode collapse,简单来说就是输入的改变不会影响生成的结果。为此我们调研了一些 Paper,最终采用了SentiGAN 中提出的 Penalty-based Objective Function:

3、押韵

嘻哈歌词非常重要的一个特点就是句与句之间的押韵,我们在实现这一功能的时候尝试了两种方案:

1.Reward based,在 reward 函数上增加额外的押韵奖赏项, r(rhyme):对 Generator 的生成的句子和输入的句子进行押韵的判断,如果押韵,则提供额外的奖赏。

2.Rule-based,生成时只对押韵的词进行采样:在生成句尾的词的概率分布时候,通过获取和输入句尾押韵的词,只在这些押韵的词进行采样。

方法一,如果能够通过设计 reward function 就能实现押韵的功能,那模型就是完全 end2end,非常 fancy 了。但是理想很丰满,现实很骨感,经过几天的调整押韵奖赏的权重,都没能看到押韵率(我们设置的用于检测押韵奖赏效果的指标,每个 batch 中和 input 押韵的句子的比例)的上升 。我们怀疑是这种奖赏的结合会让 Generator 产生混淆,并不能明确自己 reward 来自何处,应该需要更加具体的一些限制才能够实现这一方法。

方法二,一开始我是拒绝这么做的,用基于规则的方法不是我的理想。但是为了做出产品来,我还是屈服了。但还有一个问题摆在面前:怎么知道生成的是句尾呢?导师提醒我们,我们可以把输入倒过来。这是 NMT 中常用的一个手段,对于 LSTM,句子是真的还是反的差别不大,即使有差别,也可以通过一个 Bi-LSTM 来捕获不同顺序的信息。而为了知道哪些字词是押韵的,我们实现制作了一张 vocab_size x vocab_size 的大表 rhyme,如果两个词(index 分别为 i, j)押韵,则 rhyme[i, j] 非 0,否则为 0。

如上图所示,如果我们的输入为“你真美丽”,句尾词为“美丽”,韵脚为 i;最终采样结果只会在押韵的词中采样,示例的采样结果为“春泥”。

据此,我们就可以对生成过程的第一个词的词表分布进行一个 mask 操作,使得非押韵的词的概率都变成 0,就能够保证押韵了,代码片段如下:

#获取input的最后一个词first_token=self.inputs[:,0]#(batch_size,1)#控制押韵的概率,现在设置为1.0,即100%押韵select_sampler=Bernoulli(probs=1.0,dtype=tf.bool)select_sample=select_sampler.sample(sample_shape=self.batch_size)#获取对应的index押韵行token_rhyme=tf.cast(tf.gather(self.table,first_token),tf.float32)#进行maskprob_masked=tf.where(select_sample,tf.log(tf.multiply(token_rhyme,tf.nn.softmax(o_t))),tf.log(tf.nn.softmax(o_t)))#根据mask之后的概率分布进行采样next_token=tf.cast(tf.reshape(tf.multinomial(prob_masked,1),[self.batch_size])

不过这个制表的过程比较耗费时间(大约跑了 3 个小时,i7)。另一种思路是可以根据韵脚对字词进行分类,将相同韵脚的词的 index 编到一起,这样我们可以通过获取每个词的韵脚来知道目标词的范围,而不用挨个的去判断是否押韵。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264040
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61308
  • 生成器
    +关注

    关注

    7

    文章

    302

    浏览量

    20211

原文标题:AI有嘻哈!

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    为什么只有蓝色LED获得了诺贝尔

    电路元器件逻辑电路
    学习电子知识
    发布于 :2023年08月14日 20:09:04

    11月18日【高交会】2015中国硬件创新大赛总决赛巅峰对决!

    最佳技术支持最佳战略媒体14:30—15:455支决赛队伍DEMO及VC点评(每个项目1
    发表于 10-29 23:12

    庆科智慧应用创新设计大赛决赛圆满落幕 S-max智能骑行头盔斩获头奖

    获得三等的则是施飞峰团队的夹心饼电子积木项目。周忠S-max智能骑行头盔路演现场前三甲队伍与评委合影此外,有六支参赛队伍的项目获得了优胜
    发表于 12-21 21:48

    第二届“全志杯”微创客挑战赛圆满落幕,比派科技 Banana Pi作为官方合作伙伴全程参与

    ,来自中国科学院沈阳自动化研究所的sia-robot,重庆邮电大学的奶牛护卫队,电子科技大学/哈尔滨工业大学Robot+,分别获得了最佳技术难度
    发表于 04-20 10:19

    壮大队伍呀!

    迅速把队伍壮大起来呀,我们是深圳市阿米诺技术有限公司,专业做智能医疗产品,欢迎大家来进行技术交流。
    发表于 09-30 13:27

    为什么我示例项目从EEPROM阅读只获得了0xFF?

    示例项目从EEPROM写和读。但在阅读方面,我只获得了0xFF。
    发表于 08-05 10:53

    为什么对话框按键获得了焦点但按ENTER没有反应?

    请教一个问题,我在VC上做好的界面,移植到板子上就出现了一些问题.这个由好几个界面组成的,每个界面由几个控件组成,没有触屏,靠外部按键。1、有时候屏幕上的一个按键明明显示的获得了焦点,但是按
    发表于 11-11 04:35

    OpenHarmony开源开发者成长计划—解决方案学生挑战赛Demo Day

    赛制说明Demo Day 是配套解决方案学生挑战赛的活动,向全国各地的开发者展示参赛作品并评选一等的线上直播活动。本次大赛技术评审团已评选出十支参赛队伍,来参加成长计划学生挑战赛Demo
    发表于 09-22 10:01

    Demo Day直播 | 成长计划解决方案学生挑战赛一等即将揭晓!

    Demo Day直播 | 成长计划解决方案学生挑战赛一等即将揭晓!OpenAtom OpenHarmony开源开发者成长计划解决方案学生挑战赛Demo Day来袭!每一支队伍心怀梦想
    发表于 09-26 11:25

    【开源硬件系列04期】AI人工智能技术带给EDA的机遇和挑战(文中含回放+课件)

    识别、自动驾驶、金融等领域获得了成功应用。如何将人工智能技术应用在芯片设计自动化(EDA)领域是近年来的热门话题。本次直播将从数据、算法、应用场景等方面讨论人工智能技术为EDA带来的新机遇,包括
    发表于 01-17 16:56

    OpenHarmony创新赛 | 您有一份创新激励待领取 请查收!

    提交作品 OpenHarmony创新赛特别设立“创新激励”! 前100名按要求提交完整作品的参赛队伍 即可获得激励——创新赛周边限定礼包一份! PS:按照提交代码仓的时间排序前10
    发表于 09-21 15:32

    空客已经获得了4架A330-800飞机订单

    据Flightglobal报道,根据空客在最新储备订单修订中披露的消息,它获得了4架A330-800订单。该机型是空客A330neo家族中较小的一款,空客没有透露这笔订单的客户身份。
    发表于 12-06 14:28 1640次阅读

    空客在1月份成功获得了296架飞机订单

    据路透社报道,空客于周四公布的数据显示,1月,它获得了296架飞机订单,这是至少15年来最大的1月订单量,包括近期敲定的AirLeaseCorp的102架飞机订单以及美国精神航空的100架订单。
    发表于 02-08 14:34 943次阅读

    亚马逊自动驾驶汽获得了重大进展,成为第四家获批可以测试纯无人车的公司

    亚马逊从一家网上图书商城发展成为一家综合性互联网巨无霸企业,贝索斯也变成遥遥领先的全球第一大富豪。亚马逊也不放弃科技行业出现的任何新商机。据媒体最新消息,亚马逊的自动驾驶汽车项目日前获得了重大进展
    发表于 09-30 09:22 492次阅读

    Seucre-IC与合作伙伴获得了硬件安全与信任(HOST)的最佳演示奖!

    Secure-IC与NaghmehKarimi博士的团队(SECRETS实验室成员)及巴黎电信的合作者在2023年IEEE国际研讨会上获得了硬件安全与信任(HOST)的最佳硬件演示奖,这是具有标志性的硬件安全方面的会议,在加利福尼亚州的圣何塞举行。
    的头像 发表于 05-18 10:04 532次阅读
    Seucre-IC与合作伙伴<b class='flag-5'>获得了</b>硬件安全与信任(HOST)的<b class='flag-5'>最佳</b>演示奖!