以下文章来源于阿里语音AI,作者达摩院语音实验室

ICASSP(International Conference on Acoustics, Speech, and Signal Processing)是国际声学、语音和信号处理会议,亦为IEEE信号处理协会组织的年度旗舰会议。历届ICASSP会议都备受语音AI领域研究学者的热议和关注。

本届ICASSP 2022,阿里巴巴达摩院语音实验室总共有 14 篇论文被大会接收,包含语音识别,语音合成,语音前端处理,声纹识别,语音唤醒,多模态建模等研究方向。

会议在即,我们将定期推出前沿技术论文的深度解读系列文章,以期与产学研界切磋交流。本文主要介绍在语音合成领域,基于量化矢量预训练的高表现力声学模型——ProsoSpeech。

本文作者:任意*,雷鸣,黄智颖,张仕良,陈谦,鄢志杰,赵洲*

(*本论文系阿里巴巴与浙江大学合作的AIR(Alibaba Innovative Research, AIR)项目,浙大硕士研究生任意在达摩院语音实验室实习期间的工作成果。)

近几年来,语音合成技术发展迅速,越来越多的语音合成系统被提出,合成语音的效果逐步提升。语音合成的效果一般可以分为两个维度:韵律和音质。
从最新的论文上看,合成的语音在音质上基本上能够达到和录音相当的效果,而合成的语音在韵律上和真人还有明显差距。因此,很多研究人员提出若干种韵律建模的方法,希望使得合成的语音进一步接近真人。
在此,我们大致将韵律建模方法分为两类:显式韵律建模和隐式韵律建模。显式韵律建模和隐式韵律建模的区别主要在于建模的韵律表征是否具有实际的物理意义。
在显式韵律建模中,建模的韵律表征主要指一些有实际的物理意义的韵律成分,例如:基频、能量和时长,这些韵律成分可以基于信号的知识直接提取。
在隐式韵律建模中,建模的韵律表征一般需要通过构建额外的编码器来获得,这些韵律表征没有实际的物理意义,是一种隐式表征。
研究人员通过实验证明,这两类方法对于合成的语音韵律都有明显的帮助。


即便如此,已有的韵律建模方法仍存在一些问题:
1)显式的韵律成分存在提取不准的问题,以基频为例,一般会采用现成的工具来提取基频信息,不能够保证基频提取的准确度,这不仅影响基频预测模块的训练,还会影响语音合成的效果;
2)对于不同的韵律成分,很多方法采用分离的模型进行建模,但是没有考虑到这些韵律成分之间的关联性;
3)韵律拥有非常高的变化性,不同人说不同话的韵律都截然不同,大部分方法都采用有限的语音合成数据进行韵律建模,这样必然达不到很好的建模效果。
针对上述问题,我们提出了高表现力声学模型——ProsoSpeech。它采用量化隐藏韵律矢量(latent prosody vectors, LPV)来表示韵律,然后通过预训练模型来对韵律进行建模,预训练期间采用了大量低质量的语音识别数据。
相比于目前比较受欢迎的FastSpeech,ProsoSpeech主要做了如下的模型结构和训练方法等的设计:
1)在韵律表征上,为了避免提取基频过程中存在的误差,并考虑不同韵律成分的关联性,我们用一个 LPV 来联合表示韵律,这个 LPV 主要是通过一个词级别的韵律编码网络提取获得;
2)进一步地,为了使得量化矢量的训练过程更加稳定,我们设计了一个基于 k-means 聚类的初始化策略;
3)在提取 LPV 之后,考虑到 LPV 在不同的词之间存在上下文相关性,我们采用了自回归的结构;
4)为了更好地对韵律进行建模,我们基于大量的低质量语音识别数据进行预训练。在获得 LPV 之后,我们将其引入语音合成声学模型中,来达到提升合成的语音的韵律的效果,使其更加接近真人。
通过实验结果证明,相比于目前最受欢迎的非自回归语音合成方法,ProsoSpeech 能够生成更好的语音。

模型结构

ProsoSpeech 的模型结构图见Fig.1 (a),主要包含几个模块:音素编码网络(Phoneme Encoder)、词编码网络(Word Encoder)、长度规整模块(Length Regulator)、解码网络(Decoder)、韵律编码网络(Prosody Encoder)和隐藏韵律矢量预测网络(LPV Predictor)。


模型的训练主要包含三个阶段:
1)基于目标梅尔谱的声学模型训练。输入的文本序列被转换成音素序列和词序列,然后通过音素编码网络和词编码网络获得语言学特征表示H_ling。然后,基于H_ling和H_spk,目标梅尔谱(mel-spec)的低频部分通过韵律编码网络获得LPV。最后,H_ling、H_spk和隐藏韵律矢量拼接在一起,送入后续的长度规整模块和解码网络获得预测的梅尔谱。基于预测的梅尔谱和目标梅尔谱进行模型调优。
2)隐藏韵律矢量预测网络预训练。预训练使用的数据为语音识别数据——文本和低质量语音。首先,基于语音提取梅尔谱,并通过训练好的韵律编码网络,获得 LPV 。然后,基于文本和 LPV 对隐藏韵律矢量预测网络进行训练,获得预训练的隐藏韵律矢量预测网络。
3)隐藏韵律矢量预测网络更新。此时,使用的数据为语音合成数据——文本和高质量语音。和第二阶段一样,提取 LPV 并结合文本更新预训练的隐藏韵律矢量预测网络,获得更优的隐藏韵律矢量预测网络。
在测试阶段,对于给定的文本,先基于隐藏韵律矢量预测网络预测韵律表征 LPV ,然后预测梅尔谱。最后,通过声码器合成语音。

实验结果

实验是在一个30小时的中文语音合成数据集上进行的,这个数据集被分为训练集、验证集和测试集。上述提到的语音识别数据则大约300h。在模型配置上,声学模型沿袭 FastSpeech 基础结构,声码器则采用开源的 hifigan 。我们采用主观 MOS 听测和客观指标进行效果的测试,其中,客观指标测试包含两种:平均基频DTW距离(D_pit)和时长KL散度(KL_dur)。

Table 1 罗列了不同方法的自然度 MOS、D_pit 和 KL_dur。其中,GT 和GT (voc.) 分别表示录音和录音的分析合成结果,FastSpeech 和FastSpeech 2 分别表示两种非自回归语音合成方法,FastSpeech2 (joint) 表示采用语音合成数据和语音识别数据训练的 FastSpeech2(用于排除数据量的影响)。
通过表格可以看到:
1)在自然度MOS上,ProsoSpeech比之前的方法都要更好;
2)在基频准确度上,相比于之前的方法,ProsoSpeech的D_pit更小,说明ProsoSpeech拥有更加强大且有效的韵律建模能力;
3)在时长准确度上,相比于之前的方法,ProsoSpeech预测的时长要更接近与ground-truth时长,说明ProsoSpeech在时长建模上更优;
4)相比于FastSpeech (joint),ProsoSpeech也取得了更好的效果,说明在低质量数据情况下,韵律提取模块的有效性。
与此同时,我们还发现,FastSpeech2 (joint)的效果比FastSpeech2更差,说明直接用低质量数据进行模型训练对最终效果有负面作用。


除了模型的主观和客观测试之外,我们还针对ProsoSpeech特有的设计进行了ablation studies。这些设计包含了:k-means 初始化、文本预训练、音频预训练和矢量量化的码本大小。Table 2 罗列了实验结果,通过表格我们发现:
1)(line2~line4)文本和音频预训练能够提升基频和时长的准确度;
2)(line5)采用k-means对韵律编码网络进行初始化能够提升韵律并使得训练更加稳定;
3)(line6~line7)采用128的码本就足够存储韵律信息,更小的码本对效果有损。


效果样例

ProsoSpeech模型在发音韵律层面的提升效果。

Text 1:
许久,叶天泽渐渐平复下来,他知道现在要找这个女人复仇,有些不切实际。
text1-FastSpeech2
text1-ProsoSpeech

Text 2:

哦,真的是很热很热你们知道吗?穿上去真的是好厚啊,特别的热,里面全部都是那种暖暖的奥绒绒的那种终极版的卫裤的感觉。
text2-FastSpeech2
text2-ProsoSpeech
* 更多demo请复制链接到浏览器打开:
https://prosospeech.github.io

Future Work

本次我们提出了高表现力声学模型——Prosospeech,它采用LPV来作为韵律表征。在LPV的提取和预测过程中,通过一些特有的设计来使得韵律建模更优。

未来的工作会考虑采用更加强大的生成式模型来提升合成效果,同时引入篇章级或者对话级的上下文信息来进一步提升合成声音的韵律。