智鹏鹏,杨鸿武,宋 南
(西北师范大学 物理与电子工程学院,兰州 730070)
目前有多种方法可以有效合成情感语音,包括波形拼接合成[1],韵律特征修改[2-3]和基于隐马尔可夫模型(hidden Markov model, HMM)的统计参数语音合成[4-5]3种。波形拼接合成方法中,需要为情感语音合成系统建立一个大型情感语料库,通过增加大量情感样本来提高情感语音合成质量。韵律特征修改方法通过韵律特征分析和参数修改实现情感语音合成。基于HMM的统计参数情感语音合成方法通过使用小型情感语料库进行说话人自适应训练来获得情感声学模型,或者将情感模型应用于HMM,通过情感修正合成情感语音。以上情感语音合成方法,波形拼接方法具有不易获取大型情感语料库的缺点;韵律特征修改的情感语音合成方法合成的情感语音自然度和情感表达度差;基于HMM的统计参数语音合成综合了语音合成方法的多种优点,在过去十年成为最受关注的方法之一,然而同样具有合成语音的自然度较低、韵律特征平淡等缺点。
近年来随着深度学习研究的广泛深入,深度神经网路(deep neural network, DNN)在语音识别上的成功应用促使许多学者将其应用于语音合成领域[6],其中,文献[7]提出了基于深度学习的统计参数语音合成,解决了HMM决策树上下文状态聚类的方法在建模复杂上下文相关依赖上的局限性,文献[8-13]通过不同方面对DNN语音合成方法进行了探究。虽然基于DNN的统计参数语音合成方法取得了较好的效果,然而目前关于统计参数语音合成的研究主要依赖于说话者,需要来自单个说话人的大量数据来建立稳定的声学模型,有时训练数据的质量对合成语音的自然性有很大影响。为了解决以上问题,在DNN方法的基础上,文献[14-17]提出了基于DNN的多说话人自适应方法,实现了自适应方法的文语转换。
在情感语音合成的研究上,文献[18]采用端到端韵律转换方法合成了不同文本的语音,文献[19]采用端到端方法实现了语音情感动画的合成,文献[20-21]分别采用DNN和循环神经网络长短期记忆(recurrent neural network-long short term memory notwork,RNN-LSTM)方法实现了情感语音合成。以上深度学习情感语音合成方法虽然能够合成出较为自然的情感语音,但在使用多个说话人的训练语料或较小的情感语料库进行训练时,合成的语音仍然无法满足情感要求。
为了进一步提升合成的情感语音的音质和情感表达,本文将说话人自适应应用于基于DNN的语音合成中,首先利用多个说话人的多种情感的语料库,训练得到多个说话人的无关平均音模型(average voice models, AVM)。在此基础上,采用目标说话人的目标情感的训练语句,利用说话人自适应技术,获得说话人相关的语音模型,用该模型合成目标说话人的目标情感语音。主观评测结果表明,本文方法合成的情感语音,其情感意见得分高于基于HMM的情感语音合成方法合成的情感语音。客观评测结果表明,本文方法合成的情感语音的频谱更接近于原始情感语音。因此,本文方法能够提高合成语音的自然度和情感表达。
本文提出的情感语音合成框架如图1所示,分为数据准备、平均音模型训练、说话人自适应和情感语音合成4个阶段。
图1 采用说话人自适应的基于DNN的情感语音合成框架Fig.1 Framework of DNN-based emotional speech synthesis using speaker adaptation
数据准备阶段,首先给出多个说话人的多种情感的情感语料库,利用WORLD声码器[22],从情感语音中提取模型训练所需的声学特征,包括基频(fundamental frequency, F0)、广义梅尔倒谱系数(Mel-generalized Cepstral, MGC),频带非周期分量(band a periodical, BAP)。
本文以普通话声韵母作为语音合成的基本单元。语音对应的文本经过文本分析过程,借助于词典和语法规则库,通过文本规范化、语法分析、韵律分析、字音转换等,获得输入文本的声韵母信息、韵律结构信息、词信息和语句信息,从而获得情感语音对应文本的声韵母及其语境信息,最终得到声韵母的上下文相关标注,包括声韵母层、音节层、词层、韵律词层、短语层、语句层6层上下文相关标注。
在平均音声学模型的训练阶段,根据情感语音的上下文相关标注获得语言特征(二进制和数字)作为输入,声学特征包括MGC,BAP,F0和浊音/清音(voice/unvoiced,V/UV)作为输出,训练DNN模型。在训练期间,DNN模型在不同的情感说话人之间共享各种隐藏层以建模其语言参数,经过反向传播(backpropagation, BP)算法的随机梯度下降过程(stochastic gradient descent, SGD)[23]进行时长与声学特征建模,最终训练出多个说话人的时长与声学特征的说话人无关AVM。
在AVM模型的训练过程中,DNN模型采用非线性函数对语言特征和声学特征之间的非线性关系进行建模,每个隐藏层k使用前一层的输出hk-1计算输出向量hk,x=h0是模型的输入。定义hk为
hk=tanh(bk+wkhk-1)
(1)
(1)式中:bk是偏移矢量;wk是权重矩阵。映射函数采用双曲正切函数(tanh)(以元素方式应用),也可以用其他饱和非线性函数(例如Sigmod形函数)代替。顶层hl与监督的目标输出y组合成凸型损失函数L(hl,y)。
输出层使用(2)式所示的线性回归函数
(2)
(3)
训练采用基于梯度训练的BP算法[24],使用包括代价函数的反向传播导数,测量输入x和期望输出y之间产生的差异。然后找到每个单元的最佳权重,使得代价函数最小化。
以softmax[15]作为输出函数,定义交叉熵误差函数E(w)为
(4)
(4)式中,N为单元数量。
通过从w得到相对于每个权重wk的代价函数E(w)来获得E(w)的梯度,其定义为
(5)
根据文献[14],梯度下降可以写成
wk+1=wk-ηkgk
(6)
(6)式中,ηk是步长或学习速率。
最后,根据(4)—(6)式,使用对应的随机梯度下降算法来确定最小化代价函数的最优参数,从而得到最佳权重。
平均音声学模型训练中,采用包括输入层、输出层和6个隐藏层的DNN结构,在隐藏层中使用tanh函数,在输出层处进行线性激活,训练语料库中的所有说话人的训练数据共享隐藏层,因此,隐藏层是所有说话人共享的全局语言特征映射。每个说话人具有自己的回归层,以对自己的特定声学空间进行建模。经过多批次SGD训练,得到最优的多说话人的AVM模型(平均时长模型和平均声学特征模型)。
在说话人自适应阶段,给定目标说话人的目标情感的小语料库,提取其声学特征。声学特征的提取与AVM训练过程相同,包括F0,MGC,BAP和V/UV。将平均音模型训练阶段获得的多说话人平均音模型放入目标情感说话人的DNN模型中,进行说话人自适应变换,得到说话人相关的自适应模型,即说话人相关的时长模型与说话人相关的声学模型。说话人自适应获得的说话人相关模型与平均音模型的DNN结构相同,采用6个隐藏层结构,映射函数与(1)式相同。
在情感语音合成阶段,首先输入待合成的情感语音的文本,经过文本分析过程获得的上下文相关标注,并将上下文相关标注作为语言特征作为说话人相关模型的输入,采用最大似然参数生成(maximum likelihood parameter generation, MLPG)算法[25]生成目标情感语音的声学参数,然后采用WORLD声码器,合成得到目标说话人的目标情感语音。
由于男女录音人的基频差异较大,为了避免性别差异对合成语音质量的影响,本文选取9位女性大学生作为录音人录制情感语料。情感语音的录制采用诱导激发方式,在录制某种情感的语音时,首先利用故事、视频或图片激发出录音人的情感,然后让录音人在激发的情感状态下朗读录音文本。每个说话人录制11种情感的语音,每种情感录制300~350句,总共录制3 500句。录音在专业录音棚中进行,每句录音的时长为5~8 s,采样率为16 kHz,量化精度为16位。
实验中,用8位女性说话人的情感语料训练DNN平均音模型(AVM),用1位女性说话人的情感语料作说话人自适应的目标说话人训练语料。其中,每种情感使用250~300句情感语音进行平均音模型训练,50句情感语音进行目标情感说话人自适应训练,其中,40句用作训练集,10句用做测试集,总共对11种典型情感(放松、惊奇、温顺、喜悦、愤怒、焦虑、厌恶、轻蔑、恐惧、悲伤,中性)进行自适应训练。对语音文件,使用WORLD声码器以5 ms的步长以对数标度提取60维广义梅尔倒谱系数,1维频带非周期分量和1维基频。
DNN的输入包含416个二进制语言特征、9个数字特征和1个表示性别的二进制特征。语言特征包括声韵母、音节、词性,以及韵律词、韵律短语、语句长度、位置等信息。9个数字特征涉及HMM状态、声韵母中的帧位置、声韵母中的状态位置和声韵母持续时间。输出声学特征包括60维MGC,1维BAP,1维F0,以及它们的一阶差分和二阶差分特征,以及1个V/UV特征,构成187维的声学特征向量。对F0进行线性内插以提取动态特征,V/UV特征用于在语音合成时决定有声和无声区域。输入特征被归一化到[0.01,0.99],输出特征用说话人相关的均值和方差归一化。说话人自适应的声学特征也用同样的方法进行归一化。在参数生成阶段,将MLPG算法应用于输出特征,以产生平滑的参数轨迹,之后在倒谱域中进行频谱增强和后滤波。
DNN模型有6个隐藏层,每个隐藏层有1 024个结点。在隐藏层中使用tanh函数,在输出层处进行线性激活。在AVM训练和说话人自适应期间,mini-epoch大小设置为256,并采用动量加速收敛。对于前10个epoch,首先将动量设置为0.6,然后增加到0.9。在AVM DNN训练的前10个时期中使用0.000 8的固定学习速率。在说话人自适应期间,说话人的学习率设置为0.02。在10个epoch之后,学习速率在每个epoch减半。将L2正则化应用于具有罚分因子为0.000 01的权重,AVM DNN训练和说话人自适应的最大epoch数设置为25。实验使用Merlin[26]工具箱,在训练中使用CUDA8.0,theano框架及Python模块在GPU上进行矩阵计算。
为了评估本文提出的方法,采用了以下3组实验进行对比。
1)DNN(adp):利用9位说话人进行DNN说话人自适应训练;
2)DNN:利用1位说话人进行DNN模型训练;
3)HMM(adp):利用9位说话人进行基于HMM的说话人自适应训练[27-28]。
在对比实验中,2)的训练过程与1)相同,但2)只使用1位说话人的训练语料,而1)使用9位说话人的训练语料,并且进行了说话人自适应。
本文采用客观和主观测量对合成语音进行评测,根据原始说话者的自然语音与合成语音之间的失真来测量情感语音合成质量。
客观评测通过计算原始语音与合成语音在基频和时长上的均方根误差(root mean square error, RMSE),以及梅尔倒谱失真(Mel-cepstral distortion, MCD)、频带非周期性失真(band a periodicity distortion,BAPD)和V/UV交换误差来评测合成语音的质量,评测结果分别如表1和表2所示。可以看出,在大部分情感中,说话人自适应方法训练的DNN和HMM模型比DNN模型数值更小,有更好的性能。几种情绪浮动较大的情感如愤怒、焦虑的RMSE值在DNN模型上浮动较大,其RMSE值有时会接近或小于基于HMM的说话人自适应训练方法的结果,而轻蔑和中性等弱情感在3种对比实验中的RMSE值比较接近。表1与表2结果表明,本文提出的方法合成的情感语音要优于其他2种方法合成的情感语音。
主观评测方法采用在不同方法合成的语音句子对之间的AB偏好测试、平均意见得分(mean opinion score, MOS)和情感相似度平均意见得分 (emotional mean opinion score, EMOS)来评估合成语音的质量。
表2 3种情感语音合成方法的客观评测结果Tab.2 MCD, BAPD and V/UV error of three emotional speech synthesis methods
续表2
本次实验合成了3个组别相同说话人的11种情感的语料,每种情感各10句,总共330句情感语音用于评价,邀请5个评测者进行评测。在偏好测试中,有3种偏好选择:①前者更好;②后者更好;③没有偏好或中性(成对句子之间的差异不能被感知或可以被感知,但难以选择哪一个更好)。在MOS 和EMOS评测中,在听到语音之后,评测者在5级评分(1:差,2:较差,3:一般,4:好,5:优)中评价语音的自然度和情感度。结果如图2—图4所示。从图2—图4中可以看出,本文提出的方法(DNN adp)相较于其他2种方法分别获得了62%和44%的偏好度,MOS和EMOS评测中得到了3.7和3.5的平均分,优于其他2种方法,说明本文提出的情感语音合成方法具有更好的偏好度、自然度和情感度。
图2 情感语音合成偏好得分Fig.2 Preference score of emotional speech synthesis
本文提出了一种利用多个说话人的多情感训练语料,采用说话人自适应方法实现基于DNN的情感语音合成方法,实现了情感语音合成。主客观实验均表明,本文提出的情感语音合成方法要优于传统的基于HMM的情感语音合成方法和基于DNN的情感语音合成方法。下一步工作将采用递归神经网络、长短时记忆网络等不同的深度学学习方法实现情感语音合成,扩充情感语料库的规模,并对不同方法、不同语料库合成的情感语音进行深入评测。
图3 95%置信区间下3种方法合成的情感语音的MOS得分Fig.3 MOS score of emotional speech synthesized by three methods with 95% confidence interval