基于i向量和VARSGAN的多对多语音转换方法与流程

文档序号:18263095发布日期:2019-07-27 08:49阅读:523来源:国知局
基于i向量和VARSGAN的多对多语音转换方法与流程

本发明涉及一种多对多语音转换方法,特别是涉及一种基于i向量和varsgan的多对多语音转换方法。



背景技术:

语音转换是语音信号处理领域的研究分支,是在语音分析、识别和合成的研究基础上进行的,同时在此基础上发展起来的。语音转换的目标是改变源说话人的语音个性特征,使之具有目标说话人的语音个性特征,也就是使一个人说的语音经过转换后听起来像是另一个人说的语音,同时保留语义。

语音转换技术经过多年的研究,已经涌现了很多的经典转换方法。其中包括高斯混合模型(gaussianmixedmodel,gmm)、频率弯折、深度神经网络(deepneuralnetworks,dnn)等大多数的语音转换方法。但是这些语音转换方法大多要求用于训练的语料库是平行文本的,即源说话人和目标说话人需要发出语音内容、语音时长相同的句子,并且发音节奏和情绪等尽量一致。然而在语音转换的实际应用中,获取大量的平行语料殊为不易,甚至无法满足,此外训练时语音特征参数对齐的准确性也成为语音转换系统性能的一种制约。无论从语音转换系统的通用性还是实用性来考虑,非平行文本条件下语音转换方法的研究都具有极大的实际意义和应用价值。

现有的非平行语音转换方法有基于条件变分自编码器(conditionalvariationalauto-encoder,c-vae)的方法、基于循环一致对抗网络(cycle-consistentadversarialnetworks,cycle-gan)的方法以及基于条件变分自编码器和生成对抗网络(variationalwassersteingenerativeadversarialnetworks,vawgan)的方法。基于条件变分自编码器c-vae模型的语音转换方法,直接利用说话人的身份标签建立语音转换系统,这种语音转换系统在模型训练时不需要对源说话人和目标说话人的语音帧进行对齐,可以解除对平行文本的依赖。但是由于c-vae基于理想的假设,认为观察到的数据通常是遵循高斯分布的,并且在各个维度上是不相关的,导致解码器的输出语音过度平滑,转换后的语音质量不高。基于cycle-gan模型的语音转换方法利用对抗性损失和循环一致损失,同时学习声学特征的正映射和逆映射,可以有效解决过平滑问题,改善转换语音质量,但是cycle-gan只能实现一对一的语音转换。基于条件变分自编码器和生成对抗网络vawgan的方法将wasserstein生成对抗网络(wassersteingenerativeadversarialnetworks,w-gan)合并到解码器中来改进c-vae,其在语音质量上有所提升。但是由于vawgan仍然仅使用了说话人的身份标签去建立语音转换系统,而说话人的身份标签并不能充分表达说话人的个性化特征,因此转换后的语音在语音相似度上仍未得到改善。虽然wgan在一定程度上改善了传统gan的模式崩溃、训练困难等问题,但是wgan本身仍存在着一些不足之处,例如训练仍然相对困难,收敛速度较慢等。因此,如果我们能够提升wgan的性能或者找到性能更强大的gan,那么就有可能进一步提升语音转换系统生成语音的清晰度,从而生成具有更好音质的语音。



技术实现要素:

发明目的:本发明要解决的技术问题是提供一种基于i向量和varsgan的多对多语音转换方法,通过构造相对判别器的方式,使得判别器的输出依赖于真实样本和生成样本间的相对值,在训练生成器时真实样本也能参与训练,从而改善了判别器中可能存在的偏置情况,使得梯度更加稳定,训练更加容易,并且把真实样本引入到生成器的训练中,从而加快了gan的收敛速度,另外加入了能够充分表征说话人的个性特征的i向量,充分学习语义特征和说话人的个性化特征,从而更好地提升转换后语音的个性相似度和语音质量。

技术方案:本发明所述的基于i向量和varsgan的多对多语音转换方法,分为训练阶段和转换阶段,其中所述训练阶段包括以下步骤:

(1.1)获取训练语料,训练语料由多名说话人的语料组成,包含源说话人和目标说话人;

(1.2)将所述的训练语料通过world语音分析/合成模型,提取出各说话人语句的频谱包络特征x、对数基频logf0和非周期特征;

(1.3)将频谱包络特征x、说话人标签y、说话人i向量i输入varsgan网络进行训练,varsgan网络由编码器、生成器和鉴别器组成;

(1.4)训练过程使生成器的损失函数尽量小,使鉴别器的损失函数尽量大,直至设置的迭代次数,得到训练好的varsgan网络;

(1.5)构建从源说话人的语音基频到目标说话人的语音基频的基频转换函数;

所述转换阶段包括以下步骤:

(2.1)将待转换语料中源说话人的语音通过world语音分析/合成模型提取出频谱包络特征x's、非周期性特征和对数基频logf'0s;

(2.2)将频谱包络特征x's、目标说话人标签特征y't、目标说话人i向量i't输入(1.4)中训练好的varsgan网络,重构出目标说话人频谱包络特征x'tc;

(2.3)通过(1.5)得到的基频转换函数,将(2.1)中提取出的源说话人对数基频logf'0s转换为目标说话人的对数基频logf'0t;

(2.4)将(2.2)中得到的目标说话人频谱包络特征x'tc、(2.3)中得到的目标说话人的对数基频logf'0t和(2.1)中提取的非周期性特征通过world语音分析/合成模型,合成得到转换后的说话人语音。

进一步的,步骤(1.3)和(1.4)中的训练过程包括以下步骤:

(1)将频谱包络特征x输入到所述varsgan网络中的编码器,经过网络训练后得到语义特征z(x);

(2)将z(x)、y、i输入生成器进行训练,使生成器的损失函数尽量小,得到目标说话人频谱包络特征xc;

(3)将xc和x输入所述鉴别器进行训练,使鉴别器的损失函数尽量大;

(4)重复步骤(1)、(2)和(3),直至达到预设置的迭代次数,从而得到训练好的varsgan网络。

进一步的,步骤(2.2)中的输入过程包括以下步骤:

(1)将频谱包络特征x'输入varsgan网络的编码器,得到说话人无关的语义特征z(x');

(2)将得到的语义特征z(x')与目标说话人标签特征y't、目标说话人i向量i't输入到所述的生成器中,重构出目标说话人频谱包络特征x'tc。

进一步的,所述的编码器采用二维卷积神经网络,由5个卷积层构成,5个卷积层的过滤器大小均为7*1,步长均为3,过滤器深度分别为16、32、64、128、256。

进一步的,所述的生成器采用二维卷积神经网络g,损失函数为:

所述的鉴别器采用二维卷积神经网络d,损失函数为:

其中,xr表示真实样本,p表示真实样本的分布,xf表示生成样本,q表示真实样本的分布,损失函数ld中的表示鉴别器的期望分布,损失函数lg中表示生成器的期望分布,c(xr)表示将真实样本判断为真的概率,c(xf)表示将生成样本判断为真的概率。

进一步的,所述的生成器的二维卷积神经网络g由4个卷积层构成,4个卷积层的过滤器大小分别为9*1、7*1、7*1、1025*1,步长分别为3、3、3、1,过滤器深度分别为32、16、8、1。

进一步的,所述的鉴别器的二维卷积神经网络d由3个卷积层和1个全连接层构成,3个卷积层的过滤器大小分别为7*1、7*1、115*1,步长均为3,过滤器深度分别为16、32、64。

进一步的,所述的基频转换函数为:

其中,μs和σs分别为源说话人的基频在对数域的均值和方差,μt和σt分别为目标说话人的基频在对数域的均值和方差,logf0s为源说话人的对数基频,logf'0t为转换后对数基频。

有益效果:本方法使用varsgan与i向量相结合来实现语音转换系统,与现有方法比,能够较好地提升转换后语音的个性相似度和语音质量,实现了一种高质量的语音转换方法。此外,本方法解除对平行文本的依赖,实现了非平行文本条件下的语音转换,而且训练过程不需要任何对齐过程,提高了语音转换系统的通用性和实用性,本方法还可以将多个源-目标说话人对的转换系统整合在一个转换模型中,即实现多说话人对多说话人转换。本方法在跨语种语音转换、电影配音、语音翻译等领域有较好的应用前景。

附图说明

图1是本方法实施例的整体流程图。

具体实施方式

本发明中的varsgan(variationalauto-encoderrelavitisticstandardgenerativeadversarialnetworks,变分自编码器相对生成对抗网络)模型是在rsgan(相对生成对抗网络)基础上改进的,rsgan是在sgan(标准生成对抗网络)的基础上提出的,通过构造相对判别器的方式,使得判别器的输出依赖于真实样本和生成样本间的相对值,在训练生成器时真实样本也能参与训练,从而直观地改善了判别器中可能存在的偏置情况,使得梯度更加稳定,训练更加容易;并且把真实样本引入到生成器的训练中,从而加快了gan的收敛速度。通过cifar-10、cat等图像领域的实验证明了相比sgan、最小二乘gan(leastsquaresgan,lsgan)、wgan而言,rsgan生成的数据样本更稳定且质量更高。varsgan模型加入的i向量是在高斯混合模型-通用背景模型(gmm-ubm)超向量和信道分析的基础上提出的一种新型的低维定长特征向量,i向量能够充分表征说话人的个性特征,并且在varsgan的基础上加入i向量,可以大大提高转换语音的相似度。

本方法的实施例如图1所示,分为两个部分:训练部分用于得到语音转换所需的参数和转换函数,而转换部分用于实现源说话人语音转换为目标说话人语音。

训练阶段实施步骤为:

1.1)获取非平行文本的训练语料,训练语料是多名说话人的语料,包含源说话人和目标说话人。训练语料取自vcc2018语音语料库。该语料库的训练集中有4个男性和4个女性说话人,每个说话人有80句语料。本方法既可以在平行文本下实现转换,也可以在非平行文本下实现转换,所以这些训练语料也可以是非平行文本的。

1.2)训练语料通过world语音分析/合成模型提取出各说话人语句的频谱包络特征x、非周期性特征、对数基频logf0。同时提取出代表各说话人个性化特征的i向量i。其中由于快速傅氏变换(fft)长度设置为1024,因此得到的频谱包络特征x和非周期性特征均为1024/2+1=513维。

i向量是在高斯混合模型-通用背景模型(gmm-ubm)超向量和信道分析的基础上提出的一种新型的低维定长特征向量,i向量可以通过kaldi框架提取得到。其中,gmm-ubm模型可以表征大量说话人整个声学空间的内部结构,所有说话人的高斯混合模型具有相同的协方差矩阵和权重参数。由于在说话人的语音中包含了语音个性差异信息和信道差异信息,因此全局gmm的超向量可以定义为:

s=m+tω

其中,s表示说话人的超向量,m表示与特定说话人和信道无关的均值超向量,即ubm模型下的超向量,t是低维的全局差异空间矩阵,表示背景数据的说话人空间,包含了说话人信息和信道信息在空间上的统计分布,也称为全局差异子空间(totalvariabilitysubspace,tvs)。ω=(ω1,ω2,...,ωq)是包含整段语音中的说话人信息和信道信息的全局变化因子,服从标准正态分布n(0,1),称之为i向量(i-vector)或身份向量。

1.3)将1.2)提取的训练语料的频谱包络特征x,作为varsgan编码器的输入数据,经过网络训练后得到说话人无关的语义特征z(x)。其中编码器采用二维卷积神经网络,包括5个卷积层。5个卷积层的过滤器大小均为7*1,步长均为3,过滤器深度分别为16、32、64、128、256。

varsgan网络的目标函数为:

jvarsgan=l(x;φ,θ)+αjrsgan,

其中,l(x;φ,θ)为c-vae部分的目标函数也就是varsgan+i-vector网络中编码器的损失函数,jrsgan表示解码器(即rsgan)部分损失函数,α是rsgan的损失系数。l(x;φ,θ)和jrsgan分别可以表示为:

其中,dkl(qφ(z|x)||pθ(z))表示判别模型qφ(z|x)和真实后验概率p(z|x)之间的kl散度。先验概率pθ(z)为标准多维高斯分布。qφ(z|x)和pθ(x|z)分别为编码器和解码器,服从多维高斯分布,其均值向量和协方差矩阵分别为(μφ(z),σφ(z))和(μθ(x),σθ(x))。因此,右边两项可以简化为:

其中,k为中间变量z的维数,l为对qφ(z|x)取样的次数。由于取样过程是一个非连续的操作,无法求导,因此无法通过反向传播来更新编码器和解码器的网络参数。于是引入另一个随机变量ε对隐藏变量z进行再参数化,令z(l)=μθ(x)+ε(l)*σθ(x),ε(l)~n(0,i),则:

其中,d为x的样本数。

至此,最大化c-vae的目标函数已经转换为求解凸优化问题,利用随机梯度下降法(stochasticgradientdescent,sgd)来更新网络模型参数。

因此varsgan网络的目标函数可以进一步写成:

生成器二维卷积神经网络的损失函数为:

优化目标为:

鉴别器二维卷积神经网络的损失函数为:

优化目标为:

上述生成器g和判别器d的损失函数具体解释如下:

为了将判别器的输出限制在[0,1]中,sgan常常在判别器的最后一层使用sigmoid激励函数,因此sgan的判别器也可以定义成:

d(x)=sigmoid(c(x)),

其中c(x)为未经过sigmoid函数激励的判别器输出。由于判别器的输出由真实样本和生成样本决定,因此可以使用简单的方法构造相对判别器。

其中,xr表示真实样本,xr∈p,xf表示生成样本,xf∈q,表示真实样本比生成样本更真实的概率,表示生成样本比真实样本更真实的概率。经过如下推导:

可以得到下式:

代入d(x),将代入d(g(z)),最终可以得到rsgan的判别器和生成器的目标函数:

其中,ld中的表示鉴别器的期望分布,lg中表示生成器的期望分布,c(xr)表示将真实样本判断为真的概率,c(xf)表示将生成样本判断为真的概率。sigmoid表示判别器最后一层使用激活函数sigmoid,sigmoid(c(xr)-c(xf))表示真实样本比生成样本更真实的概率,sigmoid(c(xf)-c(xr))表示生成样本比真实样本更真实的概率。

1.4)将1.3)得到的训练语料的语义特征z(x)与说话人标签特征y、说话人i向量i作为联合特征(z(x),y,i)输入解码器进行训练。其中y为每一个说话人的标签,在本方法中,采用8个说话人进行训练,对每一个说话人进行标号,8个参与训练的说话人分别标为0、1、2、3、4、5、6、7。解码器由生成器和鉴别器组成。训练生成器,使生成器的损失函数lg尽量小,得到生成的说话人频谱包络特征xc。说话人i向量是利用说话人的训练语料提取得到,每个说话人得到一个表示说话人特征的i向量。生成器采用二维卷积神经网络,包括4个反卷积层。4个反卷积层的过滤器大小分别为9*1、7*1、7*1、1025*1,步长分别为3、3、3、1,过滤器深度分别为32、16、8、1。鉴别器采用二维卷积神经网络,包括3个卷积层和1个全连接层。3个卷积层的过滤器大小分别为7*1、7*1、115*1,步长均为3,过滤器深度分别为16、32、64。

1.5)将1.4)得到的生成的说话人频谱包络特征xc和1.2)得到的训练语料的说话人频谱包络特征xt作为鉴别器的输入,训练鉴别器。使鉴别器的损失函数ld尽量大。

1.6)重复1.3)、1.4)和1.5),直至达到迭代次数,从而得到训练好的varsgan网络,其中编码器参数φ、生成器参数θ、鉴别器参数ψ为训练好的参数。由于神经网络具体设置不同以及实验设备性能不同,选择的迭代次数也各不相同。本实验中选择迭代次数为200000次。

1.7)使用对数基频logf0的均值和方差建立基音频率转换关系,统计出每个说话人的对数基频的均值和方差,利用对数域线性变换将源说话人对数基频logf0s转换得到目标说话人语音基频

基频转换函数为:

其中,μs和σs分别为源说话人的基频在对数域的均值和方差,μt和σt分别为目标说话人的基频在对数域的均值和方差。

转换阶段实施步骤为:

2.1)将源说话人语音通过world语音分析/合成模型提取出源说话人的不同语句的频谱包络特征x's、非周期性特征、对数基频其中由于快速傅氏变换(fft)长度设置为1024,因此得到的频谱包络特征x's和非周期性特征均为1024/2+1=513维。

2.2)将2.1)提取的源说话人语音的频谱包络特征x's,作为varsgan中编码器的输入数据,经过训练后得到说话人无关的语义特征z(x's)。

2.3)将2.2)得到的语义特征z(x's)与目标说话人标签特征y't、目标说话人i向量i't作为联合特征(z(x's),y't,i't)输入1.6)训练的varsgan网络,从而重构出目标说话人频谱包络特征x'tc。

2.4)通过1.6)得到的基音频率转换函数,将2.1)中提取出的源说话人对数基频logf'0s转换为目标说话人的对数基频logf'0t。

2.5)将2.3)中得到的目标说话人频谱包络特征x'tc、2.4)中得到的目标说话人的对数基频logf'0t和2.1)提取的非周期性特征通过world语音分析/合成模型合成转换后的说话人语音。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1