语音合成方法、装置、电子设备及存储介质与流程

文档序号:19934243发布日期:2020-02-14 22:22阅读:457来源:国知局
语音合成方法、装置、电子设备及存储介质与流程

本发明涉及语音合成领域,尤其涉及一种语音合成方法、装置、电子设备及存储介质。



背景技术:

语音合成是中文信息处理领域的一项前沿技术,主要是将给定的文本输入按字或词分解为特征向量,再将特征向量转化为音频特征,最终用声码器将音频特征还原为相应的音频文件输出。随着wavenet,lpcnet等技术的提出,出现了一批采用神经网络作为声码器的语音合成方法,但在合成性能或合成效果上还很难达到商用,目前griffin-lim算法作为声码器广泛应用于语音合成方法中。griffin-lim算法作为一种利用频谱预测相位的迭代算法,以频谱幅值作为输入,随机初始化的相位通过一定次数的迭代,得到连接音频帧的合适的相位,恢复出时域音频信号。

现有的语音合成方法采用神经网络模型将文本转化为线性频谱,然后输入griffin-lim声码器通过反复迭代以产生质量较好的音频信号。为了改善整体的性能,往往从工程角度优化griffin-lim声码器进而提高单次迭代的效率,却忽视了基于神经网络模型为griffin-lim声码器提供一个较好的初始相位,以加快其收敛速度,从根本上解决griffin-lim声码器多次迭代带来的负担。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种语音合成方法,其通过将频谱和相位的目标值和测试值加入整体损失,使得模型的频谱和相位往一致的方向训练,基于训练完成的模型得到线性频谱和初始相位,并将线性频谱和初始相位输入griffin-lim声码器进行训练,得到连接各音频帧的连合相位,恢复并输出相应的音频信号。

本发明的目的之一采用以下技术方案实现:

获取文本数据,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量;

将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,根据所述整体损失训练所述神经网络模型,通过训练完成的所述神经网络模型得到线性频谱和初始相位;

将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号。

进一步地,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量,包括:

获取与所述文本数据匹配的音频数据;

将所述音频数据进行短时傅里叶变换得到所述线性频谱目标值和所述相位目标值;

将所述文本数据进行分词,得到所述文本数据的分词结果,对所述分词结果进行独热编码得到文本向量。

进一步地,所述神经网络模型为tacotron模型,将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,包括:

通过所述tacotron模型对所述文本向量进行计算,得到维度相同的线性频谱预测值和相位预测值。

进一步地,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,包括:

将所述线性频谱目标值和所述线性频谱预测值输入线性频谱损失函数进行计算,得到线性频谱损失;

将所述相位目标值和所述相位预测值输入相位损失函数进行计算,得到相位损失;

将所述相位损失和所述线性频谱损失按照预设的权重相加,得到整体损失。

进一步地,根据所述整体损失训练所述神经网络模型,包括:

当所述整体损失大于或等于预设阈值时,基于所述整体损失训练所述神经网络模型,并得到当前训练模型输出的线性频谱预测值和相位预测值,直到所述整体损失小于所述预设阈值时,得到训练完成的所述神经网络模型。

进一步地,所述线性频谱和所述初始相位分别通过通道数量相同的频谱通道和相位通道输入至所述griffin-lim声码器。

进一步地,将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号,包括:

将所述线性频谱和所述初始相位进行逆短时傅里叶变换得到音频信号,通过griffin-lim声码器的迭代训练,得到连接各音频帧的连合相位,根据所述连合相位恢复并输出所述文本数据对应的音频信号。

本发明的目的之二在于提供一种语音合成装置,其通过将频谱和相位的目标值和测试值加入整体损失,使得模型的频谱和相位往一致的方向训练,基于训练完成的模型得到线性频谱和初始相位,并将线性频谱和初始相位输入griffin-lim声码器进行训练,得到连接各音频帧的连合相位,恢复并输出相应的音频信号。

本发明的目的之二采用以下技术方案实现:

一种语音合成装置,其包括:

数据处理模块,用于获取文本数据,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量;

模型训练模块,用于将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,根据所述整体损失训练所述神经网络模型,通过训练完成的所述神经网络模型得到线性频谱和初始相位;

音频输出模块,用于将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号。

本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时本发明目的之一的语音合成方法。

本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明目的之一的语音合成方法。

相比现有技术,本发明的有益效果在于:

本发明根据文本数据得到频谱目标值和相位目标值,将文本数据转化为文本向量,把文本向量输入神经网络模型预测频谱和相位,进而计算得到整体损失,约束模型的频谱和相位往一致的方向进行训练,基于训练完成的神经网络模型得到线性频谱和初始相位,并将线性频谱和初始相位输入griffin-lim声码器进行训练,能够减少声码器迭代次数,加快声码器收敛速度,进而得到连接各音频帧的连合相位,根据连合相位恢复并输出文本数据对应的音频信号;这种语音合成方法能够在不降低音频质量的情况下,加速音频实时合成过程,适用于利用griffin-lim算法作为声码器的语音合成装置。

附图说明

图1为本发明实施例一的语音合成方法流程图;

图2为本发明实施例一的griffin-lim声码器的训练流程图;

图3为本发明实施例五的语音合成装置的结构框图;

图4为本发明实施例六的电子设备的结构框图。

具体实施方式

以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。

实施例一

实施例一提供了一种语音合成方法,旨在根据文本数据得到频谱目标值和相位目标值,并将文本数据转化为文本向量,通过神经网络模型预测频谱和相位,根据频谱和相位的目标值和预测值计算整体损失,以约束神经网络模型训练过程中模型参数的更新方向,通过训练完成的模型得到线性频谱和初始相位,将线性频谱和初始相位输入griffin-lim声码器训练,获得相应的音频信号。这种语音合成方法能够在不降低音频质量的情况下,减少声码器迭代次数,加快声码器收敛速度,从而在整体上加速音频实时合成过程,适用于利用griffin-lim算法作为声码器的语音合成装置。

请参照图1所示,一种语音合成方法,包括以下步骤:

s110、获取文本数据,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量。

文本数据可以是从自行创建的文本库中获取的文本数据,也可以是从新闻播报、天气预报、电子书朗读等产品文本库中获取的文本数据,在这里不做限定。

为了获得时频域信息用作神经网络模型的目标值,以便进一步训练模型,获取与文本数据匹配的音频数据,利用短时傅里叶变换、小波变换或wigner分布等时频域分析方法对音频数据进行分析处理,这里不做限定,进而获得与文本数据对应的线性频谱和相位,将该线性频谱和相位作为神经网络模型训练的线性频谱目标值和相位目标值。在本实施例中,音频数据通过短时傅里叶变换得到线性频谱和相位。

因为文本数据是文本长短不一的数据,不能直接输入模型进行训练,因此需要把该文本数据转化为对应的文本向量,将文本向量作为模型训练的输入。文本数据可以按字或词进行分割,这里不做限定,然后基于分割后的字或词进一步构造相应的文本向量。在本实施例中,文本数据按字分割,基于文本库中的字频构造字典,通过字典下标为每一个字分配id,通过遍历字典为分割后的字匹配对应id的字向量,进而得到文本数据对应的文本向量。

s120、将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,根据所述整体损失训练所述神经网络模型,通过训练完成的所述神经网络模型得到线性频谱和初始相位。

将文本向量输入神经网络模型得到维度相同的线性频谱预测值和相位预测值。将相位目标值和相位预测值输入相位损失函数进行计算,得到相位损失;将线性频谱目标值和线性频谱预测值输入线性频谱损失函数进行计算,得到线性频谱损失。将相位损失和线性频谱损失按照预设的权重相加,得到神经网络模型的整体损失。优选地,相位损失和线性频谱损失在整体损失的权重占比相同。

当整体损失大于或等于预设阈值时,神经网络模型进行训练,使得相位损失和线性频谱损失共同约束模型的训练方向,模型参数同时往预测频谱和相位的方向更新。基于整体损失和反向传播算法计算梯度,根据计算得到的梯度和梯度下降法更新模型参数,调整当前训练的模型输出的线性频谱预测值和相位预测值,直到整体损失小于该预设阈值时,获得训练好的模型,以及该模型输出的线性频谱和相位。

训练好的模型输出的相位记为,为了得到取值区间为[-π,π]的初始相位,本实施例对相位通过双曲正切函数运算得到初始相位,其计算方法如下:

其中,π为常数3.14,为取值区间为[-π,π]的初始相位。

优选地,基于整体损失和反向传播算法来计算梯度,采用adam优化器进行模型训练,训练过程中,训练的批大小为32,训练学习率从0.001开始50万步后降低到0.0005,100万步后降到0.0003,200万步后降到0.0001,整体损失通过迭代后小于预设阈值,神经网络模型训练完成,得到线性频谱和初始相位。

优选地,为了承载初始相位信息,从而增加一倍数量的通道。线性频谱和初始相位分别通过通道数量相同的频谱通道和相位通道输入griffin-lim声码器。频谱通道和相位通道的通道数量与线性频谱和初始相位的维度相同。

s130、将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号。

请参照图2,将线性频谱的频谱幅值和初始相位输入griffin-lim声码器,频谱幅值和初始相位经过逆短时傅里叶变换得到时域信号,griffin-lim声码器开始迭代训练,时域信号通过短时傅里叶变换运算,得到新的相位并利用新相位替换初始相位,通过反复的迭代找到连接各音频帧的连合相位,进而恢复出文本数据对应的时域音频信号并将其输出。

因为griffin-lim声码器在训练开始的时候就获得一个文本数据对应的较好的初始相位,使得声码器在不降低音频质量的情况下,能够通过更少次数的迭代,快速获得连接各音频帧的连合相位,从而加快了griffin-lim声码器训练的收敛速度,进而在整体上加速音频实时合成过程,降低合成实时率。

实施例二

实施例二是在实施例一基础上进行的改进,根据文本数据得到线性频谱目标值和相位目标值,用于神经网络模型训练的损失函数;将文本数据转化为文本向量,用于神经网络模型的输入。

获取与文本数据匹配的音频数据,将音频数据进行短时傅里叶变换得到线性频谱目标值和相位目标值。通过短时傅里叶变换对长时的音频数据进行分帧、加窗,对每一帧进行傅里叶变换,并把每一帧的变换结果沿另一个维度堆叠起来,得到音频数据对应的线性频谱和相位,将该线性频谱和相位作为线性频谱目标值和相位目标值,用于神经网络模型训练的损失函数的目标值参数。

优选地,对音频数据采用汉宁窗,每一帧帧长50毫秒,帧移12.5毫米,进行2048点傅立叶变换获得线性频谱并计算相位。

为了获得文本数据对应的文本向量输入模型训练,将文本数据进行分词,得到文本数据的分词结果,对分词结果进行独热编码得到文本向量。

对文本数据进行语句切分,得到对应的若干语句,例如根据标点符号将文本数据切分为若干完整的语句;对若干语句通过不限于词义分词法或者字符串匹配的分词方法进行分词处理,得到分词结果。词义分词法利用句法信息和语义信息来处理歧义现象来分词。字符串匹配的分词方法包括但不限于正向最大匹配法、反向最大匹配法、最短路径分词法和双向最大匹配法中的一种,本实施例中选用正向最大匹配方法对文本数据进行分词。

通过独热编码对分词结果进行处理得到文本向量,使得文本向量的每一维度表征的特征都是连续的特征,用以输入神经网络模型进行模型训练。优选地,对文本向量进行归一化处理,便于后续模型的训练。优选地,当文本数量很多时,采用独热编码和主成分分析方法对分词结果进行处理,得到维度减少的文本向量。

实施例三

实施例三是在实施例一或/和实施例二的基础上进行的改进,语音合成方法的神经网络模型采用tacotron模型,将文本向量输入tacotron模型得到线性频谱预测值和相位预测值,用于计算约束tacotron模型训练的损失函数,使得模型的频谱和相位往一致的方向训练。

tacotron模型包括依次连接的编码器、解码器和后处理网络,后处理网络包括cbhg单元和全连接层。文本向量依次经过编码器和解码器计算得到梅尔谱,该梅尔谱通过cbhg单元计算得到梅尔谱特征,梅尔谱特征通过全连接层计算,得到维度相同的线性频谱预测值和相位预测值。

文本向量经过编码器计算得到音频特征,将该音频特征输入解码器。解码器采用基于内容的注意力解码器,该解码器包括解码预处理单元、注意力rnn单元和解码器rnn单元。注意力rnn单元为一层包含256个gru的rnn组,解码器rnn单元为两层带有纵向残差连接的gru组,每层gru组均包括256个gru。

注意力rnn单元将解码预处理单元的输出和注意力rnn单元的输出拼接在一起,作为解码器rnn单元的输入。解码器rnn单元进行训练,每一步解码器rnn单元同时预测r个不重叠的输出帧,解码器rnn单元的第一步的输入是一个“全零帧”,解码器rnn单元第t步的预测结果的最后一帧作为解码器rnn单元第t+1步的输入,解码器rnn单元输出带宽为80的梅尔谱。

cbhg单元包括一个一维卷积滤波器组、一个高速公路网络和一个双向门控循环单元。优选地,一维卷积滤波器组包括8组一维卷积核,核的宽度为3,采用线性整流函数作为激活函数,卷积运算结果为128维;池化步长为1,带宽为2;高速公路网络为4层全连接层,采用线性整流函数作为激活函数,输出特征的维度为256维;双向门控循环单元包括128个gru。

cbhg单元对梅尔谱用k组一维卷积核进行卷积,第k组包括个宽度是k(k=1,2,3,…,k)的卷积核,宽度不同的卷积核提取长度不同的特征上下文信息,将经过不同宽度的k组卷积运算的结果堆叠在一起并沿时间做最大化池化。优选地,对池化结果做批标准化处理,从而避免模型训练中梯度弥散和梯度爆炸的问题。将批标准化结果输入多层高速公路网络提取高层特征,进而采用双向门控循环单元提取梅尔谱特征。

将梅尔谱特征输入全连接层在深度维上连接,预测获得维度相同的线性频谱和相位,将该线性频谱和相位作为预测值,用于约束模型训练的损失函数的预测值参数。

实施例四

实施例四是在实施例三的基础上进行的改进,根据线性频谱目标值、线性频谱预测值、相位目标值和相位预测值计算整体损失,该整体损失用于训练神经网络模型,使得模型的频谱和相位能够往一致的方向进行训练。

将相位目标值和相位预测值输入相位损失函数进行计算,得到相位损失。将线性频谱目标值和线性频谱预测值输入线性频谱损失函数进行计算,得到线性频谱损失。

相位损失函数和线性频谱损失函数使用同一种损失函数,损失函数包括但不限于l1损失函数、l2损失函数、交叉熵损失函数中的一种,本实施例中使用l1损失函数。

将相位损失和线性频谱损失按照预设的权重相加,得到神经网络模型的整体损失。优选地,相位损失和线性频谱损失在整体损失的权重占比相同。

优选地,将线性频谱目标值通过梅尔滤波器组处理,得到梅尔谱目标值,文本向量依次经过tacotron模型中的编码器和解码器计算,得到梅尔谱预测值,将梅尔谱目标值和梅尔谱预测值输入梅尔谱损失函数进行计算,得到梅尔谱损失。将梅尔谱损失、相位损失和线性频谱损失相加,得到模型的整体损失。优选地,梅尔谱损失、相位损失和线性频谱损失在整体损失的权重占比相同。

神经网络模型基于整体损失和梯度下降法进行训练,使得梅尔谱损失、相位损失和线性频谱损失共同约束模型的训练方向,通过训练完成的神经网络模型得到的线性频谱和初始相位。利用线性频谱和初始相位训练griffin-lim声码器,通过训练完成的griffin-lim声码器得到连接各音频帧的连合相位,恢复并输出文本数据对应的音频信号。

实施例五

实施例五公开了一种对应上述实施例的一种语音合成装置,为上述实施例的虚拟装置结构,请参照图3所示,包括:

数据处理模块,用于获取文本数据,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量;

模型训练模块,用于将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,根据所述整体损失训练所述神经网络模型,通过训练完成的所述神经网络模型得到线性频谱和初始相位;

音频输出模块,用于将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号。

优选地,增加一倍数量的通道,用于承载初始相位信息。模型训练模块连接通道数量相同的频谱通道和相位通道,频谱通道和相位通道连接音频输出模块。线性频谱和初始相位分别通过频谱通道和相位通道输入至griffin-lim声码器。

实施例六

图4为本发明实施例六提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;计算机设备中处理器310的数量可以是一个或多个,图4中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的语音合成方法对应的程序指令/模块(例如,语音合成方法装置中的数据处理模块210、模型训练模块220和音频输出模块230)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述实施例一至实施例四的语音合成方法。

存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可用于接收文本数据、预设阈值等。输出装置340可包括显示屏等显示设备。

实施例七

本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行语音合成方法,该方法包括:

获取文本数据,根据所述文本数据得到线性频谱目标值和相位目标值,将所述文本数据转化为文本向量;

将所述文本向量输入神经网络模型得到线性频谱预测值和相位预测值,根据所述线性频谱目标值、所述线性频谱预测值、所述相位目标值和所述相位预测值计算整体损失,根据所述整体损失训练所述神经网络模型,通过训练完成的所述神经网络模型得到线性频谱和初始相位;

将所述线性频谱和所述初始相位输入至griffin-lim声码器进行迭代训练,得到所述文本数据对应的音频信号。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于语音合成方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述基于语音合成方法装置实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

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