语音合成方法和装置、电子设备及存储介质
技术领域
本申请涉及语音合成
技术领域
,具体而言,涉及一种语音合成方法和装置、电子设备及存储介质。背景技术
人工合成人类语音被称为语音合成,这种基于机器学习的技术适用于文本转换语音(text-to-speech)、音乐生成、语音生成、语音支持设备、导航系统以及为视障人士提供无障碍服务等应用场景。但是,经发明人研究发现,在现有技术中的语音合成方法需要的参数量较多,从而存在着语音合成的效率低的问题。
发明内容
有鉴于此,本申请的目的在于提供一种语音合成方法和装置、电子设备及存储介质,以改善现有技术中存在的问题。
为实现上述目的,本申请实施例采用如下技术方案:
第一方面,本发明提供一种语音合成方法,包括:
获取待处理语音数据的对数梅尔能量谱;
将所述待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频,其中,所述预设的语音合成模型根据训练数据的对数梅尔能量谱进行训练得到。
在可选的实施方式中,所述获取待处理语音数据的对数梅尔能量谱的步骤,包括:
获取所述待处理语音数据;
对所述待处理语音数据进行能量谱计算,得到所述待处理语音数据的能量谱;
对所述能量谱进行对数梅尔能量谱计算,得到所述待处理语音数据的对数梅尔能量谱。
在可选的实施方式中,所述对所述待处理语音数据进行能量谱计算,得到所述待处理语音数据的能量谱的步骤,包括:
对所述待处理语音数据进行分帧处理,得到所述待处理语音数据的音频序列;
对所述音频序列进行短时傅立叶变换处理,得到所述待处理语音数据的频谱;
对所述频谱进行频谱能量计算,得到所述待处理语音数据的能量谱。
在可选的实施方式中,所述将所述待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频的步骤,包括:
将所述待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,根据预设的伪逆矩阵计算得到所述待处理语音数据的伪逆能量谱;
对所述伪逆能量谱进行短时傅立叶变换处理,得到所述待处理语音数据的变换音频;
对所述待处理语音数据的对数梅尔能量谱和变换音频进行合成处理,得到所述待处理语音数据的第一合成音频。
在可选的实施方式中,所述语音合成方法还包括训练语音合成模型的步骤,该步骤包括:
获取所述训练数据的对数梅尔能量谱;
对所述训练数据的对数梅尔能量谱进行语音合成处理,得到所述训练数据的第二合成音频;
根据所述训练数据的预设参数和所述第二合成音频对预设模型进行训练,得到语音合成模型。
在可选的实施方式中,所述预设参数包括相关系数,所述根据所述训练数据的预设参数和所述第二合成音频对预设模型进行训练,得到语音合成模型的步骤,包括:
对所述训练数据进行相关系数计算,得到第一相关系数,对所述第二合成音频进行相关系数计算,得到第二相关系数;
根据所述第一相关系数和所述第二相关系数计算得到第一均方误差,根据所述第一均方误差对预设模型进行训练得到语音合成模型。
在可选的实施方式中,所述预设参数包括线性预测编码,所述根据所述训练数据的预设参数和所述第二合成音频对预设模型进行训练,得到语音合成模型的步骤,包括:
对所述训练数据进行线性预测编码计算,得到线性预测编码,根据所述线性预测编码对所述第二合成音频进行重构处理,得到重构音频;
根据所述第二合成音频和重构音频进行计算得到第二均方误差,根据所述第二均方误差对预设模型进行训练得到语音合成模型。
第二方面,本发明提供一种语音合成装置,包括:
数据获取模块,用于获取待处理语音数据的对数梅尔能量谱;
语音合成模块,用于将所述待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频,其中,所述预设的语音合成模型根据训练数据的对数梅尔能量谱进行训练得到。
第三方面,本发明提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施方式任一项所述的语音合成方法。
第四方面,本发明提供一种存储介质,所述存储介质包括计算机程序,所述计算机程序运行时控制所述存储介质所在电子设备执行前述实施方式任一项所述的语音合成方法。
本申请实施例提供的语音合成方法和装置、电子设备及存储介质,通过将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型得到合成音频,实现了通过对数梅尔能量谱就可以得到合成音频,避免了现有技术中语音合成方法需要的参数量较多,所导致的语音合成效率低的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的语音合成系统的结构框图。
图2示出了本申请实施例提供的电子设备的结构框图。
图3为本申请实施例提供的语音合成方法的流程示意图。
图4为本申请实施例提供的语音合成装置的结构框图。
图标:10-语音合成系统;100-电子设备;110-第一存储器;120-第一处理器;130-通信模块;200-采集设备;400-语音合成装置;410-数据获取模块;420-语音合成模块。
具体实施方式
为了改善本申请所提出的上述至少一种技术问题,本申请实施例提供一种语音合成方法和装置、电子设备及存储介质,下面通过可能的实现方式对本申请的技术方案进行说明。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明过程中做出的贡献。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
图1为本申请实施例提供的语音合成系统10的结构框图,其提供了一种语音合成系统10可能的实现方式,参见图1,该语音合成系统10可以包括电子设备100、采集设备200中的一种或多种。
其中,采集设备200将采集的待处理语音数据发送至电子设备100,电子设备100获取待处理语音数据的对数梅尔能量谱,将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频。
可选地,采集设备200的具体类型不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,采集设备200可以和电子设备100为同一设备,直接对采集的语音数据进行语音合成处理。
请参照图2,是本申请实施例提供的一种电子设备100的方框示意图,本实施例中的电子设备100可以为能够进行数据交互、处理的服务器、处理设备、处理平台等。电子设备100包括第一存储器110、第一处理器120及通信模块130。第一存储器110、第一处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,第一存储器110用于存储程序或者数据。第一存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
第一处理器120用于读/写第一存储器110中存储的数据或程序,并执行相应地功能。通信模块130用于通过网络建立电子设备100与其它通信终端之间的通信连接,并用于通过网络收发数据。
应当理解的是,图2所示的结构仅为电子设备100的结构示意图,电子设备100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
图3示出了本申请实施例所提供的语音合成方法的流程图之一,该方法可应用于图2所示的电子设备100,由图2中的电子设备100执行。应当理解,在其他实施例中,本实施例的语音合成方法中的部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面对图3所示的语音合成方法的流程进行详细描述。
步骤S310,获取待处理语音数据的对数梅尔能量谱。
步骤S320,将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频。
其中,预设的语音合成模型根据训练数据的对数梅尔能量谱进行训练得到。
上述方法通过将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型得到合成音频,实现了通过对数梅尔能量谱就可以得到合成音频,避免了现有技术中语音合成方法需要的参数量较多,所导致的语音合成效率低的问题。
在步骤S310之前,本申请实施例提供的语音合成方法还可以包括训练语音合成模型的步骤,该步骤可以包括以下子步骤:
获取训练数据的对数梅尔能量谱;对训练数据的对数梅尔能量谱进行语音合成处理,得到训练数据的第二合成音频;根据训练数据的预设参数和第二合成音频对预设模型进行训练,得到语音合成模型。
可选地,预设模型的具体结构不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,预设模型可以包括神经网络G和神经网络D,神经网络G和神经网络D的结构可以为ParallelWaveNet。也就是说,本申请实施例使用的是生成对抗网络思想,定义生成器G与判别器D,通过两者的迭代优化,达成训练模型的目的。
其中,所述语音合成处理的具体方式不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,可以根据预设的伪逆矩阵计算得到训练数据wav1的伪逆能量谱,对伪逆能量谱进行短时傅立叶变换处理,得到训练数据的变换音频wav2,对训练数据的对数梅尔能量谱和变换音频wav2进行合成处理,得到训练数据的第二合成音频wav3。
需要说明的是,根据训练数据的预设参数和第二合成音频对预设模型进行训练,得到语音合成模型的具体方式不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,预设参数可以包括训练数据的第一分数,该步骤可以包括以下子步骤:
将训练数据wav1与第二合成音频wav3输入神经网络D,神经网络D对wav1进行打分,得到第一分数s1,神经网络D对wav3进行打分,得到第二分数s3;计算err1=MSE(s1,a),计算err2=MSE(s3,b),其中MSE代表均方误差;根据err1+err2的和求神经网络D的梯度,对神经网络D执行梯度下降以更新D的参数;根据err2求神经网络G的梯度,对神经网络G执行梯度上升以更新G的参数。
可选地,预设第一参数a和预设第二参数b的具体类型不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,a与b是实数且a不等于b即可,本申请中a=1,b=-1。
又例如,在另一种可以替代的示例中,预设参数可以包括训练数据的对数梅尔能量谱,上述步骤可以包括以下子步骤:
计算训练数据wav1的对数梅尔能量谱M1,计算第二合成音频wav3的对数梅尔能量谱M2,求两个对数梅尔能量谱的均方误差err3,根据均方误差err3求神经网络G的梯度,执行梯度下降更新神经网络G的参数。
其中,频谱类型可灵活选择,不限于对数梅尔能量谱,也可为能量谱,功率谱等。
又例如,在另一种可以替代的示例中,预设参数可以包括训练数据的相关系数,上述步骤可以包括以下子步骤:
对训练数据进行相关系数计算,得到第一相关系数,对第二合成音频进行相关系数计算,得到第二相关系数;根据第一相关系数和第二相关系数计算得到第一均方误差,根据第一均方误差对预设模型进行训练得到语音合成模型。
详细地,计算训练数据wav1的相关系数,计算第二合成音频wav3的相关系数,计算两个相关系数的均方误差,根据均方误差求神经网络G的梯度,对G执行梯度下降以更新G的参数。
其中,对于两个等长的序列X:[x_0,x_1,x_2…],Y=[y_0,y_1,y_2…],X与Y的相关系数计算公式为:从wav1中截取一段音频作为X,wav1作为Y,计算得到第一相关系数c1。从wav3中截取一段音频为X,wav3作为Y,计算得到第三相关系数c3。wav1的截取起点与wav3的截取起点一致,wav1的截取终点与wav3的截取终点一致。
又例如,在另一种可以替代的示例中,预设参数可以包括训练数据的线性预测编码,上述步骤可以包括以下子步骤:
对训练数据进行线性预测编码计算,得到线性预测编码,根据线性预测编码对第二合成音频进行重构处理,得到重构音频;根据第二合成音频和重构音频进行计算得到第二均方误差,根据第二均方误差对预设模型进行训练得到语音合成模型。
详细地,计算训练数据wav1的线性预测编码,使用该线性预测编码重构第二合成音频wav3得到重构音频wav4,计算wav3与wav4的均方误差,根据均方误差求神经网络G的梯度,对神经网络G执行梯度下降以更新神经网络G的参数。
需要说明的是,线性预测编码(Linear predictive coding,LPC)是一组系数,如设定LPC为31阶,则LPC是一个由32个实数组成的序列。求线性预测编码可能会遇到无解的情况,或者求解方程是病态的,如果无解或病态解,则跳过这步,判断病态的方法是检测LPC所有系数的绝对值,如果某个系数的绝对值大于一个阈值,如100,则认为是病态解。
也就是说,线性预测编码的计算可能存在病态矩阵求解问题,为了规避该问题,检测每个线性预测编码系数的绝对值大小,若绝对值大于一个阈值,则对应的线性预测编码不参与梯度下降。
其中,上述训练模型的具体方式可以单独执行,也可以全部执行,重复上述训练模型的步骤若干次,得到神经网络G的参数p1。
需要说明的是,上述训练模型的具体方式中梯度上升/下降优化算法可以灵活选择,本申请中使用的是AdamW算法。
对于步骤S310,需要说明的是,获取待处理语音数据的对数梅尔能量谱的具体方式不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,该步骤可以包括以下子步骤:
获取待处理语音数据;对待处理语音数据进行能量谱计算,得到待处理语音数据的能量谱;对能量谱进行对数梅尔能量谱计算,得到待处理语音数据的对数梅尔能量谱。
其中,对待处理语音数据进行能量谱计算,得到待处理语音数据的能量谱的具体方式不受限制,可以根据实际应用需求进行。例如,在一种可以替代的示例中,该步骤可以包括以下子步骤:
对待处理语音数据进行分帧处理,得到待处理语音数据的音频序列;对音频序列进行短时傅立叶变换处理,得到待处理语音数据的频谱;对频谱进行频谱能量计算,得到待处理语音数据的能量谱。
详细地,对待处理语音数据wav5进行分帧,对分帧后的音频序列进行短时傅立叶变换得到频谱,计算频谱能量,得到能量谱。其中,频谱是复数矩阵,具有实部A与虚部B,可记为Z=A+Bi,能量谱计算方式为其中,A2表示A中的每个元素单独进行平方运算。
使用预设的MEL滤波组将能量谱转为梅尔能量谱,取对数得到对数梅尔能量谱。该转换压缩了数据量,提升合成速度,以本申请为例,该转换可以将1025维的能量谱转为80维的对数梅尔能量谱,MEL滤波组(梅尔滤波器组)可以为一个矩阵。
对于步骤S320,需要说明的是,将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频的具体方式不受限制,可以根据实际应用需求进行设置。例如,在一种可以替代的示例中,该步骤可以包括以下子步骤:
将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,根据预设的伪逆矩阵计算得到待处理语音数据的伪逆能量谱;对伪逆能量谱进行短时傅立叶变换处理,得到待处理语音数据的变换音频;对待处理语音数据的对数梅尔能量谱和变换音频进行合成处理,得到待处理语音数据的第一合成音频。
详细地,可以计算MEL滤波组的矩阵伪逆得到伪逆矩阵,求对数梅尔能量谱的指数后,乘以该伪逆矩阵,得到伪逆能量谱。
其中,MEL滤波器组可以是一个实数矩阵K,能量谱可以为一个实数矩阵S,计算对数梅尔能量谱的实际公式可以为M=ln(KS),M表示对数梅尔能量谱。伪逆能量谱的计算可认为是对数梅尔能量谱计算的逆操作:S’=K’exp(M),其中K’表示预设的伪逆矩阵,S’表示伪逆能量谱。
例如,K可以是一个大小为[80,1025]的矩阵,S可以是一个大小为[1025,T]的矩阵,其中T为帧长,则对数梅尔能量谱M是一个大小为[80,T]的矩阵,伪逆矩阵K’可以是一个大小为[1025,80]的矩阵,伪逆能量谱S’是一个大小为[1025,T]的矩阵,其中K’K=I,I是单位矩阵。
进一步地,可以将伪逆能量谱初始化为虚部为0的复数,计算短时傅立叶逆变换,得到待处理语音数据的变换音频wav6。其中,伪逆能量谱S’是一个实数,但从另一方面看,也可认为S’是一个虚部为0的复数,对S’进行短时傅里叶逆变换。将对数梅尔能量谱M与wav6输入神经网络G,得到第一合成音频。
通过上述方法,本申请提供了一种基于对数梅尔能量谱的高质量语音合成方法,通过基于短时傅里叶逆变换作为神经网络的初始输入之一,基于相关系数的辅助训练手段和线性预测编码的辅助训练手段进行模型训练,本申请提供的方法所需参数量较少,具备快速合成的特点,搭配预训练好的对数梅尔能量谱预测模型,可以将目标对数梅尔能量谱合成为高保真、稳定与高质量的语音信号。
也就是说,本申请将矩阵伪逆+短时傅里叶变换作为神经网络的输入,该输入是一个良好的初始输入,降低生成器所需参数量的同时,增强了生成器的生成能力;将自相关系数应用到模型训练中,增强生成器生成音频的相位重构能力(可懂度更好);基于线性预测系数进行模型训练,有效提升了模型合成音频的质量与稳定性,使得生成音频更符合人类听感。
结合图4,本申请实施例还提供了一种语音合成装置400,该语音合成装置400实现的功能对应上述方法执行的步骤。该语音合成装置400可以理解为上述电子设备100的处理器,也可以理解为独立于上述电子设备100或处理器之外的在电子设备100控制下实现本申请功能的组件。其中,语音合成装置400可以包括数据获取模块410和语音合成模块420。
数据获取模块410,用于获取待处理语音数据的对数梅尔能量谱。在本申请实施例中,数据获取模块410可以用于执行图3所示的步骤S310,关于数据获取模块410的相关内容可以参照前文对步骤S310的描述。
语音合成模块420,用于将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型,得到第一合成音频,其中,预设的语音合成模型根据训练数据的对数梅尔能量谱进行训练得到。在本申请实施例中,语音合成模块420可以用于执行图3所示的步骤S320,关于语音合成模块420的相关内容可以参照前文对步骤S320的描述。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述语音合成方法的步骤。
本申请实施例所提供的语音合成方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行上述方法实施例中的语音合成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
综上所述,本申请实施例提供的语音合成方法和装置、电子设备及存储介质,通过将待处理语音数据的对数梅尔能量谱输入预设的语音合成模型得到合成音频,实现了通过对数梅尔能量谱就可以得到合成音频,避免了现有技术中语音合成方法需要的参数量较多,所导致的语音合成效率低的问题。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。