2018研电赛项目介绍

背景

2018年4月份我们准备研电赛的参赛内容,在经过广泛的查阅资料,并结合自己的研究课题,我提出了两个idea:

  1. 做一个家庭音响系统,每个房间可以独立的播放歌曲,歌曲的控制通过语音交互,有一个树莓派总控制端,为每个房间输出对应的音乐流。
  2. 做歌声音色转换,将专业歌手的歌声变成用你的声音唱出来的

第一个方案,有现实的需求,难点在于各个房间的语音控制和树莓派多路音频流的实现。第二个方案,课题相关。

简要介绍

参赛项目做得是将源歌手的歌声转为目标说话人的歌声。在歌声音色转换中,将源歌手的音色转换为目标说话人的音色的难点在于:

  1. 由于歌手和说话人的限制,不存在平行数据集;
  2. 突破传统音色转换模型“一对一”的限制,实现“多对多”音色转换;

我们设计了一个基于变分自编码-生成对抗网络模型,不需要使用平行数据集训练,能够实现多对多转换。在这个模型中我们将梯度惩罚引入到网络的训练中,获得了很好的转换结果。在得知我们进入决赛后,我们还将模型部署到线上,可以实现实时的语音转换。

难点

一是实验方案的设计,要考虑到创新性和可行性,参加研电赛的项目最好能有很强的实用价值,而不是只在实验室中的玩具。考虑到歌手到歌手之间的转换由于数据集问题,目前没有办法获得较好的转换结果,而歌手和说话人之间的转换数据集没有问题,可以作为一个娱乐项目,还比较有应用前景。比如在移动 K 歌软件中,没有接受过专业训练的普通人的歌声很难达到专业歌手的标准,对于喜欢的歌曲没办法很好的完成整首歌的演唱,但是用户希望能够唱出专业歌手的水平,这时只需要用户录入几分钟的语音,然后选择某歌手演唱的歌曲,模型就能将该歌曲变成用户的声音唱出来的;

二是模型的训练,GAN非常难以训练,经常会出现模式崩塌,即生成的音频都是一样的,为此我们引入了带有W距离的梯度惩罚训练方法,稳定了GAN的训练,模型才输出了我们想要的结果。

三是数据集噪音太大,前面说过歌声分离后的声音包含了太多的噪音,使得模型没有办法学到好的特征,为了解决这个问题,尝试过几种方案:1.将歌声和语音混淆;2.学习一个对噪音鲁棒的网络;3.学习一个去噪网络;一顿操作猛如虎,然后都失败了。因为考虑到研电赛,要拍摄演示视频,演示你的实验结果,所以实验结果一定要好,用专业一点的话说,自然度,清晰度要好。最终,我们只好采用清唱数据集,这种歌声有点类似于纯净的语音,但是和语音不同的是他是特色,其音符的持续时间一般比语音长,最重要的一点是,噪音很小。

但是,问题又来了,清唱的歌曲实在难找,寻遍全网找到的数据不够训练,怎么办?这时只好将纯净的语音拿出一部分也作为训练集。数据集的问题解决了。

参考
WGAN:令人拍案叫绝的Wasserstein GAN - 郑华滨的文章 - 知乎
https://zhuanlan.zhihu.com/p/25071913


更多精彩内容