基于人工智能的音频生成方法、装置、设备及存储介质与流程

文档序号:26674615发布日期:2021-09-17 23:48阅读:127来源:国知局
基于人工智能的音频生成方法、装置、设备及存储介质与流程

1.本技术涉及人工智能技术,尤其涉及一种基于人工智能的音频生成方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.人工智能(artificial intelligence,ai)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
3.相关技术中对于音频的合成方式比较粗糙,通常是直接对文本数据对应的频谱进行合成,以得到文本数据对应的音频数据,这种合成方式无法实现音频的精准合成,从而影响用户体验正常的音频合成。


技术实现要素:

4.本技术实施例提供一种基于人工智能的音频生成方法、装置、电子设备及计算机可读存储介质,能够提高音频合成的准确性。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种基于人工智能的音频生成方法,包括:
7.对文本对应的音素序列进行编码处理,得到所述音素序列的上下文表征;
8.基于所述音素序列中的每个音素对应的第一帧隐含状态,确定所述第一帧隐含状态相对于所述上下文表征的对齐位置;
9.当所述对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第一帧隐含状态进行解码处理,得到第二帧隐含状态;
10.基于所述第一帧隐含状态以及所述第二帧隐含状态进行合成处理,得到所述文本对应的音频数据。
11.上述技术方案中,所述对文本对应的音素序列进行编码处理,得到所述音素序列的上下文表征,包括:
12.对文本对应的音素序列进行前向编码处理,得到所述音素序列的前向隐向量;
13.对所述文本对应的音素序列进行后向编码处理,得到所述音素序列的后向隐向量;
14.对所述前向隐向量以及所述后向隐向量进行融合处理,得到所述音素序列的上下文表征。
15.上述技术方案中,所述对文本对应的音素序列进行前向编码处理,得到所述音素序列的前向隐向量,包括:
16.通过编码器对所述文本对应的音素序列中的各音素依次按照第一方向进行编码
处理,得到所述各音素在所述第一方向的隐向量;
17.所述对所述文本对应的音素序列进行后向编码处理,得到所述音素序列的后向隐向量,包括:
18.通过所述编码器对所述各音素依次按照第二方向进行编码处理,得到所述各音素在所述第二方向的隐向量;
19.所述对所述前向隐向量以及所述后向隐向量进行融合处理,得到所述音素序列的上下文表征,包括:
20.对所述前向隐向量以及所述后向隐向量进行拼接处理,得到所述音素序列的上下文表征;
21.其中,所述第二方向为所述第一方向的反方向。
22.本技术实施例提供一种音频生成装置,包括:
23.编码模块,用于对文本对应的音素序列进行编码处理,得到所述音素序列的上下文表征;
24.注意力模块,用于基于所述音素序列中的每个音素对应的第一帧隐含状态,确定所述第一帧隐含状态相对于所述上下文表征的对齐位置;
25.解码模块,用于当所述对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第一帧隐含状态进行解码处理,得到第二帧隐含状态;
26.合成模块,用于基于所述第一帧隐含状态以及所述第二帧隐含状态进行合成处理,得到所述文本对应的音频数据。
27.上述技术方案中,所述第一帧隐含状态表示第一帧的隐含状态,所述第二帧隐含状态表示第二帧的隐含状态,所述第一帧与所述第二帧为所述音素对应的频谱数据中任意相邻的两帧;
28.当将所述第一帧隐含状态记为第t帧隐含状态时,所述注意力模块还用于针对所述音素序列中的每个音素执行以下处理:
29.基于所述音素对应的所述第t帧隐含状态,确定所述第t帧隐含状态相对于所述上下文表征的对齐位置;
30.所述解码模块还用于当所述第t帧隐含状态相对于所述上下文表征的对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第t帧隐含状态进行解码处理,得到第t+1帧隐含状态;
31.其中,t为从1开始递增的自然数且取值满足1≤t≤t,t为所述对齐位置对应所述上下文表征中的末尾位置时所述音素序列对应的总帧数,所述总帧数表示所述音素序列中每个音素的隐含状态所对应的频谱数据的帧数。
32.上述技术方案中,所述合成模块还用于当所述对齐位置对应所述上下文表征中的末尾位置时,对t帧隐含状态进行拼接处理,得到所述文本对应的隐含状态;
33.对所述文本对应的隐含状态进行平滑处理,得到所述文本对应的频谱数据;
34.对所述文本对应的频谱数据进行傅里叶变换,得到所述文本对应的音频数据。
35.上述技术方案中,所述注意力模块还用于基于所述音素对应的第t帧隐含状态进行高斯预测处理,得到所述第t帧隐含状态对应的第t高斯参数;
36.基于所述第t高斯参数确定所述第t帧隐含状态相对于所述上下文表征的对齐位
置。
37.上述技术方案中,所述注意力模块还用于基于所述音素对应的第t帧隐含状态进行基于高斯函数的预测处理,得到所述第t帧隐含状态对应的第t高斯方差以及第t高斯均值变化量;
38.获取第t

1帧隐含状态对应的第t

1高斯参数;
39.将所述第t

1高斯参数包括的第t

1高斯均值与所述第t高斯均值变化量进行加和处理,将得到的加和结果作为所述第t帧隐含状态对应的第t高斯均值;
40.将所述第t高斯方差以及所述第t高斯均值的集合作为所述第t帧隐含状态对应的第t高斯参数;
41.将所述第t高斯均值作为所述第t帧隐含状态相对于所述上下文表征的对齐位置。
42.上述技术方案中,所述注意力模块还用于获取所述音素序列的上下文表征的内容文本长度;
43.当所述第t高斯均值大于所述内容文本长度时,确定所述对齐位置对应所述上下文表征中的末尾位置;
44.当所述第t高斯均值小于或者等于所述内容文本长度时,确定所述对齐位置对应所述上下文表征中的非末尾位置。
45.上述技术方案中,所述解码模块还用于获取所述第t帧隐含状态对应的注意力权重;
46.基于所述注意力权重对所述上下文表征进行加权处理,得到所述上下文表征对应的上下文向量;
47.基于所述上下文向量以及所述第t帧隐含状态进行状态预测处理,得到第t+1帧隐含状态。
48.上述技术方案中,所述注意力模块还用于获取所述第t帧隐含状态对应的第t高斯参数,其中,所述第t高斯参数包括第t高斯方差以及第t高斯均值;
49.基于所述第t高斯方差以及所述第t高斯均值对所述上下文表征进行高斯处理,得到所述第t帧隐含状态对应的注意力权重。
50.上述技术方案中,所述音频生成方法是通过调用神经网络模型实现的;所述装置还包括:
51.训练模块,用于通过初始化的所述神经网络模型对文本样本对应的音素序列样本进行编码处理,得到所述音素序列样本的上下文表征;
52.基于所述音素序列样本中的每个音素对应的第三帧隐含状态,确定所述第三帧隐含状态相对于所述上下文表征的预测对齐位置;
53.当所述预测对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第三帧隐含状态进行解码处理,得到第四帧隐含状态;
54.基于所述第三帧隐含状态以及所述第四帧隐含状态进行频谱后处理,得到所述文本样本对应的预测频谱数据;
55.基于所述文本样本对应的预测频谱数据以及所述文本样本对应的标注频谱数据,构建所述神经网络模型的损失函数;
56.更新所述神经网络模型的参数,将所述损失函数收敛时所述神经网络模型的更新
的参数,作为训练后的所述神经网络模型的参数;
57.其中,所述第三帧隐含状态表示第三帧的隐含状态,所述第四帧隐含状态表示第四帧的隐含状态,所述第三帧与所述第四帧为所述音素序列样本中每个音素对应的频谱数据中任意相邻的两帧。
58.上述技术方案中,所述训练模块还用于基于所述神经网络模型的参数构建参数矩阵;
59.将所述参数矩阵进行块划分,得到所述参数矩阵包括的多个矩阵块;
60.当达到结构稀疏时机时,确定每个所述矩阵块中参数的均值;
61.基于每个所述矩阵块中参数的均值对所述矩阵块进行升序排序,将升序排序结果中排序在前的多个矩阵块中的参数进行重置,得到重置后的参数矩阵;
62.其中,所述重置后的参数矩阵用于更新所述神经网络模型的参数。
63.上述技术方案中,所述训练模块还用于获取所述音素序列样本的上下文表征的内容文本长度;
64.当所述预测对齐位置对应所述上下文表征中的末尾位置时,基于所述预测对齐位置以及所述内容文本长度,构建所述神经网络模型的位置损失函数;
65.基于所述文本样本对应的预测频谱数据以及所述文本样本对应的标注频谱数据,构建所述神经网络模型的频谱损失函数;
66.对所述频谱损失函数以及所述位置损失函数进行加权求和,将加权求和结果作为所述神经网络模型的损失函数。
67.上述技术方案中,所述编码模块还用于对文本对应的音素序列进行前向编码处理,得到所述音素序列的前向隐向量;
68.对所述文本对应的音素序列进行后向编码处理,得到所述音素序列的后向隐向量;
69.对所述前向隐向量以及所述后向隐向量进行融合处理,得到所述音素序列的上下文表征。
70.上述技术方案中,所述编码模块还用于通过编码器对所述文本对应的音素序列中的各音素依次按照第一方向进行编码处理,得到所述各音素在所述第一方向的隐向量;
71.通过所述编码器对所述各音素依次按照第二方向进行编码处理,得到所述各音素在所述第二方向的隐向量;
72.对所述前向隐向量以及所述后向隐向量进行拼接处理,得到所述音素序列的上下文表征;
73.其中,所述第二方向为所述第一方向的反方向。
74.本技术实施例提供一种用于音频生成的电子设备,所述电子设备包括:
75.存储器,用于存储可执行指令;
76.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的基于人工智能的音频生成方法。
77.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的基于人工智能的音频生成方法。
78.本技术实施例具有以下有益效果:
79.通过确定隐含状态相对于上下文表征的对齐位置,以基于准确的对齐位置进行后续解码操作,从而基于准确的隐含状态实现精准地音频生成。
附图说明
80.图1是本技术实施例提供的音频生成系统的应用场景示意图;
81.图2是本技术实施例提供的用于音频生成的电子设备的结构示意图;
82.图3

5是本技术实施例提供的基于人工智能的音频生成方法的流程示意图;
83.图6是本技术实施例提供的内容编码器的编码示意图;
84.图7是本技术实施例提供的基于人工智能的音频生成方法的流程示意图;
85.图8是本技术实施例提供的对齐位置对应上下文表征中的末尾位置的示意图;
86.图9是本技术实施例提供的对齐位置对应上下文表征中的非末尾位置的示意图;
87.图10是本技术实施例提供的参数矩阵的示意图;
88.图11是本技术实施例提供的端对端语音合成声学模型的训练流程示意图;
89.图12是本技术实施例提供的端对端语音合成声学模型的推理流程示意图。
具体实施方式
90.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
91.在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
92.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
93.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
94.1)卷积神经网络(cnn,convolutional neural networks):一类包含卷积计算且具有深度结构的前馈神经网络(fnn,feedforward neural networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入图像进行平移不变分类(shift

invariant classification)。
95.2)循环神经网络(rnn,recurrent neural network):一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。循环神经网络具有记忆性、参数共享并且图灵完备(turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。
96.3)音素:语音中最小的基本单位,音素是人类能区别一个单词和另一个单词的基础。音素构成音节,音节又构成不同的词和短语。
97.4)隐含状态:解码器(例如,隐马尔可夫模型)输出的用于表征频谱数据的序列,对
隐含状态进行平滑处理,可以得到对应的频谱数据。由于音频信号在长时间段内(例如,一秒以上)是非平稳信号,而在短时间内(例如,50毫秒)则可近似为平稳信号。平稳信号的特点在于信号的频谱分布是稳定的,在不同时间段内的频谱分布相似。隐马尔可夫模型将一小段相似频谱对应的连续信号归为一个隐含状态,隐含状态是马尔可夫模型中实际所隐含的状态,无法通过直接观测而得到的用于表征频谱数据的序列。隐马尔可夫模型的训练过程是最大化似然度,每一个隐含状态产生的数据用一个概率分布表示,只有当相似的连续信号被归为同一个状态,似然度才能尽可能的大。
98.本技术实施例中的第一帧隐含状态表示第一帧的隐含状态,第二帧隐含状态表示第二帧的隐含状态,其中,第一帧与第二帧为音素对应的频谱数据中任意相邻的两帧。
99.5)上下文表征:编码器输出的用于表征文本的上下文内容的向量序列。
100.6)末尾位置:文本中最后一个数据(例如音素、单词、词语等)之后的位置,例如某文本对应的音素序列有5个音素,则位置0表示音素序列的起始位置,位置1表示音素序列中第一个音素的位置,

,位置5表示音素序列中第五个音素的位置,位置6表示音素序列中的末尾位置,其中,位置0

5表示音素序列中的非末尾位置。
101.7)平均绝对误差(mae,mean absolute error):又称l1 loss,模型预测值f(x)和真实值y之间距离的平均值。
102.8)块状稀疏化(block sparsity):通过训练过程中对权重先分块,然后每次参数更新的时候按照每个块内参数的平均绝对值大小进行排序,并将绝对值较小的块上的权重置为0。
103.9)合成实时率:一秒钟的音频与合成该一秒钟的音频所需要的计算机运行时间,例如,如果合成1秒钟的音频需要100毫秒的计算机运行时间,则合成实时率为10倍。
104.本技术实施例提供了一种基于人工智能的音频生成方法、装置、电子设备及计算机可读存储介质,能够提高音频合成的准确性。
105.本技术实施例所提供的基于人工智能的音频生成方法,可以由终端/服务器独自实现;也可以由终端和服务器协同实现,例如终端独自承担下文所述的基于人工智能的音频生成方法,或者,终端向服务器发送针对音频的生成请求(包括待生成音频的文本),服务器根据接收的针对音频的生成请求执行基于人工智能的音频生成方法,响应于针对音频的生成请求,当对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第一帧隐含状态进行解码处理,得到第二帧隐含状态,基于第一帧隐含状态以及第二帧隐含状态进行合成处理,得到文本对应的音频数据,从而实现音频的智能化地精准生成。
106.本技术实施例提供的用于音频生成的电子设备可以是各种类型的终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器;终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
107.以服务器为例,例如可以是部署在云端的服务器集群,向用户开放人工智能云服务(ai as a service,aiaas),aiaas平台会把几类常见的ai服务进行拆分,并在云端提供独立或者打包的服务,这种服务模式类似于一个ai主题商城,所有的用户都可以通过应用程序编程接口的方式来接入使用aiaas平台提供的一种或者多种人工智能服务。
108.例如,其中的一种人工智能云服务可以为音频生成服务,即云端的服务器封装有本技术实施例提供的音频生成的程序。用户通过终端(运行有客户端,例如音响客户端、车载客户端等)调用云服务中的音频生成服务,以使部署在云端的服务器调用封装的音频生成的程序,当对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第一帧隐含状态进行解码处理,得到第二帧隐含状态,基于第一帧隐含状态以及第二帧隐含状态进行合成处理,得到文本对应的音频数据。
109.作为一个应用示例,对于音响客户端,用户可以是某广播平台的广播员,需要向社区的住户定期广播注意事项、生活小知识等。例如,广播员在音响客户端输入一段文本,该文本需要转化为音频,以向社区的住户广播,通过在将文本转化为音频的过程中,不断判断隐含状态相对于文本对应的音素序列的上下文表征的对齐位置,以基于准确的对齐位置进行后续解码操作,从而基于准确的隐含状态实现精准地音频生成,以向住户广播生成的音频。
110.作为另一个应用示例,对于车载客户端,当用户在开车时,不方便通过文本的形式了解信息,但是可以通过读取音频的方式了解信息,避免遗漏重要的信息。例如,用户在开车时,领导向用户发送一段重要会议的文本,需要用户及时读取并处理该文本,则车载客户端接收到该文本后,需要将该文本转化为音频,以向该用户播放该音频,通过在将文本转化为音频的过程中,不断判断隐含状态相对于文本对应的音素序列的上下文表征的对齐位置,以基于准确的对齐位置进行后续解码操作,从而基于准确的隐含状态实现精准地音频生成,以向用户播放生成的音频,使得用户可以及时读取到该音频。
111.参见图1,图1是本技术实施例提供的音频生成系统10的应用场景示意图,终端200通过网络300连接服务器100,网络300可以是广域网或者局域网,又或者是二者的组合。
112.终端200(运行有客户端,例如音响客户端、车载客户端等)可以被用来获取针对音频的生成请求,例如,用户通过终端200输入待生成音频的文本,则终端200自动获取待生成音频的文本,并自动生成针对音频的生成请求。
113.在一些实施例中,终端中运行的客户端中可以植入有音频生成插件,用以在客户端本地实现基于人工智能的音频生成方法。例如,终端200获取针对音频的生成请求(包括待生成音频的文本)后,调用音频生成插件,以实现基于人工智能的音频生成方法,当对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第一帧隐含状态进行解码处理,得到第二帧隐含状态,基于第一帧隐含状态以及第二帧隐含状态进行合成处理,得到文本对应的音频数据,从而实现音频的智能化地精准生成,例如,对于录音应用,用户在非录音室场景下,无法进行高质量的个性化声音定制,则在录音客户端中输入一段需要录制的文本,该文本需要转化为个性化的音频,通过在将文本转化为音频的过程中,不断判断隐含状态相对于文本对应的音素序列的上下文表征的对齐位置,以基于准确的对齐位置进行后续解码操作,从而基于准确的隐含状态生成精准的个性化音频,以实现非录音室场景下的个性化声音定制。
114.在一些实施例中,终端200获取针对音频的生成请求后,调用服务器100的音频生成接口(可以提供为云服务的形式,即音频生成服务),服务器100当对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第一帧隐含状态进行解码处理,得到第二帧隐含状态,基于第一帧隐含状态以及第二帧隐含状态进行合成处理,得到文本对应的音频数
据,并将音频数据发送至终端200,例如,对于录音应用,用户在非录音室场景下,无法进行高质量的个性化声音定制,则在终端200中输入一段需要录制的文本,并自动生成针对音频的生成请求,并将针对音频的生成请求发送至服务器100,服务器100通过在将文本转化为音频的过程中,不断判断隐含状态相对于文本对应的音素序列的上下文表征的对齐位置,以基于准确的对齐位置进行后续解码操作,从而基于准确的隐含状态生成精准的个性化音频,并将生成的个性化音频发送至终端200,以响应针对音频的生成请求,实现非录音室场景下的个性化声音定制。
115.下面说明本技术实施例提供的用于音频生成的电子设备的结构,参见图2,图2是本技术实施例提供的用于音频生成的电子设备500的结构示意图,以电子设备500是服务器为例说明,图2所示的用于音频生成的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
116.处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
117.存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
118.在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
119.操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
120.网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
121.在一些实施例中,本技术实施例提供的音频生成装置可以采用软件方式实现,例如,可以是上文所述的终端中的音频生成插件,可以是上文所述的服务器中音频生成服务。当然,不局限于此,本技术实施例提供的音频生成装置可以提供为各种软件实施例,包括应用程序、软件、软件模块、脚本或代码在内的各种形式。
122.图2示出了存储在存储器550中的音频生成装置555,其可以是程序和插件等形式的软件,例如音频生成插件,并包括一系列的模块,包括编码模块5551、注意力模块5552、解码模块5553、合成模块5554以及训练模块5555;其中,编码模块5551、注意力模块5552、解码模块5553、合成模块5554用于实现本技术实施例提供的音频生成功能,训练模块5555用于训练神经网络模型,其中,音频生成方法是通过调用神经网络模型实现的。
123.如前,本技术实施例提供的基于人工智能的音频生成方法可以由各种类型的电子设备实施。参见图3,图3是本技术实施例提供的基于人工智能的音频生成方法的流程示意图,结合图3示出的步骤进行说明。
124.在下面步骤中,一段文本对应一个音素序列,一个音素对应多帧频谱数据集(即音频数据),例如音素a对应50毫秒的频谱数据,而一帧频谱数据为10毫秒,则音素a对应5帧频谱数据。
125.在步骤101中,对文本对应的音素序列进行编码处理,得到音素序列的上下文表征。
126.作为获取文本的示例,用户通过终端输入待生成音频的文本,终端自动获取待生成音频的文本,并自动生成针对音频的生成请求,并将针对音频的生成请求发送至服务器,服务器解析针对音频的生成请求,以获取待生成音频的文本,并对待生成音频的文本进行预处理,得到文本对应的音素序列,以便后续基于音素序列进行编码处理,例如,文本“语音合成”对应的音素序列为“v3in1 h e2 ch eng2”。通过内容编码器(具有前后关联性的模型)对音素序列进行编码处理,得到音素序列的上下文表征,经过内容编码器输出的上下文表征具备建模上下文的能力。
127.在一些实施例中,对文本对应的音素序列进行编码处理,得到音素序列的上下文表征,包括:对文本对应的音素序列进行前向编码处理,得到音素序列的前向隐向量;对文本对应的音素序列进行后向编码处理,得到音素序列的后向隐向量;对前向隐向量以及后向隐向量进行融合处理,得到音素序列的上下文表征。
128.例如,可以将音素序列输入至内容编码器(例如rnn、双向长短时记忆网络(blstm或bilstm,bidirectional long short

term memory)等),并通过内容编码器对音素序列分别进行前向编码和后向编码处理,从而得到对应音素序列的前向隐向量以及后向隐向量,并对前向隐向量以及后向隐向量进行融合处理,从而得到包含上下文信息的上下文表征,其中,前向隐向量包含前向所有信息,后向隐向量包含后向所有信息。因此,融合前向隐向量以及后向隐向量后的编码信息包含音素序列的所有信息。
129.在一些实施例中,对文本对应的音素序列进行前向编码处理,得到音素序列的前向隐向量,包括:通过编码器对文本对应的音素序列中的各音素依次按照第一方向进行编码处理,得到各音素在第一方向的隐向量;对应地,对文本对应的音素序列进行后向编码处理,得到音素序列的后向隐向量,包括:通过编码器对各音素依次按照第二方向进行编码处理,得到各音素在第二方向的隐向量;对应地,对前向隐向量以及后向隐向量进行融合处理,得到音素序列的上下文表征,包括:对前向隐向量以及后向隐向量进行拼接处理,得到音素序列的上下文表征。
130.如图6所示,第二方向为第一方向的反方向,当第一方向是音素序列中的第一个音素到最后一个音素的方向,则第二方向是音素序列中的最后一个音素到第一个音素的方向;当第一方向是音素序列中的最后一个音素到第一个音素的方向,则第二方向是音素序列中的第一个音素到最后一个音素的方向。通过内容编码器对音素序列中的各音素分别依次按照第一方向和第二方向进行编码处理,得到各音素在第一方向的隐向量以及各音素在第二方向的隐向量,并对前向隐向量以及后向隐向量进行拼接处理,得到包含上下文信息的上下文表征,其中,第一方向的隐向量包含第一方向的所有信息,第二方向的隐向量包含
第二方向的所有信息。因此,拼接第一方向的隐向量以及第二方向的隐向量后的编码信息包含音素序列的所有信息。
131.例如,0<j≤m,且j、m为正整数,m为音素序列中音素的数量。当音素序列中有m个音素,则对m个音素按照第一方向进行编码,依次得到在第一方向的m个隐向量,例如对音素序列按照第一方向进行编码处理后,得到在第一方向的隐向量为{h
1l
,h
2l
,...h
jl
...,h
ml
},其中,h
il
表示第j个音素在第一方向的第j隐向量。对m个音素按照第二方向进行编码,依次得到在第二方向的m个隐向量,例如对音素按照第二方向进行编码处理后,得到在第二方向的隐向量为{h
1r
,h
2r
,...h
jr
...,h
mr
},其中,h
ir
表示j个音素在第二方向的第j隐向量。将在第一方向的隐向量为{h
1l
,h
2l
,...h
jl
...,h
ml
}以及在第二方向的隐向量为{h
1r
,h
2r
,...h
jr
...,h
mr
}进行拼接,得到包含上下文信息的上下文表征{[h
1l
,h
1r
],[h
2l
,h
2r
],...[h
jl
,h
jr
]...,[h
ml
,h
mr
]},例如,将第j向量在第一方向的第j隐向量h
jl
、第j向量在第二方向的第j隐向量h
jr
进行拼接处理,得到包含上下文信息的第i编码信息{h
jl
,h
jr
}。为了节约计算过程,由于第一方向的最后一个隐向量包含第一方向的大部分信息、第二方向的最后一个隐向量包含第二方向的大部分信息,因此,可以直接对第一方向的最后一个隐向量以及第二方向的最后一个隐向量进行融合,得到包含上下文信息的上下文表征。
[0132]
在步骤102中,基于音素序列中的每个音素对应的第一帧隐含状态,确定第一帧隐含状态相对于上下文表征的对齐位置。
[0133]
在步骤103中,当对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第一帧隐含状态进行解码处理,得到第二帧隐含状态。
[0134]
其中,每个音素与多帧隐含状态对应。第一帧隐含状态表示第一帧的隐含状态,第二帧隐含状态表示第二帧的隐含状态,第一帧与第二帧为音素对应的频谱数据中任意相邻的两帧。
[0135]
参见图4,图4是本技术实施例提供的基于人工智能的音频生成方法的一个可选的流程示意图,图4示出图3中的步骤102可以通过图4示出的步骤102a实现:在步骤102a中,当将第一帧隐含状态记为第t帧隐含状态时,针对音素序列中的每个音素执行以下处理:基于音素对应的第t帧隐含状态,确定第t帧隐含状态相对于上下文表征的对齐位置;对应地,步骤103可以通过图4示出的步骤103a实现:在步骤103a中,当第t帧隐含状态相对于上下文表征的对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第t帧隐含状态进行解码处理,得到第t+1帧隐含状态;其中,t为从1开始递增的自然数且取值满足1≤t≤t,t为对齐位置对应上下文表征中的末尾位置时音素序列对应的总帧数,总帧数表示音素序列中每个音素的隐含状态所对应的频谱数据的帧数。
[0136]
如图7所示,针对音素序列中的每个音素执行以下迭代处理:将自回归解码器输出的第t帧隐含状态输入至高斯注意力机制,高斯注意力机制基于第t帧隐含状态,确定第t帧隐含状态相对于上下文表征的对齐位置,当第t帧隐含状态相对于上下文表征的对齐位置对应上下文表征中的非末尾位置时,则自回归解码器继续解码处理,基于上下文表征以及第t帧隐含状态进行解码处理,得到第t+1帧隐含状态,直至隐含状态相对于上下文表征的对齐位置对应上下文表征中的末尾位置时停止迭代处理。
[0137]
参见图5,图5是本技术实施例提供的基于人工智能的音频生成方法的一个可选的流程示意图,图5示出图4中的步骤102a可以通过图5示出的步骤1021a至步骤1022a实现:在
步骤1021a中,基于音素对应的第t帧隐含状态进行高斯预测处理,得到第t帧隐含状态对应的第t高斯参数;在步骤1022a中,基于第t高斯参数确定第t帧隐含状态相对于上下文表征的对齐位置。
[0138]
承接上述示例,高斯注意力机制包括全连接层,通过全连接层基于音素对应的第t帧隐含状态进行高斯预测处理,得到第t帧隐含状态对应的第t高斯参数,从而基于第t高斯参数确定第t帧隐含状态相对于上下文表征的对齐位置。
[0139]
例如,基于音素对应的第t帧隐含状态进行基于高斯函数的预测处理,得到第t帧隐含状态对应的第t高斯方差以及第t高斯均值变化量;获取第t

1帧隐含状态对应的第t

1高斯参数;将第t

1高斯参数包括的第t

1高斯均值与第t高斯均值变化量进行加和处理,将得到的加和结果作为第t帧隐含状态对应的第t高斯均值;将第t高斯方差以及第t高斯均值的集合作为第t帧隐含状态对应的第t高斯参数;将第t高斯均值作为第t帧隐含状态相对于上下文表征的对齐位置。
[0140]
在一些实施例中,获取音素序列的上下文表征的内容文本长度;当第t高斯均值大于内容文本长度时,确定对齐位置对应上下文表征中的末尾位置;当第t高斯均值小于或者等于内容文本长度时,确定对齐位置对应上下文表征中的非末尾位置。
[0141]
如图8所示,例如上下文表征的内容文本长度为6,当第t高斯均值大于内容文本长度时,则对齐位置对应上下文表征中的末尾位置,即对齐位置指向上下文表征的末尾位置。
[0142]
如图9所示,例如上下文表征的内容文本长度为6,当第t高斯均值小于或者等于内容文本长度时,则对齐位置对应上下文表征中的非末尾位置,即对齐位置指向上下文表征中包括内容的位置,例如对齐位置指向上下文表征中第二个内容的位置。
[0143]
在一些实施例中,基于上下文表征以及第t帧隐含状态进行解码处理,得到第t+1帧隐含状态,包括:获取第t帧隐含状态对应的注意力权重;基于注意力权重对上下文表征进行加权处理,得到上下文表征对应的上下文向量;基于上下文向量以及第t帧隐含状态进行状态预测处理,得到第t+1帧隐含状态。
[0144]
例如,当对齐位置对应上下文表征中的非末尾位置时,说明还需要继续进行解码处理,先通过高斯注意力机制确定第t帧隐含状态对应的注意力权重,基于注意力权重对上下文表征进行加权处理,得到上下文表征对应的上下文向量,并将上下文向量发送至自回归解码器,自回归解码器基于上下文向量以及第t帧隐含状态进行状态预测处理,以得到第t+1帧隐含状态,从而实现隐含状态的自回归,具有前后关联性。
[0145]
在一些实施例中,获取第t帧隐含状态对应的注意力权重,包括:获取第t帧隐含状态对应的第t高斯参数,其中,第t高斯参数包括第t高斯方差以及第t高斯均值;基于第t高斯方差以及第t高斯均值对上下文表征进行高斯处理,得到第t帧隐含状态对应的注意力权重。
[0146]
例如,注意力权重的计算公式为其中,α
t,j
表示第t步迭代计算(第t帧隐含状态)时对于输入内容编码器音素序列的第j个元素的注意力权重,μ
t
表示第t步计算时高斯函数的均值和σ
t2
表示第t步时高斯函数的方差。本技术实施例并不局限于其他的变型权重计算公式也适用于本技术实施例。
[0147]
在步骤104中,基于第一帧隐含状态以及第二帧隐含状态进行合成处理,得到文本对应的音频数据。
[0148]
例如,第一帧隐含状态表示第一帧的隐含状态,第二帧隐含状态表示第二帧的隐含状态,第一帧与第二帧为音素对应的频谱数据中任意相邻的两帧,当对齐位置对应上下文表征中的末尾位置时,对t帧隐含状态进行拼接处理,得到文本对应的隐含状态,对文本对应的隐含状态进行平滑处理,得到文本对应的频谱数据,对文本对应的频谱数据进行傅里叶变换,得到文本对应的音频数据,基于对齐位置判断何时停止解码,从而解决了提前解码停止的问题,提高了语音合成的自然度和稳定性。
[0149]
在一些实施例中,需要训练神经网络模型,以使训练后的神经网络模型能能够实现音频生成,音频生成方法是通过调用神经网络模型实现的;神经网络模型的训练过程包括:通过初始化的神经网络模型对文本样本对应的音素序列样本进行编码处理,得到音素序列样本的上下文表征;基于音素序列样本中的每个音素对应的第三帧隐含状态,确定第三帧隐含状态相对于上下文表征的预测对齐位置;当预测对齐位置对应上下文表征中的非末尾位置时,基于上下文表征以及第三帧隐含状态进行解码处理,得到第四帧隐含状态;基于第三帧隐含状态以及第四帧隐含状态进行频谱后处理,得到文本样本对应的预测频谱数据;基于文本样本对应的预测频谱数据以及文本样本对应的标注频谱数据,构建神经网络模型的损失函数;更新神经网络模型的参数,将损失函数收敛时神经网络模型的更新的参数,作为训练后的神经网络模型的参数;其中,第三帧隐含状态表示第三帧的隐含状态,第四帧隐含状态表示第四帧的隐含状态,第三帧与第四帧为音素序列样本中每个音素对应的频谱数据中任意相邻的两帧。
[0150]
例如,基于文本样本对应的预测频谱数据以及文本样本对应的标注频谱数据,确定神经网络模型的损失函数的值后,可以判断神经网络模型的损失函数的值是否超出预设阈值,当神经网络模型的损失函数的值超出预设阈值时,基于神经网络模型的损失函数确定神经网络模型的误差信号,将误差信息在神经网络模型中反向传播,并在传播的过程中更新各个层的模型参数。
[0151]
这里,对反向传播进行说明,将训练样本数据输入到神经网络模型的输入层,经过隐藏层,最后达到输出层并输出结果,这是神经网络模型的前向传播过程,由于神经网络模型的输出结果与实际结果有误差,则计算输出结果与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层,在反向传播的过程中,根据误差调整模型参数的值;不断迭代上述过程,直至收敛。
[0152]
在一些实施例中,更新神经网络模型的参数之前,还包括:基于神经网络模型的参数构建参数矩阵;将参数矩阵进行块划分,得到参数矩阵包括的多个矩阵块;当达到结构稀疏时机时,确定每个矩阵块中参数的均值;基于每个矩阵块中参数的均值对矩阵块进行升序排序,将升序排序结果中排序在前的多个矩阵块中的参数进行重置,得到重置后的参数矩阵;其中,重置后的参数矩阵用于更新神经网络模型的参数。
[0153]
如图10所示,为了提高音频合成速度,在训练神经网络模型的过程中,可以对神经网络模型中的参数进行分块训练,先基于神经网络模型的所有参数构建参数矩阵,然后将参数矩阵进行块划分,得到矩阵块1、矩阵块2,

,矩阵块16,当达到预设训练次数或者预设训练时间等,确定每个矩阵块中参数的均值,基于每个矩阵块中参数的均值对矩阵块进行
升序排序,将升序排序结果中排序在前的多个矩阵块中的参数重置为0,例如,将前8个矩阵块中的参数充值为0,矩阵块3、矩阵块4、矩阵块7和矩阵块8、矩阵块9、矩阵块10、矩阵块13和矩阵块14为升序排序结果中的前8个矩阵块,则将虚线框1001(包括矩阵块3、矩阵块4、矩阵块7和矩阵块8)以及虚线框1002(包括矩阵块9、矩阵块10、矩阵块13和矩阵块14)中的参数重置为0,从而得到重置后的参数矩阵,那么该参数矩阵的乘法运算就可以进行加速,提高训练速度。
[0154]
在一些实施例中,构建神经网络模型的损失函数之前,还包括:获取音素序列样本的上下文表征的内容文本长度;当预测对齐位置对应上下文表征中的末尾位置时,基于预测对齐位置以及内容文本长度,构建神经网络模型的位置损失函数;基于文本样本对应的预测频谱数据以及文本样本对应的标注频谱数据,构建神经网络模型的频谱损失函数;对频谱损失函数以及位置损失函数进行加权求和,将加权求和结果作为神经网络模型的损失函数。
[0155]
例如,为了解决解码提前停止、漏词、重复读等问题,构建神经网络模型的位置损失函数,使得训练后的神经网络模型学习到准确预测对齐位置的能力,提高了语音生成的自然度和稳定性。
[0156]
下面,将说明本技术实施例在一个实际的语音合成应用场景中的示例性应用。
[0157]
本技术实施例可以应用于各种语音合成的应用场景(例如,智能音箱、有屏音箱、智能手表、智能手机、智能家居、智能地图、智能汽车等具有语音合成能力的智能设备等,在线教育、智能机器人、人工智能客服、语音合成云服务等具有语音合成能力的的应用等)中,例如对于车载应用,当用户在开车时,不方便通过文本的形式了解信息,但是可以通过读取语音的方式了解信息,避免遗漏重要的信息,当车载客户端接收到该文本后,需要将该文本转化为语音,以向该用户播放该语音,使得用户可以及时读取到文本对应的语音。
[0158]
相关技术中,声学模型使用基于内容的、基于位置的注意力机制或者两者混合的注意力机制,并结合停止标记(stop token)机制来预测生成音频的停止位置。相关技术方案存在以下问题:1)出现对齐错误,从而会出现漏词或者重复读词等难以忍受的问题,使得语音合成系统难以投入实际应用;2)对于长句和复杂句子的合成会出现过早停止的问题,导致音频合成不完整;3)训练和推理的速度非常慢,使得语音合成(tts,text to speech)在手机等边缘设备的部署难以实现。
[0159]
为了解决上述问题,本技术实施例使用单高斯注意力机制(single gaussian attention),一种单调、归一化、稳定、表现力更强的注意力机制,解决了相关技术使用的注意力机制存在的不稳定问题,并且移除了stop token机制,提出使用注意力停止预测(attentive stop loss)(用于在自回归解码过程中判断停止的值,例如设置为概率超过阈值的0.5)来保证结果,直接基于对齐判断停止,解决了提前停止的问题,提高了语音合成的自然度和稳定性;另一方面,本技术实施例采用剪枝技术对自回归解码器(autoregressive decoder)进行了块稀疏化,进一步提升了训练和合成的速度,在单核中央处理器(cpu,central processing unit)上可以实现35倍的合成实时率,使得tts在边缘设备上的部署成为可能。
[0160]
本技术实施例可以应用到一切具有语音合成能力的产品中,包括但不限于智能音箱、有屏音箱、智能手表、智能手机、智能家居、智能汽车等智能设备,智能机器人、ai客服、
tts云服务等等,其使用方案都可以通过本技术实施例提出的算法来加强合成的稳定性并且提高合成的速度。
[0161]
如图11所示,本技术实施例端对端语音合成声学模型(神经网络模型)包括内容编码器、高斯注意力机制、自回归解码器以及频谱后处理网络,下面具体介绍端对端语音合成声学模型的各模块:
[0162]
1)内容编码器:将输入的音素序列转化成上下文相关的隐含特征(上下文表征),内容编码器由具有前后关联性的模型构成,经过内容编码器出来的特征具备建模上下文的能力。其中,语言学特征表示将要合成的文本内容,包含文本的基本单元为字符或音素,在中文语音合成中,文本由声母、韵母、静音音节构成,其中,韵母是带声调的。例如,文本“语音合成”的带声调的音素序列就是“v3 in1 h e2 ch eng2”。
[0163]
2)高斯注意力机制:结合解码器的当前状态来生成对应的内容上下文信息(上下文向量),以供自回归解码器更好地预测下一帧频谱。语音合成是一个建立从文本序列到频谱序列的单调映射的任务,因此,在生成每一帧梅尔谱的时候,只需要聚焦一小部分音素内容即可,而这部分音素内容则是通过注意力机制来产生。其中,说话人身份信息(speaker identity)通过一组向量来表示某个发音人的唯一标识。
[0164]
3)自回归解码器:以当前高斯注意力机制产生的内容上下文信息和上一帧预测的频谱来生成当前帧的频谱,由于需要依赖于上一帧的输出,所以称之为自回归解码器。其中,将自回归解码器替换成并行全连接的形式,能够进一步提高训练速度。
[0165]
4)梅尔谱后处理网络:将自回归解码器预测频谱进行平滑化,以便得到更高质量的频谱。
[0166]
下面结合图11和图12具体说明本技术实施例在语音合成的稳定性以及速度上的优化:
[0167]
a)如图11所示,本技术实施例采用单高斯注意力机制,一种单调、归一化、稳定、表现力更强的注意力机制。其中,单高斯注意力机制以公式(1)和公式(2)的方式计算注意力权重。
[0168][0169]
μ
i
=μ
i
‑1+δ
i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0170]
其中,α
i,j
表示第i步迭代计算时对于输入内容编码器音素序列的第j个元素的注意力权重,exp表示指数函数,μ
i
表示第i步计算时高斯函数的均值和σ
i2
表示第i步时高斯函数的方差,δ
i
表示第i步迭代计算时预测的均值变化量。其中,均值变化量、方差等是基于自回归解码器的隐含状态,经过一个全连接网络得到的。
[0171]
每一次迭代预测当前时刻高斯的均值变化量和方差,其中均值变化量的累计和表征当前时刻注意力窗口的位置,也就是与之对齐的输入语言学特征的位置,而方差表征注意力窗口的宽度。将音素序列作为内容编码器的输入,经由高斯注意力机制得到自回归解码器所需要的上下文向量,自回归解码器以自回归的方式来生成梅尔谱,自回归解码的停止标志以高斯注意力分布的均值是否触及音素序列末尾来判断。本技术实施例通过保证均值变化量是非负的,从而保证了对齐过程的单调性,并且由于高斯函数本身就是归一化的,从而保证了注意力机制的稳定性。
[0172]
其中,自回归解码器每一时刻所需要的上下文向量是通过高斯注意力机制产生的权重与内容编码器的输出进行加权得到的,权重的大小分布是由高斯注意力的均值来确定的,而语音合成任务是一个严格单调的任务,即输出的梅尔谱必须是根据输入文本从左到右单调生成的,所以如果高斯注意力的均值位于输入音素序列的末尾,则说明梅尔谱生成已经接近尾部。注意力窗口的宽度代表示每次解码所需内容编码器输出内容的范围,宽度受到语言结构的影响,例如对于停顿的静音预测,宽度就比较小;而遇到词语或短语的时候,宽度就比较大,这是因为词语或短语中某个字的发音会受到前后字的影响。
[0173]
b)本技术实施例移除了分离的stop token架构,使用高斯注意力(gaussian attention)直接基于对齐判断停止,并且提出attentive stop loss来保证对齐的结果,解决复杂或者较长句子过早停止的问题。假定训练最后时刻的均值应该迭代到输入文本长度的下一个位置,基于这个假设构建一个关于高斯分布均值和输入文本序列长度之间的l1 loss(即l
stop
),如公式(3)所示,如图12所示,在推理过程中,本技术实施例的方案根据当前时刻gaussian atten tion的均值是否大于输入文本长度加一来判断是否停止:
[0174]
l
stop
=|μ
i

j

1|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0175]
其中,μ
i
是总的迭代次数,j是音素序列的长度。
[0176]
如果采用stop token架构,由于stop token架构没有考虑到音素的完整性,可能会过早地停止。这种stop token架构带来的一个显著问题就是必须保证录音音频的首尾静音以及中间停顿需要保持相似的长度,这样stop token架构预测才会比较准确,一旦录音者停顿时长较长,那么会导致训练出来的stop token预测不准确。所以,stop token架构对数据质量要求比较高,会带来较高的审核成本。本技术实施例提出的attention stop loss可以降低对数据质量的要求,从而降低成本。
[0177]
c)本技术实施例将自回归解码器进行块稀疏化,提高了自回归解码器的计算速度。例如,本技术中采用的稀疏方案是:从第1000次训练步骤开始,每隔400步进行一次结构化稀疏,直到训练到120k步达到50%的稀疏度截至,其中,以模型预测的梅尔谱与真实梅尔谱之间的l1 loss作为优化的目标,通过随机梯度下降算法来优化整个模型的参数。本技术实施例将权重矩阵划分为多个块(矩阵块),然后按每个块内模型参数的平均值进行从小到大排序,将前50%(根据实际情况进行设置)的块的模型参数置为0,以加速解码过程。
[0178]
当一个矩阵如果是块状稀疏的,也就是说矩阵分成n个块,并且部分块的元素为0,那么该矩阵的乘法运算就可以实现加速。在训练中让部分块内的元素为0,这个是按照元素的幅度来决定的,也就是如果一个块内元素的平均幅度很小或者接近于0(即小于某阈值),那么该块内的元素近似为0,从而达到稀疏的目的。实际中,可以将一个矩阵的多个块内的元素幅度按平均值进行排序,平均幅度较小的前50%的块将被稀疏化,也就是元素统一置零。
[0179]
在实际应用中,首先将文本转化成音素序列,音素序列通过内容编码器得到包含上下文信息的抽象表征(即上下文表征),在预测梅尔谱时,首先将一段全零的向量作为初始上下文向量输入到自回归解码器中,然后以每次自回归解码器输出的隐含状态作为高斯注意力机制的输入,进而可以计算出每一时刻对于内容编码器输出的权重,结合该权重和内容编码器的抽象表征即可算出每一时刻自回归解码器所需要的上下文向量。以这种方式进行自回归解码,当高斯注意力的均值位于内容编码器抽象表征(音素序列)的末尾时,即
可停止解码。将自回归解码器预测的梅尔谱(隐含状态)拼接起来一起送到梅尔后处理网络,目的是让梅尔谱更加平滑,并且让其产生的过程不仅依赖于过去的信息,同样也依赖于未来的信息,得到最终的梅尔谱之后,通过信号处理的方式或者神经网络合成器来得到最终的音频波形,以实现语音合成的功能。
[0180]
综上,本技术实施例存在以下有益效果:1)通过单调、稳定的gaussian attention机制和attentive stop loss的结合,有效的提高了语音合成的稳定性,避免出现重复读、漏词等难以忍受的现象;2)将自回归解码器进行块稀疏化,很大程度上提高了声学模型的合成速度,降低了对硬件设备的要求。
[0181]
由于本技术实施例提出了一种更鲁棒的注意力机制声学模型,具备速度快、稳定性高等优势。该声学模型可以应用在智能家居、智能汽车等嵌入式设备中,因这些嵌入式设备计算能力较为低下,使得端对端语音合成在设备端上变得更加易于实现;该方案因鲁棒性较高,可以应用于非录音室场景下数据质量不高的个性化声音定制的场景中,如手机地图用户声音定制、在线教育中大规模的网课教师声音克隆等,因这些场景中录音用户并非专业声优,录音中可能带有较长停顿,对于这种数据,本技术实施例可以有效保证声学模型的稳定性。
[0182]
至此已经结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的基于人工智能的音频生成方法。本技术实施例还提供音频生成装置,实际应用中,音频生成装置中的各功能模块可以由电子设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)、存储器协同实现。图2示出了存储在存储器550中的音频生成装置555,其可以是程序和插件等形式的软件,例如,软件c/c++、java等编程语言设计的软件模块、c/c++、java等编程语言设计的应用软件或大型软件系统中的专用软件模块、应用程序接口、插件、云服务等实现方式,下面对不同的实现方式举例说明。
[0183]
示例一、音频生成装置是移动端应用程序及模块
[0184]
本技术实施例中的音频生成装置555可提供为使用软件c/c++、java等编程语言设计的软件模块,嵌入到基于android或ios等系统的各种移动端应用中(以可执行指令存储在移动端的存储介质中,由移动端的处理器执行),从而直接使用移动端自身的计算资源完成相关的信息推荐任务,并且定期或不定期地通过各种网络通信方式将处理结果传送给远程的服务器,或者在移动端本地保存。
[0185]
示例二、音频生成装置是服务器应用程序及平台
[0186]
本技术实施例中的音频生成装置555可提供为使用c/c++、java等编程语言设计的应用软件或大型软件系统中的专用软件模块,运行于服务器端(以可执行指令的方式在服务器端的存储介质中存储,并由服务器端的处理器运行),服务器使用自身的计算资源完成相关的信息推荐任务。
[0187]
本技术实施例还可以提供为在多台服务器构成的分布式、并行计算平台上,搭载定制的、易于交互的网络(web)界面或其他各用户界面(ui,user interface),形成供个人、群体或单位使用的信息推荐平台(用于推荐列表)等。
[0188]
示例三、音频生成装置是服务器端应用程序接口(api,application program interface)及插件
[0189]
本技术实施例中的音频生成装置555可提供为服务器端的api或插件,以供用户调用,以执行本技术实施例的基于人工智能的音频生成方法,并嵌入到各类应用程序中。
[0190]
示例四、音频生成装置是移动设备客户端api及插件
[0191]
本技术实施例中的音频生成装置555可提供为移动设备端的api或插件,以供用户调用,以执行本技术实施例的基于人工智能的音频生成方法。
[0192]
示例五、音频生成装置是云端开放服务
[0193]
本技术实施例中的音频生成装置555可提供为向用户开发的信息推荐云服务,供个人、群体或单位获取音频。
[0194]
其中,音频生成装置555包括一系列的模块,包括编码模块5551、注意力模块5552、解码模块5553、合成模块5554以及训练模块5555。下面继续说明本技术实施例提供的音频生成装置555中各个模块配合实现音频生成方案。
[0195]
编码模块5551,用于对文本对应的音素序列进行编码处理,得到所述音素序列的上下文表征;注意力模块5552,用于基于所述音素序列中的每个音素对应的第一帧隐含状态,确定所述第一帧隐含状态相对于所述上下文表征的对齐位置;解码模块5553,用于当所述对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第一帧隐含状态进行解码处理,得到第二帧隐含状态;合成模块5554,用于基于所述第一帧隐含状态以及所述第二帧隐含状态进行合成处理,得到所述文本对应的音频数据。
[0196]
在一些实施例中,所述第一帧隐含状态表示第一帧的隐含状态,所述第二帧隐含状态表示第二帧的隐含状态,所述第一帧与所述第二帧为所述音素对应的频谱数据中任意相邻的两帧;当将所述第一帧隐含状态记为第t帧隐含状态时,所述注意力模块5552还用于针对所述音素序列中的每个音素执行以下处理:基于所述音素对应的所述第t帧隐含状态,确定所述第t帧隐含状态相对于所述上下文表征的对齐位置;对应地,所述解码模块5553还用于当所述第t帧隐含状态相对于所述上下文表征的对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第t帧隐含状态进行解码处理,得到第t+1帧隐含状态;其中,t为从1开始递增的自然数且取值满足1≤t≤t,t为所述对齐位置对应所述上下文表征中的末尾位置时所述音素序列对应的总帧数,所述总帧数表示所述音素序列中每个音素的隐含状态所对应的频谱数据的帧数。
[0197]
在一些实施例中,所述合成模块5554还用于当所述对齐位置对应所述上下文表征中的末尾位置时,对t帧隐含状态进行拼接处理,得到所述文本对应的隐含状态;对所述文本对应的隐含状态进行平滑处理,得到所述文本对应的频谱数据;对所述文本对应的频谱数据进行傅里叶变换,得到所述文本对应的音频数据。
[0198]
在一些实施例中,所述注意力模块5552还用于基于所述音素对应的第t帧隐含状态进行高斯预测处理,得到所述第t帧隐含状态对应的第t高斯参数;基于所述第t高斯参数确定所述第t帧隐含状态相对于所述上下文表征的对齐位置。
[0199]
在一些实施例中,所述注意力模块5552还用于基于所述音素对应的第t帧隐含状态进行基于高斯函数的预测处理,得到所述第t帧隐含状态对应的第t高斯方差以及第t高斯均值变化量;获取第t

1帧隐含状态对应的第t

1高斯参数;将所述第t

1高斯参数包括的第t

1高斯均值与所述第t高斯均值变化量进行加和处理,将得到的加和结果作为所述第t帧隐含状态对应的第t高斯均值;将所述第t高斯方差以及所述第t高斯均值的集合作为所
述第t帧隐含状态对应的第t高斯参数;将所述第t高斯均值作为所述第t帧隐含状态相对于所述上下文表征的对齐位置。
[0200]
在一些实施例中,所述注意力模块5552还用于获取所述音素序列的上下文表征的内容文本长度;当所述第t高斯均值大于所述内容文本长度时,确定所述对齐位置对应所述上下文表征中的末尾位置;当所述第t高斯均值小于或者等于所述内容文本长度时,确定所述对齐位置对应所述上下文表征中的非末尾位置。
[0201]
在一些实施例中,所述解码模块5553还用于获取所述第t帧隐含状态对应的注意力权重;基于所述注意力权重对所述上下文表征进行加权处理,得到所述上下文表征对应的上下文向量;基于所述上下文向量以及所述第t帧隐含状态进行状态预测处理,得到第t+1帧隐含状态。
[0202]
在一些实施例中,所述注意力模块5552还用于获取所述第t帧隐含状态对应的第t高斯参数,其中,所述第t高斯参数包括第t高斯方差以及第t高斯均值;基于所述第t高斯方差以及所述第t高斯均值对所述上下文表征进行高斯处理,得到所述第t帧隐含状态对应的注意力权重。
[0203]
在一些实施例中,所述音频生成方法是通过调用神经网络模型实现的;所述音频生成装置555还包括:训练模块5555,用于通过初始化的所述神经网络模型对文本样本对应的音素序列样本进行编码处理,得到所述音素序列样本的上下文表征;基于所述音素序列样本中的每个音素对应的第三帧隐含状态,确定所述第三帧隐含状态相对于所述上下文表征的预测对齐位置;当所述预测对齐位置对应所述上下文表征中的非末尾位置时,基于所述上下文表征以及所述第三帧隐含状态进行解码处理,得到第四帧隐含状态;基于所述第三帧隐含状态以及所述第四帧隐含状态进行频谱后处理,得到所述文本样本对应的预测频谱数据;基于所述文本样本对应的预测频谱数据以及所述文本样本对应的标注频谱数据,构建所述神经网络模型的损失函数;更新所述神经网络模型的参数,将所述损失函数收敛时所述神经网络模型的更新的参数,作为训练后的所述神经网络模型的参数;其中,所述第三帧隐含状态表示第三帧的隐含状态,所述第四帧隐含状态表示第四帧的隐含状态,所述第三帧与所述第四帧为所述音素序列样本中每个音素对应的频谱数据中任意相邻的两帧。
[0204]
在一些实施例中,所述训练模块5555还用于基于所述神经网络模型的参数构建参数矩阵;将所述参数矩阵进行块划分,得到所述参数矩阵包括的多个矩阵块;当达到结构稀疏时机时,确定每个所述矩阵块中参数的均值;基于每个所述矩阵块中参数的均值对所述矩阵块进行升序排序,将升序排序结果中排序在前的多个矩阵块中的参数进行重置,得到重置后的参数矩阵;其中,所述重置后的参数矩阵用于更新所述神经网络模型的参数。
[0205]
在一些实施例中,所述训练模块5555还用于获取所述音素序列样本的上下文表征的内容文本长度;当所述预测对齐位置对应所述上下文表征中的末尾位置时,基于所述预测对齐位置以及所述内容文本长度,构建所述神经网络模型的位置损失函数;基于所述文本样本对应的预测频谱数据以及所述文本样本对应的标注频谱数据,构建所述神经网络模型的频谱损失函数;对所述频谱损失函数以及所述位置损失函数进行加权求和,将加权求和结果作为所述神经网络模型的损失函数。
[0206]
在一些实施例中,所述编码模块5551还用于对文本对应的音素序列进行前向编码处理,得到所述音素序列的前向隐向量;对所述文本对应的音素序列进行后向编码处理,得
到所述音素序列的后向隐向量;对所述前向隐向量以及所述后向隐向量进行融合处理,得到所述音素序列的上下文表征。
[0207]
在一些实施例中,所述编码模块5551还用于通过编码器对所述文本对应的音素序列中的各音素依次按照第一方向进行编码处理,得到所述各音素在所述第一方向的隐向量;通过所述编码器对所述各音素依次按照第二方向进行编码处理,得到所述各音素在所述第二方向的隐向量;对所述前向隐向量以及所述后向隐向量进行拼接处理,得到所述音素序列的上下文表征;其中,所述第二方向为所述第一方向的反方向。
[0208]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的基于人工智能的音频生成方法。
[0209]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的基于人工智能的音频生成方法,例如,如图3

5示出的基于人工智能的音频生成方法。
[0210]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0211]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0212]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0213]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0214]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1