马上注册,结交更多同城好友,享用更多功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
AI 搞说唱:双押算什么,我还会 4 押 | ACL 2021 下面这段歌词是 AI 生成的,你敢信? 第一段句尾单字押韵,第二段双押,第三段甚至能三押,层层递进。甚至表达出了强烈的情绪,从对长大的地方的回忆讲起,用简朴的菜表现简朴的爱,最后讲到对外婆的思念。 我看哭了,你呢? 这首歌词的作者是一个叫DeepRapper ( 深度说唱 ) 的 AI,由香港科技大学、南京理工、清华、复旦和微软亚洲研究院的研究人员合力打造。 为什么叫 Rapper?因为歌词里甚至还考虑到了速度和节奏。 像下图中,括号里是时间戳,标星号的地方就代表重音。 生成一篇这样的说唱歌词,只需要给出开头第一句,剩下的都交给 DeepRapper 就行了。这么神奇?毕竟语言生成还好说,基于 Transformer 的语言模型现在已经很成熟了。 但是如何让 Transformer 掌握节奏感? 研究团队的思路很巧妙,Transformer 擅长的就是对序列进行预测。歌词的文本是一个序列,节奏在时间轴上其实也可以编码成一个序列。 歌词倒着写,双押也不难 押韵的原理其实很简单,用拼音来表示汉字,约束韵母部分就可以了。 但说唱的特点是每句歌词在句尾押韵,每句的长短不定。 按照传统的方法,在训练中还得额外标记哪一步到句尾了,需要添加约束。 DeepRapper 的办法是把每一句歌词倒过来,从右向左生成。 这样句尾变成句头,位置编码是 0 的就需要押韵,想双押就约束 0 和 1,甚至隔行 4 押也不难实现。对于节奏问题,研究团队设计了一个指标:总字数与节拍数的比值。把说唱歌曲按这个指标做统计,然后把比值为 3 的定义为中速,小于 3 的是快速,大于 3 的就是慢速。 这样就可以计算出应该在哪里添加节拍标记。最终,整个网络架构的设计是这样的: 缺少数据集,那就自己建这篇论文除了训练出 DeepRapper 之外,还有一个成果—— 第一个兼顾了歌词与节奏编码的中文饶舌数据集 D-RAP。 先收集大量说唱歌曲,把歌词信息和节拍信息分别在时间轴上编码,再汇合在一起。 等一下,还有一个问题。尽管说唱近几年很火,但中文说唱歌曲总数量还是太少了,根本喂不饱需要大量训练数据的 Transformer。 针对这个问题,研究团队又想出一个好主意:其他流派的歌曲其实也会押韵,甚至还没人唱过的填词都可以加进来。 最后收集到了 1.6 万首说唱,5 万多首其他歌曲,和 27 万篇没有节拍信息的纯歌词。 用更多歌词和诗的数据集做预训练,最后用说唱数据集微调,就解决了。还要自己唱,以后会开源论文中提到,相关代码未来会发在 Github 上。 下一步改进的方向有扩大数据集,进一步挖掘预训练语言模型的潜力。以及如何避免数据集中的 Bias 被带到模型中。 还要扩展多语言能力,毕竟 Rap 起源于国外,要是歌词中时不时加点英语,就更对味了。 不止于此,让 AI 合成语音直接唱出来也在计划中。最后,再欣赏一篇 DeepRapper 创作的歌词吧。 更多歌词示例:https://deeprapper.github.io 论文地址: https://arxiv.org/abs/2107.01875 免责声明:如果本文章内容侵犯了您的权益,请联系我们,我们会及时处理,谢谢合作!
|