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

基于神经网络模型的语音处理方法、装置及电子设备与流程

2021-06-11 21:44:00 来源:中国专利 TAG:神经网络 电子设备 语音 装置 模型
基于神经网络模型的语音处理方法、装置及电子设备与流程

本发明涉及语音识别技术领域,尤其涉及一种基于神经网络模型的语音处理方法、装置及电子设备。



背景技术:

针对目前的直播软件,常常需要对数量繁杂的直播间主播的内容进行监管,包括图像和声音,对于声音,直播中的声音主要是主播说出的语音。对于语音内容的监管,其中一个方法就是对于语音进行识别,转换成文字内容,然后对文字内容进行甄别。

在语音识别的过程中,需要使用端到端深度神经网络对于切分过的一小段一小段的语音进行建模,其中较为常用的损失函数在神经网络模型seq2seq结构有编码器encoder和注意力解码器attention-decoder两个部分,encoder对于输入的语音特征进行编码,然后decoder对于编码进行结算得到文字存在概率矩阵,然后可以通过一定的搜索算法在文字存在概率矩阵得到文字串。但是,对于seq2seq基于深度学习神经网络结构transformer模型,transformer中的encoder核心部件多头注意力(multiheadattenbtion,mha)的感知域较大,每个隐层的单元需要感知上层的整个序列,因此导致计算资源消耗较大。



技术实现要素:

本发明提供一种基于神经网络模型的语音处理方法、装置及电子设备,以便在一定程度上解决语音识别的过程中的计算资源消耗较大的问题。

在本发明实施的第一方面,提供了一种基于神经网络模型的语音处理方法,所述方法包括:

获取待处理的语音信号;

选取所述语音信号中的第一时间点片段;

以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段;

根据所述目标片段,得到关于所述语音信号的语音识别文字。

在本发明实施的第二方面,提供了一种基于神经网络模型的语音处理装置,所述装置包括:

第一获取模块,用于获取待处理的语音信号;

第一选取模块,用于选取所述语音信号中的第一时间点片段;

第一处理模块,用于以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段;

第二获取模块,用于根据所述目标片段,得到关于所述语音信号的语音识别文字。

在本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现如上所述的基于神经网络模型的语音处理方法中的步骤。

在本发明实施的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的基于神经网络模型的语音处理方法。

针对在先技术,本发明具备如下优点:

本发明实施例中,通过选取获取的语音信号中的第一时间点片段,并以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段,根据所述目标片段,得到关于所述语音信号的语音识别文字,由此可以降低transformer中的encoder核心部件mha的感知域,即每个隐层的单元仅需要感知其上层对应的部分语音片段,而不是上层的整个语音序列,从而可以减少计算量。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的基于神经网络模型的语音处理方法流程图;

图2为本发明实施例提供的深度神经网络的结构示意图;

图3为本发明实施例提供的编码层的结构示意图;

图4为本发明实施例提供的第一窗口使用示意图;

图5为本发明实施例提供的基于神经网络模型的语音处理装置的框图;

图6为本发明实施例提供的电子设备的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

transformer最开始是用于机器翻译,在机器翻译存在比较常见的倒装问题,比如英语的“howdareyou”翻译为中文为“你怎么敢”,在这个其中最后的“你”对应的应该是最后的“you”,而最后的“敢”对应的确是中间“dare“。但是语音识别并不存在如此复杂的倒装关系,语音和其对应的文字应该是单调对应的,即发音顺序等同于书写顺序。因此本发明实施例提供了一种神经网络模型的数据处理方法、装置及电子设备,transformer中的encoder核心部件mha的感知域,下一层的每个隐层的单元仅需要感知上层对应的部分语音片段,从而可以减少计算量。

具体的,如图1所示,本发明实施例提供了一种基于神经网络模型的语音处理方法,上述方法具体可以包括如下步骤:

步骤101,获取待处理的语音信号。

在上述步骤101中,在语音识别中,一些端到端的声学深度神经网络,如seq2seq和其各种改进网络,一般具有类似于如图2所示的结构,主要包括编码器encoder和解码器decoder,encoder中的圆形(如图2中o1~o8等)表示待处理的语音信号的其中一段,即o1~o8组合形成整个待处理的语音信号。encoder中的方块表征encoder的深度神经网络,针对encoder中的方块表征的深度神经网络,由多个编码层encoder-layer堆叠组成。其中,如图3所示,每一个encoder-layer的结构主要包括:多头注意力层21、第一加和正则化层22、前馈层23、第二加和正则化层24。其中,第一数据为输入至每一个encoder-layer的数据,首先输入至每一个encoder-layer中的多头注意力层21中,经过多头注意力层21计算输出第二数据,然后将第二数据输入至encoder-layer中的第一加和正则化层22中,并将第一数据输入至第一加和正则化层22中,经过第一加和正则化层22计算输出第三数据;然后将第三数据输入至前馈层23中,经过前馈层23计算输入第四数据,将第四数据输入至第二加和正则化层24中,并将第三数据输入至第二加和正则化层24中,经过第二加和正则化层24计算输出encoder-layer的输出数据,输入至下一层的encoder-layer中进行计算,直到经过所有的encoder-layer计算出来的数据输入至解码器decoder中。

步骤102,选取所述语音信号中的第一时间点片段。

在上述步骤102中,多头注意力层21是由多个自注意力层拼接而成,针对自注意力层,在语音信号序列中选取一个时间点,该时间点对应的语音片段为第一时间点片段。

步骤103,以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段。

进一步的,所述第一窗口可以为伯努利分布控制的软窗口,或者所述第一窗口可以为长度固定的硬窗口hardwindow。

在上述步骤103中,针对自注意力层,以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的部分片段,形成目标片段,而不是使用整个语音信号序列,由此可以减少语音识别的计算量。

步骤104,根据所述目标片段,得到关于所述语音信号的语音识别文字。

在上述步骤104中,对所述语音信号的目标片段进行处理,由此可以得到语音信号的语音识别文字。

本发明上述实施例中,通过选取获取的语音信号中的第一时间点片段,并以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段,根据所述目标片段,得到关于所述语音信号的语音识别文字,降低transformer中的encoder核心部件mha的感知域,即每个隐层的单元仅需要感知其上层对应的部分语音片段,而不是上层的整个语音序列,从而可以减少计算量。

可选的,所述步骤103以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段,具体可以包括如下步骤:

以所述第一时间点片段为基准,通过第一窗口向前和/或向后截取所述语音信号的部分片段;

根据所述第一时间点片段以及截取的部分片段,生成所述语音信号的目标片段。

在上述实施例中,针对自注意力层,以所述第一时间点片段为基准,通过第一窗口向前截取所述语音信号的部分片段,上述截取的部分片段加上第一时间点片段共同组成目标片段;或者,以所述第一时间点片段为基准,通过第一窗口向后截取所述语音信号的部分片段,上述截取的部分片段加上第一时间点片段共同组成目标片段;或者,以所述第一时间点片段为基准,通过第一窗口向前截取所述语音信号的部分片段,并向后截取所述语音信号的部分片段,上述向后并向后截取的部分片段加上第一时间点片段共同组成目标片段。

需要说明的是,该目标片段仅为整个语音信号序列的其中一部分,而不是使用整个语音信号序列,由此可以减少语音识别的计算量。

可选的,所述步骤104根据所述目标片段,得到关于所述语音信号的语音识别文字,具体可以包括如下步骤:

对所述目标片段进行计算,得到第一矩阵;

对所述第一矩阵进行归一化处理,得到第二矩阵;

根据所述第二矩阵,得到关于所述语音信号的语音识别文字。

在上述实施例中,针对自注意力层,首先对目标片段进行计算,可以得到第一矩阵q、k以及v。其中,第一矩阵q表示矩阵quary,第一矩阵k表示矩阵key,第一矩阵v表示矩阵value。然后对第一矩阵进行归一化处理或者通过注意力机制进行处理,从而得到第二矩阵。然后所述第二矩阵通过第一加和正则化层、前馈层、第二加和正则化层以及损失函数(connectionisttemporalclassification,ctc)等可以得到语音识别文字,或者所述第二矩阵通过第一加和正则化层、前馈层、第二加和正则化层以及解码器等可以得到语音识别文字。

可选的,上述根据所述第二矩阵,得到关于所述语音信号的语音识别文字的步骤,具体可以包括如下内容:

根据所述第二矩阵,得到关于所述语音信号的隐含特征;

将所述隐含特征进行解码处理,得到关于所述语音信号的语音识别文字。

在上述实施例中,针对编码器,根据所述第二矩阵可以得到关于所述语音信号的隐含特征,如果将隐含特征输入至解码器中进行解码处理,可以得到语音识别文字;这个隐含特征页可以作为序列标注问题中的一种ctc算法的输入数据,进行计算ctc损失函数并识别语音识别文字。其中,ctc算法用于训练深度神经网络模型,主要解决语音识别、文字识别和其他的一些序列任务。

例如:如图2所示,encoder中的方块表征encoder的深度神经网络,经过encoder的深度神经网络处理之后输出的为隐含特征hn(如图2中的h1~h4)。并且,这个隐含特征也可以作为attention-decoder的输入,首先根据所有的隐含层输出h1~h4,通过attention神经网络(如图中解码器中的方框h所示)先计算出一个注意力权重attentionweight,记为公式一:

am,n=attention(h1→n,sm-1)

其中,sm-1表示attention-decoder中的一个状态量,即解码器中的s0~s3;

am,n表示注意力权重,即hn对于语音识别文字ym的贡献程度;

h1→n表示隐含特征h1~hn;

hn表示h1~hn中的任意一个取值;

n表示h的总数量。

需要说明的是,隐含特征的数量可以是待处理的语音信号分段之后的分段数量除以2,也可以是待处理的语音信号分段之后的分段数量除以4,也可以是待处理的语音信号分段之后的分段数量除以8等,在此不做具体限定。

然后根据attentionweight更新各个隐含特征到加权隐含特征cm(如图2中的c1~c4),记为公式二:

其中,cm表示加权隐含特征;

am,n表示注意力权重;

hn表示隐含特征;

n表示h的总数量。

然后,加权隐含特征结合decoder中的状态量sm计算出需要的文字ym,同时更新状态量sm,记为公式三和公式四:

ym=generate(cm,sm-1)

sm=recurrency(sm-1,cm,ym)

其中,cm表示加权隐含特征;

ym表示计算出的需要的文字,即语音信号的语音识别文字;

sm-1表示更新前的状态量;

sm表示更新后的状态量;

上述公式三和公式四中的generate和recurrency都是decoder神经网络的一部分。这个状态量sm-1也会去更新注意力权重am,n,如公式一所示。最后attention-decoder计算出来的文字ym也用来计算注意力损失函数。

可选的,上述对所述目标片段进行计算,得到第一矩阵的步骤,具体可以包括如下内容:

获取第一矩阵参数、第二矩阵参数以及第三矩阵参数;

将所述第一矩阵参数与所述第一时间点片段相乘,得到第一子矩阵;

将所述第二矩阵参数与所述目标片段相乘,得到第二子矩阵;

将所述第三矩阵参数与所述目标片段相乘,得到第三子矩阵;

其中,所述第一矩阵包括:所述第一子矩阵、所述第二子矩阵以及所述第三子矩阵。

在上述实施例中,针对自注意力层,第一矩阵包括:第一子矩阵q、所述第二子矩阵k以及所述第三子矩阵v;获取第一子矩阵q、第二子矩阵k、第三子矩阵v的方法如下:首先获取关于第一子矩阵q的第一矩阵参数,并获取关于第二子矩阵k的第二矩阵参数,并获取关于第三子矩阵v的第三矩阵参数;然后将第一矩阵参数与所述第一时间点片段相乘得到第一子矩阵q,将第二矩阵参数与目标片段相乘得到第二子矩阵k,将第三矩阵参数与目标片段相乘得到第三子矩阵v。

可选的,所述目标片段为第一时间点片段、第一片段以及第二片段的结合;

其中,所述第一片段为通过所述第一窗口向前截取的所述语音信号的部分片段,所述第二片段为通过所述第一窗口向后截取的所述语音信号的部分片段。

在上述实施例中,语音信号用x表示,第一时间点用t表示,第一时间点片段用x[t]表示;通过所述第一窗口向前截取的时间用a表示,通过所述第一窗口向前截取的语音信号的第一片段用x[t-a:t]表示;通过所述第一窗口向后截取的时间用b表示,通过第一窗口向后截取的语音信号的第二片段用x[t:t b]表示,因此目标片段用x[t-a:t b]表示。在训练和部署模型的时候,a和b的大小是可以采用不一样的数值,因为a和b的大小设定不同,本质上不影响权重的wq、wk、wv的矩阵的尺寸的。因此,可以在训练中增加a和b的值实现高精度的自动语音识别技术(automaticspeechrecognition,asr)模型训练,同时在部署模型时,为了降低计算复杂度,可以同时降低a或者b的值,或者为了降低模型的推理延时,可以降低b的值,同时利用编码器层下降encoderlayerdrop技术,增加堆叠的encoderlayer的数量,这样就可以降低延时的情况下不降低太多的识别性能。

例如:如图4所示,x表示语音信号,第一时间点片段用x[t]表示,根据x[t]可以得到第一子矩阵q。x[t-a:t b]表示目标片段,根据x[t-a:t b]可以得到第二子矩阵k和第三子矩阵v。第一子矩阵q、第二子矩阵k和第三子矩阵v通过多头注意力可以得到第二矩阵z,对于一条的20s的音频,帧长为40ms的短时傅里叶变换,整个语音信号序列的大小在百量级,而a和b的量级都分别在个位或者十位,减少了算法的复杂度。

下面通过具体公式对第一矩阵、第二矩阵的计算过程进行详细说明:

q[t]=wq*x[t]

k[t-a:t b]=wk*x[t-a:t b]

v[t-a:t b]=wv*x[t-a:t b]

其中,q[t]表示关于第一时间点片段的第一子矩阵q;

k[t-a:t b]表示关于目标片段的第二子矩阵k;

v[t-a:t b]表示关于目标片段第三子矩阵v;

wq表示第一矩阵参数;

wk表示第二矩阵参数;

wv表示第三矩阵参数;

x[t]表示自注意力层的输入序列(即语音信号)的第一时间点片段;

x[t-a:t b]表示自注意力层的输入序列(即语音信号)的目标片段;

z[t]表示第二矩阵;

softmax表示使用归一化指数函数;

a表示过去lookback参数,即通过所述第一窗口向前截取的所述语音信号的第一片段;

b表示未来lookahead参数,通过所述第一窗口向后截取的所述语音信号的第二片段;

k[t-a:t b]t表示对k[t-a:t b]的转置计算;

dk表示第二子矩阵k的维度。

综上所述,本发明实施例通过语音信号的部分语音片段替换了整个语音信号序列,减少了算法的复杂度;利用语音识别中的单调性,对于端到端的语音识别模型进行参数压缩,从而降低语音识别时候的硬件消耗,从而提高模型的推理速度和降低计算资源的消耗。

如图5所示,本发明实施例提供的一种基于神经网络模型的语音处理装置500,所述装置包括:

第一获取模块501,用于获取待处理的语音信号;

第一选取模块502,用于选取所述语音信号中的第一时间点片段;

第一处理模块503,用于以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段;

第二获取模块504,用于根据所述目标片段,得到关于所述语音信号的语音识别文字。

本发明上述实施例中,通过选取获取的语音信号中的第一时间点片段,并以所述第一时间点片段为基准,通过第一窗口截取所述语音信号的目标片段,根据所述目标片段,得到关于所述语音信号的语音识别文字,降低transformer中的encoder核心部件mha的感知域,即每个隐层的单元仅需要感知其上层对应的部分语音片段,而不是上层的整个语音序列,从而可以减少计算量。

可选的,所述第一窗口为伯努利分布控制的软窗口或者长度固定的硬窗口。

可选的,所述第一处理模块503,包括:

第一处理单元,用于以所述第一时间点片段为基准,通过第一窗口向前和/或向后截取所述语音信号的部分片段;

第一生成单元,用于根据所述第一时间点片段以及截取的部分片段,生成所述语音信号的目标片段。

可选的,所述目标片段为第一时间点片段、第一片段以及第二片段的结合;

其中,所述第一片段为通过所述第一窗口向前截取的所述语音信号的部分片段,所述第二片段为通过所述第一窗口向后截取的所述语音信号的部分片段。

可选的,所述第二获取模块504,包括:

第一计算单元,用于对所述目标片段进行计算,得到第一矩阵;

第二处理单元,用于对所述第一矩阵进行归一化处理,得到第二矩阵;

第三处理单元,用于根据所述第二矩阵,得到关于所述语音信号的语音识别文字。

可选的,所述第三处理单元,包括:

第一处理子单元,用于根据所述第二矩阵,得到关于所述语音信号的隐含特征;

第二处理子单元,用于将所述隐含特征进行解码处理,得到关于所述语音信号的语音识别文字。

可选的,所述第一计算单元,包括:

第一获取子单元,用于获取第一矩阵参数、第二矩阵参数以及第三矩阵参数;

第一计算子单元,用于将所述第一矩阵参数与所述第一时间点片段相乘,得到第一子矩阵;

第二计算子单元,用于将所述第二矩阵参数与所述目标片段相乘,得到第二子矩阵;

第三计算子单元,用于将所述第二矩阵参数与所述目标片段相乘,得到第三子矩阵;

其中,所述第一矩阵包括:所述第一子矩阵、所述第二子矩阵以及所述第三子矩阵。

需要说明的是,该基于神经网络模型的语音处理装置实施例是与上述基于神经网络模型的语音处理方法相对应的装置,上述方法实施例的所有实现方式均适用于该装置实施例中,也能达到与其相同的技术效果,在此不再赘述。

综上所述,本发明实施例通过语音信号的部分语音片段替换了整个语音信号序列,减少了算法的复杂度;利用语音识别中的单调性,对于端到端的语音识别模型进行参数压缩,从而降低语音识别时候的硬件消耗,从而提高模型的推理速度和降低计算资源的消耗。

本发明实施例还提供了一种电子设备。如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。

存储器603,用于存放计算机程序。

处理器601用于执行存储器603上所存放的程序时,实现本发明实施例提供的一种基于神经网络模型的语音处理方法中的部分或者全部步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述终端与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的基于神经网络模型的语音处理方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中所述的基于神经网络模型的语音处理方法。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,包含在本发明的保护范围内。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜