1.本公开涉及计算机应用技术领域,尤其涉及人工智能技术领域下的语音、深度学习等技术。
背景技术:2.语音合成是将输入的文本合成自然可懂的语音的技术。语音合成的流畅度、表现力和音质直接影响了用户体验。然而,在语音合成过程中,常常会因为预测过程中出现的偏差,导致最终合成的语音在发音上存在一些误差,效果有待提高。
技术实现要素:3.有鉴于此,本公开提供了一种语音处理方法、装置、设备和计算机存储介质,以便于提高语音合成后的发音效果。
4.根据本公开的第一方面,提供了一种语音处理方法,包括:
5.获取针对文本得到的声码器特征;
6.依据所述声码器特征中的能量特征和/或语音频谱特征,对所述声码器特征中的清浊音uv特征进行取值纠正;
7.将纠正后的声码器特征提供给声码器,以便得到合成的语音。
8.根据本公开的第二方面,提供了一种语音处理装置,包括:
9.特征获取单元,用于获取针对文本得到的声码器特征;
10.uv纠正单元,用于依据所述声码器特征中的能量特征和/或语音频谱特征,对所述声码器特征中的uv特征进行取值纠正;
11.特征发送单元,用于将纠正后的声码器特征提供给声码器,以便得到合成的语音。
12.根据本公开的第三方面,提供了一种电子设备,包括:
13.至少一个处理器;以及
14.与所述至少一个处理器通信连接的存储器;其中,
15.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
16.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
17.根据本公开的第五方面,一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
18.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
19.附图用于更好地理解本方案,不构成对本公开的限定。其中:
20.图1是本公开所涉及的基本架构的示意图;
21.图2是本公开实施例提供的语音处理方法的流程图;
22.图3为本公开实施例提供的uv纠正的方法流程图;
23.图4为本公开实施例提供的语音合成方法的流程图;
24.图5a和图5b是本公开实施例提供的韵律预测模型的结构示意图;
25.图6为本公开实施例提供的语音合成模型的结构示意图;
26.图7为本公开实施例提供的后预测网络的结构示意图;
27.图8a为本公开实施例提供的第一种语音合成模型的训练方法流程图;
28.图8b为本公开实施例提供的第一种语音合成模型的训练架构示意图;
29.图9a为本公开实施例提供的第二种语音合成模型的训练方法流程图;
30.图9b为本公开实施例提供的第二种语音合成模型的训练架构示意图;
31.图9c为本公开实施例提供的韵律提取模型的结构示意图;
32.图10a为本公开实施例提供的第三种语音合成模型的训练方法流程图;
33.图10b为本公开实施例提供的第三种语音合成模型的训练架构示意图;
34.图11a为本公开实施例提供的第四种语音合成模型的训练方法流程图;
35.图11b为本公开实施例提供的第四种语音合成模型的训练架构示意图;
36.图12为本公开实施例提供的语音处理装置的结构示意图;
37.图13为公开实施例提供的语音合成装置的结构示意图;
38.图14是用来实现本公开实施例的电子设备的框图。
具体实施方式
39.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
40.为了方便对本公开所提供技术方案的理解,首先对本公开所涉及的基恩架构进行简单介绍。如图1所示,本公开所涉及的基本架构包括语音合成装置、后处理装置和声码器。
41.其中语音合成装置用以对待合成的文本进行处理,转化为声码器特征输出。后处理装置为本公开实施例中语音处理方法的主要执行主体,用以对语音合成装置输出的声码器特征进行优化处理后,输出给声码器。由声码器利用声码器特征得到最终合成的语音。
42.图2为本公开实施例提供的语音处理方法的流程图,该方法的执行主体为语音处理装置,该语音处理装置设置于图1所示架构中的后处理装置。该装置可以是位于用户终端的应用,或者还可以是位于用于终端的应用中的插件或软件开发工具包(software development kit,sdk)等功能单元,或者,还可以位于服务器端,本公开对此不加以限制。如图2中所示,该方法可以包括以下步骤:
43.在201中,获取针对文本得到的声码器特征。
44.在202中,依据声码器特征中的能量特征和/或语音频谱特征,对声码器特征中的uv特征进行取值纠正。
45.在203中,将纠正后的声码器特征提供给声码器,以便得到合成的语音。
46.由以上技术方案可以看出,依据声码器特征中的能量特征和/或语音频谱特征,对声码器特征中的uv特征进行取值纠正,从而降低声码器特征的偏差所带来的发音误差,提高语音合成的效果。
47.下面结合实施例对上述各步骤进行详细描述。首先在步骤201中,获取的声码器特征可以来源于图1中所示的语音合成装置,语音合成装置利用语音合成模型从输入的文本中获取声码器特征。在本公开中可以采用任意形式的语音合成模型来获取声码器特征,后续将提供优选的实施方式进行详细描述。
48.上述的声码器特征可以包括多种类型的信息,具体可以体现为多维度的信息。其中可以包括但不限于能量特征、sp(spectral envelope,谱包络)、cap(coarse aperiodic parameter,粗非周期参数)特征、lf0(logarithmic fundamental frequency,对数基音频率)特征、uv特征。在本公开中主要实现对uv特征的纠正。
49.uv特征即unvoiced(清音)和voiced(浊音)特征。在声码器特征中,每一帧都具备一个uv特征的取值来表示该帧音频的发音特性。对于一个文本而言,其对应的是一个音频序列,通常由多于一帧构成,因此在声码器特征中uv特征体现为一个序列,即uv特征序列。uv特征序列包括各帧的uv特征值。
50.uv特征值包括0和1,0代表unvoiced,1代表voiced。
51.由于之前语音合成模型在进行声码器特征的预测时,对于uv特征是依据分类概率进行的预测,可能存在一定的误差,这些误差将导致元音和辅音的分布不符合发音规律,语音合成的效果差。
52.下面结合实施例对上述步骤202进行详细描述。
53.在本步骤中,可以依据声码器特征中的能量特征对声码器特征中的uv特征序列进行值变化边界的纠正。也可以依据语音频谱特征对uv特征序列的各值分别进行判断和纠正。也可以既依据声码器特征中的能量特征对声码器特征中的uv特征序列进行值变化边界的纠正,又依据语音频谱特征对uv特征序列的各值分别进行判断和纠正。
54.下面通过一个优选的实施方式以采用上述两种方式为例进行描述。如图3中所示,上述步骤202可以具体包括以下步骤:
55.在2021中,逐一对声码器特征中uv特征序列的值变化边界上取值为1的帧进行判断,若该帧对应的能量特征值小于0,则将该帧的uv特征值纠正为0。
56.上面已经提及,在声码器特征中包含有能量特征,在本步骤中首先利用声码器中的能量特征对uv特征序列的值变化边界上取值为1的帧进行判断。
57.所谓值变化边界上取值为1的帧指的是,在uv特征序列中,当存在从0和1相邻,则认为是值变化边界,那么将相邻的0和1中取值为1的帧进行判断。
58.取值为1的帧意味着该帧被语音合成模型识别为浊音。浊音是指发音时声带震动的音。清音是指发音时声带不震动的音。通常情况下,浊音的发音听起来比清音响亮,清音在声码器特征中对应的能量特征取值通常小于0,因此,若uv特征序列的值变化边界上取值为1的帧对应的能量特征值小于0,则该帧很可能是清音,将其uv特征值纠正为0。若对应的能量特征值大于或等于0,则该帧的uv特征值保持不变。
59.在本步骤中可以对uv特征序列中所有值边界上取值为1的帧都进行判断。若进行uv特征值纠正后产生新的值边界,则也需要对新的值边界上取值为1的帧进行判断。例如,
原本uv特征序列中有一个片段为:
“…
0,1,1
…”
。对其中0,1边界上的1进行判断将其纠正为0后,该0值与后面的值1又构成了新的值边界,则继续对后面的值1对应的帧进行上述判断。
60.在2022中,逐一对uv特征序列的值变化边界上取值为0的帧进行判断,若该帧对应的能量特征值与相邻取值为1的帧所对应能量之间的比值大于预设的比例阈值,则将该取值为0的帧的uv特征值纠正为1。
61.取值为0的帧意味着该帧被语音合成模型识别为清音,对于不同用户而言,在发音时的能量值可能不同。但在发清音和浊音时还是有一定区分的。如果在值变化边界上取值为0的帧与取值为1的帧所对应能量之间的比值大于预设的比例阈值(例如50%),也就是说,该帧与其相邻的浊音相差不大,则认为该帧很可能也应该是浊音,因此将该帧的uv特征值纠正为1。否则保持该帧的uv特征值保持不变。
62.在本步骤中可以对uv特征序列中所有值边界上取值为0的帧都进行判断。若进行uv特征值纠正后产生新的值边界,则也需要对新的值边界上取值为0的帧进行判断。例如,原本uv特征序列中有一个片段为:
“…
1,0,0
…”
。对其中1,0边界上的0进行判断将其纠正为1后,该1值与后面的值0又构成了新的值边界,则继续对后面的值0对应的帧进行上述判断。在本步骤中可以设置一个n作为参数,在一个值边界处向前或向后最多连续判断n帧,即便在n帧后仍产生了新的值边界,也不会继续做判断和纠正,n为预设的正整数,例如取8。根据不同人的发音习惯不同,可以对于不同说话人取不同的n值。
63.在2023中,逐帧进行判断,若该帧语音频谱特征前m维的最大值小于预设第一阈值,则将该帧的uv特征值设置为1;若该帧语音频谱特征前m维的最大值大于预设第二阈值,则将该帧的uv特征值设置为0。
64.其中,m为预设的正整数,例如取20。第二阈值大于第一阈值,例如第一阈值取2,第二阈值取2.5。
65.语音合成模型除了输出声码器特征之外,还可以输出文本对应的声学特征,包括语音频谱特征。其中较为通用和常见的语音频谱特征为mel(梅尔)谱。
66.以mel谱为例,mel谱的取值在0到4之间。经过观察和研究后发现,浊音对应的mel谱的前20维的取值比较大,清音对应的mel谱的前20维的取值比较小。因此,若mel谱的前20维的最大值小于2,则该帧很可能是浊音,因此将该帧的uv特征值设置为1。若该帧的uv特征值本身就是1,则保持不变,若是0,则将其纠正为1。若mel谱的前20维的最大值大于2.5,则该帧很可能是清音,因此将该帧的uv特征值设置为0。
67.若mel谱的前20维的最大值大于或等于2,且小于或等于2.5,则该帧的uv特征值保持不变。
68.上述图3所示实施例中采用的执行顺序为优选的执行顺序,能够达到最优的uv纠正效果。但本公开并不限于上述执行步骤和执行顺序,如果仅执行其中部分步骤或全部步骤,或者采用其他执行顺序同样在本公开的保护范围内。
69.更进一步地,在一些情况下声码器的合成能力高于语音合成模型输出的声码器特征,例如语音合成模块输出帧移为10ms的声码器特征,但声码器合成5ms特征的音质高于10ms特征,因此可以按照预设的差值倍数,对上述步骤101得到的声码器特征进行线性插值处理。其中差值倍数可以根据声码器的合成能力进行预先设置,在上面的例子中可以设置差值倍数为2倍。通过这种方式可以减少语音合成模块的计算量,通过后处理的线性插值实
现10ms的语音合成模块也能够达到5ms的语音合成模块相接近的效果。
70.另外,通常在语音合成模型训练时,为了降低模型训练难度和准确性,在训练时会对一些类型的特征进行归一化处理。这些归一化可以是针对不同说话人或不同播报风格的。但在实际语音合成过程中,语音合成模型输出的归一化的声码器特征会对最终声码器合成的语音效果产生影响。因此作为优选的实施方式,在步骤202之后,可以进一步对纠正后的声码器特征中预设类型的特征序列进行逆归一化处理。其中,逆归一化处理与语音合成模型训练过程中对预设类型的特征序列进行的归一化相对应。
71.除此之外,在归一化过程中还可以适当调整方差和均值,从而提高高频能量和基频的效果。其中调整方差可以使得最终合成的语音更具穿透力,调整均值可以使得最终合成的语音更加响亮清晰。
72.经过上述处理后的声码器特征提供给声码器进行语音合成后,合成的语音质量能够得到很大提高。在上述步骤203中采用的声码器类型本公开并不加以限制,可以采用诸如world声码器等。
73.下面结合实施例对图1中所示语音合成装置的实现进行详细描述。
74.图4为本公开实施例提供的语音合成方法的流程图,该方法的执行主体是图1中所示的语音合成装置。该装置可以是位于用户终端的应用,或者还可以是位于用于终端的应用中的插件或软件开发工具包(software development kit,sdk)等功能单元,或者,还可以位于服务器端,本公开对此不加以限制。如图4中所示,该方法可以包括:
75.在401中,获取待合成的文本。
76.在402中,获取从文本中提取的韵律特征。
77.在403中,将文本和韵律特征输入语音合成模型,得到声码器特征。
78.可以看出,本公开提供的技术方案在从文本中提取韵律特征后,语音合成模型利用韵律特征结合文本得到声码器特征,供声码器直接利用声码器特征合成语音,从而提高语音合成技术的效率,继而保证了高实时率。
79.下面结合实施例对上述各步骤进行详细描述。首先对上述步骤401进行详细描述。
80.本公开中涉及的待合成的文本可以是预设的内容,例如开机语的内容、欢迎语的内容、特定场景下固定播报的内容等等。例如在用户终端定位到某个新的地区时,播报“xx地区欢迎您”(其中“xx”表示某个具体的地区名字)。再例如在导航场景下的导航文本“在前方xxx处左转”(其中“xxx”表示某个具体的建筑物名字),等等。
81.待合成的文本也可以是从第三方获得的文本内容,例如从第三方获取到的新闻内容、文章内容等等。
82.待合成的文本还可以是与用户进行交互过程中,响应于用户输入的语音生成的文本。例如用户输入语音“请问xxxx在什么地方”,响应于用户输入的该语音生成播报文本“xxxx在建设中路三号”。
83.下面结合实施例对上述步骤402即“获取从文本中提取的韵律特征”进行详细描述。
84.在本公开实施例中,韵律特征可以通过韵律预测模型从文本中提取。由韵律预测模型从文本中提取韵律特征,将韵律特征输出给语言合成模型。由语言合成模型利用文本以及韵律特征输出声码器特征。
85.下面对韵律预测模型的实现进行详细描述。如图5a中所示,韵律预测模型主要包括第一编码器和第一解码器。在此需要说明的是,本公开中涉及的“第一”、“第二”等表述,例如“第一编码器”、“第二编码器”、“第一解码器”、“第二解码器”、“第一阈值”、“第二阈值”等等,仅仅用于在名称上进行区分,并不具备数量、顺序以及大小的限制,除非有额外的限定。
86.其中,第一编码器从文本中提取语言特征后,将语言特征输出至第一解码器。第一解码器利用预测的上一帧的韵律特征和所述语言特征,预测得到当前帧的韵律特征。
87.具体地,在第一编码器中输入文本首先经过字符嵌入处理,然后经过卷基层和双向lstm层后得到语言特征。第二解码器是一个自回归网络,预测的上一帧的韵律特征首先经过pre
‑
net(前预测网络)后,pre
‑
net的输出结果与语言特征进行拼接后一起输入lstm,再经过线性预测层处理得到预测的韵律特征。
88.除了上述方式之外,韵律预测模型还可以进一步结合播报风格来进行韵律特征的提取。这种情况下的韵律预测模型结构可以如图5b中所示。此时第一编码器从文本中提取语言特征后,将播报风格特征与语言特征进行拼接,将得到的第一拼接特征输入第一解码器。其中播报风格特征可以从说话人信息中提取,例如对说话人信息进行嵌入处理。也可以从文本中提取,例如从文本的语义信息、领域知识等中提取(这种情况图中未示出)。第一解码器利用预测的上一帧的韵律特征和第一拼接特征,预测得到当前帧的韵律特征。这种方式下,能够使得语音合成模型能够具备多种播报风格的语音合成能力。
89.上述两种结构是本公开提供的两种实现方式,除此之外,也可以采用其他方式从文本中提取韵律特征。
90.下面结合实施例对上述步骤403即“将文本和韵律特征输入语音合成模型,得到声码器特征”进行详细描述。
91.图6为本公开实施例提供的语音合成模型的结构示意图,如图6中所示,语音合成模型包括第二编码器、第二解码器和后预测网络。
92.第二编码器从文本中提取语言特征后,将语言特征和韵律特征进行拼接,或者将所述语言特征、韵律特征和说话人特征进行拼接,将拼接得到的第二拼接特征输出至第二解码器;
93.第二解码器利用预测的上一帧的声学特征、第二拼接特征,预测当前帧的声学特征并输出至所述后预测网络;其中,所述声学特征包括语音频谱特征。
94.后预测网络(post
‑
net)利用声学特征预测得到声码器特征。
95.如图6中所示,在第二编码器中输入文本首先经过字符嵌入处理,然后经过卷基层和双向lstm层后得到语言特征。该语言特征与步骤402中得到的韵律特征即由韵律预测模型输出的韵律特征进行拼接后,得到第二拼接特征。更进一步地,还可以对说话人信息进行嵌入处理后得到说话人特征,将语言特征、说话人特征和韵律特征进行拼接后得到第二拼接特征,图6中示出的就是这种优选的方式。
96.第二解码器是一个自回归网络,将上一帧的声学特征经过pre
‑
net(前预测网络)后得到的特征、进行注意力处理后的第二拼接特征进行拼接,得到第三拼接特征。第三拼接特征经过lstm处理后输入线性预测层,由线性预测层预测得到当前帧的声学特征。在本公开实施例中涉及的声学特征包括语音频谱特征。其中较为通用和常见的语音频谱特征为
mel(梅尔)谱。
97.第二解码器实际上是利用一个自回归网络进行时序预测得到mel谱,其中第二编码器中文本的语言特征、韵律特征、说话人特征等拼接在一起作为上下文特征,然后利用上一帧预测得到的mel谱结合上下文特征预测当前帧的mel谱,依次预测就能够得到一个mel谱序列。
98.后预测网络的结构可以如图7中所示,后预测网络将声学特征经过cbhg(convolution bank+highway network+bidirectional gru)模块的处理后,再经过n个预测模块的预测,由预测结果构成声码器特征。其中预测模块可以包括双向gru(gate recurrent unit,门控循环单元)和线性投影层,n为正整数。例如n设置为4,如图7中所示。其中sp包络被分为高、中、低频,分别由一路预测模块预测输出,其他诸如能量特征、cap特征、lf0特征、uv特征等由剩下一路预测模块预测输出。最终输出的所有这些特征构成了声码器特征。
99.通过上述语音合成和后处理方法,能够保证语音合成的高实时率和小计算量,从而为离线语音合成提供基础。并且经过实验验证,该语音合成方法的错误率低于千分之三,是适合于手机离线地图导航等低资源要求场景的语音合成方法。
100.下面结合实施例对语音合成模型的训练方法进行详细描述。图8a为本公开实施例提供的第一种语音合成模型的训练方法流程图,如图8a中所示,该方法可以包括以下步骤:
101.在801中,获取训练样本,各训练样本包括文本样本以及对文本样本标注的韵律特征和声码器特征。
102.在本实施例中获取训练样本的方式可以从语音入手,例如获取一些特定说话人或特定风格等的语音作为标准语音。对该标准语音进行语音识别后,将语音识别结果作为文本样本。也可以通过人工识别的方式识别标准语音对应的文本,将该文本作为文本样本。
103.然后从标准语音中提取声码器特征和韵律特征,利用提取的声码器特征和韵律特征对文本样本进行标注。由于从语音中提取声码器特征和韵律特征是目前已经比较成熟的技术,在此不做详述。
104.在802中,将文本样本、标注的韵律特征作为语音合成模型的输入,将标注的声码器特征作为语音合成模型的目标输出,训练语音合成模型。
105.这种训练方式如图8b中所示,实际上是对文本样本的韵律特征和声码器特征均进行标注。训练过程中,每一轮迭代,均将文本样本和韵律特征输入语音合成模型。语音合成模型输出预测的声码器特征后,将最小化预侧的声码器特征与标注的声码器特征之间的差异作为训练目标。具体可以利用学习目标预先设计损失函数,然后利用诸如梯度下降等方式迭代更新语音合成模型的模型参数,直至达到迭代停止条件。其中迭代停止条件可以是诸如模型参数收敛、损失函数的取值满足预设要求、达到预设的迭代次数阈值等等。
106.其中,语音合成模型的结构仍如图6中所示,在本实施例的训练过程中,语音合成模型中的第二编码器从文本样本中提取语言特征后,将语言特征和标注的韵律特征进行拼接,或者将语言特征、韵律特征和说话人特征(说话人特征从标准语音中提取)进行拼接,将拼接得到的第二拼接特征输出至第二解码器。
107.第二解码器利用预测的上一帧的声学特征、第二拼接特征,预测当前帧的声学特征并输出至所述后预测网络;其中,声学特征包括语音频谱特征,例如mel谱。
108.后预测网络利用声学特征预测得到声码器特征。其中,后预测网络的结构如图7中所示,后预测网络将声学特征经过cbhg模块的处理后,再经过n个预测模块的预测,由预测结果构成声码器特征,其中预测模块包括双向gru和线性投影层,n为正整数,例如取4。其中sp包络被分为高、中、低频,分别由一路预测模块预测输出,其他诸如能量特征、cap特征、lf0特征、uv特征等由剩下一路预测模块预测输出。最终输出的所有这些特征构成了声码器特征。
109.训练结束后得到的语音合成模型就可以用于上面语音合成方法实施例中,用以对待合成的文本进行声码器特征的提取。
110.图9a为本公开实施例提供的第二种语音合成模型的训练方法流程图,如图9a中所示,该方法可以包括以下步骤:
111.在901中,获取训练样本,各训练样本包括文本样本以及对文本样本标注的声学特征和声码器特征。
112.在本实施例中获取训练样本的方式与上面实施例类似地,可以从语音入手,例如获取一些特定说话人或特定风格等的语音作为标准语音。对该标准语音进行语音识别后,将语音识别结果作为文本样本。也可以通过人工识别的方式识别标准语音对应的文本,将该文本作为文本样本。
113.然后从标准语音中提取声码器特征和声学特征,利用提取的声码器特征和声学特征对文本样本进行标注。由于从语音中提取声码器特征和声学征是目前已经比较成熟的技术,在此不做详述。
114.在902中,将标注的声学特征作为韵律提取模型的输入,韵律提取模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,训练韵律提取模型和语音合成模型;训练得到的语音合成模型用于得到待合成的文本的声码器特征。
115.在本实施例中,对语音合成模型训练的过程中采用韵律提取模型进行辅助训练。韵律提取模型能够在输入声学特征的情况下输出韵律特征。如图9b中所示,实际上是对文本样本的声学特征和声码器特征均进行标注。训练过程中,每一轮迭代,均将标注的声学特征输入韵律提取模型,韵律提取模型输出的韵律特征和上述的文本样本输入语音合成模型。语音合成模型输出预测的声码器特征后,将最小化预侧的声码器特征与标注的声码器特征之间的差异作为训练目标。具体可以利用学习目标预先设计损失函数,然后利用诸如梯度下降等方式迭代更新语音合成模型和韵律提取模型的模型参数,直至达到迭代停止条件。其中迭代停止条件可以是诸如模型参数收敛、损失函数的取值满足预设要求、达到预设的迭代次数阈值等等。
116.语音合成模型的结构和原理与上一实施例相同,不做赘述。下面对上述韵律提取模型的结构进行描述。图9c为本公开实施例提供的韵律提取模型的结构示意图,如图9c中所示,韵律提取模型包括:卷基层、双向gru层和注意力层。
117.标注的声学特征例如mel谱经过卷积层和双向gru层后,将双向gru层输出的特征与语音合成模型中第二编码器提取的语言特征输入注意力层进行注意力处理,得到韵律特征。
118.在上述训练过程中,韵律提取模型与语音合成模型一起进行联合训练,最终训练
得到的语音合成模型用于得到待合成的文本的声码器特征。
119.图10a为本公开实施例提供的第三种语音合成模型的训练方法流程图,如图10a中所示,该方法可以包括以下步骤:
120.在1001中,获取训练样本,各训练样本包括文本样本以及对文本样本标注的声码器特征。
121.在本实施例中获取训练样本的方式与上面实施例类似地,可以从语音入手,例如获取一些特定说话人或特定风格等的语音作为标准语音。对该标准语音进行语音识别后,将语音识别结果作为文本样本。也可以通过人工识别的方式识别标准语音对应的文本,将该文本作为文本样本。
122.然后从标准语音中提取声码器特征,利用提取的声码器特征对文本样本进行标注。由于从语音中提取声码器特征是目前已经比较成熟的技术,在此不做详述。
123.在1002中,将文本样本作为韵律预测模型的输入,韵律预测模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,训练韵律预测模型和语音合成模型;训练得到的语音合成模型用于得到待合成的文本的声码器特征。
124.在本实施例中,对语音合成模型训练的过程中采用韵律预测模型进行联合训练。韵律预测模型能够在输入文本的情况下输出韵律特征。如图10b中所示,仅需要对文本样本的声码器特征均进行标注。训练过程中,每一轮迭代,均将文本样本输入韵律预测模型和语音合成模型。韵律预测模型输出的韵律特征也输入语音合成模型。语音合成模型在输入文本和韵律特征的情况下输出预测的声码器特征,将最小化预侧的声码器特征与标注的声码器特征之间的差异作为训练目标。具体可以利用学习目标预先设计损失函数,然后利用诸如梯度下降等方式迭代更新语音合成模型和韵律预测模型的模型参数,直至达到迭代停止条件。其中迭代停止条件可以是诸如模型参数收敛、损失函数的取值满足预设要求、达到预设的迭代次数阈值等等。
125.语音合成模型的结构和原理与上一实施例相同,韵律预测模型的结构和原因如图5a和5b中所示,包括第一编码器和第一解码器。
126.第一编码器从文本样本中提取语言特征后,将语言特征输出至第一解码器;第一解码器利用预测的上一帧的韵律特征和语言特征,预测得到当前帧的韵律特征。
127.具体地,在第一编码器中输入文本样本首先经过字符嵌入处理,然后经过卷基层和双向lstm层后得到语言特征。第二解码器是一个自回归网络,预测的上一帧的韵律特征首先经过pre
‑
net(前预测网络)后,pre
‑
net的输出结果与语言特征进行拼接后一起输入lstm,再经过线性预测层处理得到预测的韵律特征。
128.或者,第一解码器从文本样本中提取语言特征后,将从文本样本中提取的播报风格特征与语言特征进行拼接,将得到的第一拼接特征输入第一解码器;第一解码器利用预测的上一帧的韵律特征和第一拼接特征,预测得到当前帧的韵律特征。
129.在上述训练过程中,韵律预测模型与语音合成模型一起进行联合训练,最终训练得到的语音合成模型用于得到待合成的文本的声码器特征。
130.图11a为本公开实施例提供的第四种语音合成模型的训练方法流程图,如图11a中所示,该方法可以包括以下步骤:
131.在1101中,获取训练样本,各训练样本包括文本样本以及对文本样本标注的声学特征和声码器特征。
132.在本实施例中获取训练样本的方式与上面实施例类似地,可以从语音入手,例如获取一些特定说话人或特定风格等的语音作为标准语音。对该标准语音进行语音识别后,将语音识别结果作为文本样本。也可以通过人工识别的方式识别标准语音对应的文本,将该文本作为文本样本。
133.然后从标准语音中提取声码器特征和声学特征,利用提取的声码器特征和声学特征对文本样本进行标注。由于从语音中提取声码器特征和声学征是目前已经比较成熟的技术,在此不做详述。
134.在1102中,将标注的声学特征作为韵律提取模型的输入,韵律提取模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,将文本样本作为韵律预测模型的输入,韵律提取模型输出的韵律特征作为韵律预测模型的目标输出,训练韵律预测模型、韵律提取模型和语音合成模型;训练得到的语音合成模型用于得到待合成的文本的声码器特征。
135.在本实施例中,对语音合成模型训练的过程中采用韵律提取模型和韵律预测模型进行联合训练。韵律提取模型在输入标注的声学特征的情况下输出韵律特征,韵律预测模型能够在输入文本样本的情况下输出韵律特征。如图11b中所示,需要对文本样本的声码器特征和声学特征均进行标注。训练过程中,每一轮迭代,均将文本样本输入韵律预测模型和语音合成模型,将标注的声学特征输入韵律提取模型。韵律提取模型输出的韵律特征也输入语音合成模型。语音合成模型在输入文本和韵律特征的情况下输出预测的声码器特征,将最小化预侧的声码器特征与标注的声码器特征之间的差异,以及最小化韵律预测模型预测的韵律特征和韵律提取模型提取的韵律特征之间的差异作为训练目标。具体可以利用学习目标预先设计两个损失函数,即利用最小化预侧的声码器特征与标注的声码器特征之间的差异构建损失函数l1,利用最小化韵律预测模型预测的韵律特征和韵律提取模型提取的韵律特征之间的差异构建损失函数l2。利用l1和l2构建总损失函数,基于该总损失函数利用诸如梯度下降等方式迭代更新语音合成模型和韵律预测模型的模型参数,直至达到迭代停止条件。其中迭代停止条件可以是诸如模型参数收敛、损失函数的取值满足预设要求、达到预设的迭代次数阈值等等。
136.上述语音合成模型对训练数据的要求低,通常数百句就能够达到商用的稳定效果、表现力和流畅度。
137.以上是对本公开所提供方法进行的详细描述,下面结合实施例对本公开提供的装置进行详细描述。
138.图12为本公开实施例提供的语音处理装置的结构示意图,该语音处理装置可以设置于图1中所示的后处理装置中,如图12中所示,该装置1200可以包括:特征获取单元1201、uv纠正单元1202和特征发送单元1203,还可以进一步包括线性插值单元1204和逆归一化单元1205。其中各组成单元的主要功能如下:
139.特征获取单元1201,用于获取针对文本得到的声码器特征。
140.uv纠正单元1202,用于依据声码器特征中的能量特征和/或语音频谱特征,对声码器特征中的uv特征进行取值纠正。
141.特征发送单元1203,用于将纠正后的声码器特征提供给声码器,以便得到合成的语音。
142.作为其中一种实现方式,uv纠正单元1202,具体用于分别判断声码器特征中uv特征序列的值变化边界上取值为1的帧对应的能量特征值是否小于0,如果是,则将该帧的uv特征值纠正为0;分别判断uv特征序列的值变化边界上取值为0的帧对应的能量特征值与相邻取值为1的帧所对应能量特征值之间的比值是否大于预设的比值阈值,如果是,则将该取值为0的帧的uv特征值纠正为1。
143.作为再一种实现方式,uv纠正单元1202,具体用于针对每一帧,若该帧语音频谱特征前m维的最大值小于预设第一阈值,则将该帧的uv特征值设置为1;若该帧语音频谱特征前m维的最大值大于预设第二阈值,则将该帧的uv特征值设置为0;其中,m为预设的正整数,第二阈值大于第一阈值。
144.作为一种优选的实施方式,语音频谱特征为梅尔谱特征,m为20,第一阈值为2,第二阈值为2.5。
145.线性插值单元1204,用于按照预设的差值倍数,对特征获取单元1201获取的声码器特征进行线性差值处理,将线性插值处理后的声码器特征提供给uv纠正单元1202。
146.逆归一化单元1205,用于对uv纠正单元1202纠正后的声码器特征中预设类型的特征序列进行逆归一化处理,将处理后的声码器特征提供给特征发送单元1203;其中逆归一化处理与语音合成模型训练过程中对预设类型的特征序列进行的归一化处理相对应,语音合成模型为获取针对文本得到的声码器特征的来源。
147.图13为公开实施例提供的语音合成装置的结构示意图,即图1中所示的语音合成装置。如图13中所示,该装置1300可以包括:文本获取单元1301、韵律提取单元1302和语音合成单元1303,还可以进一步包括模型训练单元1304。其中各组成单元的主要功能如下:
148.文本获取单元1301,用于获取待合成的文本。
149.韵律提取单元1302,用于获取从文本中提取的韵律特征。
150.语音合成单元1303,用于将文本和韵律特征输入语音合成模型,得到声码器特征。
151.其中,韵律提取单元1302,具体用于将文本输入韵律预测模型,得到韵律特征。其中韵律预测模型包括第一编码器和第一解码器。
152.作为其中一种实现方式,第一编码器,用于从文本中提取语言特征后,将语言特征输出至第一解码器;第一解码器利用预测的上一帧的韵律特征和语言特征,预测得到当前帧的韵律特征。
153.作为另一种实现方式,第一解码器,用于从文本中提取语言特征后,将从文本中提取的播报风格特征与语言特征进行拼接,将得到的第一拼接特征输入第一解码器;第一解码器利用预测的上一帧的韵律特征和第一拼接特征,预测得到当前帧的韵律特征。
154.其中,语音合成模型可以包括第二编码器、第二解码器和后预测网络。
155.第二编码器,用于从文本中提取语言特征后,将语言特征和韵律特征进行拼接,或者将语言特征、韵律特征和说话人特征进行拼接,将拼接得到的第二拼接特征输出至第二解码器。
156.第二解码器,用于利用预测的上一帧的声学特征、第二拼接特征,预测当前帧的声学特征并输出至后预测网络;其中,声学特征包括语音频谱特征。
157.后预测网络,用于利用声学特征预测得到声码器特征。
158.作为其中一种可实现的方式,第二解码器将上一帧的声学特征经过前预测网络后得到的特征、进行注意力处理后的第二拼接特征进行拼接,得到第三拼接特征;第三拼接特征经过长短期记忆网络lstm处理后输入线性预测层,由线性预测层预测得到当前帧的声学特征。
159.作为其中一种可实现的方式,后预测网络可以声学特征经过cbhg模块的处理后,再经过n个预测模块的预测,由预测结果构成声码器特征,其中预测模块包括双向门控循环单元gru和线性投影层,n为正整数。
160.上述的模型训练单元1304可以采用但不限于以下几种训练方式:
161.第一种训练方式:模型训练单元1304获取训练样本,各训练样本包括文本样本以及对文本样本标注的韵律特征和声码器特征;将文本样本、标注的韵律特征作为语音合成模型的输入,将标注的声码器特征作为语音合成模型的目标输出,训练语音合成模型。
162.第二种训练方式:模型训练单元1304获取训练样本,各训练样本包括文本样本以及对文本样本标注的声学特征和声码器特征;将标注的声学特征作为韵律提取模型的输入,韵律提取模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,训练韵律提取模型和语音合成模型。
163.第三种训练方式:模型训练单元1304获取训练样本,各训练样本包括文本样本以及对文本样本标注的声码器特征;将文本样本作为韵律预测模型的输入,韵律预测模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,训练韵律预测模型和语音合成模型。
164.第四种训练方式:模型训练单元1304,用于获取训练样本,各训练样本包括文本样本以及对文本样本标注的声学特征和声码器特征;将标注的声学特征作为韵律提取模型的输入,韵律提取模型输出的韵律特征以及文本样本作为语言合成模型的输入,将标注的声码器特征作为语言合成模型的目标输出,将文本样本作为韵律预测模型的输入,韵律提取模型输出的韵律特征作为韵律预测模型的目标输出,训练韵律预测模型、韵律提取模型和语音合成模型。
165.其中,上述第二种训练方式和第四种训练方式中涉及的韵律提取模型可以包括:卷基层、双向gru层和注意力层。
166.标注的声学特征经过卷积层和双向gru层后,将得到的特征与语音合成模型中第二编码器提取的语言特征输入注意力层进行注意力处理,得到韵律特征。
167.在上述四种方式中,模型训练单元1304可以获取标准语音,确定标准语音对应的文本作为文本样本。从标准语音中提取声学特征和声码器特征中至少一种以文本样本进行标注。从文本样本中提取韵律特征以对文本样本进行标注。
168.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
169.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
170.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
171.如图14所示,是根据本公开实施例的语音处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
172.如图14所示,设备1400包括计算单元1401,其可以根据存储在只读存储器(rom)1402中的计算机程序或者从存储单元1408加载到随机访问存储器(ram)1403中的计算机程序,来执行各种适当的动作和处理。在ram 1403中,还可存储设备1400操作所需的各种程序和数据。计算单元1401、rom 1402以及ram 1403通过总线1404彼此相连。输入/输出(i/o)接口1405也连接至总线1404。
173.设备1400中的多个部件连接至i/o接口1405,包括:输入单元1406,例如键盘、鼠标等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
174.计算单元1401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1401的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1401执行上文所描述的各个方法和处理,例如语音处理方法。例如,在一些实施例中,语音处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。
175.在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元1409而被载入和/或安装到设备1400上。当计算机程序加载到ram 1403并由计算单元1401执行时,可以执行上文描述的语音处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音处理方法。
176.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
177.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控30制器执行时使流程图和/或框图中所规定
的功能/操作被实施。程序代码可完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
178.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd
‑
rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
179.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
180.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
181.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端
‑
服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(vps,
ⅵ
irtual private server)服务中存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
182.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
183.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。