一种端到端实时语音合成方法
技术领域
本发明属于语音合成和深度学习
技术领域
,涉及一种语音合成方法,尤其是一种基于神经网络的端到端实时语音合成方法。背景技术
在语音合成技术发展的多年时间里,语音合成已经融入了人们生活的多个方面,如有声小说、智能音箱、语音助手、语音导航、AI播报、智能问答系统等人机对话场景,并且存在语言障碍的人可以通过语音合成来发出自己的声音,存在视力障碍和阅读障碍的人可以通过语音合成来获得文字载体的信息。随着人们生活模式的不断变化,用户对语音合成的速度与质量也提出了更高的要求,包括语音合成的实时性,语音的清晰度与自然度等各项指标。
但现阶段基于深度学习的语音合成方法也存在着一定的不足。首先,现在大部分神经网络声码器都是自回归(AR)的模型,例如WaveNet、WaveRNN、 SampleRNN等,AR模型本质上是串行的,依赖于先前的样本来生成当前样本,以此来对音频的长期依赖性进行建模。尽管AR模型可以产生非常贴近人耳感官的时域波形样本,但其生成效率相对较低,这限制了AR模型在对效率敏感的实时TTS应用中的实际效果。其次,并行式的神经网络声码器虽然可以通过一些技术手段使语音合成不再对样本点之间的依赖关系进行建模,并行输出整段语音,提高了生成效率,但是模型参数量大,算法复杂度高,过于依赖设备性能,训练速度慢。
发明内容
为了克服现有技术的不足,本发明提供了一种端到端实时语音合成方法,该方法在保证合成出高质量语音的前提下,提高语音合成的实时率。
为了解决上述技术问题本发明提供如下的技术方案:
一种端到端实时语音合成方法,包括基于高斯混合模型注意力机制的序列到序列生成模型的声谱预测网络和基于生成对抗网络的声码器,对数据集进行如下预处理:将文本进行正则化处理转换成声韵母分开的拼音注音序列,并添加停顿标注,对音频进行预加重,分帧加窗,短时傅里叶变换和梅尔偏置得到梅尔谱;通过预处理后的平行预料输入所述声谱预测网络中进行训练,得到预测梅尔谱,对其进行归一化,输入所述声码器,经过PQMF滤波器组进行分频和重组,进行对抗训练;通过主观评价方法对合成语音进行评价,通过计算实时率评价模型生成时耗。
进一步,所述声谱预测网络采用序列到序列生成模型,即使用基于高斯混合模型的注意力机制的编码器-解码器结构,所述注意力机制通过高斯混合模型计算注意力权重。该方案可以提高注意力对齐速度。
再进一步,所述声谱预测网络的输入为文本注音序列经词嵌入转换的特征向量,数据集录音时长12小时,录音语句10000,单声道,信噪比不低于35dB,采样率为48kHz、16bit,无压缩WAV格式,数据预处理包括如下步骤:
a)文字转拼音:采用将声韵母分开的处理方法,将汉字转换成汉语拼音,将汉语拼音的5种音调分别用数字1,2,3,4,5来代替,1代表阴平,2代表阳平,3代表上声,4代表去声,5代表轻声,将阿拉伯数字转换成汉字,然后针对数字在不同场景的读法不一样的情况进行不同的标注,对符号进行规范化操作,将中文标点符号转换成英文标点符号,删去一些没有意义的特殊符号;
b)停顿标注:将停顿分为四个等级,分别用#1,#2,#3和#4标注,#1是韵律词的边界,在听感上是很短暂的骤顿,在语音波形上则无明显的间断,#2是词与词之间的停顿,停顿事件比较短暂,#3是一个逗号的停顿,时间稍长一些,#4 是句号,表示这句话已经结束;
c)音频处理:读取语音文件,将语音文件开头和结束的静音部分进行剪切,保证神经网络模型能够准确地找到开始点和结束点,将原始音频信号通过一个高通滤波器得到预加重后的语音数据,采用公式(1):
H(Z)=1-μZ-1 (1)
其中Z为语音信号波形,μ取值范围在0.9到1之间;
对语音进行分帧加窗,窗函数使用汉宁窗,窗长为1024,帧移为256,汉宁窗为公式(2):
然后采用公式(3)对语音进行短时傅里叶变换,傅里叶点数为1024,得到语音的傅里叶谱;
其中x(τ)为源信号,h(τ-t)为分析窗函数;
将傅里叶谱去幅度,然后通过跨度为80到7600的80通道梅尔滤波器获得梅尔偏置,得到梅尔谱,如公式(4),然后对梅尔谱进行均值方差归一化;
更进一步,所述声谱预测网络的编码器由三层卷积神经网络层和一层双向 LSTM构成,每一个卷积层的卷积核个数为512,大小为5*1,使用ReLU非线性激活函数,对输入的注音序列进行上下文信息提取;最后一层卷积层的输出作为双向LSTM层的输入,该层有512维,每个方向256维,将注音序列转换成隐藏的特征表现状态信息。
所述注意力机制通过高斯混合模型计算注意力权重,如公式(5):
其中K是高斯混合模型分量,wi,Zi,Δi和σi是模型的相关系数,通过公式 (6)(7)(8)(9)得出:
通过公式(10)计算每个高斯分量的均值:
μi=μi-1+Δi (10)
通过公式(11)计算模型中间参数:
其中si为注意力机制的输入向量,W是一个权重矩阵,b为偏置,tanh是激活函数,V是一个没有激活的线性变换。
所述解码器由Pre-net、两层LSTM和两个线性投影层构成,Pre-net包含两个全连接层,每一层有256维的ReLU,并且设置0.5的Dropout,两层1024维的单向LSTM的输出与新的语境向量进行拼接,分别送入两个线性映射层,其中一个线性映射层将LSTM的输出转换成梅尔谱,另一个线性映射层通过softmax来计算停止符,在解码过程中自发打断生成过程。
解码过程结束后,会将预测的梅尔谱输入到Post-net中,Post-net是由五层卷积神经网络构成的,每一层卷积层的卷积核数量为512,大小为5*1,前四层都使用tanh非线性激活函数,最后一层使用linear激活函数。Post-net使用残差进行计算,如公式(12)(13)(14):
yfinal=y+yr# (12)
yr=Postnet(y)=Wpsfps+bps# (13)
fps=Fps,i*x# (14)
其中y为原始输入,yfinal为最终输出的梅尔谱,x为解码器的输出或上一个卷积层的输出,Wps和bps为待训练的参数,F为卷积。
所述声码器使用多频带MelGAN,模型分为生成器和判别器两部分,生成器的输入是梅尔谱,输出的是原始波形,通过三层由一维反卷积构成的上采样层,反卷积的卷积核大小为步长的两倍,上采样的倍数为200,三层上采样层的输出通道数分别为192,96和48;每一层上采样层后连接一个残差模块,残差模块由 4层扩张系数为1,3,9,27,卷积核大小为3的一维空洞卷积网络构成,起到扩大模型感受野的作用,然后通过一个一维卷积网络层,使用tanh非线性激活函数,输出通道为4,分别用来预测4个频带的音频。
所述判别器是一组多音频尺度的判别器模块,每一个音频尺度的判别器模块可以捕获到不同频率段的音频特征。判别器的输入由两部分组成,一个是真实语音的音频,另一个是生成器生成的语音音频。每个判别器模块由前后各一层的一维卷积层和下采样层构成,下采样层由3层跨步卷积构成,步长为4。判别器分为3个判别尺度,D1是原始音频频段,D2和D3分别是对原始音频进行采样系数为2和4的下采样的音频频段。判别器模块通过输入原始音频作为真音频,输入合成音频作为假音频,进行对抗训练。
所述声码器使用多尺度短时傅里叶变换损失,多尺度短时傅里叶变换损失分为Lsc和Lmag,前者考虑频谱的收敛性,后者考虑对数谱能量之间的关系。表达式如公式(15)(16):
其中‖·‖F和‖·‖1表示F范数和L1范数,x为真实音频,为预测音频,|STFT(·)|表示短时傅里叶变换,N为幅度谱的元素个数。使用不同STFT参数可以得到不同分辨率的STFT loss。使用M个不同分辨率的STFT loss将单个损失加权平均得到公式(17):
所述声码器使用PQMF滤波器组对音频进行分频段编码,滤波器组中的每一个滤波器使用不同的下采样率对信号进行编码,然后分别将子频带信号交付给解码器,在解码过程中将上采样的信号通过还原滤波器还原成语音波形。
本发明的有益效果表现在:采用本发明方法可以在保证合成高质量语音的同时,还可以通过基于高斯混合模型的注意力机制提高注意力对齐速度,通过PQMF 滤波器组对音频进行分频带编码,提高语音生成速度,使用多尺度短时傅里叶变换损失函数加快模型训练收敛速度,提高语音合成质量。
附图说明
图1是本发明方法中声谱预测网络的总体框架实例示意图;
图2是本发明方法中多频带MelGAN声码器网络的总体框架实例示意图;
图3本发明方法中解码器流程示意图;
图4本发明方法中PQMF滤波器组编解码流程示意图;
具体实施方式
下面对本发明的端到端实时语音合成方法做进一步的说明。
参照图1~图4,一种端到端实时语音合成方法,包括基于高斯混合模型注意力机制的序列到序列生成模型的声谱预测网络和基于生成对抗网络的声码器,对数据集进行如下预处理:将文本进行正则化处理转换成声韵母分开的拼音注音序列,并添加停顿标注,对音频进行预加重,分帧加窗,短时傅里叶变换和梅尔偏置得到梅尔谱;通过预处理后的平行预料输入所述声谱预测网络中进行训练,得到预测梅尔谱,对其进行归一化,输入所述声码器,经过PQMF滤波器组进行分频和重组,进行对抗训练;通过主观评价方法对合成语音进行评价,通过计算实时率评价模型生成时耗。
进一步,所述声谱预测网络采用序列到序列生成模型,即使用基于高斯混合模型的注意力机制的编码器-解码器结构,所述注意力机制通过高斯混合模型计算注意力权重。该方案可以提高注意力对齐速度。
再进一步,所述声谱预测网络的输入为文本注音序列经词嵌入转换的特征向量,数据集录音时长12小时,录音语句10000,单声道,信噪比不低于35dB,采样率为48kHz、16bit,无压缩WAV格式,数据预处理过程如下:
a)文字转拼音。采用将声韵母分开的处理方法,将汉字转换成汉语拼音,将汉语拼音的5种音调分别用数字1,2,3,4,5来代替,1代表阴平,2代表阳平,3代表上声,4代表去声,5代表轻声,将阿拉伯数字转换成汉字,然后针对数字在不同场景的读法不一样的情况进行不同的标注,对符号进行规范化操作,将中文标点符号转换成英文标点符号,删去一些没有意义的特殊符号。
b)停顿标注。将停顿分为四个等级,分别用#1,#2,#3和#4标注,#1是韵律词的边界,在听感上是很短暂的骤顿,在语音波形上则无明显的间断,#2是词与词之间的停顿,停顿事件比较短暂,#3是一个逗号的停顿,时间稍长一些,#4 是句号,表示这句话已经结束。
c)音频处理。读取语音文件,将语音文件开头和结束的静音部分进行剪切,保证神经网络模型能够准确地找到开始点和结束点,将原始音频信号通过一个高通滤波器得到预加重后的语音数据,采用公式(1):
H(Z)=1-μZ-1# (1)
其中Z为语音信号波形,μ取值范围在0.9到1之间。
对语音进行分帧加窗,窗函数使用汉宁窗,窗长为1024,帧移为256,汉宁窗为公式(2):
然后采用公式(3)对语音进行短时傅里叶变换,傅里叶点数为1024,得到语音的傅里叶谱。
其中x(τ)为源信号,h(τ-t)为分析窗函数。
将傅里叶谱去幅度,然后通过跨度为80到7600的80通道梅尔滤波器获得梅尔偏置,得到梅尔谱,如公式(4),然后对梅尔谱进行均值方差归一化。
将预处理后的文本和音频数据作为平行预料,通过词嵌入转换成特征向量,输入声谱预测网络。
本发明声谱预测网络总体模型结构如图1所示,所述编码器由三层卷积神经网络层和一层双向LSTM构成。每一个卷积层的卷积核个数为512,大小为5*1,使用ReLU非线性激活函数,对输入的注音序列进行上下文信息提取。最后一层卷积层的输出作为双向LSTM层的输入,该层有512维(每个方向256维),将注音序列转换成隐藏的特征表现状态信息。
本发明声谱预测网络注意力机制通过高斯混合模型计算注意力权重,如公式(5):
其中K是高斯混合模型分量,wi,Zi,Δi和σi是模型的相关系数,通过公式 (6)(7)(8)(9)得出。
通过公式(10)计算每个高斯分量的均值。
μi=μi-1+Δi# (10)
通过公式(11)计算模型中间参数。
其中si为注意力机制的输入向量,W是一个权重矩阵,b为偏置,tanh是激活函数,V是一个没有激活的线性变换。
本发明声谱预测网络解码器由Pre-net、两层LSTM和两个线性投影层构成。Pre-net包含两个全连接层,每一层有256维的ReLU,并且设置0.5的Dropout,两层1024维的单向LSTM的输出与新的语境向量进行拼接,分别送入两个线性映射层,其中一个线性映射层将LSTM的输出转换成梅尔谱,另一个线性映射层通过softmax来计算停止符,在解码过程中自发打断生成过程,阈值设置为0.5。解码流程如图3所示。
本发明解码过程结束后,会将预测的梅尔谱输入到Post-net中,Post-net是由五层卷积神经网络构成的,每一层卷积层的卷积核数量为512,大小为5*1,前四层都使用tanh非线性激活函数,最后一层使用linear激活函数。Post-net使用残差进行计算,如公式(12)(13)(14):
yfinal=y+yr# (12)
yr=Postnet(y)=Wpsfps+bps# (13)
fps=Fps,i*x# (14)
其中y为原始输入,yfinal为最终输出的梅尔谱,x为解码器的输出或上一个卷积层的输出,Wps和bps为待训练的参数,F为卷积。
本发明声谱预测网络使用的损失函数如下:
a)停止符交叉熵:
StopTokenLoss=-[y*log(p)+(1-y)*log(1-p)]# (15)
其中p是线性映射层输出的预测概率分布,y是停止符真实的概率分布。
b)Post-net前后均方误差:
其中n为batch中的样本数,yr是真实梅尔谱,yb是进入Post-net前解码器输出的预测梅尔谱,ya是进入Post-net后的预测梅尔谱。
c)L2正则化:
其中wk为模型参数,K为参数总数,不需要正则化偏置项。
本发明声码器为多频带MelGAN,模型分为生成器和判别器两部分,模型结构如图2所示。所述生成器的输入是梅尔谱,输出的是原始波形,通过三层由一维反卷积构成的上采样层,反卷积的卷积核大小为步长的两倍,上采样的倍数为200,三层上采样层的输出通道数分别为192,96和48。每一层上采样层后连接一个残差模块,残差模块由4层扩张系数为1,3,9,27,卷积核大小为3的一维空洞卷积网络构成,起到扩大模型感受野的作用,然后通过一个一维卷积网络层,使用tanh非线性激活函数,输出通道为4,分别用来预测4个频带的音频。判别器是一组多音频尺度的判别器模块,每一个音频尺度的判别器模块可以捕获到不同频率段的音频特征。判别器的输入由两部分组成,一个是真实语音的音频,另一个是生成器生成的语音音频。每个判别器模块由前后各一层的一维卷积层和下采样层构成,下采样层由3层跨步卷积构成,步长为4。判别器分为3个判别尺度,D1是原始音频频段,D2和D3分别是对原始音频进行采样系数为2和4的下采样的音频频段。判别器模块通过输入原始音频作为真音频,输入合成音频作为假音频,进行对抗训练。
本发明声码器使用PQMF滤波器组对音频进行分频带编码,流程如图4所示。滤波器组中的每一个滤波器使用不同的下采样率对信号进行编码,然后分别将子频带信号交付给解码器,在解码过程中将上采样的信号通过还原滤波器还原成语音波形。
对于通道数为K的PQMF滤波器组,形式如公式(18)(19)(20):
gk[n]=hk[N-1-n]# (19)
其中k=0,…,K-1,N为h[n]的长度,φk为相位,r为常数,原型滤波器表示如公式(21):
其中ωc为截止频率,N为阶数,将原型滤波器通过凯撒窗进行转化得到,如公式(22):
h(n)=fi(n)w(n)# (22)
其中凯撒窗形式如公式(23):
其中I0()为零阶修正贝塞尔函数,形式如公式(24):
其中β为常数,该函数的作用是控制主要频段宽窄。
通过人为设定截止频率、阶数和凯撒窗的参数即可确定。将音频通过该滤波器组进行子频带编码与解码,然后还原成语音,可以加快语音的合成速度。
本发明声码器使用多尺度短时傅里叶变换损失,多尺度短时傅里叶变换损失分为Lsc和Lmag,前者考虑频谱的收敛性,后者考虑对数谱能量之间的关系。表达式如公式(25)(26):
其中‖·‖F和‖·‖1表示F范数和L1范数,x为真实音频,为预测音频,|STFT(·)|表示短时傅里叶变换,N为幅度谱的元素个数。使用不同STFT参数可以得到不同分辨率的STFT loss。使用M个不同分辨率的STFT loss将单个损失加权平均得到公式(27):
本发明声码器在前200k步对生成器进行预训练,每100k步将所有模型的学习率减半,直到学习率降到0.000001。预训练可以避免判别器的训练效果比生成器好而造成的梯度无法更新的问题,而且可以提高模型训练收敛速度。生成器和判别器交替进行训练。首先初始化生成器和判别器的参数,对模型的权重矩阵进行谱归一化,预训练生成器,直到生成器收敛;然后迭代训练生成器和判别器,直到整个生成对抗网络模型收敛。判别器只在训练过程中使用,在波形生成阶段会被忽略。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:语音合成方法和装置、电子设备及存储介质