神经网络训练方法及装置、音频处理方法及装置与流程

文档序号:31050199发布日期:2022-08-06 06:49阅读:120来源:国知局
神经网络训练方法及装置、音频处理方法及装置与流程

1.本公开涉及音频处理技术领域,具体涉及一种神经网络训练方法及装置、音频处理方法及装置。


背景技术:

2.近年来,音频识别等音频处理技术逐渐发展,其准确度越来越高,在很多领域发挥了重要作用。目前音频处理领域具有时序连接分类(connectionist temporal classification,ctc)技术、基于注意力机制的模型(attention-based model)技术和循环神经网络转换器(rnn transducer,rnn-t)技术,其中以循环神经网络转换器技术在实践中的效果最好。但是相关技术中的循环神经网络转换器技术中,在神经网络训练时的运算较为复杂,内存占用较多,导致无法实现快速计算,导致该技术的实用性大大降低。


技术实现要素:

3.为克服相关技术中存在的问题,本公开实施例提供一种神经网络训练方法及装置、音频处理方法及装置,用以解决相关技术中的缺陷。
4.根据本公开实施例的第一方面,提供一种神经网络训练方法,包括:
5.将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果;
6.将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果;
7.根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果;
8.将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
9.在一个实施例中,所述将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果,包括:
10.将所述第一编码结果和所述第一预测结果输入至联合模块进行联合处理,得到第一联合结果。
11.在一个实施例中,所述第一联合结果内的每个元素至少具有音频帧数维度上的坐标和文本标签序列维度上的坐标。
12.在一个实施例中,所述根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果,包括:
13.获取所述第一联合结果内的每个元素的梯度信息;
14.根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界;
15.根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,得
到对应的第二编码结果和第二预测结果。
16.在一个实施例中,所述获取所述第一联合结果内的每个元素的梯度信息,包括:
17.获取所述第一联合结果内的每个元素输出文本标签的概率的梯度信息,和输出空字符的概率的梯度信息。
18.在一个实施例中,所述根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界,包括:
19.在所述音频帧数维度的第t帧下,确定所述文本标签序列维度中每个序号为起点的预设尺寸的序列区间内的各个元素的梯度信息的和,为对应序号的梯度总量;
20.将所述梯度总量最大的序号为起点的预设尺寸的序列区间,确定为第t帧的裁剪边界。
21.在一个实施例中,所述梯度总量最大的序号还满足下述至少一项:
22.所述梯度总量最大的序号与所述文本标签序列维度的最大序号间的差值,大于或等于预设尺寸;
23.所述梯度总量最大的序号小于或等于第t+1帧的裁减边界的起点序号;
24.所述梯度总量最大的序号与第t+1帧的裁剪边界的起点序号间的差值,小于预设尺寸。
25.在一个实施例中,所述根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果,包括:
26.分别将所述第一编码结果和所述第一预测结果在至少一个维度上进行扩充,以使所述第一编码结果的每个元素具有音频帧数维度和文本标签序列维度上的坐标;
27.在所述音频帧数维度和所述文本标签序列维度组成的平面内,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果。
28.在一个实施例中,所述根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整,包括:
29.根据所述第二联合结果确定第一网络损失值,并根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
30.在一个实施例中,还包括:
31.根据所述第一联合结果确定第二网络损失值;
32.所述根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整,包括:
33.根据所述第一网络损失值和所述第二网络损失值,对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
34.根据本公开实施例的第二方面,提供一种音频处理方法,包括:
35.将待处理音频输入至神经网络,得到目标文本,其中,所述神经网络预先使用第一方面所述的神经网络训练方法训练完成。
36.根据本公开实施例的第三方面,提供一种神经网络训练装置,包括:
37.输入模块,用于将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果;
38.第一联合模块,用于将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果;
39.裁剪模块,用于根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果;
40.第二联合模块,用于将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
41.在一个实施例中,所述第一联合模块具体用于:
42.将所述第一编码结果和所述第一预测结果输入至联合模块进行联合处理,得到第一联合结果。
43.在一个实施例中,所述第一联合结果内的每个元素至少具有音频帧数维度上的坐标和文本标签序列维度上的坐标。
44.在一个实施例中,所述裁剪模块具体用于:
45.获取所述第一联合结果内的每个元素的梯度信息;
46.根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界;
47.根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果。
48.在一个实施例中,所述裁剪模块用于获取所述第一联合结果内的每个元素的梯度信息时,具体用于:
49.获取所述第一联合结果内的每个元素输出文本标签的概率的梯度信息,和输出空字符的概率的梯度信息。
50.在一个实施例中,所述裁剪模块用于根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界时,具体用于:
51.在所述音频帧数维度的第t帧下,确定所述文本标签序列维度中每个序号为起点的预设尺寸的序列区间内的各个元素的梯度信息的和,为对应序号的梯度总量;
52.将所述梯度总量最大的序号为起点的预设尺寸的序列区间,确定为第t帧的裁剪边界。
53.在一个实施例中,所述梯度总量最大的序号还满足下述至少一项:
54.所述梯度总量最大的序号与所述文本标签序列维度的最大序号间的差值,大于或等于预设尺寸;
55.所述梯度总量最大的序号小于或等于第t+1帧的裁减边界的起点序号;
56.所述梯度总量最大的序号与第t+1帧的裁剪边界的起点序号间的差值,小于预设尺寸。
57.在一个实施例中,所述裁剪模块用于根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果时,具体用于:
58.分别将所述第一编码结果和所述第一预测结果在至少一个维度上进行扩充,以使所述第一编码结果的每个元素具有音频帧数维度和文本标签序列维度上的坐标;
59.在所述音频帧数维度和所述文本标签序列维度组成的平面内,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果。
60.在一个实施例中,所述第二联合模块用于根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整时,具体用于:
61.根据所述第二联合结果确定第一网络损失值,并根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
62.在一个实施例中,还包括损失模块,用于:
63.根据所述第一联合结果确定第二网络损失值;
64.所述第二联合模块用于根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整时,具体用于:
65.根据所述第一网络损失值和所述第二网络损失值,对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
66.根据本公开实施例的第四方面,提供一种音频处理装置,包括输入模块,用于:
67.将待处理音频输入至神经网络,得到目标文本,其中,所述神经网络预先使用第一方面所述的神经网络训练方法训练完成。
68.根据本公开实施例的第五方面,提供一种电子设备,所述电子设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时基于第一方面或第二方面所述的方法。
69.根据本公开实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面或第二方面所述的方法。
70.本公开的实施例提供的技术方案可以包括以下有益效果:
71.本公开所提供的神经网络训练方法,通过将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果,从而可以将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果,并根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果,最后可以将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。由于第一编码结果和第一预测结果经过裁剪后再输入至联合子网络,从而可以降低联合子网络的计算量,以及利用第二联合结果对网络参数进行调整的计算力,减少rnn-t等模型训练过程对内存的占用,实现快速计算,提高音频处理技术的实用性。
附图说明
72.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
73.图1是本公开一示例性实施例示出的神经网络训练方法的流程图;
74.图2是相关技术中rnn-t损失函数的计算方式示意图;
75.图3是本公开一示例性实施例示出的rnn-t损失函数的计算方式示意图;
76.图4是本公开另一示例性实施例示出的神经网络训练方法的流程图;
77.图5是本公开一示例性实施例示出的神经网络训练装置的结构示意图;
78.图6是本公开一示例性实施例示出的电子设备的结构框图。
具体实施方式
79.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
80.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
81.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
82.语音识别领域至今已经历了几十年的发展,从最初的序列相似度匹配,到基于高斯混合模型和隐马尔可夫模型的建模,以及后来发展的基于神经网络的混合系统。在长达几十年的时间里,构建语音识别系统都是一个相当复杂的工作,建立模型之前需要繁复的数据对齐过程。近几年来端到端模型进入高速发展阶段,它不但可以极大的简化语音识别的建模过程,即去除了复杂的对齐过程,而且还能取得更优异的识别效果。
83.总的来说,现行的端到端模型实现方式有三大类,即时序连接分类(connectionist temporal classification,ctc)、基于注意力机制的模型(attention-based model)和循环神经网络转换器(rnn transducer,rnn-t)。在这三大类模型中,时序连接分类模型(ctc)和循环神经网络转化器模型(rnn-t)天然的流式模型,可以进行帧同步解码。而基于注意力机制的模型要做到流式解码还需要进行一些额外的修正,这些修正不仅麻烦,而且会损失一部分的识别准确率。在ctc模型和rnn-t模型中,ctc模型有一个前提假设,即帧与帧之间是概率独立的,这导致ctc模型在不加入外部语言模型的情况下难于取得优秀的识别率。所以,综合各方面比较,rnn-t模型在生产实践中具有更大的用武之地。
84.由于在rnn-t损失函数的定义中,涉及到在一个四维矩阵上的计算,即(n,t,u,v)矩阵,n表示批处理中一批中的样本数量,t表示音频帧数维度,u表示文本标签序列维度,v表示建模单元维度。这样一个巨大的四维矩阵的运算,导致在计算rnn-t损失函数的时候不仅计算低效,而且需要消耗大量的内存,在给定的内存总量上无法增加并行的批数量。总之,在现有的rnn-t实现中,无法实现快速的计算,导致rnn-t类模型的训练非常缓慢,实用性大大降低。
85.基于此,第一方面,本公开至少一个实施例提供了一种神经网络训练方法,请参照附图1,其示出了该方法的流程,包括步骤s101至步骤s104。
86.其中,该方法可以应用于音频处理的神经网络的训练过程,例如rnn-t模型的训练过程等。rnn-t模型通常包含三个部分,即编码子网络(encoder network)、预测子网络(prediction network)和联合子网络(joiner network)。其中编码子网络的输出是维度为(t,e)的向量,预测子网络的输出是维度为(u,d)的向量,联合子网络的输出是维度为(t,u,v)的向量,其中t为音频帧数,e是编码子网络的输出维度,u为音频对应标注文本的文本标签序列个数,d为预测子网络的输出维度,v为建模单元的个数,即字符个数。如果再加上批维度n,那么rnn-t模型的输出是一个维度为(n,t,u,v)的矩阵。相关技术中,rnn-t损失函数的计算就是运用前向-后向算法在这样一个矩阵下遍历所有符合文本标签序列的路径,然后把这些路径的分数加总,如附图2所示,图中只展示了t和u两个维度。这使得rnn-t的计算不但非常耗费内存,而且计算密度非常高。
87.在步骤s101中,将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果。
88.其中,第一编码结果即为上述维度为(t,e)的向量,第一预测结果即为维度为(u,d)的向量。在输入编码子网络和预测子网络中的训练音频和对应的文本标签为批量输入的情况,则第一编码结果为维度为(n,t,e)的向量,第一预测结果为维度为(n,u,d)的向量。
89.在步骤s102中,将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果。
90.示例性的,可以将所述第一编码结果和所述第一预测结果输入至联合模块进行联合处理,得到第一联合结果,其中,联合模块可以为平凡的联合网络,该平凡的联合网络是常用联合网络的一个简化版,常用的联合网络中都会包含有非线性变换(比如tanh或者relu等),而平凡联合网络里面只包含一个线性的加法操作,例如利用预先配置的权重对第一编码结果和第二预测结果进行加权求和,得到第一联合结果。
91.在一个可能的实施例中,所述第一联合结果内的每个元素至少具有音频帧数维度上的坐标和文本标签序列维度上的坐标;每个元素可以具有输出文本标签的概率和输出空字符的概率。
92.具体来说,可以将第一编码结果定义为l
encoder
(t,v),将第一预测结果定义为l
decoder
(u,v),则第一联合结果l
trivial
(t,u,v)可以通过以下公式计算:
[0093][0094][0095]
即第一联合结果为一个(t,u,v)的矩阵l(假设批大小n为1),则矩阵中的每一个元素l(t,u,v)表示音频帧数维度上的坐标为t、文本标签序列维度上的坐标为u的元素(即坐标为(t,u)的元素)输出字符v(字符v可以为某个文本标签或空字符)的概率值,进而可以作如下定义:
[0096]
y(t,u)=l(t,u,y
u+1
)
[0097][0098]
其中y(t,u)表示坐标为(t,u)的元素向上转移对数概率(即输出文本标签的概
率),表示坐标为(t,u)的元素向右转移的对数概率(即输出空字符的概率)。
[0099]
通过这样的定义,可以通过简单的矩阵乘法和查询算法构建y(t,u)和从而避免了分配一个巨大的四维矩阵,达到减小内存和提升速度的目标。
[0100]
可以理解的是,本步骤中将所述第一编码结果和所述第一预测结果进行联合以获得所述第一联合结果,相对于联合子网络的联合处理,所需的计算力较小,对内存占用较少,处理的效率较高。
[0101]
应理解,在步骤s102中描述了第一联合结果的计算方法,然而,应当理解,其他可能的计算联合结果的方法也在本公开的保护范围内,即,也可以通过其他计算方法基于第一编码结果和所述第一预测结果进行联合,以获得所述第一联合结果。
[0102]
在步骤s103中,根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果。
[0103]
根据经验,音频和文本标签应该是单调的,即,几乎不可能在某一帧音频输出大量的文本标签,所以接近实际的路径应该如附图3所示,特定的帧上只会输出一定数量的文本标签,由此,可以将文本标签维度进行裁剪,从而只需要在一个缩小的矩阵上进行运算。
[0104]
在一个可能的实施例中,可以按照下述方式执行本步骤:
[0105]
首先,获取所述第一联合结果内的每个元素的梯度信息。示例性的,获所述第一联合结果内的每个元素输出文本标签的概率的梯度信息y’(t,u),和输出空字符的概率的梯度信息
[0106]
接下来,根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界。示例性的,可以先在所述音频帧数维度的第t帧下,确定所述文本标签序列维度中每个序号为起点的预设尺寸(s_range,公式中记作s)的序列区间内的各个元素的梯度信息的和,为对应序号的梯度总量,其中,t为不小于1的整数,即第t帧为所述音频帧数维度的每1帧;然后将所述梯度总量最大的序号为起点的预设尺寸的序列区间,确定为第t帧的裁剪边界。每帧的裁剪边界确定后,便可以得到所述音频帧数维度和所述文本标签序列维度组成的平面内的裁剪边界。
[0107]
具体地,可以采用下述公式确定第t帧下第t帧下所述梯度总量最大的序号p
t

[0108][0109]
其中,u为所述文本标签序列维度中的最大序号。
[0110]
另外,还可以使所述梯度总量最大的序号满足下述至少一项:
[0111]
所述梯度总量最大的序号与所述文本标签序列维度的最大序号间的差值,大于或等于预设尺寸,即0≤p
t
≤u-s+1。
[0112]
所述梯度总量最大的序号小于或等于第t+1帧的裁减边界的起点序号,即p
t
≤p
t+1

[0113]
所述梯度总量最大的序号与第t+1帧的裁剪边界的起点序号间的差值,小于预设尺寸,即p
t+1-p
t
≤s。
[0114]
最后,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁
剪,得到对应的第二编码结果和第二预测结果。示例性的,可以先分别将所述第一编码结果和所述第一预测结果在至少一个维度上进行扩充,以使所述第一编码结果的每个元素具有音频帧数维度和文本标签序列维度上的坐标,也就是将第一编码结果从(n,t,v)维度扩展为(n,t,u,v)维度,将第一预测结果从(n,u,v)维度扩展为(n,t,u,v)维度;然后在所述音频帧数维度和所述文本标签序列维度组成的平面内,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果,即第二编码结果和第二预测结果均为(n,t,s_range,v)维度的矩阵。由于s_range远小于u,这两个矩阵远小于维度为(n,t,u,v)的四维矩阵,所以能够极大的减小联合网络计算时的内存使用(即计算密度)。
[0115]
应当理解,步骤s103中的裁剪方法可以单独实施,也可以与本技术的一个或多个实施例的部分或全部组合实施。例如,步骤s103中的裁剪方法可以针对通过步骤s102获得的第一联合结果进行裁剪,也可以针对其他联合结果进行裁剪。
[0116]
在步骤s104中,将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整,其中,网络参数可以为网络层中节点的权重、偏置等参数。
[0117]
由于s_range远小于u,这两个矩阵远小于维度为(n,t,u,v)的四维矩阵,所以能够极大的减小联合网络计算时的内存使用(即计算密度)。第二联合结果可以为(n,t,s_range,v)维度的矩阵。
[0118]
在一个可能的实施例中,可以根据所述第二联合结果确定第一网络损失值,并根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。计算第一网络损失值时,可以运用前向-后向算法在第二联合结果的矩阵下遍历所有符合文本标签序列的路径,然后把这些路径的分数加总。可以在第一网络损失值达到预设误差范围内,或者迭代次数达到预设阈值,停止对网络参数的调整。
[0119]
另外,还可以根据所述第一联合结果确定第二网络损失值,并根据所述第一网络损失值和所述第二网络损失值,对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。计算第一网络损失值时,可以运用前向-后向算法在第二联合结果的矩阵下遍历所有符合文本标签序列的路径,然后把这些路径的分数加总。例如,可以对第一网络损失值和第二网络损失值进行加权求和,得到综合网络损失值,然后在利用综合网络损失对神经网络的网络参数进行调整,从而可以进一步增加网络训练的稳定性。
[0120]
本公开所提供的神经网络训练方法,通过将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果,从而可以将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果,并根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果,最后可以将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。由于第一编码结果和第一预测结果经过裁剪后再输入至联合子网络,从而可以降低联合子网络的计算量,以及利用第二联合结果对网络参数进行调整的计算力,减少训练过程对内存的占用,实
现快速计算,提高音频处理技术的实用性。
[0121]
本公开提供的rnn-t的训练方法,可以有效的绕过在四维矩阵上的迭代运算,在不损失建模能力的情况下,利用裁剪算法,实现了高效的rnn-t损失函数的计算。相比现有的实现方式,在减少数倍内存使用的情况下,取得10倍以上的计算速度提升。解决了rnn-t损失函数计算消耗内存过大,计算效率低的问题,极大提高rnn-t类模型的训练速度,推动rnn-t类模型在生产实践中的应用。
[0122]
本公开的一些实施例中,可以按照下述方式分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果:
[0123]
首先,获取所述第一编码结果和所述第一预测结果的联合结果内的每个元素的梯度信息。示例性的,获所述该联合结果内的每个元素输出文本标签的概率的梯度信息y’(t,u),和输出空字符的概率的梯度信息
[0124]
接下来,根据该联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界。示例性的,可以先在所述音频帧数维度的第t帧下,确定所述文本标签序列维度中每个序号为起点的预设尺寸(s_range,公式中记作s)的序列区间内的各个元素的梯度信息的和,为对应序号的梯度总量,其中,t为不小于1的整数,即第t帧为所述音频帧数维度的每1帧;然后将所述梯度总量最大的序号为起点的预设尺寸的序列区间,确定为第t帧的裁剪边界。每帧的裁剪边界确定后,便可以得到所述音频帧数维度和所述文本标签序列维度组成的平面内的裁剪边界。
[0125]
具体地,可以采用下述公式确定第t帧下所述梯度总量最大的序号p
t

[0126][0127]
其中,u为所述文本标签序列维度中的最大序号。
[0128]
另外,还可以使所述梯度总量最大的序号满足下述至少一项:
[0129]
所述梯度总量最大的序号与所述文本标签序列维度的最大序号间的差值,大于或等于预设尺寸,即0≤p
t
≤u-s+1。
[0130]
所述梯度总量最大的序号小于或等于第t+1帧的裁减边界的起点序号,即p
t
≤p
t+1

[0131]
所述梯度总量最大的序号与第t+1帧的裁剪边界的起点序号间的差值,小于预设尺寸,即p
t+1-p
t
≤s。
[0132]
最后,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果。示例性的,可以先分别将所述第一编码结果和所述第一预测结果在至少一个维度上进行扩充,以使所述第一编码结果的每个元素具有音频帧数维度上的坐标和文本标签序列维度上的坐标,也就是将第一编码结果从(n,t,v)维度扩展为(n,t,u,v)维度,将第一预测结果从(n,u,v)维度扩展为(n,t,u,v)维度;然后在所述音频帧数维度和所述文本标签序列维度组成的平面内,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果,即第二编码结果和第二预测结果均为(n,t,s_range,v)维度的矩阵。由于s_range远小于u,这两个矩阵远小于维度为(n,t,u,v)的四维矩阵,所以能够极大的减小联合网络计算时的
内存使用(即计算密度)。
[0133]
请参照附图4,其示例性的示出了本公开提供的神经网络训练方法的流程图。从附图4中可以看出,首先,编码子网络am对训练音频编码得到(n,t,v)维度的第一编码结果,预测则网络lm对训练音频对应的文本标签进行预测得到(n,u+1,v)第一预测结果;然后第一编码结果和第一预测结果联合后计算损失函数(rnnt_loss_simple)和梯度信息,并梯度信息计算(n、t、s_range、v)维度的裁减边界(calculate pruning bounds);然后分别利用裁剪边界对第一编码结果和第一预测结果进行裁剪,得到(n、t、s_range、v)维度的第二编码结果(pruned am)和(n、t、s_range、v)维度的第二预测结果(pruned lm);再将第二编码结果和第二预测结果输入联合子网络中进行联合处理,得到(n、t、s_range、v)的第二联合结果,然后根据第二联合结果计算损失函数(rnnt_loss_pruned),最后将损失函数(rnnt_loss_simple)和损失函数(rnnt_loss_pruned)加权求和后,根据所得结果对编码子网络、预测子网络和联合子网络的网络参数进行调整,直至收敛。
[0134]
本实施例中,通过对第一编码结果和第一预测结果进行裁剪后再进行联合,可以降低联合过程中的计算量和内存占用,进而降低神经网络模型的训练过程中的计算量和内存占用。
[0135]
根据本公开实施例的第二方面,提供一种音频处理方法,包括:
[0136]
将待处理音频输入至神经网络,得到目标文本,其中,所述神经网络预先使用第一方面所述的神经网络训练方法训练完成。
[0137]
根据本公开实施例的第三方面,提供一种神经网络训练装置,请参照附图5,包括:
[0138]
输入模块501,用于将训练音频输入至编码子网络进行编码,得到第一编码结果,并将训练音频对应的文本标签输入至预测子网络进行预测,得到第一预测结果;
[0139]
第一联合模块502,用于将所述第一编码结果和所述第一预测结果进行联合,得到第一联合结果;
[0140]
裁剪模块503,用于根据所述第一联合结果,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果;
[0141]
第二联合模块504,用于将所述第二编码结果和所述第二预测结果输入至联合子网络进行联合处理,得到第二联合结果,并根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
[0142]
在本公开的一些实施例中,所述第一联合模块具体用于:
[0143]
将所述第一编码结果和所述第一预测结果输入至联合模块进行联合处理,得到第一联合结果。
[0144]
在本公开的一些实施例中,所述第一联合结果内的每个元素至少具有音频帧数维度上的坐标和文本标签序列维度上的坐标。
[0145]
在本公开的一些实施例中,所述裁剪模块具体用于:
[0146]
获取所述第一联合结果内的每个元素的梯度信息;
[0147]
根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界;
[0148]
根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,得到对应的第二编码结果和第二预测结果。
[0149]
在本公开的一些实施例中,所述裁剪模块用于获取所述第一联合结果内的每个元素的梯度信息时,具体用于:
[0150]
获取所述第一联合结果内的每个元素输出文本标签的概率的梯度信息,和输出空字符的概率的梯度信息。
[0151]
在本公开的一些实施例中,所述裁剪模块用于根据所述第一联合结果内的每个元素的梯度信息,在所述音频帧数维度和所述文本标签序列维度组成的平面内确定裁剪边界时,具体用于:
[0152]
在所述音频帧数维度的第t帧下,确定所述文本标签序列维度中每个序号为起点的预设尺寸的序列区间内的各个元素的梯度信息的和,为对应序号的梯度总量;
[0153]
将所述梯度总量最大的序号为起点的预设尺寸的序列区间,确定为第t帧的裁剪边界。
[0154]
在本公开的一些实施例中,所述梯度总量最大的序号还满足下述至少一项:
[0155]
所述梯度总量最大的序号与所述文本标签序列维度的最大序号间的差值,小于或等于预设尺寸;
[0156]
所述梯度总量最大的序号小于或等于第t+1帧的裁减边界的起点序号;
[0157]
所述梯度总量最大的序号与第t+1帧的裁剪边界的起点序号间的差值,小于预设尺寸。
[0158]
在本公开的一些实施例中,所述裁剪模块用于根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果时,具体用于:
[0159]
分别将所述第一编码结果和所述第一预测结果在至少一个维度上进行扩充,以使所述第一编码结果的每个元素具有音频帧数维度和文本标签序列维度上的坐标;
[0160]
在所述音频帧数维度和所述文本标签序列维度组成的平面内,根据所述裁剪边界,分别对所述第一编码结果和所述第一预测结果进行裁剪,对应得到第二编码结果和第二预测结果。
[0161]
在本公开的一些实施例中,所述第二联合模块用于根据所述第二联合结果对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整时,具体用于:
[0162]
根据所述第二联合结果确定第一网络损失值,并根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
[0163]
在本公开的一些实施例中,还包括损失模块,用于:
[0164]
根据所述第一联合结果确定第二网络损失值;
[0165]
所述第二联合模块用于根据所述第一网络损失值对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整时,具体用于:
[0166]
根据所述第一网络损失值和所述第二网络损失值,对所述编码子网络、所述预测子网络和所述第二联合子网络的网络参数进行调整。
[0167]
根据本公开实施例的第四方面,提供一种音频处理装置,包括输入模块,用于:
[0168]
将待处理音频输入至神经网络,得到目标文本,其中,所述神经网络预先使用第一方面所述的神经网络训练方法训练完成。
[0169]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在第一方面有
关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0170]
根据本公开实施例的第三方面,请参照附图6,其示例性的示出了一种电子设备的框图。例如,装置600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0171]
参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(t/o)的接口612,传感器组件614,以及通信组件616。
[0172]
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机程序操作和记录操作相关联的操作。处理元件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
[0173]
存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0174]
电力组件606为装置600的各种组件提供电力。电力组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
[0175]
多媒体组件608包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触控面板(tp)。如果屏幕包括触控面板,屏幕可以被实现为触控屏,以接收来自用户的输入信号。触控面板包括一个或多个触控传感器以感测触控、滑动和触控面板上的手势。所述触控传感器可以不仅感测触控或滑动动作的边界,而且还检测与所述触控或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当装置600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0176]
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mtc),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
[0177]
t/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0178]
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600的一个组件的位置改变,用户与装置600接触的存在或不存在,装置600的方位或加速/减速和装置
600的温度变化。传感器组件614还可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0179]
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如wifi,2g或3g,4g或5g或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rftd)技术,红外数据协会(trda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0180]
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(astc)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述电子设备的供电方法。
[0181]
第四方面,本公开在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604上述指令可由装置600的处理器620执行以完成上述电子设备的供电方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0182]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0183]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1