语音合成方法、装置、电子设备及可读存储介质
阅读说明:本技术 语音合成方法、装置、电子设备及可读存储介质 (Speech synthesis method, device, electronic equipment and readable storage medium ) 是由 苏志霸 叶剑豪 周鸿斌 李林 任凯盟 贺雯迪 贺天威 谭芃菲 卢恒 于 2021-09-17 设计创作,主要内容包括:本申请提出了一种语音合成方法、装置、电子设备及可读存储介质,涉及计算机领域。该方法包括:通过编码,获得目标文本的文本信息对应的文本特征,其中,文本信息包括目标文本的音素序列;利用预先训练好的时长预测模型,基于文本特征,获得文本特征中每个音素的预测时长;基于预测时长对所述文本特征进行音素帧级展开,获得帧序列;将帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征,其中,解码器包括Unet网络;根据各帧对应的声学特征,得到目标文本对应的目标音频。如此,可提高语音合成质量及速度。(The application provides a voice synthesis method, a voice synthesis device, electronic equipment and a readable storage medium, and relates to the field of computers. The method comprises the following steps: obtaining text characteristics corresponding to text information of a target text through coding, wherein the text information comprises a phoneme sequence of the target text; obtaining the predicted duration of each phoneme in the text characteristics based on the text characteristics by using a pre-trained duration prediction model; performing phoneme frame level expansion on the text features based on the predicted duration to obtain a frame sequence; inputting the frame sequence into a decoder for parallel decoding to obtain acoustic characteristics corresponding to each frame, wherein the decoder comprises a Unet network; and obtaining a target audio corresponding to the target text according to the acoustic characteristics corresponding to each frame. Thus, the speech synthesis quality and speed can be improved.)
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种语音合成方法、装置、电子设备及可读存储介质。
背景技术
在语音合成的实际应用场景中,受限于声学模型中自回归解码器的合成速度,生产效率往往过低,并且自回归解码器的稳定性也比较差。在语音合成中,例如原版的DurIAN,自回归解码器需要一帧一帧地解码,效率很慢,并且下一帧的输出依赖之前的输入,稳定性较差。因此,如何提高语音合成速度及质量,成为本领域技术人员亟需解决的技术问题。
发明内容
本申请实施例提供了一种语音合成方法、装置、电子设备及可读存储介质,其能够提高语音合成质量及语音合成质量。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供一种语音合成方法,包括:
通过编码,获得目标文本的文本信息对应的文本特征,其中,所述文本信息包括所述目标文本的音素序列;
利用预先训练好的时长预测模型,基于所述文本特征,获得所述文本特征中每个音素的预测时长;
基于所述预测时长对所述文本特征进行音素帧级展开,获得帧序列;
将所述帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征,其中,所述解码器包括Unet网络;
根据各帧对应的声学特征,得到所述目标文本对应的目标音频。
第二方面,本申请实施例提供一种语音合成装置,包括:
编码模块,用于通过编码,获得目标文本的文本信息对应的文本特征,其中,所述文本信息包括所述目标文本的音素序列;
时长预测模块,用于利用预先训练好的时长预测模型,基于所述文本特征,获得所述文本特征中每个音素的预测时长;
音素帧级展开模块,用于基于所述预测时长对所述文本特征进行音素帧级展开,获得帧序列;
解码模块,用于将所述帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征,其中,所述解码器包括Unet网络;
合成模块,用于根据各帧对应的声学特征,得到所述目标文本对应的目标音频。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式所述的语音合成方法。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式所述的语音合成方法。
本申请实施例提供的语音合成方法、装置、电子设备及可读存储介质,通过编码,获得目标文本的文本信息所对应的文本特征,其中,该文本信息包括该目标文本的音素序列;利用预先训练好的时长预测模型,基于该文本特征,获得该文本特征中每个音素的预测时长;接着基于得到的预测时长对该文本特征进行音素帧级展开,获得帧序列;进而将该帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征,其中,该解码器包括Unet网络;最后根据各帧对应的声学特征,得到该目标文本对应的目标音频。如此,通过并行解码,可提高解码效率,从而提高语音合成速度;同时由于Unet网络的稳定性,以及因解码速度快不需要使用将一帧分为多帧的有损加速方法,还可以提高语音合成质量。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的方框示意图;
图2为本申请实施例提供的语音合成方法的流程示意图;
图3为图2中步骤S210包括的子步骤的流程示意图;
图4为图2中步骤S230包括的子步骤的流程示意图;
图5为本申请实施例提供的解码器示意图;
图6为本申请实施例提供的一种语音合成过程示意图;
图7为本申请实施例提供的语音合成装置的方框示意图。
图标:100-电子设备;110-存储器;120-处理器;130-通信单元;200-语音合成装置;210-编码模块;220-时长预测模块;230-音素帧级展开模块;240-解码模块;250-合成模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前的主流端到端语音合成建模方法(比如,Tacotron),在有高质量的数据集支持下,已经能够生成具有较高自然度的合成语音。但是,现有的使用自回归解码器的声学模型依旧有两个缺点:1.鲁棒性比较差,在部分数据集上效果很差;2.训练和推理速度慢。
在语音合成的实际应用场景中,受限于声学模型中自回归解码器的合成速度,生产效率往往过低,并且自回归解码器的稳定性也比较差。在语音合成中,例如原版的DurIAN,自回归解码器需要一帧一帧地解码,效率很慢,并且下一帧的输出依赖之前的输入,稳定性较差。一个鲁棒且快速的声学模型对于语音合成在工业生产中就显得十分重要。因此,如何提高语音合成速度及质量,成为本领域技术人员亟需解决的技术问题。
针对上述情况,本申请实施例提供了一种语音合成方法、装置、电子设备及可读存储介质,通过包括Unet网络的非自回归解码器进行并行解码,完成语音合成,从而提高语音合成速度及语音合成质量。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的电子设备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中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有语音合成装置200,所述语音合成装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的语音合成装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的语音合成方法。
通信单元130用于通过网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2为本申请实施例提供的语音合成方法的流程示意图。所述方法可应用于上述电子设备100。下面对语音合成方法的具体流程进行详细阐述。该语音合成方法可以包括步骤S210~步骤S250。
步骤S210,通过编码,获得目标文本的文本信息对应的文本特征。
在本实施例中,所述目标文本为期望得到的目标音频所对应的文本。所述目标文本的文本信息可以包括该目标文本的音素序列。其中,该音素序列可以是由具体的音素组成,也可以是由具体的音素所对应的音素ID组成,具体可以根据实际需求设置。可通过编码,得到该文本信息的高纬度特征作为所述文本特征。具体编码的实现方式,可以根据实际需求确定,在此不做具体限定。
步骤S220,利用预先训练好的时长预测模型,基于所述文本特征,获得所述文本特征中每个音素的预测时长。
所述电子设备100中可存储有预先训练好的时长预测模型。该时长预测模型可以是其他设备预先训练得到的,也可以是所述电子设备100训练得到的。在获得所述文本特征的情况下,可将该文本特征输入到所述时长预测模型中,从而得到所述文本特征中每个音素的预测时长。
步骤S230,基于所述预测时长对所述文本特征进行音素帧级展开,获得帧序列。
在获得每个音素的预测时长的情况下,可根据得到的每个音素的预测时长,对该文本特征音素帧级展开,从而得到由多个帧组成的帧序列,且帧序列中帧的排序与各帧对应的音素在音素序列中的排序相同。
步骤S240,将所述帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征。
在本实施例中,所述电子设备100中可以存储有预先训练好的解码器。该解码器可以包括Unet网络。该解码器可以是其他设备预先训练好的,也可以是所述电子设备100预先训练好的。将该帧序列输入到该解码器中进行并行解码,得到各帧对应的声学特征。
步骤S250,根据各帧对应的声学特征,得到所述目标文本对应的目标音频。
如此,通过并行解码,可提高解码效率,从而提高语音合成速度;同时由于Unet网络的稳定性,以及因解码速度快不需要使用将一帧分为多帧的有损加速方法,还可以提高语音合成质量。
可选地,在一种可选的实施方式中,所述文本信息中包括音素序列,可通过Embedding层,对所述音素序列进行嵌入式编码,并基于该编码结果得到所述文本特征。其中,Embedding是一个将离散变量转为连续向量表示的一个方式。在神经网络中,embedding是非常有用的,因为它不光可以减少离散变量的空间维数,同时还可以有意义的表示该变量。如此,该文本特征中可以包括路径信息,便于后续的解码,进而得到目标音频。
可选地,可以通过文本编码器对该文本特征进行编码,从而获得所述文本特征。如此,可获得高纬度表征。
可选地,在另一种可选的实施方式中,所述文本信息包括所述目标文本的音素序列及声调音素。其中,声调,是指声音的高低升降的变化,比如汉语中的一声、二声、轻声等。请参照图3,图3为图2中步骤S210包括的子步骤的流程示意图。在本实施方式中,步骤S210可以包括子步骤S211及子步骤S212。
子步骤S211,通过嵌入式编码,获得所述音素序列对应的第一向量序列及所述声调序列对应的第二向量序列。
子步骤S212,基于所述第一向量序列及所述第二向量序列,通过文本编码器,获得所述文本特征。
在本实施方式中,可通过Embedding层,对所述音素序列进行嵌入式编码,获得该音素序列对应的第一向量序列;并对所述声调序列进行嵌入式编码,获得该音素序列对应的第二向量序列。之后,可通过concate层,将所述第一向量序列及第二向量序列进行连接,并将连接结果输入到预先训练好的文本编码器中,得到文本信息编码text encoding。可将该文本信息编码作为所述文本特征。其中,使用concat()方法可用来将两个或多个数组结合起来。如此,得到的文本特征中不仅包括路径方面的特征,还可以包括相似性方面的特征。
其中,值得说明的是,若所述目标文本没有声调信息,比如,是英文,那么将所述声调序列置为空,仅根据所述音素序列执行步骤即可。
其中,所述文本编码器可以包括DNN(Deep Neural Networks,深度神经网络)神经网络或者CBHG(Convolution Bank+Highway network+bidirectional GatedRecurrentUnit,即,卷积层+高速网络+双向递归神经网络,也就是说,CBHG由卷积层、高速网络以及双向递归神经网络组成)神经网络等。如此,可利用DNN或CBHG将声调序列和音素序列的嵌入式编码,转换为高纬度表征。
在语言学中,会有多级韵律的概念,代表着不同的韵律停顿。比如,一级韵律等符号。一级韵律,有语言学的含义,比如字与字之间为了连贯的变调,却无显著的停顿时长,如“一棵树”,“一棵”与“树”之间不存在标点符号,但在朗读时却存在停顿。所述文本编码器在编码时,会加入不同级别的韵律,进而进行编码。不同级别的韵律包括一级韵律。如此,获得的文本特征中包括仅对应一级韵律的编码,也可能包括仅对应其他级别韵律的编码。如此,可使得得到的预测时长更能准确。
在通过所述文本特征的情况下,可根据该文本特征,通过所述时长预测模型获得文本特征中每个音素的预测时长。一个音素的预测时长可表示该音素的帧数。
可选地,作为一种可选的实施方式,所述时长预测模型基于样本文本的样本文本特征及样本文本的每个音素的样本时长训练得到。可直接将所述文本特征输入到所述时长预测模型中,得到的输出即为每个音素的预测时长。
其中,在训练得到所述时长预测模型的过程中,可通过Kaldi工具中的隐马尔可夫-深度神经网络(HMM-DNN)的识别模型,对音素和音频进行强对齐,从而找到每个音素对应的音频帧位置,即时长。由此,可获得用于训练所述时长预测模型的样本时长。
可选地,作为另一种可选的实施方式,所述时长预测模型基于样本基于样本文本的样本文本特征、样本文本的每个音素的样本时长及说出所述样本文本的说话人的标识训练得到。还可以预先选定所述目标文本对应的说话人的标识,作为目标说话人的目标标识。可根据所述文本特征及所述目标说话人的目标标识,通过所述时长预测模型,获得在目标说话人说话的情况下,所述目标文本中每个音素的预测时长。其中,说话人的标识,可以是按照说话人顺序分配的不同标识。
可选地,还可以通过Embedding层对该目标说话人的目标标识,进行嵌入式编码。接着,将目标标识的嵌入式编码及所述文本特征,输入到所述时长预测模型,得到的输出即为在说话人为所述目标说话人的情况下,所述文本特征中每个音素的预测时长。
在所述文本特征中包括仅对应一级韵律的编码的情况下,可通过图4所示方式获得所述帧序列。其中,仅对应一级韵律的编码,表示该编码仅对应一个一级韵律符号,不对应其他音素。请参照图4,图4为图2中步骤S230包括的子步骤的流程示意图。在本实施例中,步骤S230可以包括子步骤S231及子步骤S232。
子步骤S231,删除所述文本特征中仅对应一级韵律的编码,得到处理后的文本特征。
子步骤S231,基于每个音素的预测时长,对处理后的文本特征,进行帧级展开,获得所述帧序列。
在本实施例中,先将所述文本特征中仅对应一级韵律的编码删除,得到处理后的文本特征。所述文本特征的长度小于处理后的文本特征的长度。比如,原本有音素1、一级韵律符号、音素2,这三者依次对应的编码可依次表示为:音素1和一级韵律符号对应的编码a1、一级韵律符号对应的编码a2、一级韵律符号和音素2对应的编码a3,也即一级韵律符号前后的音素各自对应的编码中会包括该一级韵律符号的信息;由于编码a2仅对应了一级韵律,因此可将编码a2删除,如此处理后的文本特征则为:音素1和一级韵律符号对应的编码a1、一级韵律符号和音素2对应的编码a3。可选地,可利用skip跳跃神经网络实现上述删除处理。
然后,针对处理后的文本特征,基于文本特征中每个音素的预测时长,进行音素帧级展开,得到由多个帧组成的帧序列。如此,文本编码器在对音素编码时加入了一级韵律,在后续又跳过一级韵律,从而能够在不影响停顿时长的前提下隐式加入一级韵律。
其中,可选地,可以采用复制的实现音素帧级展开,也可以通过高斯上采样实现帧级展开。
可选地,在预先选定有目标说话人的目标标识的情况下,还可以基于所述预测时长,结合目标说话人的目标标识对所述文本特征进行音素帧级展开,得到所述帧序列。其中,所述帧序列的每一帧中包括所述目标标识的标识信息。如此,每一帧中都带有目标说话人的信息,便于区分说话人。
在获得帧序列的情况下,可将该帧序列输入到解码器中,通过并行解码,快速获得各帧对应的声学特征。所述声学特征可以为梅尔能量谱。
其中,可对一说话人的样本音频wav1进行分帧;然后对分帧后的音频序列进行短时傅立叶变换,得到频谱;接着,计算频谱能量,得到能量谱;进而使用MEL滤波组将能量谱转为梅尔能量谱,取对数得到对数梅尔能量谱,由此得到样本声学特征。之后可根据通过如上方式获得的样本声学特征,对初始解码器进行训练,得到所述解码器。
可选地,在一种实施方式中,如图5所示,解码器的Unet网络中包括卷积层(即图5中的CNN)及池化层(即图5中的avepooling),所述池化层为average-pooling,所述池化层用于卷积层输出的特征进行池化处理。通常情况下,Unet网络用于图像处理,图像任务没有时序关系,因此Unet网络中使用的池化层为Maximum pooling。本实施例采用average-pooling代替了Maximum pooling,两个数的平均值得到的值和两个值都有关,而最大值则是取其中大的那个数,因此使用Average pooling在时序任务上能够更好保留信息。
可选地,在另一种实施方式中,所述Unet网络包括卷积层、激励层及池化层,所述激励层位于所述卷积层与所述池化层之间,所述激励层使用的激励函数为sigmoid*tanh。sigmoid的值域为0~1,tanh的输出为波形-1~1,两者相乘,可以控制数据的正负幅度为(-1,1),由此可以更好控制信息流,增加神经网络模型的非线性,便于模型学习。
可选地,在本实施方式中,所述池化层为Maximum pooling或Average pooling等。在一种可能的实施方式中,所述池化层为Maximum pooling,一个Maximum pooling位于图5所示的“CNN+avepooling”中的“CNN”与“avepooling”之间。可通过作为解码器的上述特殊结构的Unet网络,进行并行解码,获得每帧对应的梅尔能量谱。
在获得各帧对应的梅尔能量谱的情况下,可对各帧对应的梅尔能量谱进行后处理,以进行二次修改,得到更精确的频谱。可选地,可通过DNN、CBHG和一层BLSTM,对经解码器得到的梅尔能量谱进行处理,得到处理后的梅尔能量谱。
可选地,还可以再利用轻量AR模型(Autoregressive Model,自回归模型),比如,一LSTM(Long Short-Term Memory,长短期记忆网络)结构的模型,对后处理之后的梅尔能量谱再次进行处理。
之后,可使用神经网络声码器对处理后的梅尔能量谱进行合成,并将得到的合成梅尔能量谱转换为所述目标音频。其中,该神经网络声码器可以为主流的模型,比如,WaveRNN,HifiGAN等。该目标音频中包括合成梅尔能量谱。
本申请实施例的解码器为可以使合成速度更快、质量更好的非自回归解码器。本申请实施例使用高斯上采样进行帧展开。本申请实施例中的解码器中包括改进的Unet网络,该Unet网络取代了原有的合成语音时使用的声学模型中的注意力机制模块与自回归解码器。本申请实施例所用的CNN结构解码器能够在计算机中实现全并行计算,解码效率远超过原始的非并行结构,并且由于CNN的稳定性,以及因速度够快不需要一帧分多帧的有损加速方法,使得在语音合成任务上可以取得非常高的合成质量,由此同时解决了速度和质量的问题。
请参照图6,图6为本申请实施例提供的一种语音合成过程示意图。下面以举例的方式,结合图5及图6,对上述语音合成方法进行举例说明。
首先获得声调ID、音素ID及说话人ID。其中,声调ID为目标文本所对应的声调的标识。音素ID为目标文本所对应的音素的标识。该说话人ID为选定的目标说话人的标识。
可利用tone embedding层,对由目标文本对应的声调ID组成的声调序列进行嵌入式编码,获得第一向量序列。可利用ipa embedding层,对由所述目标文本对应的音素ID组成的音素序列进行嵌入式编码,得到第二向量序列。还利用speaker embedding层对目标说话人的进行嵌入式编码,获得目标说话人向量。由此,声调ID、音素ID及说话人ID均被映射为可训练的嵌入式编码。
将第一向量序列及第二向量序列通过concate函数进行连接,将得到的连接结果输入到文本编码器(encoder)中,获得文本文本信息编码text encoding,作为文本特征。
将文本特征和目标说话人向量输入到时长预测模型中,获得文本特征中的每个音素的预测时长。
所述文本特征中包括仅对应一级韵律的编码。跳跃模块(skip module)将所述文本特征中仅对应一级韵律的编码删除,得到处理后的文本特征。
将处理后的文本特征、目标说话人向量以及每个音素的预测时长,输入到音素帧级展开模块中,进行帧级展开,得到帧序列。其中,采用的展开方式可以是,但不限于,复制Repea或者高斯(gaussian)上采样等。
将帧级别展开的文本特征(即帧序列)输入到解码器(即图6中的声学特征解码器,Unet Decoder Block)中,解码器通过特殊的Unet网络对帧序列进行并行解码并输出梅尔能量谱。
如图5所示,输入为B*T*256的数据,其中,B表示需要的目标音频的数量,在只需要将一个目标文本转换为一个发音人的音频时,B为1。B也可以大于1,具体由实际情况确定。T表示一个帧序列的数量,256为一帧的特征维度数量。比如,B*T*256为1*1024*256,表示在合成一个目标音频时,这个目标音频的长度是1024帧,每帧的特征由长度为256的数组来表示。
解码器先对输入的数据进行卷积和池化。其中,卷积和池化的次数可由实际需求确定。卷积和池化之间还可以包括激励层。激励层使用的激励函数为sigmoid*tanh。进行池化的池化层为average-pooling。
如图5所示,对输入的数据进行2次池化,得到B*T/4*256的数据。然后,对B*T/4*256的数据做反卷积(Deconvolution),得到B*T/2*256的数据;通过Skip connection,将经过反卷积得到的B*T/2*256的数据与之前的B*T/2*256的数据进行通道上的拼接conca;再对拼接之后的数据做反卷积,得到B*T*256的数据,再与之前的B*T*256的数据拼接,得到一个与输入数据尺寸相同的B*T*256的预测结果,即得到各帧对应的梅尔能量谱。
后处理模块对解码器输出的梅尔能量谱进行后处理,得到处理后的梅尔能量谱。可选地,可以通过DNN、CBHG和一层BLSTM(Bi-directional Long Short-term Memory,双向长短期记忆)对解码器出来的频谱进行二次修正,得到更精确的频谱。
接着,可再利用轻量AR对后处理模块输出的梅尔能量谱进行再次处理。
最后,使用神经网络声码器对轻量AR输出的梅尔能量谱进行合成,并通过转化得到目标文本在发音人为目标说话人下的目标音频。该目标音频对应了通过解码器得到的声学特征(mel)。其中,神经网络声码器在图6中未示出。图6中轻量AR输出的声学特征(mel)输入到神经网络声码器,得到目标音频。
其中,文本编码器、时长预测模型、音素帧级展开模块、解码器、后处理模块和轻量AR,均可以是提前根据样本音频、与样本音频对应的说话人的标识及样本文本,训练得到的。具体训练过程与上述使用过程类似,在此不再赘述。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种语音合成装置200的实现方式,可选地,该语音合成装置200可以采用上述图1所示的电子设备100的器件结构。进一步地,请参照图7,图7为本申请实施例提供的语音合成装置200的方框示意图。需要说明的是,本实施例所提供的语音合成装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。所述语音合成装置200可以作为语音合成模型,进行端到端的语音合成。所述语音合成装置200可以包括:编码模块210、时长预测模块220、音素帧级展开模块230、解码模块240及合成模块250。
所述编码模块210,用于通过编码,获得目标文本的文本信息对应的文本特征。其中,所述文本信息包括所述目标文本的音素序列。
所述时长预测模块220,用于利用预先训练好的时长预测模型,基于所述文本特征,获得所述文本特征中每个音素的预测时长。
所述音素帧级展开模块230,用于基于所述预测时长对所述文本特征进行音素帧级展开,获得帧序列。
所述解码模块240,用于将所述帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征。其中,所述解码器包括Unet网络。
所述合成模块250,用于根据各帧对应的声学特征,得到所述目标文本对应的目标音频。
可选地,在本实施例中,所述Unet网络中包括卷积层及池化层,所述池化层为average-pooling,所述池化层用于卷积层输出的特征进行池化处理。
可选地,在本实施例中,所述Unet网络包括卷积层、激励层及池化层,所述激励层位于所述卷积层与所述池化层之间,所述激励层使用的激励函数为sigmoid*tanh。
可选地,在本实施例中,所述文本特征包括仅对应一级韵律的编码,所述音素帧级展开模块230具体用于:删除所述文本特征中仅对应一级韵律的编码,得到处理后的文本特征;基于每个音素的预测时长,对处理后的文本特征,进行帧级展开,获得所述帧序列。
可选地,在本实施例中,所述音素帧级展开模块230具体用于通过高斯上采样实现帧级展开,和/或,所述音素帧级展开模块230具体用于:基于所述预测时长,结合目标说话人的目标标识对所述文本特征进行音素帧级展开,得到所述帧序列,其中,所述帧序列的每一帧中包括所述目标标识的标识信息。
可选地,在本实施例中,所述文本信息还包括所述目标文本的声调序列,所述编码模块210具体用于:通过嵌入式编码,获得所述音素序列对应的第一向量序列及所述声调序列对应的第二向量序列;基于所述第一向量序列及所述第二向量序列,通过文本编码器,获得所述文本特征。
可选地,在本实施例中,所述时长预测模块220具体用于:利用所述时长预测模型,基于所述文本特征及目标说话人的目标标识,得到每个音素的预测时长,其中,所述时长预测模型基于样本文本的样本文本特征、样本文本的每个音素的样本时长及说出所述样本文本的说话人的标识训练得到,其中,所述说话人的标识包括所述目标说话人的目标标识。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图1所示的存储器110中或固化于电子设备100的操作系统(Operating System,OS)中,并可由图1中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的语音合成方法。
综上所述,本申请实施例提供一种语音合成方法、装置、电子设备及可读存储介质,通过编码,获得目标文本的文本信息所对应的文本特征,其中,该文本信息包括该目标文本的音素序列;利用预先训练好的时长预测模型,基于该文本特征,获得该文本特征中每个音素的预测时长;接着基于得到的预测时长对该文本特征进行音素帧级展开,获得帧序列;进而将该帧序列输入到解码器中进行并行解码,获得各帧对应的声学特征,其中,该解码器包括Unet网络;最后根据各帧对应的声学特征,得到该目标文本对应的目标音频。如此,通过并行解码,可提高解码效率,从而提高语音合成速度;同时由于Unet网络的稳定性,以及因解码速度快不需要使用将一帧分为多帧的有损加速方法,还可以提高语音合成质量。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:语音合成方法及电子设备