时间序列语音识别深度学习模型的量化方法及装置

文档序号:24642506发布日期:2021-04-13 13:48阅读:85来源:国知局
时间序列语音识别深度学习模型的量化方法及装置

1.本发明涉及语音识别领域,尤其涉及一种时间序列语音识别深度学习模型的量化方法及装置。


背景技术:

2.语音识别是指机器通过识别和理解把语音信号转变为文本的技术。专业上通常用字错误率(character error rate,cer)、词错误率(word error rate, wer)考量语音识别模型的性能,比如,识别对象是英文时,用wer指标考察;识别对象是中文时,用cer指标考察。随着深度学习的兴起,基于深度神经网络的音频建模代替了原来的高斯混合模型方法。这类深度学习模型通常参数量较大,推理过程需要花费较多计算资源,而边缘计算场景中的边缘设备一般都是小型化设备,无法提供较大的存储空间,导致深度学习模型在进行边缘计算时成本很大,为此,现有技术中通过神经网络量化的方式将全精度(32bit)参数量化成低比特(如1bit),使深度学习模型所占内存成倍减少变为二值模型。这种处理方式能够减少内存空间的处理,但也会因参数的低比特带来信息损失,使得模型表征能力变差,性能降低。
3.现有技术中应对精度损失的降低,主要有六类方法:量化方法改进、梯度近似、结构设计改进、优化方法改进、损失函数设计以及神经网络架构搜索。这六类方法在图像分类任务上表现出较强的性能,能够减少量化带来的精度损失;但在语音识别任务上,精度损失的降低并不明显。
4.因此,如何保证在语音识别任务上对深度学习模型进行参数量化时降低精度损失是一个亟待解决的问题。


技术实现要素:

5.本发明提供一种时间序列语音识别深度学习模型的量化方法,以实现在将深度学习模型量化为二值模型时能够降低精度损失,并且二值模型的表征能力较深度学习模型差异不大。
6.第一方面,本发明提供一种时间序列语音识别深度学习模型的量化方法,包括:
7.获取全精度模型的参数;
8.根据全精度模型的参数和预设的量化算法,确定时间序列语音识别深度学习模型的参数,时间序列语音识别深度学习模型为二值模型;
9.在二值模型中新增预设的注意力机制模块,对二值模型输入值的权重进行训练;同时应用预设的损失函数对二值模型的参数进行训练,以降低由全精度模型量化为二值模型时的精度损失,其中,损失函数包括根据特征反馈得到的损失函数、联结主义时间分类损失函数以及投影损失函数。
10.在一种可能的设计中,根据特征反馈得到的损失函数,包括:
11.获取二值模型的深层特征和浅层特征;
12.根据浅层特征的维度,扩展深层特征的维度,确定扩展后的深层特征;
13.根据浅层特征和扩展后的深层特征,确定根据特征反馈得到的损失函数。
14.在一种可能的设计中,损失函数,包括:
15.l=l
p
+l
ctc
+l
f
[0016][0017][0018]
其中,l表示第l层卷积,o表示该层卷积的第o个卷积核;为第l 层卷积的第o个卷积核的全精度参数,为第l层卷积的第o个卷积核的二值参数,α
l
为第l层卷积的量化因子;l
p
为投影损失函数;l
ctc
为联结主义时间分类损失函数;l
f
为根据特征反馈得到的损失函数,f1表示第一个残差块后的浅层特征,f4代表第四个残差块后的深层特征,c表示特征图的通道数。
[0019]
第二方面,本发明提供一种基于深度学习模型的时间序列语音识别方法,包括:
[0020]
获取待识别语音数据;
[0021]
根据待识别语音数据以及预设深度学习模型确定语音识别结果,其中,预设深度学习模型为预设二值模型,预设二值模型中包括注意力机制模块以及损失函数模块,注意力机制模块用于对二值模型输入值的权重进行训练,损失函数模块用于对二值模型的参数进行训练,其中,损失函数包括联结主义时间分类损失函数、投影损失函数以及根据特征反馈得到的损失函数。
[0022]
第三方面,本发明还提供一种时间序列语音识别深度学习模型的量化装置,包括:
[0023]
获取模块,用于获取全精度模型的参数;
[0024]
确定模块,用于根据全精度模型的参数和预设的量化算法,确定时间序列语音识别深度学习模型的参数,时间序列语音识别深度学习模型为二值模型;
[0025]
处理模块,用于在二值模型中新增预设的注意力机制模块,对二值模型的输入值进行训练;同时应用预设的损失函数对二值模型的参数进行训练,以降低由全精度模型量化为二值模型时的精度损失,其中,损失函数包括根据特征反馈得到的损失函数、联结主义时间分类损失函数以及投影损失函数。
[0026]
在一种可能的设计中,处理模块,用于:
[0027]
获取二值模型的深层特征和浅层特征;
[0028]
根据浅层特征的维度,扩展深层特征的维度,确定扩展后的深层特征;
[0029]
根据浅层特征和扩展后的深层特征,确定根据特征反馈得到的损失函数。
[0030]
在一种可能的设计中,损失函数,包括:
[0031]
l=l
p
+l
ctc
+l
f
[0032]
[0033][0034]
其中,l表示第l层卷积,o表示该层卷积的第o个卷积核;为第l 层卷积的第o个卷积核的全精度参数,为第l层卷积的第o个卷积核的二值参数,α
l
为第l层卷积的量化因子;l
p
为投影损失函数;l
ctc
为联结主义时间分类损失函数;l
f
为根据特征反馈得到的损失函数,f1表示第一个残差块后的浅层特征,f4代表第四个残差块后的深层特征,c表示特征图的通道数。
[0035]
第四方面,本发明还提供一种基于深度学习模型的时间序列语音识别装置,包括:
[0036]
获取模块,用于获取待识别语音数据;
[0037]
确定模块,用于根据待识别语音数据以及预设深度学习模型确定语音识别结果,其中,预设深度学习模型为预设二值模型,预设二值模型中包括注意力机制模块以及损失函数模块,注意力机制模块用于对二值模型输入值的权重进行训练,损失函数模块用于对二值模型的参数进行训练,其中,损失函数包括联结主义时间分类损失函数、投影损失函数以及根据特征反馈得到的损失函数。
[0038]
第五方面,本发明还提供一种模型平台,包括:
[0039]
处理器;以及,
[0040]
存储器,用于存储处理器的可执行指令;
[0041]
其中,处理器配置为经由执行可执行指令来执行第一方面中任意一种时间序列语音识别深度学习模型的量化方法。
[0042]
第六方面,本发明还提供一种电子设备,包括:
[0043]
处理器;以及,
[0044]
存储器,用于存储处理器的可执行指令;
[0045]
其中,处理器配置为经由执行可执行指令来执行第二方面中基于深度学习模型的时间序列语音识别方法。
[0046]
第七方面,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意一种时间序列语音识别深度学习模型的量化方法或者基于深度学习模型的时间序列语音识别方法。
[0047]
本发明提供一种时间序列语音识别深度学习模型的量化方法及装置,通过获取全精度模型的参数;根据全精度模型的参数和预设的量化算法,确定时间序列语音识别深度学习模型的参数,时间序列语音识别深度学习模型为二值模型;在二值模型中新增预设的注意力机制模块,对二值模型输入值的权重进行训练;同时应用预设的损失函数对二值模型的参数进行训练,以降低由全精度模型量化为二值模型时的精度损失,其中,损失函数包括根据特征反馈得到的损失函数、联结主义时间分类损失函数以及投影损失函数。,以实现在将深度学习模型量化为二值模型时能够降低精度损失,并且二值模型的表征能力较深度学习模型差异不大。
附图说明
[0048]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049]
图1为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化方法的应用场景图;
[0050]
图2为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化流程示意图;
[0051]
图3为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化方法中注意力机制模块示意图;
[0052]
图4为本发明根据一示例实施例示出的基于深度学习模型的时间序列语音识别流程示意图;
[0053]
图5为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化装置的结构示意图;
[0054]
图6为本发明根据一示例实施例示出的基于深度学习模型的时间序列语音识别装置的结构示意图;
[0055]
图7为本发明根据一示例实施例示出的模型平台的结构示意图。
具体实施方式
[0056]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057]
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0058]
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面将结合附图,对本发明的实施例进行描述。
[0059]
图1为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化方法的应用场景图;如图1所示,二值模型共有5个残差块,分别是 1残差块101、2残差块102、3残差块103、4残差块104和5残差块105,输入值为待识别语音数据,每个残差块中有3个卷积,在每次进行卷积处理前新增有注意力机制模块,以利于对输入值进行优化处理,从而更加注重输入语音数据中有用的部分;并且对二值模型的参数应用损失函数模块进行训练处理,其中,损失函数包括:联结主义时间分类损失函数、投影损失函数以及根据特征反馈得
到的损失函数。通过这种处理方法,降低了由原全精度模型量化为二值模型的精度损失,确保了二值模型的表征能力,从而保证了语音识别的准确度。
[0060]
图2为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化训练流程示意图;如图2所示,本实施例提供的时间序列语音识别深度学习模型的量化方法,包括:
[0061]
步骤201、获取全精度模型的参数。
[0062]
步骤202、根据全精度模型的参数和预设的量化算法,确定时间序列语音识别深度学习模型的参数,时间序列语音识别深度学习模型为二值模型。
[0063]
具体的,由全精度模型量化为二值模型的量化算法为:
[0064]
w
b
=αsign(w
f
)
[0065]
其中,w
f
为全精度模型的参数,w
b
为二值模型的参数,α为量化因子。
[0066]
步骤203、在二值模型中新增预设的注意力机制模块,对二值模型输入值的权重进行训练;同时应用预设的损失函数对二值模型的参数进行训练,以降低由全精度模型量化为二值模型时的精度损失,其中,损失函数包括根据特征反馈得到的损失函数、联结主义时间分类损失函数以及投影损失函数。
[0067]
具体的,注意力机制模块是二值模型在前向计算过程中加入,对应二值模型中的环节是每个残差块中的每个卷积前有新增加,图3为本发明根据一示例实施例示出的基于深度学习模型的时间序列语音识别方法中注意力机制模块示意图,如图3所示,301为注意力机制模块的输入值x,该输入值x 为采样的音频信号,长度为l,占用c个通道,在经过自适应池化、一维卷积,并通过激活函数处理后生成占用c个通道,长度为1的输出值y;根据输入值x的维度将输出值y进行扩展并与对应维度的x逐点相乘,得到新输入值作为二值模型中相应卷积的输入。通过这种新增注意力机制模块的方式对二值模型输入值的权重进行训练,从而更加注重输入语音信号中有用的部分,进而促进提升二值模型的表征能力。
[0068]
在一种可能的设计中,预设的损失函数包括联结主义时间分类损失函数、投影损失函数以及根据特征反馈得到的损失函数。
[0069]
包括:
[0070]
l=l
p
+l
ctc
+l
f
[0071][0072][0073]
其中,l表示第l层卷积,o表示该层卷积的第o个卷积核;为第l 层卷积的第o个卷积核的全精度参数,为第l层卷积的第o个卷积核的二值参数,α
l
为第l层卷积的量化因子;l
p
为投影损失函数;l
ctc
为联结主义时间分类损失函数;l
f
为根据特征反馈得到的损失函数,f1表示第一个残差块后的浅层特征,f4代表第四个残差块后的深层特征,c表示特征图的通道数。
[0074]
具体的,投影损失函数是全精度模型的卷积核与二值模型的卷积核差的二范数,
可以减小二值模型因量化带来的误差,以提升网络性能。
[0075]
根据特征反馈得到的损失函数的应用原理为由于全精度模型网络深度大,越靠近输出的层的深层特征受标签监督的效果越强,越远离输出的层的浅层特征受标签监督效果越弱,因此在训练二值模型时加入深层特征的反馈,使浅层特征也受到标签的强监督,更有利于训练过程的收敛。处理方法为:获取二值模型的深层特征和浅层特征;根据浅层特征的维度,扩展深层特征的维度,确定扩展后的深层特征;根据浅层特征和扩展后的深层特征,进行求差运算,将求差结果作为根据特征反馈得到的损失函数。图4为本发明根据一示例实施例示出的基于深度学习模型的时间序列语音识别流程示意图;如图4所示,本实施例提供的基于深度学习模型的时间序列语音识别方法,包括:
[0076]
步骤401、获取待识别语音数据。
[0077]
步骤402、根据待识别语音数据以及预设深度学习模型确定语音识别结果,其中,预设深度学习模型为预设二值模型,预设二值模型中包括注意力机制模块以及损失函数模块,注意力机制模块用于对二值模型输入值的权重进行训练,损失函数模块用于对二值模型的参数进行训练;其中,损失函数包括联结主义时间分类损失函数、投影损失函数以及根据特征反馈得到的损失函数。
[0078]
具体的,将待识别语音数据输入预设二值模型中以得到语音识别结果。预设的二值模型中包括注意力机制模块以及损失函数模块,其中,注意力机制模块是在前向计算过程中加入,对应二值模型中的环节是每个残差块中的每个卷积前有新增加,通过这种新增注意力机制模块的方式对二值模型输入值的权重进行训练,从而更加注重输入语音信号中有用的部分,进而促进提升二值模型的表征能力。
[0079]
损失函数中的投影损失函数是全精度模型的卷积核与二值模型的卷积核差的二范数,用于衡量二值模型和全精度模型的参数差异;根据特征反馈得到的损失函数的应用使浅层特征也受到标签的强监督,更有利于训练过程的收敛。
[0080]
举例来说,使用wavenet作为基础模型,训练基于wavenet的二值网络。考虑到深度可分离卷积信息密度高,量化效果差,因此将深度可分离卷积替换为群卷积,并设定组数为2。输入的语音数据训练集采用自制中文语音数据集的方式,音频语料均经过梅尔频率倒谱系数(mel frequency cepstrumcoefficient,mfcc)预处理,每组数据都有20个mfcc维度,包含时频信息。训练集中共有940,000余条数据。实验的结果从语音识别的字错误率对比结果和模型压缩率两个方面分析。
[0081]
1)语音识别的字错误率对比结果分析
[0082]
表1
[0083]
模型类型字错误率cer(%)全精度模型10.96原始二值模型22.50二值模型+注意力机制模块15.03二值模型+投影损失函数14.36二值模型+特征反馈16.39综合13.98
[0084]
从表1中结果可以看出,应用全精度模型语音识别的字错误率较原始二值模型语
音识别的字错误率在准确性上提高了一倍,相差很大;而在二值模型加入注意力机制模块后,两者在识别的准确性差异上有大幅减少;同样的在损失函数加入训练二值模型的参数时,两者在识别的准确性差异上都有不同程度的减少,最后综合注意力机制模块和损失函数模块的二值模型的字错误率识别结果较上述各种单独改进的模型都更接近原全精度模型的字错误率结果。可以看出,本申请的处理方法确实能够尽可能的降低由全精度模型量化为二值模型的过程中的信息损失,从而进一步保证二值模型的精度。
[0085]
2)模型压缩率分析
[0086]
假设wavenet网络中某层卷积核参数为:外通道表示为o,内通道表示为i,内核大小表示为k。则深度可分离卷积的参数数目为:
[0087]
i*k+i*o,
[0088]
若将深度可分离卷积替换为组为2的群卷积,组表示为g,参数数目为
[0089][0090]
根据深度可分离卷积和群卷积的参数数目,同时注意到o>>k,可得该层参数压缩率为
[0091][0092]
当k=7,g=2时,r≈0.11,模型压缩到原来的约十分之一。
[0093]
可以看出,本申请的处理方法在将原全精度模型量化为二值模型时,不但模型参数的压缩率很高,而且降低了精度损失,确保了二值模型的表征能力。
[0094]
图5为本发明根据一示例实施例示出的时间序列语音识别深度学习模型的量化装置的结构示意图,如图5所示,本实施例提供的时间序列语音识别深度学习模型的量化装置50,包括:
[0095]
获取模块501,用于获取全精度模型的参数;
[0096]
确定模块502,用于根据全精度模型的参数和预设的量化算法,确定时间序列语音识别深度学习模型的参数,时间序列语音识别深度学习模型为二值模型;
[0097]
处理模块503,用于在二值模型中新增预设的注意力机制模块,对二值模型的输入值进行训练;同时应用预设的损失函数对二值模型的参数进行训练,以降低由全精度模型量化为二值模型时的精度损失,其中,损失函数包括根据特征反馈得到的损失函数、联结主义时间分类损失函数以及投影损失函数。
[0098]
在一种可能的设计中,处理模块503,用于:
[0099]
获取二值模型的深层特征和浅层特征;
[0100]
根据浅层特征的维度,扩展深层特征的维度,确定扩展后的深层特征;
[0101]
根据浅层特征和扩展后的深层特征,确定根据特征反馈得到的损失函数。
[0102]
在一种可能的设计中,损失函数,包括:
[0103]
l=l
p
+l
ctc
+l
f
[0104]
[0105][0106]
其中,l表示第l层卷积,o表示该层卷积的第o个卷积核;为第l 层卷积的第o个卷积核的全精度参数,为第l层卷积的第o个卷积核的二值参数,α
l
为第l层卷积的量化因子;l
p
为投影损失函数;l
ctc
为联结主义时间分类损失函数;l
f
为根据特征反馈得到的损失函数,f1表示第一个残差块后的浅层特征,f4代表第四个残差块后的深层特征,c表示特征图的通道数。
[0107]
图6为本发明根据一示例实施例示出的基于深度学习模型的时间序列语音识别装置的结构示意图。如图6所示,本实施例提供的基于深度学习模型的时间序列语音识别装置60,包括:
[0108]
获取模块601,用于获取待识别语音数据;
[0109]
确定模块602,用于根据待识别语音数据以及预设深度学习模型确定语音识别结果,其中,预设深度学习模型为预设二值模型,预设二值模型中包括注意力机制模块以及损失函数模块,注意力机制模块用于对二值模型输入值的权重进行训练,损失函数模块用于对二值模型的参数进行训练。
[0110]
图7为本发明根据一示例实施例示出的模型平台的结构示意图;如图7 所示,本实施例提供的一种模型平台70,包括:
[0111]
处理器701;以及,
[0112]
存储器702,用于存储处理器的可执行指令,该存储器还可以是flash (闪存);
[0113]
其中,处理器701配置为经由执行可执行指令来执行上述方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
[0114]
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
[0115]
当存储器702是独立于处理器701之外的器件时,模型平台70,还可以包括:
[0116]
总线703,用于连接处理器701以及存储器702。
[0117]
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
[0118]
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
[0119]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0120]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1