歌唱合成技术是将乐谱信息和歌词转换为歌唱语音的技术。相较于语音合成(TTS),歌唱合成有更丰富的输入(音高、音符持续时间),并要求输出的人声更有感情、变化和起伏,技术上更为困难。与语音合成任务类似,歌唱合成是通过综合多人的评价(MOS)[1],来评判合成的歌声效果好坏。
本文将从以下几个方面进行解读:
- 研究现状
- 主流技术框架
- 趋势与挑战
1. 研究现状
歌唱合成文献较少,截至到本稿写完(2020年12月6日),2019和2020两年只有17篇论文是以歌唱合成为主题。另一方面,歌唱合成有着重大的商业价值,微软、腾讯、字节跳动等互联网巨头,早早在歌唱合成中布局。
歌唱合成主要的技术方法:
- 基于单元拼接的合成技术
- 统计参数合成技术
- 基于深度学习的合成技术
基于单元拼接的合成技术(unit concatenation)以及统计参数合成(statistical parametric synthesis)作为传统方法,广泛用于虚拟歌姬(洛天依、初音)。但,传统的方法,难以细粒度地刻画声音的变化,与真实的人声仍有差距。随着深度学习的兴起,基于深度学习的合成技术渐渐成熟,生成的歌声更真实,更细腻。
2. 主流技术框架
2.1 产品比较
AI虚拟歌姬/产品 | 关键技术 | 产品demo链接 |
---|---|---|
小冰 | Xiaoicesing | https://xiaoicesing.github.io/ |
艾灵 | Durian-sc | https://www.bilibili.com/video/BV16C4y1p7tM?p=1&share_medium=iphone&share_plat=ios&share_source=SINA&share_tag=s_i×tamp=1590728757&unique_k=t3avsg |
洛天依 | 参数拼接技术 | https://v.qq.com/x/page/l0532hidovu.html |
CeVIO | HMM合成技术 | https://www.bilibili.com/video/BV1Nt411v7qu?t=71 |
Synthesizer V | 参数拼接+DNN | https://zhuanlan.zhihu.com/p/127796408 |
bytesinger | bytesinger | https://bytesings.github.io/paper1.html |
从图表中的视频实际表现来看,小冰和艾灵优于其他歌唱合成产品。下文选择小冰和艾灵相关论文:
- XiaoiceSing:小冰歌唱合成的主框架
- HIFISINGER:小冰歌唱合成的升级版
- Deepsinger:小冰团队提出的另一个歌唱合成系统,亮点是基于低质量数据的训练
- DURIAN-sc:艾灵歌唱合成的主框架
2.2 XiaoiceSing [2]
歌唱合成任务,要求模型把握好每个字唱多长时间(持续时间),同时期的fastspeech模型,正是严格控制持续时间的非自回归语音合成模型,因而学者们提出以fastspeech[3]为骨干网络(backbone)的小冰歌唱合成模型——XiaoiceSing。
如上图是小冰歌唱合成模型,主要分为encoder 、decoder以及vocoder三部分。(这三部分的具体内容将在下一篇进行介绍)
模型的前向传播过程为:
(1) 将乐谱(musical score)的音素(phoneme)、持续时间(duration)以及音高(pitch)分别经过embedding层,并add,得到musical score的embedding
(2) 将位置编码(position encoding)与musical score的embedding进行add
(3) 将(2)的输入经过6层transformer层,得到encoder的output
(4) 用encoder的output经过由CNN、Linear层组成的duration predictor,得到每个音素的持续时间
(5) 使用每个音素的持续时间,对encoder的output进行repeat操作,得到decoder的input
(6) 将位置编码(position encoding)与decoder的input进行add
(7) 将(6)的结果经过6层transformer层,得到decoder的output
(8) decoder的output经过Linear层,得到world[4]声码器的输入(声学特征):MGC、BAP以及F0,V/UV
(9) F0与pitch进行ADD,再做log操作,所得结果与V/UV相乘得到最终的F0
(10) 将MGC、BAP以及F0输入到world声码器中,输出最终的音频
借助于world声码器,XiaoiceSing可以手动修改歌声的音高,使得XiaoiceSing生成的歌声可控性更高,但world声码器需要三个声学特征向量作为输入,过多的声学特征,使得XiaoiceSing训练困难。
2.3 HIFISINGER [5]
相较于语音合成,歌唱合成要求更高的采样频率以保留更多歌声细节。XiaoiceSing以及其他论文,在高保真的采样频率下,合成的歌声总体质量不佳。
针对上述情况,HIFISINGER延用了XiaoiceSing大体结构,通过改进声学特征的生成,保证在48Hz采样频率下,仍能保持较好的听觉表现。
相较于小冰(16Hz),HIFISINGER主要将world声码器换成类似mb-melgan[6]的声码器,基于声学特征(mel、v/uv以及F0)生成wav波形。
HIFISINGER的前向传播过程与XiaoiceSing相同,主要亮点在于,吸收了multi-scale思想,对于需要生成的数据,设计了不同长度的GAN:
(1) multi-scale思想用到mel频谱的生成,即论文中的sub-frequency GAN
(2) multi-scale思想用到wav波形的生成,即论文中的multi-length GAN
另外,HIFISINGER对windows_size、hop_size、f0和V/UV的作用进行对比,可以看作XiaoiceSing的补充介绍。
相较于XiaoiceSing,HIFISINGER有着更好的合成效果,但却需要额外训练两个GAN网络,引入了更大的资源消耗。
2.4 Deepsinger [7]
数据是制约歌唱合成发展的主要因素之一,大多数模型所需的数据要求特别严格,比如需要音素级的标注,需要纯净的人声等。
Deepsinger的最大亮点在于,可以直接使用质量较低的数据进行歌唱合成。具体方法是从网络上收集歌声数据,通过开源的歌词对齐工具、人声分离工具,将有噪声的音频数据,变成近乎干声的数据。受益于此,deepsinger可以利用更大规模的训练数据,提高了模型效果的上限。
Deepsinger模型流程为:
(1) 通过爬虫从互联网上爬取歌曲(音频)和歌词数据
(2) 根据(1)得到的数据,进行人声分离,得到人声以及歌词
(3) 对歌词和人声进行对齐,得到音符的持续时间(duration)
(4) 对数据进行过滤,去除低质量数据,保留高质量数据
(5) 通过高质量数据,进行歌唱合成
人声分离和歌词人声对齐目前没有完美的解决方案,使得Deepsinger的数据存在噪声,导致Deepsinger生成的歌声有杂音。
2.5 DURIAN-sc [8]
歌唱声音转换(Singing voice conversion)旨在保证歌唱内容的同时,将音色从source speaker转换到 target speaker。
DURIAN-sc的亮点是只需要target speaker的讲话数据(speech data),就可以学习到target speaker的音色。
经过实验,DURIAN-sc只要获取target speaker的20秒讲话数据,在合成target speaker嗓音的歌声时,就能取得不错的效果。
DURIAN-sc的骨干网络是19年腾讯的DURIAN论文。(关于DURIAN,详细可以参考 [11]。)相较于DURIAN,DURIAN-sc加入duration、pitch信息的输入,并将speaker进行embedding,输入到模型中。
模型的前向传播过程为:
(1)音素序列(phone sequence)经过embedding层、全连接层(FC),生成隐层表示
(2)用CBHG网络[9]提取隐层表示的特征
(3)将(2)的输出,根据音素持续时间(phone duration)进行repeat操作
(4)提取原始歌声的声学特征(F0、RMSE[10])
(5)将原始歌声的声学特征与(3)的输出进行concat操作
(6)提取target speaker的声纹特征,并与(5)的输出进行concat操作
(7)将(6)的输出经过全连接层,作为encoder的输出
(8)将encoder的输出经过由全连接层和RNN组成的网络,进行自回归解码
(9)将(8)的结果经过CBHG网络变换,得到Mel频谱
(10)Mel频谱经过声码器,得到wav波形
DURIAN-sc用的是自回归的解码器,如果用到实时歌唱合成上,相对较慢的自回归解码器,可能造成更多的时间消耗。
3. 趋势与挑战
通过上一章节,我们了解到歌唱合成的最新方法。基于深度学习的歌唱合成方案,让计算机合成的歌声富有情感,更有起伏。另外,对于高采样率、数据缺失等问题,学术界也做了很多研究。
3.1 趋势
本章节对主流技术框架进行概括和整理,得到如下的技术趋势:
(1) 深度学习方法成为主流:基于统计参数的合成或基于单元拼接的合成模型,生成的歌声机械感过强,基于深度学习的合成模型,可以生成更接近人声的歌声。
(2) Mel频谱作为音频特征 :相较于world声码器的声学特征,Mel频谱的数据维度更小,更容易被神经网络拟合。
(3) 非自回归的语言模型成为主流:非自回归与自回归模型生成质量相近,但非自回归模型生成速度更快,能用于实时歌唱合成。
(4) 基于噪声数据的歌唱合成:歌唱合成所需数据成本过高,极大制约了歌唱合成水平的发展,所以一些研究的关注点,是如何将噪声数据作为训练数据。
另一方面,歌唱合成作为一个多序列到多序列(multi sequence to multi sequence)的任务,仍然存在很多挑战。
3.2 挑战
歌唱合成整个领域错综复杂,可以归为以下几方面挑战:
(1)昂贵的数据集:歌唱合成要干声数据(没有背景音乐以及噪音的,纯人声),为了保证音高准确,歌唱合成数据必须请专业的歌手,在专业的环境下录制。往往整个数据集造价过百万。
(2)闭源的模型代码:多数歌唱合成的paper没有开放源码,且对参数没有详细介绍(例如小冰只有5页),学者个人难以复现模型。
(3)不准确的真人演唱:真人唱歌时,无法像机器一样,每个音素唱的持续时间与乐谱一致,甚至一首歌一个人不同时间唱,也有很大的差异,这导致了歌声数据本身就是不准确的。
4. 笔者的一些思考
歌唱合成领域,机遇与挑战并存。通过借鉴语音合成领域的发展,歌唱合成得到了实质性的进步:XiaoiceSing借鉴于fastspeech,DURIAN-sc借鉴于DURIAN。歌唱合成,因虚拟歌姬而为大家熟知,但歌唱合成的相关技术文章较少,鲜有针对整个领域的系统性介绍。究其原因,歌唱合成需要语音合成的知识、信号处理的技术、甚至要求研究人员具备乐理知识。
初窥几篇歌唱合成论文,笔者提出了各个模型的不足之处,并在实践中对这些不足之处,构思了一些解决方案,由此产生了潜在科技的歌唱合成模型。
千里之行,始于足下。庞大的歌唱合成领域,难以用一篇博文介绍清楚,本文作为潜在科技歌唱合成系列第一篇,旨在将歌唱合成领域的前沿算法,引入读者视野,并为后续的深入介绍做铺垫。本栏目后续会介绍歌唱合成的入门知识,针对小冰歌唱合成模型进行详细介绍,届时也会对潜在科技的歌唱合成模型,进行简单介绍。
如有兴趣,可以关注潜在科技,获得第一手资料。
参考文献
PS:
我们是行者AI,我们在“AI+游戏”中不断前行。
如果你也对游戏感兴趣,对AI充满好奇,那就快来加入我们(hr@xingzhe.ai)。
转载:https://blog.csdn.net/suiyuejian/article/details/110817998