语音合成方法、系统、终端设备和可读存储介质与流程

文档序号:18890182发布日期:2019-10-15 21:40阅读:188来源:国知局
语音合成方法、系统、终端设备和可读存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种语音语义领域,具体涉及一种语音合成方法、系统、终端设备和可读存储介质。



背景技术:

随着科技的发展,机器已经可以通过语音合成技术进行说话。所谓的语音合成技术,也被称为文语转换技术(texttospeech,tts),其目标是让机器通过识别和理解,把文本信息变成人造语音输出,是现代人工智能发展的重要分支。语音合成能够在质量检测、机器问答、残障辅助等领域发挥极大作用,方便人们的生活。

然而,现有的机器所能合成语音往往具有固定的模式,生成的语音在韵律方面较为生硬,与真人具有明显的差异,因此在某些对合成语音的拟人度要求比较高的场景下(如:智能外呼),终端用户往往不能接受如此生硬的韵律。所以,目前急需一种基于深度学习的语音合成方法。



技术实现要素:

为了解决上述至少一个技术问题,本发明提出了一种语音合成方法、系统、终端设备和可读存储介质,其能够将真人录音中的韵律转移到合成的语音中,实现对合成语音保真程度的提升。

为了实现上述目的,本发明第一方面提供了一种语音合成方法,包括:

获取文本数据,并根据所述文本数据生成文本向量;

获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量;

结合所述文本向量和所述韵律向量生成梅尔语谱图;

根据所述梅尔语谱图生成目标语音。

本方案中,获取文本数据,并将所述文本数据生成文本向量,包括:

获取汉字数据,并对所述汉字数据进行分词处理;

将分词处理后的汉字数据转译为带有声调的汉语拼音;

将转译得到的带有声调的汉语拼音转换为一维向量数据;

按照时间序列将一维向量数据转换为二维向量数据。

本方案中,获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量,包括:

对获取的真人录音进行短时傅里叶变换以得到对应的声谱图;

对所述声谱图进行梅尔滤波以得到梅尔语谱图;

对所述梅尔语谱图进行时序上的压缩及特征表示的优化;

对所述梅尔语谱图进行循环神经网络处理,并根据时序输出;

获取每一时刻的输出,并将所述循环神经网络的全部输出转换为二维的韵律向量。

本方案中,结合所述文本向量和所述韵律向量生成梅尔语谱图,包括:

将所述文本向量将作为局部条件,将所述韵律向量作为全局条件,通过所述序列到序列模型映射后,生成所述梅尔语谱图。

本方案中,所述声调包括普通话的第一声、第二声、第三声、第四声和轻声,用阿拉伯数字1、2、3、4、5分别表示普通话的第一声、第二声、第三声、第四声和轻声的声调代码。

本发明第二方面还提供了一种语音合成系统,包括:

文本嵌入模块,用于获取文本数据,并根据所述文本数据生成文本向量;

韵律提取模块,用于获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量;

梅尔语谱生成模块,用于结合所述文本向量和所述韵律向量生成梅尔语谱图;

语音生成模块,用于根据所述梅尔语谱图生成目标语音。

本方案中,所述文本嵌入模块包括:

分词单元,用于获取汉字数据,并对所述汉字数据进行分词处理;

语言模型单元,用于将分词处理后的汉字数据转译为带有声调的汉语拼音;

独热编码单元,用于将转译得到的带有声调的汉语拼音转换为一维向量数据;

文本向量生成单元,用于按照时间序列将一维向量数据转换为二维向量数据;

其中,所述声调包括普通话的第一声、第二声、第三声、第四声和轻声,用阿拉伯数字1、2、3、4、5分别表示普通话的第一声、第二声、第三声、第四声和轻声的声调代码。

本方案中,所述韵律提取模块包括:

短时傅里叶变换单元,用于对获取的真人录音进行短时傅里叶变换以得到对应的声谱图;

梅尔滤波单元,用于对所述声谱图进行梅尔滤波以得到梅尔语谱图;

卷积神经网络单元,用于对所述梅尔语谱图进行时序上的压缩及特征表示的优化;

gru单元,用于对所述梅尔语谱图进行循环神经网络处理,并根据时序输出;

韵律向量生成单元,用于获取每一时刻的输出,并将所述循环神经网络的全部输出转换为二维的韵律向量。

本发明第三方面还提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述语音合成方法的步骤。

本发明第四方面还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括计算机程序,所述计算机程序被处理器执行时,实现如上述语音合成方法的步骤。

本发明通过获取文本数据和真人录音,并将所述文本数据生成文本向量,再对真人录音所具有的韵律进行建模以生成韵律向量;然后结合所述文本向量和所述韵律向量生成梅尔语谱图;再根据所述梅尔语谱图生成所述目标语音,从而实现将真人录音中的韵律转移到合成的语音中。同时,本发明还通过真人录音中的韵律进行建模,并通过基于全局条件概率生成的方法,使合成的语音与输入的真人录音具有更为相似的韵律,进一步使合成语音具有高保真和高自然度的效果。

本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1示出了本发明一种语音合成方法的流程图。

图2示出了本发明一个实施例的文本向量生成方法的流程图。

图3示出了本发明一个实施例的韵律向量生成方法的流程图。

图4示出了本发明一种语音合成系统的框图。

图5示出了本发明一个实施例的文本嵌入模块的框图。

图6示出了本发明一个实施例的韵律提取模块的框图。

图7示出了本发明一种语音合成系统的运行示意图。

图8示出了本发明一种文本嵌入模块的运行示意图。

图9示出了本发明一种韵律提取模块的运行示意图。

图10示出了本发明一种终端设备的示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

语音合成的主流技术方案有三种:参数合成,波形拼接以及端到端,相较而言,端到端的技术方案能够使生成的语音具有极为卓越的质量。本发明提出的语音合成方法、系统和终端设备,也是基于端到端的技术方案。

图1为本发明一种语音合成方法的流程图。

如图1所示,本发明的第一方面提供了一种语音合成方法,包括:

s102,获取文本数据,并根据所述文本数据生成文本向量;

s104,获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量;

s106,结合所述文本向量和所述韵律向量生成梅尔语谱图;

s108,根据所述梅尔语谱图生成目标语音。

需要说明的是,上述步骤s106,结合所述文本向量和所述韵律向量生成梅尔语谱图,具体包括:

将所述文本向量将作为局部条件,将所述韵律向量作为全局条件,通过所述序列到序列模型映射后,生成所述梅尔语谱图(又称梅尔频谱图)。

进一步的,所述文本向量和所述韵律向量将会被输入一个序列到序列模型(seq2seq)。所述序列到序列模型是一种基于条件概率生成的神经网络模型,输入的文本向量将作为及局部条件,而输入的韵律向量将作为全局条件。最终通过该预训练的序列到序列模型映射后,即可得到梅尔语谱图。

需要说明的是,在获取真人录音之后,还包括对所述真人录音进行预增强处理;预增强是以帧为单位进行,目的在于加强高频,增加语音的高频分辨率。因为高频端大约在800hz以上按6db/oct(倍频程)衰减,频率越高相应的成分越小,为此要在对真人录音进行分析之前对其高频部分加以提升,也可以改善高频信噪比。

图2示出了本发明一个实施例的文本向量生成方法的流程图。

如图2所示,获取文本数据,并将所述文本数据生成文本向量,具体包括:

s202,获取汉字数据,并对所述汉字数据进行分词处理;

s204,将分词处理后的汉字数据转译为带有声调的汉语拼音;

s206,将转译得到的带有声调的汉语拼音转换为一维向量数据;

s208,按照时间序列将一维向量数据转换为二维向量数据。

需要说明的是,所述声调包括普通话的第一声、第二声、第三声、第四声和轻声,用阿拉伯数字1、2、3、4、5分别表示普通话的第一声、第二声、第三声、第四声和轻声的声调代码,但不限于此,在其它实施例中,也可以用其他数字表示普通话的四声调和轻声。

图3示出了本发明一个实施例的韵律向量生成方法的流程图。

如图3所示,获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量,具体包括:

s302,对获取的真人录音进行短时傅里叶变换以得到对应的声谱图;

s304,对所述声谱图进行梅尔滤波以得到梅尔语谱图;

s306,对所述梅尔语谱图进行时序上的压缩及特征表示的优化;

s308,对所述梅尔语谱图进行循环神经网络处理,并根据时序输出;

s310,获取每一时刻的输出,并将所述循环神经网络的全部输出转换为二维的韵律向量。

需要说明的是,短时傅里叶变换(shorttimefouriertransform,stft)是和傅里叶变换相关的一种数学变换,用以确定时变信号其局部区域正弦波的频率与相位。具体的,短时傅里叶变换就是将原来的傅里叶变换在时域截短为多段分别进行傅里叶变换,每一段记为时刻t,对应傅里叶变换求出频域特性,就可以粗略估计出时刻t时的频域特性(即同时指导了时域和频域的对应关系)。用于信号截短的工具叫做窗函数(宽度相当于时间长度),窗越小,时域特性越明显,但是此时由于点数过少导致fft降低了精确度,导致频域特性不明显。

可以理解,在其他实施例中,也可以采用小波变换或wigner分布以得到声谱图,但不限于此。

具体的,所述真人录音为一维信号;所述声谱图为二维信号。

根据本发明的实施例,在对获取的真人录音进行短时傅里叶变换以得到对应的声谱图之前,还需要对获取的真人录音添加随机噪声。在进行数据增强,通常会手动合成一些音频,然而某些人工合成(使用软件)的音频有可能会造成一些数字错误,如underflow、overflow等。本发明通过在音频中添加随机噪声可以有效避免出现上述数字错误的问题。

图4示出了本发明一种语音合成系统的框图。

如图4,本发明第二方面还提供一种语音合成系统4,所述语音合成系统4包括:

文本嵌入模块41,用于获取文本数据,并根据所述文本数据生成文本向量;

韵律提取模块42,用于获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量;

梅尔语谱生成模块43,用于结合所述文本向量和所述韵律向量生成梅尔语谱图;

语音生成模块44,用于根据所述梅尔语谱图生成目标语音。

本发明的实施例中,梅尔语谱生成模块43为一种序列到序列模型(seq2seq),所述序列到序列模型是一种基于条件概率生成的神经网络模型。具体的,所述文本向量和所述韵律向量将会被输入一个序列到序列模型,输入的文本向量将作为及局部条件,而输入的韵律向量将作为全局条件。最终通过该预训练的序列到序列模型映射后,即可得到梅尔语谱图。

需要说明的是,梅尔语谱生成模块43中所使用的序列到序列模型以及所述韵律提取模块使用了同一份不公开的语音数据库进行了联合训练。该语音数据库包含了一位男性/女性说话人(即源说话人)在安静环境下,用专用录音设备录制的总时长约30个小时的语音文件,以及每条语音所对应的文本文件。

需要说明的是,在获取真人录音之后,还包括对所述真人录音进行预增强处理;预增强是以帧为单位进行,目的在于加强高频,增加语音的高频分辨率。因为高频端大约在800hz以上按6db/oct(倍频程)衰减,频率越高相应的成分越小,为此要在对真人录音进行分析之前对其高频部分加以提升,也可以改善高频信噪比。

图5示出了本发明一个实施例的文本嵌入模块的框图。

如图5所示,所述文本嵌入模块41包括:

分词单元411,用于获取汉字数据,并对所述汉字数据进行分词处理;

语言模型单元412,用于将分词处理后的汉字数据转译为带有声调的汉语拼音;

独热编码单元413,用于将转译得到的带有声调的汉语拼音转换为一维向量数据;

文本向量生成单元414,用于按照时间序列将一维向量数据转换为二维向量数据;

其中,所述声调包括普通话的第一声、第二声、第三声、第四声和轻声,用阿拉伯数字1、2、3、4、5分别表示普通话的第一声、第二声、第三声、第四声和轻声的声调代码。

本发明的实施例中,独热编码单元执行独热编码(one-hot-coding)的方法为:使用n位状态寄存器来对n个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。例如对六个状态进行编码:

自然顺序码为000,001,010,011,100,101;

独热编码则是000001,000010,000100,001000,010000,100000。

图6示出了本发明一个实施例的韵律提取模块的框图。

如图6所示,所述韵律提取模块42包括:

短时傅里叶变换单元421,用于对获取的真人录音进行短时傅里叶变换以得到对应的声谱图;

梅尔滤波单元422,用于对所述声谱图进行梅尔滤波以得到梅尔语谱图;

卷积神经网络单元423,用于对所述梅尔语谱图进行时序上的压缩及特征表示的优化;

gru单元424,用于对所述梅尔语谱图进行循环神经网络处理,并根据时序输出;

韵律向量生成单元425,用于获取每一时刻的输出,并将所述循环神经网络的全部输出转换为二维的韵律向量。

需要说明的是,短时傅里叶变换(shorttimefouriertransform,stft)是和傅里叶变换相关的一种数学变换,用以确定时变信号其局部区域正弦波的频率与相位。具体的,短时傅里叶变换就是将原来的傅里叶变换在时域截短为多段分别进行傅里叶变换,每一段记为时刻t,对应傅里叶变换求出频域特性,就可以粗略估计出时刻t时的频域特性(即同时指导了时域和频域的对应关系)。用于信号截短的工具叫做窗函数(宽度相当于时间长度),窗越小,时域特性越明显,但是此时由于点数过少导致fft降低了精确度,导致频域特性不明显。

可以理解,在其他实施例中,短时傅里叶变换单元421也可以由小波变换单元或wigner分布单元替代,但不限于此。

具体的,所述真人录音为一维信号;所述声谱图为二维信号。

根据本发明的实施例,在对获取的真人录音进行短时傅里叶变换以得到对应的声谱图之前,还需要对获取的真人录音添加随机噪声。在进行数据增强,通常会手动合成一些音频,然而某些人工合成(使用软件)的音频有可能会造成一些数字错误,如underflow、overflow等。本发明通过在音频中添加随机噪声可以有效避免出现上述数字错误的问题。

需要说明的是,卷积神经网络(convolutionalneuralnetworks,cnn)为一类包含卷积计算且具有深度结构的前馈神经网络,其卷积神经网络包括输入层、隐含层和输出层。

卷积神经网络的输入层可以处理多维数据,其中,一维卷积神经网络的输入层接收一维或二维数组,一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。在本发明的实施例中,所述卷积神经网络单元采用二维卷积神经网络,以对真人录音梅尔语谱图进行六层二维卷积操作。

卷积神经网络的隐含层包含卷积层、池化层和全连接层,卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数和一个偏差量,类似于一个前馈神经网络的神经元;在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。全连接层搭建在卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号。

循环神经网络(recurrentneuralnetwork,rnn)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接形成闭合回路的递归神经网络。循环神经网络具有记忆性、参数共享并且图灵完备,因此能以很高的效率对序列的非线性特征进行学习。

图7示出了本发明一种语音合成系统的运行示意图。

如图7所示,所述语音合成系统的运行流程为:

向语音合成系统输入需要合成的文本内容(例:您好),文本嵌入模块将所述文本内容嵌入成为文本向量。

向语音合成系统输入真人录音,韵律提取模块将对真人录音所具有的韵律进行建模,形成韵律向量。

将生成的文本向量以及韵律向量输入经过训练的梅尔语谱生成模块生成梅尔语谱图。

使用经过训练的语音生成模块将梅尔语谱图合成为高保真的语音文件,优选的,所述语音生成模块为语音声码器。

如图8所示,在文本嵌入模块中,输入的汉字(您好)首先会进行分词,然后一个经过训练的语言模型会将汉字转译为带有声调的汉语拼音;通过独热编码的方式,将转译得到的拼音字母和声调代码(数字1~5)转换为一维向量数据,再按照时间序列将其转换为一个二维向量数据。

所述语音生成模块获得了梅尔语谱图后,将梅尔语谱图作为条件输入,生成目标说话人的语音,在本实施例中,所述语音生成模块为wavenet声码器,其由一个非公开的语音数据库训练而成,该数据库与训练梅尔语谱生成模块所用的语音数据库为同一数据库。

如图9所示,所述韵律提取模块通过一个循环神经网络实现对真人录音与韵律向量的转换,具体步骤如下:

首先对输入的真人录音进行短时傅里叶变换,再使用梅尔滤波器获得其梅尔语谱图。梅尔语谱图将会被输入一个六层预训练好的的卷积神经网络,目的是进行时序上的压缩以及更好的对梅尔语谱中的特征进行表示。处理过的梅尔语谱图会按照时序输入进入基于gru单元的循环神经网络中进行处理,该循环神经网络将根据时序进行输出。在得到每一个时刻的输出后,一个全连接网络会将循环神经网络的输出转化一个二维的向量,此向量就为韵律向量。

图10示出了本发明一种终端设备的示意图。

如图10所示,本发明第三方面还提供一种终端设备7,终端设备7包括:处理器71、存储器72以及存储在所述存储器72中并可在所述处理器71上运行的计算机程序73,例如程序。所述处理器71执行所述计算机程序73时实现上述各个语音合成方法实施例中的步骤。

本发明的实施例中,所述计算机程序73可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器72中,并由所述处理器71执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序73在所述终端设备7中的执行过程。例如,所述计算机程序73可以被分割成文本嵌入模块、韵律提取模块、梅尔语谱生成模块以及语音生成模块,各模块具体功能如下:

文本嵌入模块,用于获取文本数据,并将所述文本数据生成文本向量;

韵律提取模块,用于获取真人录音,并对真人录音所具有的韵律进行建模以生成韵律向量;

梅尔语谱生成模块,用于结合所述文本向量和所述韵律向量生成梅尔语谱图;

语音生成模块,用于根据所述梅尔语谱图生成所述目标语音。

所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端管理服务器等计算设备。所述终端设备7可包括,但不仅限于,处理器71、存储器72。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器71可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器72可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器72也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器72还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器72用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器72还可以用于暂时地存储已经输出或者将要输出的数据。

本发明第四方面还提供一种计算机可读存储介质,所述计算机可读存储介质中包括计算机程序,所述计算机程序被处理器执行时,实现如上述的语音合成方法的步骤。

本发明通过获取文本数据和真人录音,并将所述文本数据生成文本向量,再对真人录音所具有的韵律进行建模以生成韵律向量;然后结合所述文本向量和所述韵律向量生成梅尔语谱图;再根据所述梅尔语谱图生成所述目标语音,从而实现将真人录音中的韵律转移到合成的语音中。同时,本发明还通过真人录音中的韵律进行建模,并通过基于全局条件概率生成的方法,使合成的语音与输入的真人录音具有更为相似的韵律,进一步使合成语音具有高保真和高自然度的效果。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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