一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种语音合成方法和装置、电子设备与流程

2021-11-09 22:35:00 来源:中国专利 TAG:


1.本技术涉及人工智能领域,尤其涉及一种语音合成方法和装置、电子设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.随着计算机技术和人工智能网络的发展,语音合成(也称为文语转换,text

to

speech)技术在近些年来得到了快速提升,被愈发广泛的应用于人类生活的各个领域。语音合成多样化的应用为日常生活提供了极大的便利,同时也丰富了多媒体技术带来的观感。比如,基于语音合成的阅读辅助不仅仅使视障人士能够阅读更加广泛的文字材料,也给普通人提供了更多的阅读场景。比如,基于语音合成的虚拟形象能够利用精简的发音数据库模拟逼真的人声,为游戏娱乐、增强现实和虚拟现实等领域提供更为泛用的技术。
3.语音合成系统主要功能是将文本转换为语音。常见的语音合成系统包含三个模块:文本前端、声学模块和声码器。其中,文本前端主要用于对文本进行语义和语言学分析,声学模块主要用于对声学特征进行建模与预测,而声码器主要用于将声学特征转换为最终的语音波形信号。近年来,在深度学习技术发展的推动下,基于端到端的声学模型(例如tacotron、fastspeech等)逐渐被广泛应用于语音合成系统,使得句子级别的合成语音在音质和自然度上得到了大幅的提升,获得了较好的用户体验。
4.然而,在语音合成的实际应用场景中,句子级别的语音合成无法满足所有的需求。在有声阅读、文字新闻播报等需要制作长时语音资源的场景中,这一问题尤为突出。比如,这些场景下往往需要直接从长段的文本、甚至是整个语篇的文本直接生成语音。文本的整个语篇具有多个层级,从大至小大致可以分为篇章、段落、句子、语调短语(或称为子句)等等,同时,在语调短语内部,还可以进一步划分为韵律短语、韵律词、语法词、字等若干层级。但是,句子级别的语音合成系统通常仅使用句子或者子句作为输入,没有考虑整个语篇内部不同句子之间、或者不同子句之间的依赖关系,导致现有系统在语篇合成上的用户体验不佳。特别是由于句子级别的语音合成没有考虑语篇结构和语义信息,会显著降低实际用户在感受整个语篇时的体验。
5.具体来说,现有的句子级别的语音合成方案通常具有以下几个显著的缺点。第一,韵律单调,所有句子的语气、语调接近,缺少多样的变化性,长时使用会导致用户听觉疲惫。第二,缺乏语音焦点,没有中心句的重读,导致用户容易错过重要的信息。第三,缺少上下文的语境语义的关联信息,不考虑句子间韵律的起承转合,可能会导致错误的语气语调。最后,无法体现语言中常见的修辞手法所对应的真实语气,比如排比、对偶等等。
6.因此,如何提供一种能够准确反映文本中多层次结构信息的语音合成系统,从而为用户提供更贴近真实人声韵律的合成语音,成为了本领域技术人员亟需解决的技术问题。


技术实现要素:

7.有鉴于此,本技术提供了一种语音合成方法和装置、电子设备、计算机可读存储介质和计算机程序产品,以提供一种能够准确反映文本中多层次结构信息的语音合成系统,从而为用户提供更贴近真实人声韵律的合成语音。
8.本技术实施例的一个方面提供了一种语音合成方法,包括:调用第一编码模型对文本信息进行编码,得到文本特征,其中,该第一编码模型至少包含级联的n层第一编码器,该文本特征包含该n层第一编码器中至少一个的输出编码,且对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码;以及,调用第一解码模型基于该文本特征进行解码,得到语音信息,其中,所述第一解码模型至少包含级联的m层解码器,该m层解码器中至少一个的第一输入编码从所述文本特征中获取,且对任何1≤j<m,第j层第一解码器的第二输入编码包含第j 1层第一解码器的输出编码;其中,i、j、m、n均为正整数。
9.本技术实施例的另一个方面提供了一种语音合成装置,包括:编码模块,用于调用第一编码模型对文本信息进行编码,得到文本特征,其中,该第一编码模型至少包含级联的n层第一编码器,该文本特征包含该n层第一编码器中至少一个的输出编码,且对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码;以及解码模块,用于调用第一解码模型基于该文本特征进行解码,得到语音信息,其中,该第一解码模型至少包含级联的m层解码器,该m层解码器中至少一个的第一输入编码从该文本特征中获取,且对任何1≤j<m,第j层第一解码器的第二输入编码包含第j 1层第一解码器的输出编码;其中,i、j、m、n均为正整数。
10.本技术实施例的又一个方面提供了一种电子设备,该电子设备可用于实现前述语音合成方法。在一些实施例中,该电子设备包含处理器和存储器。其中,该存储器存储有指令,且该指令被该处理器执行时使得所述电子设备执行前述语音合成方法。
11.本技术实施例的又一个方面提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机指令,且该计算机指令被处理器执行时使得计算机执行前述语音合成方法。
12.本技术实施例的有一个方面提供了一种计算机程序产品。该计算机程序产品包含计算机指令,且该计算机指令在计算机上运行时使得该计算机执行前述语音合成方法。
13.根据本技术实施例所提供的技术方案,首先调用第一编码模型对文本信息进行编码得到文本特征,然后再调用第一解码模型基于所述文本特征进行解码,得到语音信息。其中,该第一编码模型和该第一解码模型分别至少包含级联的n层第一编码器和级联的m层第一解码器。对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码,对任何1≤j<m,第j层第一解码器的输入编码包含第j 1层第一解码器的输出编码,其中i、j、m、n均为正整数。该文本特征包含所述n层第一编码器中至少一个的输出编码,且所述m层解码器中至少一个的输入编码从该文本特征中获取。通过该技术方案,文本信息中的多层次结构信息被级联的第一编码器逐层提取出来,再通过级联的第一解码器逐层还原为各个层次的语音韵律特征,从而使得根据这些语音韵律特征生成的语音信息能够准确反映对应文本信息中的多层结构,从而为用户提供更加富有节奏变化、更贴近真实人声韵律的合成语音。
附图说明
14.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
15.图1示出了本技术实施例中一种语音合成方法的流程图;
16.图2示出了本技术实施例中一种语音合成方法的信息流示意图;
17.图3示出了本技术实施例中一种语音合成方法的信息流局部示意图;
18.图4示出了本技术实施例中一种不同级别粒度下切分文本信息或者语音信息获得切分段的示意图;
19.图5示出了本技术实施例中另一种语音合成方法的信息流示意图;
20.图6示出了本技术实施例中另一种语音合成方法的信息流局部示意图;
21.图7示出了本技术实施例中第一解码器通过输入语音序列和输入文本序列获得输出语音序列的示意图;
22.图8示出了本技术实施例中另一种语音合成方法的流程图;
23.图9示出了本技术实施例中又一种语音合成方法的流程图;
24.图10示出了本技术实施例中又一种语音合成方法的流程图;
25.图11示出了本技术实施例中又一种语音合成方法的流程图;
26.图12示出了本技术实施例中又一种语音合成方法的流程图;
27.图13示出了本技术实施例中训练初始第一解码模型时获得重构损失的信息流示意图;
28.图14示出了本技术实施例中又一种语音合成方法的流程图;
29.图15示出了本技术实施例中训练初始第一编码模型时获得预设损失的信息流示意图;
30.图16示出了本技术实施例中又一种语音合成方法的流程图;
31.图17示出了本技术实施例中一种语音合成装置的结构示意图;以及,
32.图18示出了本技术实施例中另一种语音合成装置的结构示意图。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.以下首先对本发明所使用的一部分术语进行介绍。
35.编码器(encoder):即自动编码器(autoencoder)结构中的编码侧,用于将输入映射为编码(也称为隐变量、隐藏表示)。
36.解码器(decoder):即自动编码器结构中的解码侧,用于将编码映射为输出,通常情况下,该输出在一定程度上是对编码侧输入的重构。
37.tacotron模型:一种基于注意力(attention)机制的端到端常规语音合成模型,能
够基于文本直接生成语音。
38.bert模型:即基于变换器的双向编码器表示模型(bidirectional encoder representations from transformers),是一种使用深度双向的无监督的语言表示、且仅使用纯文本语料库进行预训练的模型,属于自然语言处理的预训练技术,其主要目的是理解用户搜索语句的含义,抽取文本中包含的韵律信息。
39.vae模型:即条件变分自动编码器(variationalautoencoder),是一种基于自动编码器结构的生成模型,其对隐变量分布进行强假设,使用变分方法来学习隐藏表示,从而在训练函数中引入额外的损失分量和sgvb(随机梯度变分贝叶斯,stochastic gradient variational bayes)估计量。
40.如背景部分所描述的,现有的语音合成系统主要基于句子或者子句来生成合成语音,在该过程中,通常仅提取句子级别的韵律编码。以基于tacotron模型的语音合成系统为例,在进行模型训练的时候,除了常规的帧级声学目标预测之外,该模型还会采用一个语音编码模型(例如双向lstm网络)从语音中抽取一个固定维度的向量。该向量通过标准正态分布假设进行约束,用于从语音中提取句子级别的声学韵律表征。
41.在韵律预测阶段,现有方法通常使用类似bert的预训练语言模型抽取句子级别的文本表征,然后简单使用上下文的文本表征来预测待合成句子的声学韵律表征。预测方法主要有两类,一类是可学习的预测方法,直接使用神经网络模型对韵律表征进行训练和预测,另一类是基于检索的预测方法,使用文本特征作为韵律表征的索引,基于文本特征的匹配从训练音库中挑选相应的韵律表征来进行后续的语音合成。然而,受限于单一的句子级别或子句级别,现有技术方案在应用于长篇文本(比如整个语篇文本)时,其生成的合成语音至少会表现出如下几个方面的问题。
42.首先,合成语音缺少层次化的声学表征。自然的人类语音信号会包含丰富的韵律变化,包括但不限于句内焦点词的体现、句间的承接转折、段落内部的中心句的强调、句尾的语气语调、同一修辞体系内句子间的韵律一致性等等。然而,现有技术中通常仅使用数维的向量来表征韵律,很难抽象表现如此多的韵律变化。其次,合成语音仅仅能相邻句子间的依赖关系。虽然这种联系能在一定程度上改善句间语气语调的起承转合,但是涉及更多句子之间的语言联系和语义现象,很难从仅仅两三句连续文本中得到抽象表达。第三,合成语音没有有效的利用语言学经验和语言学知识。常规语音合成的声学模型完全依赖数据来学习,而有限的数据很难体现出语言学通过长时间归纳和积累所获得的经验和知识。
43.本技术实施例的第一方面提供了一种语音合成方法。在本实施例中,上述语音合成方法可应用于包含第一编码模型和第一解码模型的自动编解码网络。该自动编解码网络可以通过硬件、软件、或两者的结合来实施。比如,该自动编解码网络可存在于由服务器和终端所构成的硬件环境中,服务器和终端之间通过网络进行连接,该网络包括但不限于局域网、城域网或广域网。此时,以上编码模型和解码模型可通过运行在服务器和终端上的软件来实现,或者通过内嵌于服务器和终端上的硬件中的命令来实现。需要注意的是,以上编码模型和解码模型也可全部运行在服务器或者终端上,本实施例对此不做限制。
44.下面结合图1进一步描述上述语音合成方法。图1是本技术实施例中一种语音合成方法的示意图。如图1所示,该语音合成方法可包括如下步骤。
45.s20、调用第一编码模型对文本信息进行编码,得到文本特征。其中,该第一编码模
型至少包含级联的n层第一编码器,该文本特征包含所述n层第一编码器中至少一个的输出编码。对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码。i和n均为正整数。
46.此处的文本信息是指体现为文本格式的信息,其作为整个语音合成流程的输入信息,通常为待进行文语转换的文本。在本实施例中,该文本信息可具有多层文本结构。比如,该文本信息为篇章级别的文本,即该文本可包含一个或者多个完整的篇章。此处的“篇章”可理解为完整的文章结构,比如一整篇新闻报道、一整段演说词、文学作品中的整个章节等等。可以理解,这里的“文本格式”即可以体现为语言文字的字符、也可以体现为语言文字的可视化编码或者计算机可读编码。
47.上述第一编码模型的结构可参见图2的左半部分。图2是本技术实施例中一种语音合成方法的信息流示意图。如图2所示,第一编码模型由下至上包含第1层第一编码器至第n层第一编码器。本领域技术人员可以理解本技术中类似“由下至上”的术语是为了清楚的说明相应附图(如此处的图2)中所示意的方向,而非对各元素的空间关系或者逻辑关系进行方向上的限制。输入第一编码模型的文本信息首先经过第1层第一编码器的处理,得到第1层输出编码。随后,该输出编码经过第2层第一编码器的处理,得到第2层输出编码。接下来,第2层编码器输出编码经过第3层第一编码器的处理,得到第3层输出编码。以此类推,直到通过第n层第一编码器得到第n层输出编码。可以理解,虽然图2中文本信息直接输入第1层第一编码器,在实际应用中亦可按需对文本信息进行预处理(比如文本分析、文本切分、文本纠错等等)之后再输入第1层第一编码器。
48.第一编码器的上述编码过程总共得到n层输出编码,第一编码模型输出的文本特征可包含这些编码中的至少一层编码(图2示出了包含所有n层编码的情形)。由于以上n层输出编码是级联生成的,因此该文本特征可相应表征文本信息的层级结构中一个或多个层级的特征。该层级结构的具体构建模式决定了n层级联第一编码器的具体关系,另外,具体使用场景下所关心的层级决定了该文本特征中包含哪些层的输出编码。
49.s40、调用第一解码模型基于所述文本特征进行解码,得到语音信息。其中,该第一解码模型至少包含级联的m层解码器,所述m层解码器中至少一个的输入编码从该文本特征中获取。对任何1≤j<m,第j层第一解码器的输入编码包含第j 1层第一解码器的输出编码。j和m均为正整数。
50.此处的语音信息是指体现为语音格式的信息,其作为整个语音合成流程的输出信息,通常为最终所获得的拟人化语音。在本实施例中,该语音信息与文本信息相对应,比如,该语音信息为篇章级别的文本所对应的朗读语音。可以理解,这里的“语音格式”即可以体现为人耳或者机器可识别的语音、也可以体现为存储于介质中的、可通过特定装置播放上述语音的代码或者文件,如wav、mp3、mp4等音频文件或者mkv、avi等视频文件的音轨。
51.上述第一解码模型的结构可参见图2的右半部分。如图2所示,第一解码模型由下至上包含第1层第一解码器至第m层第一解码器。输入第m层解码模型的文本特征首先经过第m层第一解码器的处理,得到第m层输出编码。随后,该输出编码经过第m层第一解码器的处理,得到第m

1层输出编码。接下来,第m

1层解码器的输出编码经过第m

2层第一解码器的处理,得到第m

2层输出编码。以此类推,直到得到第1层第一解码器的输出编码。可以理解,在第1层第一解码器为声码器等情况下,第1层第一解码器的输出编码可以为语音波形,
能够直接为第一解码模型最终输出的语音信息。或者,第1层第一解码器的输出编码在实际应用中也可以仅包含该语音信息中的声学特征,随后对该声学特征进行后续处理以得到该语音信息。
52.本实施例中,级联的m层第一解码器用于逐层解码文本特征,以获得具有层次结构的声学特征(即,包含语音韵律特征)。该层级结构的具体构建模式取决于m层级联第一解码器的具体关系。同时,由于文本特征本身可表征文本信息的层级结构中一个或多个层级的特征,全部或者部分层级的特征也可直接输入相应层级的第一解码器,从而使该层第一解码器输出的语音韵律特征与特定层级的文本特征具有更加准确的对应关系。因此,除第m层第一解码器之外,每层第一解码器均可具有两路输入编码,其中第一输入编码来自于文本特征,第二输入编码即前一层第一解码器的输出编码。可以理解,虽然图2中示出了第1层到第m

1层第一解码器均具有第一输入编码,在实际应用中可以设置部分第一解码器不从文本特征中获取第一输入编码。此时,哪些层的第一解码器具有第一输入编码取决于具体使用场景下所关心的文本层级(或所关心的语音层级所对应的文本层级)。
53.在实际应用中,上述输入编码和输出编码均可通过向量来实现。在一些实施例中,对每层第一编码器,上述文本信息能够按照该第一编码器的对应的文本粒度进行切分来获得至少一个文本切分段,且该层第一编码器的输出编码用于表征各文本切分段的特征;同时,对每层第一解码器,上述语音信息能够按照该第一解码器对应的语音粒度进行切分来获得至少一个语音切分段,且该层第一解码器的第二输入编码用于表征各语音切分段的特征。
54.此处的文本/语音切分段是指文本/语音信息按照对应的文本/语音粒度进行切分之后所获得的文本/语音信息的各个部分,这些部分经过按序拼接即可无损的获得原先的文本/语音信息。此处的“粒度”可以理解为文本信息或者语音信息的结构尺度。比如,将一部小说的文本按照篇章级别的粒度进行切分,所得到的文本切分段可为该小说的各个章节,而将同样一部小说的文本按照段落级别的粒度进行切分,所得到的文本切分段可为该小说所有章节的各个段落。再比如,将一部小说对应的朗读语音按照篇章级别的粒度进行切分,所得到的语音切分段可为该小说各个章节的朗读语音,而将同样一部小说对应的朗读语音按照段落级别的粒度进行切分,所得到的语音切分段可为该小说所有章节的各个段落的朗读语音。当然,篇章级别的粒度下切分所得到的每个切分段可包含一个或者多个章节,段落级别的粒度下切分所得到的每个切分段也可包含一个或者多个段落,本技术实施例对此不作限定,可根据实际应用场景来确定。
55.在一些申请实施例中,使用向量来表示输入编码和输出编码可直观的反映出相应粒度下各个切分段所对应的特征,即文本切分段的文本结构特征或者语音切分段的语音韵律特征。在图2的基础上,图3进一步示出了本技术实施例中一种语音合成方法的信息流局部示意图。如图3所示,以n层第一编码器中的第i层第一编码器为例,假设在其对应的粒度下切分文本信息可获得一共x个文本切分段,那么该第一编码器的输出编码可表示为向量o
i
=(o
i1
,o
i2
,

,o
ix
)。其中,o
i1
表示该粒度下第1个文本切分段的特征,o
i2
表示该粒度下第2个文本切分段的特征,以此类推,o
ix
表示该粒度下第x个文本切分段的特征。随后,o
i
一方面输入第i 1层第一编码器,另一方面与其他层第一编码器的输出特征一起作为文本特征输入至第一解码模型。类似的,以n层第一解码器中的第j层第一解码器为例,假设其对应粒度
下切分语音信息可获得一共y个语音切分段,那么该第一解码器的第二输入编码来自于第j 1层输入解码器的输出编码,可表示为向量i
j
=(i
j1
,i
j2
,

,i
jy
)。其中,i
j1
表示该粒度下第1个语音切分段的特征,i
j2
表示该粒度下第2个语音切分段的特征,以此类推,i
jy
表示该粒度下第y个语音切分段的特征。该第一解码器还可通过i
j
解码获得第j层输出编码,或者还可如图3所示,从文本特征中进一步获取第一输入编码,并通过第一输入编码和第二输入编码获得第j层输出编码。可以理解,这里每个切分段的特征既可以体现为标量也可以体现为向量等形式,具体可根据实际应用中所关心的文本结构特征或者语音韵律特征确定,本技术实施例对此不作限定。
56.进一步的,在一些实施例中,文本信息在n层第一编码器所对应的n个级别的文本粒度下被逐层切分,且语音信息在m层第一解码器所对应的m个语音粒度下被逐层切分。也就是说,针对任何1≤i<n,第i层第一编码器对应的文本粒度g
i
小于第i 1层第一编码器对应的文本粒度g
i 1
,且文本粒度g
i
下获得的各文本切分段均由一个或多个文本粒度g
i 1
下获得的文本切分段构成。同时,针对任何1≤j<m,第j层第一解码器的对应的语音粒度g
j
小于第j 1层第一解码器对应的语音粒度g
j 1
,且语音粒度g
j
下的各语音切分段均由一个或多个语音粒度g
j 1
下的语音切分段构成。图4示出了本技术实施例中在四种不同级别粒度下逐层切分文本信息或者语音信息的示意图,其中第一粒度到第四粒度在结构尺度上逐渐缩小。以文本信息为例,第一粒度到第四粒度可以分别为篇章级别、段落级别、句子级别和子句级别的粒度,则第一粒度中示出的一个切分段可表示一篇完整的文本。该文本包含四个段落,则按照段落级别的第二粒度进行切分后可获得图4中示出的第二粒度下的四个切分段,其中每个切分段即为一个段落的文本。该文本的四个段落可分别包含3、2、3、4个句子,则按照句子级别的第三粒度对该文本进行切分后可获得图4中示出的第三粒度下共12个切分段。其中头3个切分段来自第一个段落,随后的2个切分段来自第二个段落,接下来3个切分段来自第三个段落,最后4个切分段来自第四个段落,并且每个切分段均按顺序对应该文本中的12个句子。该文本的12个句子可分别包含3、2、3、3、2、2、3、3、3、4、3、3个子句,则该文本进一步按照子句级别的第四粒度进行切分后可获得图4中示出的第四粒度下共34个切分段,每个切分段均按顺序对应该文本中的34个子句。需要注意,虽然在图4中并未示出,该文本还可以类推的进一步获得结构尺度更小的粒度下的切分段,比如将每隔子句进一步切分为词语,从而获得第五粒度下更多数量的切分段。对语音信息进行切分的步骤可从上述文本信息的例子中类推得到,这里不再赘述。
57.在本实施例中,对文本信息随着第n层到第1层第一编码器的粒度被逐层切分,意味着每经过一层第一编码器的处理都可以从若干连续文本切分段中提取到更大结构尺度的文本切分段的特征。也就是说,针对文本结构逐步生成从小尺度结构到大尺度结构的多层特征,且每个文本切分段的特征均由其包含所有更小粒度文本切分段(或称为下层文本切分段)决定。对应的,语音信息随着第m层到第1层第一解码器的粒度被逐层切分,意味着这些多层次的文本特征随着m层第一解码器的处理被逐层还原到更小尺度的语音切分段上。也就是说,文本结构中多层文本切分段的特征(即文本特征)从大尺度到小尺度逐步被解耦为语音韵律特征,且每个语音切分段的特征均由受到所有包含其的更大粒度下的语音切分段(或称为上层切分段)的特征的影响。从以上过程可以看出,由此生成的语音信息中,每个最小粒度的语音切分段(比如音素级别的切分段)所包含的特征均考虑了其对应的各
个层级的文本结构,因此在解码过程中能够赋予该语音信息丰富的韵律。同时,多层级的文本结构使得文本中多个尺度下的语义和语法信息也能够体现在最终的语音信息中。
58.由于前述编码过程和解码过程均使用了多层级粒度下的逐层切分所获得的切分段,第一解码器来自文本特征的第一输入编码可直接采用对应粒度的第一编码器的输出编码。在一些实施例中,上述n层第一编码器中的k层第一编码器与上述m层第一解码器中的k层第一解码器一一对应,且该k层第一解码器中的每层第一解码器的第一输入编码包含与该第一解码器对应的第一编码器的输出编码。其中,k为正整数。
59.请在图2的基础上参考图5。图5为本技术实施例中另一种语音合成方法的信息流示意图,其中n层第一编码器中k层第一编码器c
l1
至c
lk
分别对应m层第一解码器中的k层第一解码器d
l1
至d
lk
。对任意1≤k≤k,文本特征中包含第一编码器c
lk
的输出编码,且该输出编码直接作为第一解码器d
lk
的第一输入编码。此时,第一编码器c
lk
的输出编码可表现为向量o
lk

60.这里的相互对应的第一编码器和第一解码器可理解为具有对应粒度的编码器和解码器,或者可理解为两者所对应的文本粒度和语音粒度处于同一级别。在一些实施例中,“对应粒度”意味着该粒度下对文本信息和语音信息的切分能够得到一一对应的切分段。也就是说,针对每一对相互对应的第一解码器和第一编码器,文本信息按照该第一编码器对应的文本粒度进行切分后获得的文本切分段与语音信息按照该第一解码器对应的语音粒度进行切分后获得的语音切分段一一对应。
61.在一些实施例中,前述k层第一编码器对应的文本粒度可以包含以下级别粒度中的一个或者多个:篇章级别、段落级别、子句级别、短语级别、词级别和字符级别。其中,字符级别的文本粒度具有最小的文本结构尺度,可以视为文本结构的基本单元,其对应的文本切分段的长度通常为一个字符单元,比如汉语文本中的一个汉字或者英语文本中对应单个发音的一个或多个字母。在一些实施例中,该文本粒度所对应的第一编码器可根据从字符到音素的预测机制来获得表征字符发音和声调的输出编码。在实际应用场景中,字符级别的文本粒度通常对应第1(即i=1)层第一编码器,此时该第一编码器可包含bert模型,其输出编码用于表征字符级别的文本粒度上个文本切分段(如各个字符单元)的特征。
62.进一步的,词级别的文本粒度在文本结构尺度上大于字符级别的文本粒度,其对应的文本切分段通常包含一个或者几个字符单元,并且能够独立构成具有特定语义的词语。在一些实施例中,该文本粒度所对应的第一编码器可根据焦点词预测机制获得用于表征重读词语的输出编码,这里的焦点词通常是指在文本中具有中心含义、需要在语音中通过重读以示强调的词语。
63.进一步的,子句级别和短语级别的文本粒度在文本结构尺度上大于词级别的文本粒度,其对应的文本切分段通常包含一个或者几个词语,但通常并不能构成独立的句子。在一些更为细分的场景中,子句还可视为包含一个或几个短语。在一些实施例中,该文本粒度所对应的第一编码器可根据句式分析或者句法分析机制获得用于表征语气、语调、或者语音中词语时长依赖的输出编码。
64.进一步的,句子级别的文本粒度在文本结构尺度上大于子句级别和短语级别的文本粒度,其对应的文本切分段通常包含一个完整的句子。句子在文本结构上通常具有非常明显的切分点,比如中英文中的句号、分号或者逗号等等。
65.进一步的,段落级别的文本粒度在文本结构尺度上大于句子级别的文本粒度,其对应的文本切分段通常包含一个或者几个句子,即一个段落。段落在文本结构上往往以换行或者较长的空白作为切分点,在一些情况下还辅以首行缩进或者悬挂缩进等格式。在一些实施例中,该文本粒度所对应的第一编码器可根据修辞手法分析或者对段落中心句的预测机制来获得用于表征强调句的输出编码,这里的强调句通常是指在文本中具有中心含义、需要在语音中通过特定的语气进行强调的句子。
66.进一步的,篇章级别的文本粒度在文本结构尺度上大于段落级别的文本粒度,其对应的文本切分段通常包含一个或者几个段落,甚至包含整篇文本。在一些实施例中,该文本粒度所对应的第一编码器可根据文体分析或摘要分析来获得用于表征样本整体语义的输出编码。
67.下面继续考虑前述使用向量表示输入以及输出编码的技术方案,并在图5的基础上参考图6。图6展示了图5中信息流的局部示意图。第一编码器c
lk
对应的文本粒度和第一解码器d
lk
对应的语音粒度处于同一级别。文本信息能够按照该文本粒度进行切分可获得z个文本切分段,相应的,语音信息按照该语音粒度进行切分可获得z个语音切分段,且文本信息中该z个文本切分段和语音信息中该z个语音切分段之间按顺序一一对应。根据前述方案可知,第一编码器c
lk
的输出编码即第一解码器d
lk
的第一输入编码,可表示为o
lk
=(o
lk1
,o
lk2
,

,o
lkz
),其中各元素分别表示z个文本切分段的特征。同时,第一解码器d
lk
的第二输入编码可表示为i
lk
=(i
lk1
,i
lk2
,

,i
lkz
),其中各元素分别表示z个语音切分段的特征。进一步,考虑第一编码器d
lk
的下层第一编码器d
lk
‑1,假设在第一编码器d
lk
‑1对应的语音粒度下对语音信息进行切分可获得z'个语音切分段,那么第一解码器d
lk
的输出编码可表示为p
lk
=(p
lk1
,p
lk2
,

,p
lkz

),其中各元素分别表示z'个语音切分段的特征。可以理解,这里z个语音切分段和z'个语音切分段分别为在不同语音粒度下对该语音信息进行切分所获得的切分段。
68.由于通过m层第一解码器对文本特征进行解码的过程是逐层进行的,步骤s40包含获取第j层第一解码器的输出编码,其中1≤j<m。在一些实施例中,第j层第一解码器d
j
属于前述k层第一解码器,即存在k使得d
lk
=d
j
。同时,与第j层第一解码器d
j
对应的第一编码器为第i层第一编码器c
i
,即存在i使得c
i
=c
lk
。结合图6中的信息流示意图,将第一编码器c
lk
所对应的文本粒度下切分获得的z个文本切分段称为第一文本切分段,其特征分别为o
lk1
至o
lkz
;将第一解码器d
lk
所对应的语音粒度下切分获得的z个语音切分段称为第一语音切分段,其特征分别为i
lk1
至i
lkz
;将第一解码器d
lk
‑1所对应的语音粒度下切分获得的z'个语音切分段称为第二语音切分段,其特征分别为p
lk1
至p
lkz

。则在逐层切分的技术方案下,每个第一语音切分段均由一个或多个第二语音切分段构成,即有z'≥z。此时,对于第j层第一解码器d
j
(或d
lk
)来说,第一输入编码为第一编码器c
i
(或c
lk
)的输出编码即输入文本编码序列o
lk
=(o
lk1
,o
lk2
,

,o
lkz
),第二输入编码为输入语音编码序列i
lk
=(i
lk1
,i
lk2
,

,i
lkz
),输出编码为输出语音编码序列p
lk
=(p
lk1
,p
lk2
,

,p
lkz

)。
69.在一些实施例中,前述获取第j层第一解码器的输出编码可通过多层感知机(multilayer perception,mlp)模型和循环神经网络(recurrent neural network,rnn)模型来实现。通常,mlp模型主要应用于前述m层第一解码器中的最高层(即第m层第一解码器),该层第一解码器往往仅存在第一输入编码而没有第二输入编码(因为不存在更高层解
码器)。同时,该层第一解码器往往对应最大尺度的语音粒度,因此该第一输入编码可能仅存在一个特征元素,比如,用于在篇章级别粒度下表征整篇文本结构特征的单个元素。相比之下,rnn模型主要应用于其他层的第一解码器,这些解码器对应较小尺度的语音粒度,因此其第一输入编码和第二输入编码可能均包含序列形式的文本结构特征或者语音韵律特征。在这种情况下,rnn模型能够很好的捕捉这些序列中的时序相关性,从而准确的体现文本和语音质检的关联性。此处的rnn模型可以通过长短时记忆(long short

term memory,lstm)模型、门循环单元(gated recurrent unit,gru)模型等来实现。
70.考虑到第一语音切分段和第二语音切分段可能具有不同的数量,在获取第j层第一解码器d
j
的输出编码时,可先将该解码器的输入编码和输出编码进行对齐,以便d
j
捕捉输入编码和输出编码之间在元素上的相关性。一些实施例中,这种对齐可通过对长度较小的输入编码进行扩展来实现。此时,前述获取第j层第一解码器的输出编码可包含以下步骤。
71.首先,将输入文本编码序列o
lk
和输出语音编码序列i
lk
分别转换为扩展输入文本编码序列和扩展输出语音编码序列。其中,扩展输入文本编码序列和扩展输出语音编码序列的长度均等于输出语音编码序列的长度。在图6示例的基础上参考图7,在该转换过程中,输入文本编码序列o
lk
中每个文本编码被依序扩展为文本子序列,每个文本子序列的长度等于在语音编码序列i
lk
中、与该文本编码位置对应的语音编码所对应的第一语音切分段所包含的第二语音切分段的数量,且该文本子序列中每个元素与该文本编码相同。比如,图7中文本编码o
lk1
对应语音编码序列i
lk
中的语音编码i
lk1
,此时若i
lk1
所对应的第一语音切分段包含3个第二语音切分段,则将o
lk1
扩展为长度为3的文本子序列(o
lk1
,o
lk1
,o
lk1
)。接下来,文本编码o
lk2
对应语音编码序列i
lk
中的语音编码i
lk2
,此时若i
lk2
所对应的第一语音切分段包含2个第二语音切分段,则将o
lk1
扩展为长度为2的文本子序列(o
lk2
,o
lk2
)。以此类推,若i
lkz
所对应的第一语音切分段包含4个第二语音切分段,则直到将o
lkz
扩展为长度为4的文本子序列(o
lkz
,o
lkz
,o
lkz
,o
lkz
)。此时,所有文本子序列中元素的数量等于第二语音切分段的总数量z',因此将文本子序列按序级联即可获得扩展输入文本编码序列,且其长度为z'。类似的,输入语音编码序列i
lk
中每个语音编码被依序扩展为语音子序列,每个语音子序列的长度等于该语音编码所对应的第一语音切分段所包含的第二语音切分段的数量,且该语音子序列中每个元素与该文本编码相同。如图7所示,转换得到的扩展输入文本编码序列的长度同样为z'。
72.然后,基于扩展输入文本编码序列中的第一个元素(即图7中第一个o
lk1
)和扩展语音编码序列中的第一个元素(即图7中第一个i
lk1
),获得所属输出语音序列中的第一个语音编码(即图7中p
lk1
)。
73.接下来,针对输出语音序列中的其余任何位置的语音编码,基于扩展输入文本编码序列中对应位置的元素、扩展语音编码序列中对应位置的元素、以及输出语音编码序列中该位置之前的所有语音编码,获得该语音编码。依然以图7中所示信息流为例,在上述获得p
lk1
之后,进一步基于第二个o
lk1
、第二个i
lk1
和p
lk1
获得p
lk2
,然后基于第三个o
lk1
、第三个i
lk1
、p
lk1
和p
lk2
获得p
lk3
,然后基于第一个o
lk2
、第一个i
lk2
、p
lk1
至p
lk3
获得p
lk4
,以此类推,直至基于最后一个o
lkz
、最后一个i
lkz
、p
lk1
至p
lk(z
′‑
1)
获得p
lkz

。上述过程本质上是对输出语音编码序列中的各语音编码进行递归预测,若使用rnn模型对序列中各语音编码概率分布进行建模,则语音编码p
lk
的概率密度函数可表示为
[0074][0075]
其中,o

lkl
和i

lkl
分别表示扩展输入文本编码序列和扩展语音编码序列中的第l个元素。
[0076]
图8示出了本技术实施例中另一种语音合成方法的流程图。在一些实施例中,前述语音方法还包括以下步骤:s30、根据该文本信息,获得第1层(即i=1)第一编码器对应的各文本切分段所对应的音素序列。可以理解,这里的音素序列包含一系列音素,且这些音素与第1层第一编码器对应的文本粒度下(通常为字符级别的文本粒度)得到的为文本切分段一一对应。也就是说,可获得每个文本切分段所对应的音素,然后将这些音素按照文本切分段在文本信息中的顺序排列起来,获得该音素序列。可以理解,根据文本切分段获得对应音素的方法有很多种,比如,可以从现有的音素数据库中以文本切分段的文本内容为索引来获得对应的音素。
[0077]
此时,步骤s40可包含以下步骤:
[0078]
s41、调用第一解码模型对所述文本特征进行解码,获得第1层(即j=1)第一解码器的输出编码。
[0079]
s42、根据第1层第一解码器的输出编码和该音素序列,得到该语音信息的声学特征。
[0080]
这里的第1层第一解码器的输出编码反映了语音信息在音素级别上的韵律特征,即反映了该音素应该以何种形式呈现在语音信息中,比如是否重读、需要持续多长时间等等。因此,将该输出编码与音素序列结合起来,即可得到该语音信号的声学特征。
[0081]
s43、根据该声学特征,通过声码器得到该语音信息的波形信号。
[0082]
这里的声码器即将语音编码解码为具体语音波形信号的软件或者硬件工具,由于该声学特征包含了音素级别上的韵律信息,因此经过声码器即可将其转换为带有韵律的语音。
[0083]
以上实施例描述了使用第一解码模型和第一编码模型进行直接将文本信息转换为语音信息的过程,下面将进一步描述获得第一解码模型和第一编码模型的过程。在一些实施例中,前述语音合成方法还进一步包括:步骤s10、对初始第一编码模型和/或初始第一解码模型进行训练,获得第一编码模型和/或第一解码模型。其中,初始第一编码模型通常具有与第一编码模型相似的架构,比如至少包含n层级联的初始第一编码器,该n层初始第一编码器分别与第一编码模型中n层第一编码器对应。同时,对任何1≤i<n,第i 1层初始第一初始编码器的输入编码包含第i层初始第一编码器的输出编码。类似的,初始第一解码模型通常具有与第一解码模型相似的架构,比如至少包含m层级联的初始第一解码器。同时,对任何1≤j<m,第j层初始第一解码器的第二输入编码包含第j 1层初始第一解码器的输出编码。根据实际应用场景,步骤s10可以体现为但不限于以下几种形式:仅对初始第一编码模型进行训练以获得第一编码模型、仅对初始第一解码模型训练以获得第一解码模型、或者对初始第一编码模型和初始第一解码模型两者进行训练,以获得第一编码模型和第一解码模型。
[0084]
下面首先对第一解码模型的训练进行说明。对第一解码模型的训练通常是基于语
音样本集,该语音样本集包含至少一个语音样本。在一些实施例中,对第一解码模型的训练可以采用弱监督环境。比如,每个样本具有对应的文本样本,但并未对该文本样本和语音样本的切分段进行标注。此时,为了利用语音样本所含的更多信息对第一解码模型进行训练,可首先对语音样本进行预处理。图10示出了本技术实施例中又一种语音合成方法的流程图,其中步骤s10可包括以下步骤:
[0085]
s11、对语音样本集中的每个语音样本进行预处理,获得该语音样本的切分信息。其中,切分信息用于指示该语音样本在各层第一编码器对应语音粒度下的语音切分段。
[0086]
这里的切分信息可以有多种表现形式。在一些实施例中,该切分信息可以体现为对应的各语音切分段之间的切分点位置。比如,对于包含多个语音帧的语音样本来说,切分信息可以包含一系列语音帧编号,用来指示这些语音帧为各个语音切分段的头帧或者尾帧。在另一些实施例中,该切分信息还可以体现为语音切分段的长度,对于包含多个语音帧的语音样本来说,切分信息可以包含一系列整数,用来指示按序排列的每个切分段分别含有多少个语音帧。以上仅为切分信息的示例,本技术实施例不限于此。由于切分信息指示了语音切分段,获得切分信息的过程也可以视为是对语音信息进行切分获得各个切分段的过程。
[0087]
在一些实施例中,可利用语音样本所对应的文本来获得上述切分信息。图11示出了本技术实施例中又一种语音合成方法的流程图,其中步骤s11包括以下步骤:
[0088]
s1111、获取该语音样本对应的文本样本。
[0089]
这里的文本样本可以通过多重方式获取。在一些实施例中,语音训练集中的语音样本可以选取本身就具有原始文本的语音,比如将朗读者朗读一段文章的音频作为语音样本,将文章本身的文本作为文本样本。在另一些实施例中,语音训练集中的语音样本可能并不具有原始的对应文本,这时可以利用语音识别来获取其对应的文本样本,比如将演讲人演讲的音频作为语音样本,并且对该音频进行语音识别来获取对应的文本作为文本样本。当然,在一些应用场景下,也可以同时采用上述两种方式来获取同一语音样本集中不同语音样本对应的文本样本。
[0090]
s1112、获得所属文本样本在第一文本粒度下的初始文本切分段。
[0091]
这里的初始文本切分段通常具有较为明显的文本结构特征。比如,第一文本粒度为篇章级别,可以直接识别章节编号来获得初始文本切分段。再比如,第一文本粒度为段落级别,可以直接识别首行缩进或者文本换行等格式来获得初始文本切分段。又比如,第一文本粒度为句子级别,可以直接识别句号、分号和/或逗号来获得初始文本切分段。如此,可以直接基于文本样本本身获得进行较为准确的切分。
[0092]
s1113、利用语音端点检测对该语音样本进行切分,获得该语音样本在第一语音粒度下的初始语音切分段。
[0093]
这里的初始语音切分段通常具有较为明显的时域特征。比如,第一语音粒度为音素级别,可以直接识别音素与音素之间的切换来获得初始语音切分段。在比如,第一语音粒度为子句级别或者短语级别,可以直接识别短语与短语之间的停顿区间来获得初始语音切分段。如此,可以直接基于语音样本本身获得进行较为准确的切分。这里的语音端点检测的具体细节可参考现有语音端点检测技术,比如通过常规的语音活动检测(voice activity detection,vad),在此不做赘述。
[0094]
s1114、利用语音识别获得第一语音粒度下的每个初始语音切分段所对应的预测文本切分段。
[0095]
这里的预测语音切分段是直接对初始语音切分段进行转换得到的文本。语音识别技术的具体细节可参考现有技术,在此不做赘述。
[0096]
需要注意,以上步骤s1112在步骤s1111之后执行,步骤s1114在步骤s1113之后执行,但这里不限定步骤s1111和步骤s1112的组合与步骤s1113和s1114的组合之间的执行顺序。比如,可以先执行其中任何一个组合,也可以同时执行两个组,只要保证步骤s1112和步骤s1114均在步骤s1115之前执行完毕即可。
[0097]
s1115、利用文本对齐算法获得各初始文本切分段与各预测文本切分段之间的第一对应关系。其中,每个初始文本切分段对应一个或多个预测文本切分段。
[0098]
从前述内容可以看出,由于第一语音粒度所对应的结构尺度通常小于第一文本粒度所对应的结构尺度,因此每个预测文本切分段实质上对应了某个初始文本切分段的一个部分。由于预测文本切分段是通过对初始语音切分段进行语音识别获得的,其不一定与初始文本切分段的该部分严格一致,因此这里的文本对齐实质上是一种近似的对齐。也就是说,在第一对应关系下,按照在文本样本中的顺序,使得每个初始文本切分段与其所对应的一个或多个预测文本切分段构成的整体之间的差异最小。
[0099]
s1116、基于该第一对应关系,将各初始语音切分段重组为该语音样本在第二语音粒度下的一个或多个第一重组语音切分段。第二语音粒度大于第一语音粒度,且每个第一重组语音切分段均由一个或多个初始语音切分段构成。
[0100]
由于初始语音切分段与预测文本切分段一一对应,预测文本切分段又通过第一对应关系可近似的重组为初始文本切分段,那么按照第一对应关系同样可以对初始语音切分段进行重组,进而得到与初始文本切分段一一对应的重组语音切分段。显然,第二语音粒度与第一文本粒度属于同一级别的粒度。
[0101]
通过上述步骤s1111至s1116,可以根据语音本身获得粒度较小的初始语音切分段,并结合初始文本切分段获得粒度较大的重组语音切分段。初始语音切分段和重组语音切分段都可以纳入前述切分信息中。同时,由于初始文本切分段与重组语音切分段对应的粒度为同一级别,如果在s1112中选择另一文本粒度作为第一文本粒度,则可以经过s1113至s1116后可以重组出另一语音粒度下的重组语音切分段,从而获得更为丰富的切分信息。
[0102]
以上步骤利用对语音切分段的语音识别以及文本切分段来获取更大粒度的重组语音切分段。在另一些实施例中,额外的或者可替换的,还可以利用对文本的发音预测来获取较小粒度的语音切分段。图12示出了本技术实施例中又一种语音合成方法的流程图,其中步骤s11包括以下步骤:
[0103]
s1121、获取该语音样本对应的文本样本。
[0104]
本步骤的细节请参考前述步骤s1111,这里不再赘述。
[0105]
s1122、利用发音预测将该文本样本中的文本序列转换为音素序列。其中,该文本序列包含该文本样本中依序排列的各文本单元,该音素序列包含依序排列的、分别与各文本单元对应的音素单元。
[0106]
可以理解,这里的发音预测是针对各文本单元的发音预测。这里的文本单元可以视为本文样本中较小粒度下的文本切分段,通常为字符级别,因此可以根据文本结构本身
获取。比如,在中文文本中文本单元可以为单个汉字,也可以为汉字组成的单个词语。在比如,在英文文本中的文本单元可以为单个词,也可以为词中对应单个音素的若干个字母。相应的,音素序列由音素单元构成,每个音素单元可以包含单个音素,也可以包含构成一个词的若干个音素。字符级别的发音预测技术的细节可参考现有技术,这里不做赘述。
[0107]
s1123、利用强制对齐算法获得该音素序列与该语音样本的第二对应关系。
[0108]
与步骤s1115类似,每个音素单元实质上对应了语音样本的一个部分。由于音素单元是通过语音预测从文本单元获得的,其不一定与语音样本的该部分严格一致,因此这里的强制对齐算法实质上是一种近似的语音对齐。也就是说,在第二对应关系下,音素单元按照在音素序列中的顺序与语音中对应粒度下的各个部分一一对应。这里“对应粒度”可以和前述第一语音粒度相同或者不同。
[0109]
s1124、基于该第二对应关系,将该语音样本切分为一个或多个音素语音切分段。其中,每个音素语音切分段对应一个音素单元。
[0110]
可以理解,这里的音素语音切分段即前述语音中的“各个部分”。由于对应音素级别,音素语音切分段可视为对应较小粒度的语音切分段。在一些实施例中,上述步骤s1121至s1124可用于步骤s1113中的语音端点检测,以得到较小粒度的初始语音切分段。
[0111]
由于文本单元、音素单元和音素语音切分段之间相互对应,还可以利用文本单元来对音素语音切分段进行进一步重组来获得更大粒度下的语音切分段。进一步参考图12,步骤s11还可以额外的包括以下步骤:
[0112]
s1125、利用文本分析获得该文本样本在第二文本粒度下的文本切分段。其中,该第二文本粒度下的各文本切分段包含一个或者多个文本单元。
[0113]
这里的第二文本粒度可以与前述第一文本粒度相同或者不同。文本分析即获得预设文本粒度下每个文本切分段与各个文本单元之间对应关系的过程。比如,当文本单元为中文汉字时,文本分析可以为确定文章中的每个章节、每个段落、每个句子、每个子句或者每个词所包含的汉字的过程。也就是说,文本分析是将文本单元重组为预设文本粒度(即第二文本粒度)下每个文本切分段的过程。文本分析技术的细节可参考现有技术,这里不做赘述。
[0114]
s1126、基于各文本单元与该第二文本粒度下的各文本切分段之间的对应关系,将各音素语音切分段重组为该语音样本在第三语音粒度下的一个或多个第二重组语音切分段。其中,每个第二重组语音切分段均由一个或多个音素语音切分段构成。
[0115]
由于文本单元与音素语音切分段相对应,且文本单元可被重组为第二文本粒度下的文本切分段,因此相应的可以将音素语音切分段重组为第二重组语音切分段。显然,考虑到重组过程,第三语音粒度大于音素单元所对应的粒度,即前述“对应粒度”,同时,第三语音粒度可以与前述第二语音粒度相同或者不同。
[0116]
可见,步骤s1125和步骤s1126利用了文本分析来对音素单元进行重组,从而在音素切分段的基础上获得第二重组语音切分段,丰富了语音样本的切分信息。可以理解,如果在步骤s1125选择不同的第二文本粒度,则能够在步骤s1126中获得不同语音粒度(即第三语音粒度)对应的切分信息,进一步丰富语音样本的切分信息。
[0117]
需要注意的是,虽然图12中同时示出了步骤s1121至s1126,但根据实际应用场景(比如不需要第二重组语音切分段时),步骤s1125和s1126也可以略去。在一些实施例中,可
仅使用步骤s1121至s1124来获取音素语音切分段。
[0118]
在经过步骤s11的预处理之后可获得语音样本的切分信息,也即完成对语音样本切分段的自动化标注。接下来即可进行利用这些标注信息对初始第一解码模型进行弱监督环境下的训练。
[0119]
s12、基于语音样本集和该切分信息对初始第一解码模型进行训练,获得第一解码模型。
[0120]
由于此时切分信息指示了对应各层第一解码器(也对应各层初始第一解码器)的语音切分段,可以利用这些不同语音粒度下的语音切分段的特征来对各层第一初始解码器进行逐层训练。
[0121]
考虑到语音样本的音频信号属性,为了能够获得海量训练数据往往不能对样本做过高的质量的要求,这种情况下获取的语音样本中通常会包含较多干扰信息,例如环境噪声、信道噪声和声纹等等。因此,为了能够排除这些干扰信息,可以使用“生成网络

鉴别网络”概率模型的架构来对初始第一解码模型进行训练,比如使用类似于vae模型的网络架构。此时,可构建一个包含初始第一解码模型和与其对应的编码模型的自动编解码网络。为了与前述用于文本编码的初始第一编码模型相区分,该编码模型可称为初始第二编码模型,且至少包含m层级联的初始第二编码器。该m层初始第二编码器分别与所述m层初始第一编码器对应,且对任何1≤j<m,第j 1层初始第二编码器的输入编码包含第j层初始第二编码器的输出编码。可以看出,每层初始第二编码器实质上承担了从小粒度到大粒度逐层进行语音韵律特征提取的功能,因此可包含多层1维卷积层和至少一层池化层,其中1维卷积层可用于等长度的特征提取,池化层可用于执行池化功能,如最大值池化、最小值池化、平均值池化等。
[0122]
在一些实施例中,步骤s21包含以下步骤:
[0123]
s1201、将语音样本集输入自动编解码网络。其中,该自动编解码网络包含前述初始第二编码模型和初始第一解码模型。
[0124]
s1202、对该初始第二编码模型和该初始第一解码模型的参数进行调整,直到所述语音样本集的重构损失符合预设条件。
[0125]
这里对参数进行调整通常是迭代调整,每次调整的依据为基于各语音样本和自动编解码网络所得到的重构损失,该重构损失是用来判断训练是否已完成的依据。通常情况下,重构损失至少用于表征自动编解码网络在对样本进行编码、解码之后所得到的重构样本与原样本之间的差异,越小的重构损失表示自动编码网络对样本的还原效果越好。因此,综合考虑调整效果和计算资源消耗,该预设条件通常被设为:该重构损失小于等于第一预设阈值,或者迭代次数大于等于第二预设阈值。当然,该预设条件也可以有其他的设置,比如预设次数的迭代之内重构损失的下降速度系小于等于第三预设阈值,或者下降幅度小于等于第四预设阈值。本技术实施例对此不做限定。
[0126]
在一些实施例中,前述重构损失可以通过图13所示的信息流示意图进行计算。如图13所示,重构损失的计算可包含以下步骤:
[0127]
首先,调用该初始第二编码器模型对各语音样本进行编码,获得每层初始第二编码器c'
0j
(1≤j≤m)输出的第一分布参数。其中,第一分布参数用于表征第一分布q
φj
,该第一分布q
φj
为各语音样本在初始第二编码器c'
0j
对应的语音粒度下依据前述切分信息进行
切分后所获得的所述语音切分段(即相应的第一解码器d
j
对应的语音粒度下的语音切分段)的特征。可以理解,这里的第一分布参数一方面体现了每层初始第二编码器c'
0j
的编码结果,另一方面也会体现干扰信息的随机分布。
[0128]
其次,针对各语音样本,基于每层初始第二编码器c'
0j
对应的所述第一分布q
φj
进行采样,获得每层初始第二编码器c'
0j
对应的采样编码s
j
。对每个样本来说,本步骤可进行m次采样,分别对应m层初始第二编码器,或者说对应于m个级别的与语音粒度。可以理解,对每个语音粒度来说,该采样类似于在切分该语音样本得到的所有语音切分段的特征上附加一个随机的干扰信息。
[0129]
然后,利用初始第一解码模型对各语音样本的采样编码进行解码。其中,第m层初始第一解码器的第一输入编码包含第m层初始第二编码器对应的采样编码,且对任意1≤j<m,第j层初始第一解码器的第一输入编码包含第j层初始第二编码器对应的采样编码。因此,在解码过程中,除了第m层(图13中最高层)初始第一解码器仅针对第m层初始第二编码器的输出编码进行解码之外,其他层初始第一解码器需要同时针对对应层的采样编码和上一层的输出编码进行解码。也就是说,第一初始解码模型不仅需要按照层级从大粒度向小粒度逐步完成对语音样本的重构,还需要在每层第一解码器处受到采样编码带来的干扰信息的影响。
[0130]
接下来,根据第1层(即j=1)初始第一解码器的输出获得各语音样本对应的重构样本。其中,各语音样本对应的重构样本构成重构样本集。在这里,第1层初始第一解码器与第1层(即i=1)初始第二编码器是对应的。例如,如果输入第1层初始第二编码器的语音样本是音频信号(比如第1层初始第一编码器为用于提取语音特征的wav2vec模型),那么第1层初始第一解码器的输出为重构的音频信号。再例如,如果输入第1层初始第二编码器的语音样本是音频信号的语音特征,那么第1层初始第一解码器的输出为该音频信号的重构语音特征。
[0131]
最后,基于语音样本集和重构样本集计算第一差异,基于所述第一分布和预设目标分布计算第二差异,并基于所述第一差异和第二差异,获得前述重构损失。显然,这里的第一差异反映了训练过程中自动编解码网络对各语音样本的还原程度,第一差异越小说明该网络的重构能力越强。这里的第二差异主要是为了基于预设目标分布来约束干扰信息的随机分布,避免模型为了实现较小的第一差异而自动将该随机分布收敛到单点分布上。如此,最终得到的重构损失既能够体现的自动编解码网络的重构能力,也能较好的反应自动编解码网络对干扰能力的鲁棒性。通常情况下可预设第一分布为特定类型的分布。在一些实施例中,前述第一分布可以为正态分布,相应的,目标分布可以使用标准正态分布。
[0132]
在一些应用场景中,可以使用语音样本集的对数似然值来计算该重构损失,例如:
[0133][0134]
其中,φ和θ分别对应初始第二编码模型和初始第一解码模型的参数,x表示输入初始第二编码模型的语音样本,s表示语音样本对应的各层采样编码,q
φ
(s|x)表示初始第二编码模型得到的采样编码相对语音样本的后验概率,p
θ
(x|s)表示初始第一解码模型得
到的重构样本相对采样编码的后验概率,p
θ
(s)即为目标分布。kl表示计算两个分布之间的kl散度(kullback

leibler divergence)。上述不等式右边为对数似然值的证据下界(evidence lower bound,elbo),elbo中第一项对应第一差异,第二项对应第二差异。可以理解,此时迭代调整的目的即优化该elbo。
[0135]
进一步的,考虑到初始第二编码器模型中的m层级联初始第而编码器,可以得到:
[0136]
q
φ
(s|x)=q
φ
(s
m
,s
m
‑1,

,s2,s1|x)=q
φ1
(s1|x)q
φ2
(s2|a1)

q
φm
(s
m
|s
m
‑1)
[0137]
其中,q
φ1
(s1|x)表示第1层初始第一编码器得到的采样编码相对语音样本的后验概率,q
φj
(s
j
|s
j
‑1)表示第j层初始第二编码器得到的采样编码相对第j

1层初始第二编码器得到的采样编码的后验概率,1<j≤m。
[0138]
从前述过程中可以理解,当重构损失(或基于重构损失进行的迭代计算)满足预设条件时,训练过程即可终止。此时,自动编解码网络中的解码部分即训练好的第一解码模型。
[0139]
下面对第一编码模型的训练进行说明。对第一编码模型的训练通常是基于文本样本集,该文本样本集包含至少一个文本样本。在一些实施例中,对第一解码模型的训练采用无监督环境。比如,直接获取无任何标注的文本作为文本样本。图14示出了本技术实施例中又一种语音合成方法的流程图,其中步骤s10可包括以下步骤:
[0140]
s13、基于文本样本集对初始第一编码模型进行训练,获得所述第一编码模型。
[0141]
对于文本来说,其所包含的干扰信息与音频相比较少,因此可不使用生成

鉴别网络概率模型来对第一编码模型进行整体上的各层同步训练,而是对每层初始第一编码器进行独立训练。需要注意,这里的“独立”是指在训练每层初始第一编码器时无需同时训练其他层初始第一编码器,并不意味着每层初始第一编码器的训练与其他层初始第一编码器的训练毫无关联。由于n层初始第一编码器级联排列,对每层初始第一编码器c
0i
进行训练时仍然需要使用训练好的前一层初始第一编码器c
0(i

1)
的输出编码,1<i≤n。在一些实施例中,步骤s13可包含以下步骤:
[0142]
s1301、将前序信息输入第i层初始第一编码器c
0i
。其中,i=1时所述前序信息为各文本样本的文本序列,i>1时所述前序信息为第i

1层第一编码器c
0(i

1)
的输出编码。
[0143]
s1302、对第i层初始第一编码器c
0i
的参数进行调整,直到所述前序信息的预设损失符合预设条件。
[0144]
与步骤s1202类似,这里对参数进行调整通常是迭代调整,每次调整的依据为基于各文本样本和初始第一编码器c
0i
所得到的预设损失,该预设损失是用来判断训练是否已完成的依据。通常情况下,越小的预设损失表示训练效果越好。因此,综合考虑调整效果和计算资源消耗,该预设条件通常被设为:该预设损失小于等于第一预设阈值,或者迭代次数大于等于第二预设阈值。当然,该预设条件也可以有其他的设置,比如预设次数的迭代之内预设损失的下降速度系小于等于第三预设阈值,或者下降幅度小于等于第四预设阈值。本技术实施例对此不做限定。
[0145]
在一些实施例中,可考虑使用文本的上下文关联性、利用对比学习来构建预设损失。比如,第i层初始第一编码器c
0i
可包含与其对应的特征抽取网络和反向支撑向量提取网络,此时前述预设损失可以通过图15所示的信息流示意图进行计算。清楚起见,图15以第i 1层初始第一编码器c
0(i 1)
为核心进行说明,可以理解,对于第1层初始第一编码器c
01
来说,
仅需要在图15及相关描述的基础上将前序信息o
0i
对应替换为文本样本中的文本序列、将文本序列对应的文本粒度视为0即可。如图15所示,预设损失的计算可包含以下步骤:
[0146]
首先,调用特征抽取网络对前序信息o
0i
=(o
0i1
,o
0i2
,

o
0ix
)进行处理,得到特征编码c
i
=(c
i1
,c
i2
,

c
ix
)。比如,特征抽取网络可以为单向lstm网络或者其他rnn网络,该特征编码c
i
可以为输出编码o
0i
的上下文特征。这里的x为第i层第一编码器c
i
对应的文本粒度下对文本样本进行切割所获得的文本切分段的数量。
[0147]
其次,选取所述特征编码c
i
中至少一个元素c
it
作为锚点,并确定前序信息o
0i
中锚点c
it
对应的元素o
0it
所对应的目标语音切分段。其中,1≤t<x,目标语音切分段所对应的文本粒度大于第i层初始第一编码器c
0i
对应的文本粒度。比如,如果初始第一编码器c
0i
对应的文本粒度为词级别,目标语音切分段可以为子句、句子、段落或者篇章级别的语音粒度下的语音切分段。再比如,如果初始第一编码器c
0i
对应的文本粒度为句子级别,目标语音切分段可以为段落或者篇章级别的语音粒度下的语音切分段。可以理解,元素o
0it
所对应的目标语音切分段即为前述x个语音切分段中的第t个。
[0148]
然后,调用反向支撑向量提取网络,在前序信息o
0i
中从同样对应于该目标语音切分段中的其他元素中选择正样本o
0it
,并从不对应该目标语音切分段中的元素中选择至少一个负样本o
0it

。比如,如果初始第一编码器c
0i
对应的文本粒度为词级别,正样本o
0it
与元素o
0it
可以为位于同一子句、句子、段落或者篇章中的不同词语,而相应的负样本o
0it

为不位于该子句、句子、段落或者篇章中的词语。在比如,如果初始第一编码器c
0i
对应的文本粒度为句子级别,正样本o
0it
与元素o
0it
可以分别对应位于同一段落或者篇章中的不同句子,而相应的负样本o
0it

对应不位于该段落或者篇章中的句子。在一些实施例中,前述特征抽取网络和反向支撑向量提取网络可基于声对比估计(noise contrast estimation,nse)模型构建,此时在输出编码中,正样本o
0it
需要位于锚点c
it
对应的元素o
0it
之后,负样本o
0it

需要位于正样本o
0it
之后,即t

<t<t 。
[0149]
最后,基于锚点、所述正样本和所述负样本计算噪声对比估计(noise contrast estimation,nse),并基于所述噪声对比估计获得预设损失。例如,在对比预测编码(contrast predication coding,cpc)模型中,可以通过计算互信息来获得nse。在一些实施例中,预设损失loss可采用以下公式:
[0150][0151]
其中,e为比例系数,σ表示对所有负样本的相应运算结果进行累加。
[0152]
除了特征抽取网络和反向支撑向量提取网络之外,第i 1层初始第一编码器c
0(i 1)
还可以包含与其对应的输出网络,用于将特征编码c
i
转化为初始第一编码器c
0(i 1)
的输出编码o
0(i 1)
=(o
0(i 1)1
,o
0(i 1)2
,

o
0(i 1)x

),其中x'为第i 1层第一编码器c
(i 1)
对应的文本粒度下对文本样本进行切割所获得的文本切分段的数量。考虑到x'<x,该输出网络可至少包含池化层,用于对特征编码c
i
进行池化处理,比如最大值池化、最小值池化、或平均值池化等。
[0153]
下面对第一编码模型和第一解码模型的同步训练进行说明。与前述两种方式类似,对第一编码模型的训练基于包含至少一个文本样本的文本样本集,对第一解码模型的
训练基于至少一个语音样本的语音样本集,且文本样本和语音样本之间一一对应。在一些实施例中,前述同步训练可以视为有监督环境下的训练,即直接使用文本样本对应的语音样本作为该文本样本的标注。图16示出了本技术实施例中又一种语音合成方法的流程图,其中步骤s10可包括以下步骤:
[0154]
s14、基于文本样本集和语音样本集对初始第一编码模型和初始第一解码模型进行联合训练,获得第一编码模型和第一解码模型。
[0155]
在一些实施例中,步骤s14可包含以下步骤:
[0156]
s1401、将所述文本样本集输入所述初始第一编码模型。其中,各文本样本经所述初始第一编码模型处理后得到中间文本特征,所述中间文本特征经所述初始第一解码模型处理后得到预测语音样本,各文本样本的预测语音样本构成预测语音样本集。
[0157]
这里从文本样本得到预测语音样本的过程类似于前述根据文本信息获得语音信息的过程,其中的文本样本的中间文本特征对应于文本信息的文本特征。据此,步骤s1401的细节可参考前述步骤s20和s40,这里不再赘述。
[0158]
s1402、调整初始第一编码模型和初始第一解码模型的参数,直到语音样本集和所述预测语音样本集之间的差异符合预设条件。
[0159]
与步骤s1202类似,这里对参数进行调整通常是迭代调整,每次调整的依据为基于各文本样本、对应的语音样本、以及初始第一编码模型和初始第一解码模型所得到的差异。该差异是用来判断当前第一编码模型和第一解码模型能否准确得到文本样本对应标注(即对应语音样本)的依据。通常情况下,越小的差异表示预测标注的效果越好。因此,综合考虑调整效果和计算资源消耗,该预设条件通常被设为:该差异小于等于第一预设阈值,或者迭代次数大于等于第二预设阈值。当然,该预设条件也可以有其他的设置,比如预设次数的迭代之内该差异的下降速度系小于等于第三预设阈值,或者下降幅度小于等于第四预设阈值。本技术实施例对此不做限定。
[0160]
由于上述训练过程使用的是相互对应的文本样本和语音样本,即“文本—语音”样本对。因此,前述语音合成方法在实际应用中所得到的语音信息和文本信息也可以构成新的“文本—语音”样本对加入到训练集中。在一些实施例中,在步骤s40之后,前述语音合成方法还包括以下步骤:
[0161]
s50、将该文本信息加入文本样本集,将该语音信息加入语音样本集。
[0162]
如此,随着语音合成方法的应用可以获得越来越丰富的有标注样本,从而在其他应用场景中训练出更加准确的第一编码模型和第一解码模型。
[0163]
根据本技术实施例所提供的语音合成方法,首先调用第一编码模型对文本信息进行编码得到文本特征,然后再调用第一解码模型基于所述文本特征进行解码,得到语音信息。其中,该第一编码模型和该第一解码模型分别至少包含级联的n层第一编码器和级联的m层第一解码器。对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码,对任何1≤j<m,第j层第一解码器的输入编码包含第j 1层第一解码器的输出编码,其中i、j、m、n均为正整数。该文本特征包含所述n层第一编码器中至少一个的输出编码,且所述m层解码器中至少一个的输入编码从该文本特征中获取。通过该技术方案,文本信息中的多层次结构信息被级联的第一编码器逐层提取出来,再通过级联的第一解码器逐层还原为各个层次的语音韵律特征,从而使得根据这些语音韵律特征生成的语音信息能
够准确反映对应文本信息中的多层结构,从而为用户提供更加富有节奏变化、更贴近真实人声韵律的合成语音。
[0164]
本技术实施例的第二方面提供了一种语音合成装置,该语音合成装置可用于实现前述语音合成方法。图17示出了本技术实施例中一种语音合成装置的结构示意图,其中语音合成装置可包含编码模块1702和解码模块1704。
[0165]
编码模块1702用于调用第一编码模型对文本信息进行编码,得到文本特征。其中,该第一编码模型至少包含级联的n层第一编码器,该文本特征包含n层第一编码器中至少一个的输出编码。对任何1≤i<n,第i 1层第一编码器的输入编码包含第i层编码器第一编码器的输出编码。
[0166]
解码模块1704用于调用第一解码模型基于所述文本特征进行解码,得到语音信息。其中,该第一解码模型至少包含级联的m层解码器,所述m层解码器中至少一个的第一输入编码从该文本特征中获取。对任何1≤j<m,第j层第一解码器的第二输入编码包含第j 1层第一解码器的输出编码。
[0167]
其中,i、j、m、n均为正整数。
[0168]
在一些实施例中,对每层第一编码器,文本信息能够按照该第一编码器的对应的文本粒度进行切分以获得至少一个文本切分段,且该层第一编码器的输出编码用于表征各文本切分段的特征。而且,对每层第一解码器,该语音信息能够按照该第一解码器对应的语音粒度进行切分以获得至少一个语音切分段,且该层第一解码器的第二输入编码用于表征各语音切分段的特征。
[0169]
在一些实施例中,针对任何1≤i<n,第i层第一编码器对应的文本粒度g
i
小于第i 1层第一编码器对应的文本粒度g
i 1
,且文本粒度g
i
下获得的各文本切分段均由一个或多个文本粒度g
i 1
下获得的文本切分段构成。而且,针对任何1≤j<m,第j层第一解码器的对应的语音粒度g
j
小于第j 1层第一解码器对应的语音粒度g
j 1
,且语音粒度g
j
下的各语音切分段均由一个或多个语音粒度g
j 1
下的语音切分段构成。
[0170]
在一些实施例中,该n层第一编码器中的k层第一编码器与该m层第一解码器中的k层第一解码器一一对应,而且该k层第一解码器中的每层第一解码器的所述第一输入编码包含与其对应的第一编码器的输出编码。其中k为正整数。
[0171]
在一些实施例中,对于k对相互对应的第一解码器和第一编码器中的每一对,文本信息能够按照该第一编码器对应的文本粒度进行切分以获得的文本切分段与语音信息能够按照该第一解码器对应的语音粒度进行切分以获得的语音切分段且一一对应。
[0172]
在一些实施例中,该k层第一解码器中最后一层第一解码器基于多层感知机模型,且其余第一解码器中的至少一个基于自回归的神经网络模型。
[0173]
在一些实施例中,前述解码模块具体用于获取第j层第一解码器的所述输出编码。其中,第i层第一编码器和第j层第一解码器分别属于该k层第一编码器和该k层第一解码器、且相互对应,第i层第一编码器的输出编码为用于表征各第一文本切分段的特征的输入文本编码序列,第j层第一解码器的第二输入编码为用于表征各第一语音切分段的特征的输入语音编码序列,第j层第一解码器的输出编码为用于表征各第二语音切分段的特征的输出语音编码序列。按照所述第i层第一编码器所对应的文本粒度切割文本信息获得各第一文本切分段,按照所述第j层第一编码器所对应的语音粒度切割文本信息获得各第一语
音切分段,且每个第一语音切分段均由一个或多个第二语音切分段构成。
[0174]
在一些实施例中,前述解码模块包括转换子模块、第一获取子模块和第二获取子模块。
[0175]
转换子模块用于将输入文本编码序列和输出语音编码序列分别转换为扩展输入文本编码序列和扩展输入语音编码序列。其中,扩展输入文本编码序列和扩展输入语音编码序列的长度等于输出语音编码序列的长度。在以上转换过程中,输入文本编码序列中每个文本编码依序分别扩展为扩展文本编码序列中的文本子序列,每个文本子序列的长度等于语音编码序列中、该文本编码对应位置的语音编码对应的第一语音切分段所包含的第二语音切分段的数量,且该文本子序列中每个元素与该文本编码相同。另外,输入语音编码序列中每个语音编码依序分别扩展为扩展语音编码序列中的语音子序列,每个语音子序列的长度等于该语音编码对应的第一语音切分段所包含的第二语音切分段的数量,且该语音子序列中每个元素与该语音编码相同。
[0176]
第一获取模块用于基于扩展输入文本编码序列中第一个元素和扩展语音编码序列中的第一个元素,获得输出语音编码序列中的第一个语音编码。
[0177]
针对输出语音编码序列中其余任何位置的语音编码,第二获取模块用于基于扩展输入文本编码序列中对应位置的元素、扩展语音编码序列中对应位置的元素、以及输出语音编码序列中该位置之前的所有语音编码,获得该输出语音编码。
[0178]
在一些实施例中,所述k层第一编码器对应的文本粒度分别为篇章级别、段落级别、子句级别、短语级别、词级别和字符级别中的一个或多个。
[0179]
在一些实施例中,字符级别的文本粒度所对应的第一编码器基于音素预测获得用于表征字符发音和声调的输出编码,词级别的文本粒度所对应的第一编码器基于焦点词预测获得用于表征重读词语的输出编码,子句级别的文本粒度所对应的第一编码器基于句式分析和句法分析获得用于表征语气、语调、词语之间时长依赖的输出编码,段落编码器基于修辞手法分析和段落中心句预测获得用于表征段落中强调句的输出编码,且篇章级别的文本粒度所对应的第一编码器基于文体分析和摘要分析获得用于表征文本整体语义的输出编码。
[0180]
在一些实施例中,第1层(即i=1)第一编码器包含基于bert模型,其输出编码用于表征该字符级别的文本粒度下各文本切分段的特征。
[0181]
在一些实施例中,前述语音合成装置还包括底层音素模块,用于根据所述文本信息,获得第1层第一编码器对应的各文本切分段所对应的音素序列。进一步的,前述解码模块1704包含底层解码子模块、声学特征子模块和波形生成子模块。
[0182]
底层解码子模块用于调用第一解码模型对文本特征进行解码,获得第1层(即j=1)第一解码器的输出编码。
[0183]
声学特征子模块用于根据第1层第一解码器的输出编码和该音素序列,得到语音信息的声学特征。
[0184]
波形生成子模块用于根据所述声学特征,通过声码器得到语音信息的波形信号。
[0185]
在一些实施例中,如图18所示,前述语音合成装置还包含训练模块1701,用于对初始第一编码模型和/或初始第一解码模型进行训练,获得第一编码模型和/或第一解码模型。
[0186]
在一些实施例中,训练模块1701包含预处理子模块和训练子模块。
[0187]
预处理子模块用于对语音样本集中的每个语音样本进行预处理,获得该语音样本的切分信息。其中,切分信息用于指示该语音样本在各层第一解码器对应语音粒度下的语音切分段。该语音样本集包含至少一个语音样本,初始第一解码模型至少包含分别与该m层第一解码器对应的m层级联的初始第一解码器。对任何1≤j<m,第j层初始第一解码器的第二输入编码包含第j 1层初始第一解码器的输出编码。
[0188]
训练子模块用于基于该语音样本集和该切分信息对初始第一解码模型进行训练,获得第一解码模型。
[0189]
在一些实施例中,上述对初始第一解码模型的训练为弱监督环境下的训练。
[0190]
在一些实施例中,预处理子模块包含文本获取单元、文本切分单元、第一语音切分单元、语音识别单元、文本对齐单元和第一语音重组单元。
[0191]
文本获取单元用于获取该语音样本所对应的文本样本。
[0192]
文本切分单元用于获得该文本样本在第一文本粒度下的初始文本切分段。
[0193]
第一语音切分单元用于利用语音端点检测对该语音样本进行切分,获得该语音样本在第一语音粒度下的初始语音切分段。
[0194]
语音识别单元用于利用语音识别获得该第一语音粒度下的每个初始语音切分段所对应的预测文本切分段。
[0195]
文本对齐单元用于利用文本对齐算法获得各文本切分段与各预测文本切分段之间的第一对应关系。其中,每个初始文本切分段对应一个或多个预测文本切分段。
[0196]
第一语音重组单元用于基于所述第一对应关系,将各初始语音切分段重组为该语音样本在第二语音粒度下的一个或多个第一重组语音切分段。其中,该第二语音粒度大于该第一语音粒度,每个第一重组语音切分段均由一个或多个初始语音切分段构成。
[0197]
在一些实施例中,文本获取单元具体用于对该语音样本进行对语音识别以获取该文本样本。
[0198]
在一些实施例中,预处理子模块包含文本获取单元、发音预测单元、语音对齐单元和第二语音切分单元。
[0199]
文本获取单元用于获取该语音样本所对应的文本样本。
[0200]
发音预测单元用于利用发音预测将该文本样本中的文本序列转换为音素序列。其中,该文本序列包含该文本样本中依序排列的各文本单元,该音素序列包含依序排列的、分别与各文本单元对应的音素单元。
[0201]
语音对齐单元用于利用强制对齐算法获得该音素序列与该语音样本的第二对应关系。
[0202]
第二语音切分单元用于基于该第二对应关系,将该语音样本切分为一个或多个音素语音切分段。其中,每个音素语音切分段对应一个音素单元。
[0203]
在一些实施例中,预处理子模块还包含文本分析单元和第二语音重组单元。
[0204]
文本分析单元用于利用文本分析获得所述文本样本在第二文本粒度下的文本切分段。其中,该第二文本粒度下的各文本切分段均由一个或多个所述文本单元构成。
[0205]
第二语音重组单元用于基于各文本单元与该第二文本粒度下的各文本切分段的对应关系,将各音素语音切分段重组为该语音样本在第三语音粒度下的一个或多个第二重
组语音切分段。其中,每个第二重组语音切分段均由一个或多个音素语音切分段构成。
[0206]
在一些实施例中,前述训练子模块包含第一输入单元和第一调整单元。
[0207]
第一输入单元用于将该语音样本集输入自动编解码网络。其中,该自动编解码网络包含初始第二编码模型和该初始第一解码模型,该初始第二编码模型至少包含分别与该m层初始第一编码器对应的m层级联的初始第二编码器。对任何1≤j<m,第j 1层初始第二编码器的输入编码包含第j层初始第二编码器的输出编码。
[0208]
第一调整单元用于对该初始第二编码模型和该初始第一解码模型的参数进行调整,直到该语音样本集的重构损失符合预设条件。
[0209]
在一些实施例中,该重构损失的计算通过第一计算单元执行。该第一计算单元用于:调用该初始第二编码器模型对各语音样本进行编码,获得每层初始第二编码器输出的第一分布参数,其中,该第一分布参数用于表征各语音样本在该层初始第二编码器对应的语音粒度下依据该切分信息进行切分后所获得的语音切分段的特征的第一分布;针对各语音样本,基于每层初始第二编码器对应的该第一分布进行采样,获得每层初始第二编码器对应的采样编码;调用该初始第一解码模型对各语音样本的采样编码进行解码,其中,第m层初始第一解码器的第一输入编码包含第m层初始第二编码器对应的采样编码,且对任意1≤j<m,第j层初始第一解码器的第一输入编码包含第j层初始第二编码器对应的采样编码;根据第1层(即j=1)初始第一解码器的输出获得各语音样本对应的重构样本,其中,各语音样本对应的重构样本构成重构样本集;基于该语音样本集和该重构样本集,计算第一差异;基于该第一分布和预设目标分布,计算第二差异;以及,基于该第一差异和该第二差异,获得重构损失。
[0210]
在一些实施例中,该预设条件为该重构损失小于等于第一预设阈值,或者上述调整的迭代次数到达第二预设阈值。
[0211]
在一些实施例中,该第一分布属于正态分布,该目标分布为标准正态分布。
[0212]
在一些实施例中,每层初始第二编码器包含池化层和多层1维卷积层。
[0213]
在一些实施例中,前述训练模块1701具体用于基于文本样本集对初始第一编码模型进行训练,获得第一编码模型。其中,该文本样本集包含至少一个文本样本,该初始第一编码模型至少包含分别与所述n层第一编码器其对应的n层级联的初始第一编码器。对任何1≤i<n,第i 1层初始第一初始编码器的输入编码包含第i层初始第一编码器的输出编码。
[0214]
在一些实施例中,上述对该初始第一编码器的训练为无监督环境下的训练。
[0215]
在一些实施例中,前述训练模块1701包含第二输入单元和第二调整单元。
[0216]
第二输入单元用于将前序信息输入第i层初始第一编码器。其中,i=1时该前序信息为各文本样本中的文本序列,i>1时该前序信息为第i

1层第一编码器的输出编码。
[0217]
第二调整单元用于对第i层初始第一编码器的参数进行调整,直到该前序信息的预设损失符合预设条件。
[0218]
在一些实施例中,该重构损失的计算通过第二计算单元执行。该第二单元用于:调用第i层初始第一编码器对应的特征抽取网络对该前序信息进行处理,得到特征编码;选取该特征编码中至少一个元素作为锚点;确定该前序信息中、该锚点对应的元素所对应的目标语音切分段,其中,该目标语音切分段所对应的文本粒度大于该前序信息对应的文本粒度;调用第i层初始第一编码器对应的反向支撑向量提取网络,在该前序信息中从对应该目
标语音切分段中的其他元素中选择正样本、并从不对应该目标语音切分段中的元素中选择至少一个负样本;基于该锚点、该正样本和该负样本,计算噪声对比估计;以及,基于该噪声对比估计,获得预设损失。
[0219]
在一些实施例中,该预设条件为该预设损失小于等于第一预设阈值,或者上述调整的迭代次数到达第二预设阈值。
[0220]
在一些实施例中,该特征提取网络和该反向支撑向量提取网络基于对比预测编码模型。而且,在所述输出编码中,该正样本位于该锚点对应的元素之后,该至少一个负样本位于该正样本之后。
[0221]
在一些实施例中,前述训练模块1701具体用于基于文本样本集和语音样本集对初始第一编码器和初始第一解码器进行联合训练,获得第一编码模型和第一解码模型。其中,该文本样本集包含至少一个文本样本,该语音样本集包含至少一个语音样本,该至少一个文本样本和该至少一个语音样本之间一一对应。该初始第一编码模型至少包含分别与该n层第一编码器对应的n层级联的初始第一编码器,且对任何1≤i<n,第i 1层初始第一解码器的输入编码包含i层初始第一编码器的输出编码。该初始第一解码模型至少包含分别与该m层第一解码器对应的m层级联的初始第一解码器,且对任何1≤j<m,第j层初始第一解码器的第二输入编码包含j 1层初始第一解码器的输出编码。
[0222]
在一些实施例中,前述训练模块1701包含第三输入单元和第三调整单元。
[0223]
第三输入单元用于将该文本样本集输入该初始第一编码模型。其中,各文本样本经该初始第一编码模型处理后得到中间文本特征,该中间文本特征经该初始第一解码模型处理后得到预测语音样本,各文本样本的预测语音样本构成预测语音样本集。
[0224]
第三调整单元用于调整该初始第一编码器和该初始第一解码器的参数,直到该语音样本集和该预测语音样本集之间的差异符合预设条件。
[0225]
在一些实施例中,该预设条件为该差异小于等于第一预设阈值,或者该调整的迭代次数到达第二预设阈值。
[0226]
在一些实施例中,前述语音合成装置还包含样本补充模块,用于在解码模块调用该第一解码模型对该文本特征进行解码之后,将该文本信息加入该文本样本集,并且将该语音信息加入该语音样本集。
[0227]
本技术实施例提供的语音合成装置可实现与前述语音合成方法相同的技术效果,具体细节可参考前述方法实施例,这里不再赘述。
[0228]
本技术实施例的第三方面提供了一种电子设备,该电子设备可用于实现前述语音合成方法。在一些实施例中,该电子设备包含处理器和存储器。其中,该存储器存储有指令,且该指令被该处理器执行时使得所述电子设备执行前述任一语音合成方法。
[0229]
本技术实施例的第四方面提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机指令,且该计算机指令被处理器执行时使得计算机执行前述任一语音合成方法。
[0230]
所述计算机可读存储介质包含程序命令、数据文件、数据结构等、或它们的组合。被记录在计算机可读存储介质中的程序可被设计或被配置以实现本发明的方法。计算机可读存储介质包括用于存储并执行程序命令的硬件系统。硬件系统的示例有磁介质(诸如硬盘、软盘、磁带)、光介质(诸如cd

rom和dvd)、磁光介质(诸如软光盘、rom、ram、闪存等)。程
序包括由编译器编译的汇编语言代码或机器代码和由解释器解释的更高级语言代码。硬件系统可利用至少一个软件模块来实施以符合本发明。
[0231]
本技术实施例的第五方面提供了一种计算机程序产品。该计算机程序产品包含计算机指令,且该计算机指令在计算机上运行时使得该计算机执行前述任一语音合成方法。
[0232]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法相关部分说明即可。
[0233]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0234]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性的描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0235]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献