语音识别方法、装置、电子设备、存储介质及程序产品与流程

文档序号:31705681发布日期:2022-10-01 10:57阅读:79来源:国知局
语音识别方法、装置、电子设备、存储介质及程序产品与流程

1.本技术涉及语音识别技术领域,特别是涉及一种语音识别方法、装置、电子设备、存储介质及程序产品。


背景技术:

2.随着互联网技术的快速发展,自动语音识别技术已经被广泛地应用在人们的日常生活和工作中,如即时通信语音识别、智能家居语音识别、车载系统语音识别等等。自动语音识别技术一般基于语音识别模型实现,随着语音识别的精度需求的提升,各种应用场景对语音识别的性能要求越来越高,语音识别模型的体积也随之增大,从而降低了语音识别效率。
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.将所述第一样本语音数据集输入至所述第二语音识别模型,获取所述预设卷积层输出的第三卷积特征,获取最后一个所述第二卷积层输出的第四卷积特征;
29.根据所述第一卷积特征和所述第三卷积特征确定第一卷积损失值,根据所述第二卷积特征和所述第四卷积特征确定第二卷积损失值;
30.根据所述第一卷积损失值和所述第二卷积损失值确定目标卷积损失值,根据所述目标卷积损失值对所述第二卷积网络进行蒸馏训练。
31.进一步,上述第三训练模块具体用于:
32.将所述第一样本语音数据集输入至所述第一语音识别模型,从所述第一语音识别模型中确定与所述第二编码层相同数量的基准编码层,获取各个所述基准编码层输出的第一编码特征;
33.将所述第一样本语音数据集输入至所述第二语音识别模型,获取各个所述第二编码层输出的第二编码特征;
34.确定各个所述第二编码层的蒸馏拟合参数,根据所述蒸馏拟合参数调整对应的所述第二编码特征的特征维度;
35.根据调整特征维度后的所述第二编码特征与对应的所述第一编码特征,确定各个所述第二编码层对应的编码层损失值,根据各个所述编码层损失值确定目标编码损失值,根据所述目标编码损失值对所述第二编码网络进行蒸馏训练。
36.进一步,上述第三训练模块具体用于:
37.获取所述第一输出层输出的第一样本识别结果和所述第二输出层输出的第二样本识别结果;
38.根据所述第一样本识别结果和所述第二样本识别结果确定目标输出损失值;
39.根据所述目标编码损失值和所述目标输出损失值对所述第二编码网络进行蒸馏训练。
40.进一步,上述第三训练模块具体用于:
41.根据所述目标编码损失值对所述第二编码网络进行蒸馏训练,根据所述目标输出损失值再次对所述第二编码网络进行蒸馏训练;
42.或者,对所述目标编码损失值和所述目标输出损失值进行加权,得到目标模型损失值,根据所述目标模型损失值对所述第二编码网络进行蒸馏训练。
43.进一步,上述第三训练模块具体用于:
44.根据最后一个所述第二编码层的蒸馏拟合参数,调整所述目标语音识别模型中所述第二输出层的特征维度;
45.基于调整特征维度后的所述目标语音识别模型对目标语音数据进行语音识别。
46.进一步,上述第三训练模块具体用于:
47.将所述目标语音识别模型中各个目标编码层的所述蒸馏拟合参数进行剪枝,基于剪枝后的所述目标语音识别模型对目标语音数据进行语音识别;其中,所述目标编码层为除了最后一个所述第二编码层以外其余的第二编码层;
48.或者,将所述目标语音识别模型中各个所述第二编码层的所述蒸馏拟合参数进行剪枝,基于剪枝后的所述目标语音识别模型对目标语音数据进行语音识别。
49.进一步,所述原始模型包括依次连接的原始卷积网络和原始编码网络,上述第一训练模块具体用于:
50.将所述第一样本语音数据集输入至所述原始模型,对所述原始卷积网络输出的原始卷积特征进行屏蔽操作,得到屏蔽卷积特征;
51.对所述原始卷积特征进行乘积量化操作,得到量化卷积特征;
52.获取所述原始编码网络处理所述屏蔽卷积特征后输出的屏蔽编码特征;
53.根据所述屏蔽编码特征和所述量化卷积特征确定第一原始损失值;
54.根据所述第一原始损失值对所述原始模型进行无监督训练。
55.进一步,上述第一训练模块具体用于:
56.获取进行所述乘积量化操作时量化码本的第一数量和各个所述量化码本中聚类中心的第二数量;
57.确定各个所述量化码本中任意一个所述聚类中心被选中的概率分布;
58.根据所述第一数量、所述第二数量和所述概率分布确定第二原始损失值;
59.根据所述第一原始损失值和所述第二原始损失值对所述原始模型进行无监督训练。
60.另一方面,本技术实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的语音识别方法。
61.另一方面,本技术实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行实现上述的语音识别方法。
62.另一方面,本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的语音识别方法。
63.本技术实施例至少包括以下有益效果:通过引入未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集,在不同的训练阶段对应使用不同类型的样本语音数据集,能够达到半监督训练的效果,并且,由于第一样本语音数据集无须进行标注,能够降低数据标注的成本,提升模型的训练效率,有利于提高目标语音识别模型的性能。并且,由于位置越靠后的基础编码层输出的特征更容易拟合训练任务,会对损失值的计算产生影响,因而将基础语音处理模型中位于预设编码层之后的基础编码层进行剪枝,能够提升对基础语音处理模型的训练效果,提升基础语音处理模型的性能,同时也能够缩小基础语音处理模型的体积,相应地缩小第一语音识别模型的体积,后续在以第一语音识别模型为基准,对所述第二语音识别模型进行蒸馏训练时,能够进一步缩小目标语音识别模型的体积,降低目标语音识别模型的部署成本,并且,由于基础语音处理模型的性能得到提高,因而也能进一步提高目标语音识别模型的性能。可见,本技术实施例提供的目标语音识别模型兼备体积小和性能高的优点,因此,利用目标语音识别模型对目标语音数据进行语音识别,能够在提升语音识别效率的同时提升语音识别精度。
64.本技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
65.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
66.图1为本技术实施例提供的一种实施环境的示意图;
67.图2为本技术实施例提供的另一种实施环境的示意图;
68.图3为本技术实施例提供的语音识别方法的流程示意图;
69.图4为本技术实施例提供的基础语音处理模型一个示例性的结构示意图;
70.图5为本技术实施例提供的基础编码层一个示例性的结构示意图;
71.图6为本技术实施例提供的对所述原始模型进行无监督训练的流程示意图;
72.图7为本技术实施例提供的第一语音识别模型一个示例性的结构示意图;
73.图8为本技术实施例提供的第二语音识别模型一个示例性的结构示意图;
74.图9为本技术实施例提供的第二卷积网络的蒸馏训练示意图;
75.图10为本技术实施例提供的第二编码网络的蒸馏训练示意图;
76.图11为本技术实施例提供的目标语音识别模型的总体训练流程图;
77.图12为本技术实施例提供的目标语音识别模型的详细训练流程图;
78.图13为本技术实施例提供的语音识别装置的结构示意图;
79.图14为本技术实施例提供的终端的部分结构框图;
80.图15为本技术实施例提供的服务器的部分结构框图。
具体实施方式
81.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
82.为便于理解本技术实施例提供的技术方案,这里先对本技术实施例使用的一些关键名词进行解释:
83.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
84.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
85.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
86.知识蒸馏(knowledge distillation,kd):也叫暗知识提取,是指通过结构复杂、计算量大但是性能优秀的教师网络(teacher network),对结构相对简单、计算量较小的学
生网络络(student network)的训练进行指导,以提升学生网络的性能,实现知识迁移(knowledge transfer)的过程。知识蒸馏能使模型变轻量的同时(方便部署),尽量不损失性能。
87.自动语音识别(automatic speech recognition,asr):是人工智能领域中较为活跃的研究课题,自动语音识别的目的是将语音信号转变为对应的文本表示。
88.目前,自动语音识别技术一般基于语音识别模型实现,随着语音识别的精度需求的提升,各种应用场景对语音识别的性能要求越来越高,语音识别模型的体积也随之增大,从而降低了语音识别效率。为了提升语音识别效率,可以采用知识蒸馏的方式来对语音识别模型进行训练,旨在缩小语音识别模型的体积,提升语音识别效率。其中,知识蒸馏的训练方式可以将嵌入在大型教师网络中的知识迁移到小型学生网络中,再训练小型学生网络以再现教师网络的行为,进而提高模型部署的便捷性。然而,学生网络的参数数量比教师网络的参数数量要小,因此带来了模型精度损耗的问题,即,采用相关技术中的蒸馏训练方式得到的语音识别模型,虽然能够达到模型体积缩小的效果,但是蒸馏训练后得到的语音识别模型与原有的语音识别模型之间的性能仍有一定的差距,从而降低了语音识别的精度。
89.基于此,本技术实施例提供了一种语音识别方法、装置、电子设备、存储介质及程序产品,能够在提升语音识别效率的同时提升语音识别精度。
90.参照图1,图1为本技术实施例提供的一种实施环境的示意图,该实施环境包括第一终端101。其中,第一终端101可以获取未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集,初始化原始模型,基于第一样本语音数据集对原始模型进行无监督训练,得到基础语音处理模型,将基础语音处理模型的多个基础编码层中位于预设编码层之后的基础编码层进行剪枝,基于第二样本语音数据集对剪枝后的基础语音处理模型进行有监督训练,得到第一语音识别模型,初始化第二语音识别模型,以第一语音识别模型为基准,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练,得到目标语音识别模型。然后,第一终端101采集待识别的目标语音数据,调用预先部署的目标语音识别模型对目标语音数据进行语音识别,得到目标语音数据的目标识别结果。
91.参照图2,图2为本技术实施例提供的另一种实施环境的示意图,该实施环境包括第二终端201和服务器202。其中,服务器202可以获取未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集,初始化原始模型,基于第一样本语音数据集对原始模型进行无监督训练,得到基础语音处理模型,将基础语音处理模型的多个基础编码层中位于预设编码层之后的基础编码层进行剪枝,基于第二样本语音数据集对剪枝后的基础语音处理模型进行有监督训练,得到第一语音识别模型,初始化第二语音识别模型,以第一语音识别模型为基准,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练,得到目标语音识别模型。然后,第二终端201向服务器202发送待识别的目标语音数据,服务器202调用预先部署的目标语音识别模型对目标语音数据进行语音识别,将目标语音数据的目标识别结果发送至第二终端201。
92.上述服务器202可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
93.另外,服务器202还可以是区块链网络中的一个节点服务器。区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
94.第一终端101和第二终端201可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。第二终端201和服务器202可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例在此不做限制。
95.本技术实施例提供的方法可应用于各种技术领域,包括但不限于云技术、人工智能、语音识别等技术领域。
96.参照图3,图3为本技术实施例提供的语音识别方法的流程示意图,该语音识别方法可以由服务器执行,或者由终端执行,或者由终端和服务器配合执行,该语音识别方法包括但不限于以下步骤301至步骤305。
97.步骤301:获取未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集。
98.其中,第一样本语音数据集可以包括多个未进行标注的语音数据,例如可以是即时通信语音数据、口语考试语音数据、智能家居控制语音数据、车载控制语音数据等等,第一样本语音数据集中不包含各个语音数据对应的标注文本;第二样本语音数据集可以包括多个已进行标注的语音数据,类似地,第二样本语音数据集中的语音数据也可以是即时通信语音数据、口语考试语音数据、智能家居控制语音数据、车载控制语音数据等等,第二样本语音数据集中包含各个语音数据对应的标注文本。当然,第二样本语音数据集中的语音数据与第一样本语音数据集中的语音数据类型相同,以提升语音识别模型的整体训练效果。
99.在一种可能的实现方式中,第一样本语音数据集和第二样本语音数据集可以从本地空间中获取或者从其他平台中获取,其他平台可以是指专用于数据存储的设备。上述第一样本语音数据集和第二样本语音数据集中的语音数据可以来自于同一对象,即同一对象可输入不同内容作为语音数据的样本,例如,对象a语音输入内容s1作为一个语音数据的样本,对象a语音输入内容s2作为一个语音数据的样本。或者,上述第一样本语音数据集和第二样本语音数据集中的语音数据也可以来自于不同对象,即不同对象可以输入不同内容作为语音数据的样本;例如,对象a语音输入内容s1作为一个语音数据的样本,对象b语音输入内容s2作为一个语音数据的样本。
100.步骤302:初始化原始模型,基于第一样本语音数据集对原始模型进行无监督训练,得到基础语音处理模型;
101.在一种可能的实现方式中,参照图4,图4为本技术实施例提供的基础语音处理模型一个示例性的结构示意图,基础语音处理模型包括依次连接的基础卷积网络、线性层、基础编码网络和基础输出层,基础卷积网络包括多个依次连接的基础卷积层,基础编码网络包括多个依次连接的基础编码层;原始模型为基础语音处理模型对应的处于初始状态的模型,即原始模型与基础语音处理模型的结构相同,原始模型的参数可以随机初始化得到。
102.具体地,基础卷积网络以第一样本语音数据集中的语音数据作为输入,输出为语
音数据的潜在语音特征,以(特征维度,卷积核大小,步长)为例展示各个基础卷积层的结构参数设置,则基础语音处理模型各个基础卷积层的结构参数可以依次为(512,10,5)、(512,3,2)、(512,3,2)、(512,3,2)、(512,3,2)、(512,2,2)、(512,2,2),基于上述结构,基础卷积网络的降采样率为30ms。
103.在一种可能的实现方式中,参照图5,图5为本技术实施例提供的基础编码层一个示例性的结构示意图,具体地,基础编码层主要包括多头注意力单元和前馈网络单元,经过基础卷积层进行卷积处理后得到的特征输入至基础编码层,先通过多头注意力单元进行特征提取,得到高层次的特征,多头注意力单元输出的高层次特征再通过前馈网络单元进行特征映射,得到当前基础编码层的输出特征,然后再送入至下一个基础编码层中进行处理,直至最后一个基础编码层处理完毕后送入基础输出层进行处理。并且,可以进一步对多头注意力单元输出的特征以及前馈网络单元输出的特征进行残差连接处理以及归一化处理,进行残差连接处理的作用在于能够使得多头注意力单元输出的特征或者前馈网络单元输出的特征携带更多的信息,也可以使得训练时的反向传播更加稳定,而进行归一化处理的作用在于可以在训练时加快模型的收敛速度,提高训练效率。
104.基于图5所示的基础编码层的结构,基础语音处理模型中的基础编码层的结构参数可以包括多头注意力单元的特征维度和前馈网络单元的特征维度,例如多头注意力单元的特征维度可以为1024,前馈网络单元的特征维度可以为4096。
105.可以理解的是,图4中展示的基础语音处理模型具有七个基础卷积层和二十四个基础编码层,实际上,基础语音处理模型的基础卷积层数量和个基础编码层数量可以根据实际需求而定,本技术实施例不做限定。另外,各个基础卷积层的结构参数以及各个基础编码层的结构参数也可以根据实际需求而定,本技术实施例不做限定。
106.另外,线性层的作用是对基础卷积网络输出的特征进行特征维度的调节,使得基础卷积网络的特征维度与基础编码网络的特征维度相匹配。而基础输出层的作用主要是基于基础编码网络输出的特征进行分类处理,以得到最终的输出结果。在一种可能的实现方式中,线性层和基础输出层均可以基于全连接层实现。
107.其中,由于第一样本语音数据集是未进行标注的数据,因此基于第一样本语音数据集进行的训练是无监督训练,相应地,完成对原始模型的无监督训练后,可以使得得到的基础语音处理模型具备语音特征的提取功能,因此,通过先基于第一样本语音数据集对原始模型进行无监督训练,可以专门针对语音特征提取功能进行训练,达到精细化训练的目的,有利于提升基础语音处理模型的语音特征提取的准确性,后续在基于基础语音处理模型进行进一步训练时,可以有效提高训练效果。
108.步骤303:将多个基础编码层中位于预设编码层之后的基础编码层进行剪枝,基于第二样本语音数据集对剪枝后的基础语音处理模型进行有监督训练,得到第一语音识别模型。
109.其中,由于第二样本语音数据集是已进行标注的数据,因此基于第二样本语音数据集进行的训练是有监督训练,相应地,完成对基础语音处理模型的有监督训练后,可以使得得到的第一语音识别模型具备语音识别功能。
110.在一种可能的实现方式中,基于图4所示的基础语音处理模型,预设编码层可以是第二十个编码层,此时将二十四个基础编码层中位于第二十个之后的基础编码层进行剪
枝,即将第二十一个基础编码层、第二十二个基础编码层、第二十三个基础编码层和第二十四个基础编码层进行剪枝,相应地,剪枝后的基础语音处理模型包括二十个基础编码层。由于位置越靠后的基础编码层输出的特征更容易拟合训练任务,会对损失值的计算产生影响,其中,更容易拟合训练任务,即会使得损失值更容易收敛,但实际上模型的性能可能未达到要求,从而影响模型的训练效果。因而将基础语音处理模型中位于预设编码层之后的基础编码层进行剪枝,能够提升对基础语音处理模型的训练效果,提升基础语音处理模型的性能,同时也能够缩小基础语音处理模型的体积,相应地缩小第一语音识别模型的体积。
111.步骤304:初始化第二语音识别模型,以第一语音识别模型为基准,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练,得到目标语音识别模型。
112.在一种可能的实现方式中,第二语音识别模型为目标语音识别模型对应的处于初始状态下的模型,即第二语音识别模型与目标语音识别模型的结构相同。第一语音识别模型作为蒸馏训练的教师模型,第二语音识别模型作为蒸馏训练的学生模型,其中,第二语音识别模型的参数量小于第一语音识别模型的参数量,即第二语音识别模型的模型体积更小,模型轻量化程度越高。
113.通过以第一语音识别模型为基准,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练,可以使得第二语音识别模型能够学习到第一语音识别模型的知识,由于第一语音识别模型由剪枝后的基础语音处理模型训练得到,因此第一语音识别模型能够继承剪枝后的基础语音处理模型的性能优化效果,以第一语音识别模型作为教师模型进行蒸馏训练时,有利于提高得到的目标语音识别模型的性能。
114.并且,本技术实施例提供的语音识别方法在训练得到目标语音识别模型的过程中,分成了对原始模型进行无监督训练、对剪枝后的基础语音处理模型进行有监督训练、对第二语音识别模型进行蒸馏训练三个训练阶段,通过引入未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集,在不同的训练阶段对应使用不同类型的样本语音数据集,能够达到半监督训练的效果,并且,由于第一样本语音数据集无须进行标注,能够降低数据标注的成本,提升模型的训练效果,有利于提高目标语音识别模型的性能。
115.因此,本技术实施例提供的语音识别方法可以应用于已标注样本语音数据获取速度慢,标注成本高、有效数据少的场景。例如,在智能教育的口语考试场景中,由于考试定期举行,每个考生的考题基于有限的考试题型和题目数量,因此语音数据的获取难度较大。基于此,本技术实施例通过在不同的训练阶段对应使用不同类型的样本语音数据集,能够降低已标注的语音数据的使用需求,降低数据标注的成本。相应地,上述第一样本语音数据集和第二样本语音数据集中包括的口语考试中的语音数据。
116.综上,本技术实施例提供的语音识别方法中,通过半监督训练结合对基础语音处理模型进行剪枝的方式,能够有效提高目标语音识别模型的性能,并且,通过对基础语音处理模型进行剪枝结合蒸馏训练的方式,能够有效缩小目标语音识别模型的体积,从而使得目标语音识别模型兼备体积小和性能高的优点。
117.步骤305:基于目标语音识别模型对目标语音数据进行语音识别,得到目标语音数据对应的目标识别结果。
118.其中,目标语音数据为待进行识别的语音数据,可以是口语考试场景下的待识别语音数据、即时通信场景下的待识别语音数据、智能家居控制场景下的待识别语音数据、车
载系统控制场景下的待识别语音数据等等,本技术实施例不做限定。由于本技术实施例提供的目标语音识别模型兼备体积小和性能高的优点,因此,利用目标语音识别模型对目标语音数据进行语音识别,能够在提升语音识别效率的同时提升语音识别精度。
119.在一种可能的实现方式中,参照图6,图6为本技术实施例提供的对原始模型进行无监督训练的流程示意图,原始模型包括依次连接的原始卷积网络和原始编码网络(为了简化描述,未展示线性层和原始输出层),在基于第一样本语音数据集对原始模型进行无监督训练时,可以将第一样本语音数据集输入至原始模型,对原始卷积网络输出的原始卷积特征进行屏蔽操作,得到屏蔽卷积特征,对原始卷积特征进行乘积量化操作,得到量化卷积特征,获取原始编码网络处理屏蔽卷积特征后输出的屏蔽编码特征,根据屏蔽编码特征和量化卷积特征确定第一原始损失值,根据第一原始损失值对原始模型进行无监督训练。
120.具体地,原始卷积网络输出的原始卷积特征的形式为z1......zr,其中,z1为第一个语音帧的特征表示,zr为第r个语音帧的特征表示。原始卷积网络输出原始卷积特征后,一方面,对原始卷积特征进行屏蔽操作后输入至原始编码网络,其中,可以从r个语音帧中选取一个或者多个进行屏蔽操作,被屏蔽的语音帧对应的特征值置零;另一方面,对原始卷积特征进行乘积量化操作,得到量化卷积特征,乘积量化操作即把原来的向量空间分解为若干个低维向量空间的(量化码本)笛卡尔积,并在分解得到的量化码本中进行聚类处理,得到各个量化码本的聚类中心及该聚类中心的特征,然后将每个量化码本的聚类中心的特征代替其他特征,从而使得原来无限的特征表达空间坍缩成有限的离线空间,使得特征的鲁棒性更强,特征表达能力更高。
121.在得到屏蔽编码特征和量化卷积特征后,可以根据屏蔽编码特征和量化卷积特征确定第一原始损失值,第一原始损失值用于使得屏蔽编码特征中被屏蔽的语音帧对应的特征与量化卷积特征中对应的语音帧的特征尽量相似,而屏蔽编码特征中被屏蔽的语音帧对应的特征与量化卷积特征中其余的语音帧的特征尽量不相似,即使输入至原始编码网络的是经过屏蔽处理得到的屏蔽卷积特征,原始编码网络也能够很好的进行特征信息的捕获,从而提升原始编码网络的性能。其中,在具体计算第一原始损失值时,可以计算屏蔽编码特征中被屏蔽的语音帧对应的特征值与量化卷积特征中对应的语音帧(正样本)的特征值之间的第一相似度,以及计算屏蔽编码特征中被屏蔽的语音帧对应的特征值与量化卷积特征中其余的语音帧(负样本)的特征值之间的第二相似度,根据第一相似度和第二相似度之间的商值即可得到第一原始损失值。
122.在一种可能的实现方式中,还可以进一步引入第二原始损失值来对原始模型进行无监督训练,第二原始损失值用于监督乘积量化操作,使得各个聚类中心之间的距离尽量远,从而提高乘积量化操作的合理性。其中,可以获取进行乘积量化操作时量化码本的第一数量和各个量化码本中聚类中心的第二数量,确定各个量化码本中任意一个聚类中心被选中的概率分布,根据第一数量、第二数量和概率分布确定第二原始损失值,根据第一原始损失值和第二原始损失值对原始模型进行无监督训练。
123.具体地,可以将上述概率分布除以第一数量和第二数量的乘积,得到第二原始损失值。在得到第二原始损失值后,可以对第一原始损失值和第二原始损失值进行加权,得到目标原始损失值,进而根据目标原始损失值对原始模型进行无监督训练。
124.在一种可能的实现方式中,参照图7,图7为本技术实施例提供的第一语音识别模
型一个示例性的结构示意图,对应于图4所示的基础语音处理模型的结构,图7所示的第一语音识别模型包括依次连接的第一卷积网络、线性层、第一编码网络和第一输出层,第一卷积网络包括多个依次连接的第一卷积层,第一编码网络包括多个依次连接的第一编码层,由于第一语音识别模型基于剪枝后的基础语音处理模型训练得到的,因此,第一卷积网络的结构与基础卷积网络的结构相类似,即第一卷积网络的数量为七个,各个第一卷积网络的结构参数设置依次为(512,10,5)、(512,3,2)、(512,3,2)、(512,3,2)、(512,3,2)、(512,2,2)、(512,2,2)。第一编码层的数量为二十个,第一编码层中多头注意力单元的特征维度为1024,前馈网络单元的特征维度为4096。线性层和第一输出层的作用可以参见基础语音处理模型中的解释,在此不再赘述。
125.为了缩小模型体积,本技术实施例中对第一语音识别模型的结构进行了压缩,进而得到第二语音识别模型。例如可以降低第一卷积网络的特征维度、降低第一编码网络的特征维度或者减小第一编码层的层数等,其中,上述几种压缩方式可以选取一种或者多种的组合执行。
126.在一种可能的实现方式中,可以同时执行降低第一卷积层的特征维度、降低第一编码层的特征维度和减小第一编码层的层数,从而提升对第二语音识别模型的体积压缩效果。
127.其中,降低第一卷积网络的特征维度时,可以降低第一卷积网络中前n个第一卷积层的特征维度,n为正整数,因为降低越靠近输入端的第一卷积层的特征维度,能够更明显地提升模型的处理效率。例如,n可以为2,即此时降低第一卷积网络中前两个第一卷积层的特征维度,基于图4所示的结构,可以将前两个第一卷积层的特征维度从原来的512降低为256。需要补充说明的是,第一卷积网络的计算量一般集中在前两个第一卷积层中,因此,当n的取值为2时,可以使得第二语音识别模型的效率提升效果较为明显。
128.其中,降低第一编码网络的特征维度,基于图4所示的结构,可以将第一编码层中多头注意力单元的特征维度从原来的1024降低为384,将前馈网络单元的特征维度从原来的4096降低为1536。
129.其中,减小第一编码层的层数,基于图4所示的结构,可以将第一编码层的数量从原来的二十个减小为十个。
130.可以理解的是,上述降低第一卷积网络的特征维度、降低第一编码网络的特征维度和减小第一编码层的层数的具体数值可以根据实际的模型体积压缩需求而定,本技术实施例不做限定。
131.经过降低第一卷积网络的特征维度、降低第一编码网络的特征维度和减小第一编码层的层数,得到的第二语音识别模型包括依次连接的第二卷积网络、线性层、第二编码网络和第二输出层,第二卷积网络包括多个依次连接的第二卷积层,第二编码网络包括多个依次连接的第二编码层,并且,第二编码层的数量小于第一编码层的数量,第二卷积层的数量与第一卷积层的数量相等,第二语音识别模型中位于预设卷积层之前的第二卷积层为目标卷积层,目标卷积层的特征维度小于目标卷积层对应的第一卷积层的特征维度。
132.其中,目标卷积层为降低了特征维度后得到的第二卷积层,预设卷积层为最后一个目标卷积层之后的第一个第二卷积层。例如基于上述例子,假设降低第一卷积网络中前两个第一卷积层的特征维度时,目标卷积层为第一个第二卷积层和第二个第二卷积层,相
应地,预设卷积层为第三个第二卷积层。可以理解的是,当降低第一卷积网络中前三个第一卷积层的特征维度时,目标卷积层为第一个第二卷积层、第二个第二卷积层和第三个第二卷积层,相应地,预设卷积层为第四个第二卷积层,以此类推。
133.例如,参照图8,图8为本技术实施例提供的第二语音识别模型一个示例性的结构示意图,第二卷积网络的数量为七个,各个第二卷积网络的结构参数设置依次为(256,10,5)、(256,3,2)、(512,3,2)、(512,3,2)、(512,3,2)、(512,2,2)、(512,2,2)。第二编码层的数量为十个,第二编码层中多头注意力单元的特征维度为384,前馈网络单元的特征维度为1536。线性层和第二输出层的作用可以参见基础语音处理模型中的解释,在此不再赘述。
134.基于此,在初始化第二语音识别模型时,具体可以对各个第二编码层的编码参数进行随机初始化,将第一输出层的输出参数作为第二输出层的输出参数,对预设卷积层的卷积参数和目标卷积层的卷积参数进行随机初始化,将剩余卷积层对应的第一卷积层的卷积参数作为剩余卷积层的卷积参数,根据各个第二卷积层的卷积参数、各个第二编码层的编码参数和各个第二输出层的输出参数初始化第二语音识别模型。
135.其中,剩余卷积层为多个第二卷积层中除了预设卷积层和目标卷积层以外其余的第二卷积层,例如,目标卷积层为第一个第二卷积层和第二个第二卷积层,预设卷积层为第三个第二卷积层,则剩余卷积层为第四个第二卷积层、第五个第二卷积层、第六个第二卷积层和第七个第二卷积层,若剩余卷积层为第四个第二卷积层,则该剩余卷积层对应的第一卷积层为第四个第一卷积层,以此类推。
136.其中,第二卷积层的卷积参数为训练第二语音识别模型时需要学习的参数,例如卷积神经元权重、卷积神经元偏置等参数,第二编码层的编码参数为训练第二语音识别模型时第二编码层需要学习的参数,例如注意力权重、前馈网络神经元权重等参数;第二输出层的输出参数为训练第二语音识别模型时第二输出层需要学习的参数,例如全连接神经元权重、全连接神经元偏置等参数,在此不再对卷积参数、编码参数、输出参数进行一一列举。
137.通过将第一输出层的输出参数作为第二输出层的输出参数,将剩余卷积层对应的第一卷积层的卷积参数作为剩余卷积层的卷积参数,即第二输出层的输出参数可以通过直接复制第一输出层的输出参数得到,剩余卷积层的卷积参数可以通过直接复制对应的第一卷积层的输出参数得到,从而可以提升第二语音识别模型的获取效率,并且,由于第一语音识别模型已经经过训练,因此第一输出层的输出参数、第一卷积层的卷积参数是有效的,从而可以在一定程度上提升第二语音识别模型在初始化时的性能,降低后续对第二语音识别模型训练时的参数调整成本,提高参数调整效率。
138.在一种可能的实现方式中,基于上述第二语音识别模型的结构,在基于第一样本语音数据集对第二语音识别模型进行蒸馏训练时,可以将第一样本语音数据集输入至第一语音识别模型,获取与预设卷积层对应的第一卷积层输出的第一卷积特征,获取最后一个第一卷积层输出的第二卷积特征,将第一样本语音数据集输入至第二语音识别模型,获取预设卷积层输出的第三卷积特征,获取最后一个第二卷积层输出的第四卷积特征,根据第一卷积特征和第三卷积特征确定第一卷积损失值,根据第二卷积特征和第四卷积特征确定第二卷积损失值,根据第一卷积损失值和第二卷积损失值确定目标卷积损失值,根据目标卷积损失值对第二卷积网络进行蒸馏训练。其中,对第二卷积网络进行蒸馏训练,可以是调整第二卷积网络的卷积参数等相关的模型参数。
139.在一种可能的实现方式中,目标卷积损失值可以是第一卷积损失值和第二卷积损失值之和,或者,也可以对第一卷积损失值和第二卷积损失值进行加权得到目标卷积损失值,本技术实施例不做限定。
140.其中,参照图9,图9为本技术实施例提供的第二卷积网络的蒸馏训练示意图,本技术实施例主要通过比较第一语音识别模型与第二语音识别模型处理第一样本语音数据后的输出结果,确定蒸馏训练的损失值进而对第二语音识别模型进行训练。具体地,目标卷积损失值用于使得第二卷积网络的性能更加接近第一卷积网络的性能,通过引入第一卷积损失值和第二卷积损失值,第一卷积损失值可以用于衡量降低特征维度后对于预设卷积层之前的第二卷积层所带来的影响,第二卷积损失值可以用于衡量降低特征维度后对于第二语音识别模型的整体所带来的影响,因此,利用第一卷积损失值和第二卷积损失值相结合的方式来对第二卷积网络进行蒸馏训练,可以使得总体的损失值更加合理,提升对第二卷积网络进行蒸馏训练的准确性,使得第二卷积网络的性能更加接近第一卷积网络的性能。
141.上述目标卷积损失值可以表示为:
[0142][0143]
其中,
[0144]
其中,loss
cnn-distil
表示目标卷积损失值,表示第三个第一卷积层输出的第一卷积特征,表示第七个第一卷积层输出的第二卷积特征,表示预设卷积层输出的第三卷积特征,表示第七个第二卷积层输出的第四卷积特征,t3表示第三个第一卷积层或者预设卷积层输出的语音帧数量,t7表示第七个第一卷积层或者第七个第二卷积层输出的语音帧数量,表示第三个第一卷积层的特征编码器,表示第七个第一卷积层的特征编码器,表示预设卷积层的特征编码器,表示第七个第二卷积层的特征编码器,x表示对应的卷积层的输入,mse表示计算均方误差。
[0145]
除此以外,也可以采用最后一个目标卷积层(即图9中的第二个第二卷积层)输出的特征来计算第一卷积损失值。需要说明的是,相较于采用最后一个目标卷积层输出的特征来计算第一卷积损失值,当采用预设卷积层(即图9中的第三个第二卷积层)输出的第三卷积特征来计算第一卷积损失值时,一方面,由于目标卷积层的特征维度小于对应的第一卷积层的特征维度,若基于最后一个目标卷积层输出的特征来计算第一卷积损失值,需要先进行特征维度的转化,降低了第一卷积损失值的计算效率;另一方面,由于预设卷积层是最后一个目标卷积层之后的第一个第二卷积层,即预设卷积层是最靠近目标卷积层的第二卷积层,因而特征维度的降低会对预设卷积层的输出带来一定的影响,因此,采用预设卷积层输出的第三卷积特征来计算第一卷积损失值,可以使得第一卷积损失值更加合理,提高第一卷积损失值的准确性。
[0146]
并且,由于剩余卷积层的卷积参数相对于对应的第一卷积层的卷积参数并没有变化,因此,只通过第一卷积损失值和第二卷积损失值来计算目标卷积损失值,可以不额外引入其他的训练参数。
[0147]
另外,由于预设卷积层是最靠近目标卷积层的第二卷积层,若在初始化第二语音识别模型时将预设卷积层对应的第一卷积层的卷积参数作为预设卷积层的卷积参数,则此
时预设卷积层的卷积参数实际上是与第一语音识别模型的第一卷积层相适配的,若此时使用预设卷积层输出的第三卷积特征来计算第一卷积损失值,并不能准确反映出降低特征维度后对于预设卷积层之前的第二卷积层所带来的影响,因此,通过随机初始化预设卷积层的卷积参数和目标卷积层的卷积参数,可以使得第一卷积损失值的计算有效、可靠。
[0148]
需要补充说明的是,在上述例子中,目标卷积层的特征维度小于目标卷积层对应的第一卷积层(基础卷积层)的特征维度,这是由于目标卷积层对应的第一卷积层(基础卷积层)的特征维度设置得较大时,可以提升第一语音识别模型的性能,后续在以第一语音识别模型为基准训练第二语音识别模型,可以提升训练效果,使得得到的第二语音识别模型的性能更优。当然,在训练基础语音处理模型时,也可以直接将基础卷积网络的特征维度设置为压缩后的特征维度,例如上述例子中,可以将基础卷积网络的特征维度设置为256,即基础语音处理模型各个基础卷积层的结构参数可以依次为(256,10,5)、(256,3,2)、(512,3,2)、(512,3,2)、(512,3,2)、(512,2,2)、(512,2,2),后续可以无须针对第二语音识别模型的第二卷积层进行单独的蒸馏训练,以达到对第二语音识别模型进行蒸馏训练的简化效果。
[0149]
下面详细说明对第二编码网络和第二输出层进行蒸馏训练的原理。
[0150]
在一种可能的实现方式中,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练时,可以将第一样本语音数据集输入至第一语音识别模型,从第一语音识别模型中确定与第二编码层相同数量的基准编码层,获取各个基准编码层输出的第一编码特征,将第一样本语音数据集输入至第二语音识别模型,获取各个第二编码层输出的第二编码特征,确定各个第二编码层的蒸馏拟合参数,根据蒸馏拟合参数调整对应的第二编码特征的特征维度,根据调整特征维度后的第二编码特征与对应的第一编码特征,确定各个第二编码层对应的编码层损失值,根据各个编码层损失值确定目标编码损失值,根据目标编码损失值对第二编码网络进行蒸馏训练,其中,对第二编码网络进行蒸馏训练,可以是调整第二编码网络的编码参数等相关的模型参数。
[0151]
在一种可能的实现方式中,目标编码损失值可以是各个编码层损失值之和,或者,也可以根据不同的第二编码层对编码层损失值进行加权得到目标编码损失值,本技术实施例不做限定。
[0152]
参照图10,图10为本技术实施例提供的第二编码网络的蒸馏训练示意图,具体地,基准编码层为与第二编码层对应的第一编码层,基准编码层的数量与第二编码层的数量相同,相应地基准编码层的数量为十个。基准编码层的确定方式有多种,例如可以将第一编码网络中前十个第一编码层作为基准编码层;或者将第一编码网络中后十个第一编码层作为基准编码层;又或者,将第一编码网络中第2m个第一编码层作为第二编码网络中第m个第二编码层对应的基准编码层,m为正整数,即,第一编码网络中第二个第一编码层对应第二编码网络中的第一个第二编码层,第一编码网络中第四个第一编码层对应第二编码网络中的第二个第二编码层,...,第一编码网络中第二十个第一编码层对应第二编码网络中的第十个第二编码层。
[0153]
上述目标编码损失值可以表示为:
[0154]
[0155]
其中,loss
decode-distil
表示目标编码损失值,表示第m个第二编码层的输出,t表示第m个第二编码层输出的语音帧数量,表示第m个第二编码层对应的蒸馏拟合参数,的蒸馏拟合参数,表示第2m个第一编码层(即基准编码层)的输出,t表示第2m个第一编码层输出的语音帧数量,mse表示计算均方误差,m为正整数。
[0156]
通过将基准编码层输出的第一编码特征和对应的第二编码层输出的第二编码特征计算编码层损失值,可以使得第二编码网络的性能更加接近第一编码网络的性能,并且,通过将第一编码网络中第2m个第一编码层作为第二编码网络中第m个第二编码层对应的基准编码层,可以使得基准编码层的分布更加均匀,后续在计算编码层损失值时,可以使得编码层损失值值更加合理,提高编码层损失值的准确性。
[0157]
并且,本技术实施例引入了蒸馏拟合参数,由于基准编码层的特征维度和第二编码层的特征维度并不相同,因此,通过根据蒸馏拟合参数调整对应的第二编码特征的特征维度,可以将基准编码层输出的第一编码特征与第二编码层输出的第二编码特征进行拟合,从而提高编码层损失值的准确性。
[0158]
其中,不同的第二编码层可以对应不同的蒸馏拟合参数,以提升特征的拟合效果。并且,在根据目标编码损失值对第二编码网络进行蒸馏训练时,也可以根据目标编码损失值来调整各个第二编码层对应的蒸馏拟合参数,使得蒸馏拟合参数更加准确、合理。
[0159]
另外,由于对第二编码网络进行蒸馏训练的目的在于使得第二编码网络的性能更加接近第一编码网络的性能,并且第一语音识别模型的输出可以作为蒸馏训练的标签,因此,在对第二编码网络进行蒸馏训练时可以采用未进行标注的第一样本语音数据集,从而降低标注成本。
[0160]
在一种可能的实现方式中,还可以进一步引入第二输出层对应的目标输出损失值来对第二编码网络进行蒸馏训练,具体地,根据目标编码损失值对第二编码网络进行蒸馏训练时,可以获取第一输出层输出的第一样本识别结果和第二输出层输出的第二样本识别结果,根据第一样本识别结果和第二样本识别结果确定目标输出损失值,根据目标编码损失值和目标输出损失值对第二编码网络进行蒸馏训练。
[0161]
其中,第一样本识别结果为第一语音识别模型的语音识别结果,第二样本识别结果为第二语音识别模型的语音识别结果,因此,可以根据第一样本识别结果和第二样本识别结果确定目标输出损失值,得到的目标输出损失值用于使得第二语音识别模型的整体性能更加接近第一语音识别模型的整体性能。
[0162]
上述目标输出损失值可以表示为:
[0163]
loss
logit
=mse(os,o
t
)
[0164]
其中,loss
logit
表示目标输出损失值,o
t
表示第一样本识别结果,os表示第二样本识别结果,o
t
∈r
1024*c
,os∈r
1024*c
,c表示语音识别任务词汇表的类别数量,mse表示计算均方误差。
[0165]
其中,由于第二输出层的输出参数是复制第一输出层的输出参数得到的,因而第二输出层的特征维度与第二网络的特征维度不匹配,因此,第二编码网络输出的特征在输入至第二输出层进行处理时,需要先进行特征维度的转化,基于此,以第二编码层的数量为
十个作为例子,上述os可以表示为:
[0166][0167]
其中,为第十个第二编码层输出的特征,为第十个第二编码层对应的蒸馏拟合参数,logit表示第二输出层的输出函数,通过对应的蒸馏拟合参数对第十个第二编码层输出的特征进行特征维度的转化后输入至第二输出层,可以使得第二输出层和第一输出层的特征维度相匹配,从而提高目标输出损失值的准确性。
[0168]
在引入目标输出损失值后,对第二编码网络进行蒸馏训练可以有两种方式,一种方式是根据目标编码损失值对第二编码网络进行蒸馏训练,根据目标输出损失值再次对第二编码网络进行蒸馏训练,即利用目标编码损失值调整一次模型参数,再利用目标输出损失值调整一次模型参数,根据目标编码损失值和目标编码损失值进行调参是相互独立的;另一种方式是对目标编码损失值和目标输出损失值进行加权,得到目标模型损失值,根据目标模型损失值对第二编码网络进行蒸馏训练。
[0169]
上述目标模型损失值可以表示为:
[0170][0171]
其中,loss
model-distil
表示目标模型损失值,γ为对第二编码网络进行蒸馏训练的权重,γ可以根据实际情况而定,例如可以是0.5、0.7等,本技术实施例不做限定。
[0172]
在一种可能的实现方式中,在引入目标输出损失值后,除了可以调整第二编码网络的编码参数以外,还可以根据目标输出损失值来调整第二输出层的输出参数。并且,由于输入至第二编码网络的特征由第二卷积网络处理得到,因此,在计算出目标编码损失值后,也可以根据目标编码损失值来调整第二卷积网络的卷积参数,同理,在计算出目标输出损失值后,也可以根据目标编码损失值来调整第二卷积网络的卷积参数。
[0173]
在完成了对目标语音识别模型的整体训练后,基于目标语音识别模型对目标语音数据进行语音识别时,可以根据最后一个第二编码层的蒸馏拟合参数,调整目标语音识别模型中第二输出层的特征维度,基于调整特征维度后的目标语音识别模型对目标语音数据进行语音识别。
[0174]
例如,基于上述例子,第二输出层的特征维度为os∈r
1024*c
,最后一个第二编码层为第十个编码层,对应的蒸馏拟合参数的特征维度为则调整后第二输出层的特征维度为384*c,相较于第一输出层的特征维度1024*c有了一定程度的下降。
[0175]
通过利用蒸馏拟合参数调整目标语音识别模型中第二输出层的特征维度,可以达到对第二输出层的特征维度的优化效果,提升目标语音识别模型的处理效率,后续在基于调整特征维度后的目标语音识别模型对目标语音数据进行语音识别时,可以提升语音识别效率。
[0176]
另外,基于目标语音识别模型对目标语音数据进行语音识别时,也可以将目标语音识别模型中各个目标编码层的蒸馏拟合参数进行剪枝,基于剪枝后的目标语音识别模型对目标语音数据进行语音识别。
[0177]
其中,目标编码层为除了最后一个第二编码层以外其余的第二编码层。由于蒸馏拟合参数是在对第二编码网络进行蒸馏训练时引入的参数,在利用目标语音识别模型对目
标语音数据进行语音识别时,实际上不需要使用到蒸馏拟合参数,因此,通过将蒸馏拟合参数进行剪枝,可以缩小目标语音识别模型的体积,提升目标语音识别模型的处理效率,续在基于调整特征维度后的目标语音识别模型对目标语音数据进行语音识别时,可以提升语音识别效率。
[0178]
可以理解的是,由于最后一个第二编码层的蒸馏拟合参数用于调整第二输出层的特征维度,被剪枝的是目标编码层对应的蒸馏拟合参数。这种情况下,相当于将第二输出层的特征维度优化和目标编码层的蒸馏拟合参数剪枝相结合,可以使得目标语音识别模型的处理效率的提升效果更好。
[0179]
除此以外,若不利用蒸馏拟合参数调整目标语音识别模型中第二输出层的特征维度,则可以将目标语音识别模型中各个第二编码层的蒸馏拟合参数进行剪枝,基于剪枝后的目标语音识别模型对目标语音数据进行语音识别。
[0180]
下面以一个实际例子详细说明训练得到目标语音识别模型的完整过程。
[0181]
参照图11,图11为本技术实施例提供的目标语音识别模型的总体训练流程图,目标语音识别模型的训练主要包括预训练阶段、微调阶段和蒸馏阶段,在预训练阶段和蒸馏阶段,使用的是无监督数据(即未进行标注的数据)进行训练,在微调阶段,使用的是监督数据(即已进行标注的数据)进行训练,从而达到半监督训练的效果。
[0182]
具体地,参照图12,图12为本技术实施例提供的目标语音识别模型的详细训练流程图,在预训练阶段,首先初始化一个原始模型,该原始模型包括依次连接的卷积网络、线性层、编码网络和输出层,卷积网络是一个七层的卷积特征编码器f:x

z,以语音数据x作为输入,输出对应的潜在语音特征z1......zr。卷积网络的结构依次为(512,10,5)、(512,3,2)、(512,3,2)、(512,3,2)、(512,3,2)、(512,2,2)、(512,2,2)。卷积网络输出的语音特征z1......zr经过线性层的特征映射后送入到二十四层的编码网络g:z

c,以进一步捕获特征信息c1......cr,编码网络中各个编码层的注意力单元的特征维度为1024,前馈网络单元的特征维度为4096。基于无监督数据对原始模型进行预训练后得到基础语音处理模型。
[0183]
在微调阶段,先对基础语音处理模型进行剪枝,具体是将二十四个编码层的最后四层进行剪枝,即剩余的编码层的数量为二十个。然后随机初始化输出层的参数,基于监督数据对基础语音处理模型进行微调,假设语音识别任务的分类词汇表中的类别数为c(图12中示例性展示c=5176),则输出层的特征维度为1024*c,微调完成后得到第一语音识别模型。
[0184]
表1第二语音识别模型处理耗时统计表
[0185][0186]
在蒸馏阶段,首先初始化一个第二语音识别模型,参照上述表1,表1为本技术实施例提供的第二语音识别模型处理耗时统计表,可见,影响模型处理实时率的主要是卷积网络的前两层参数和编码网络层数,若将d1,d2分别设置成256后,模型的实时率在625毫秒的音频上的耗时降低了25%,实时率由0.18降低至0.13。若音频时长为6s,当卷积网络前两层的参数进一步下降,编码网络的层数进一步降低至10层,模型的实时率仅为0.08。
[0187]
因此,针对第二语音识别模型的卷积网络,前三个卷积层的参数进行随机初始化,后四个卷积层的参数复制第一语音识别模型中对应的参数;针对第二语音识别模型的卷积网络,随机初始化一个十层的编码网络,第二语音识别模型的卷积网络的多头注意力单元的特征维度为384,第二语音识别模型的卷积网络的前馈网络单元的特征维度为1536;针对第二语音识别模型的输出层,复制第一语音识别模型中输出层的参数,第二语音识别模型的输出层的特征维度为384。
[0188]
第二语音识别模型初始化完成后,可以采用逐步蒸馏的方式进行训练,分为卷积网络蒸馏阶段、编码网络蒸馏阶段和输出层蒸馏阶段:
[0189]
在卷积网络蒸馏阶段,主要对比的是第一语音识别模型和第二语音识别模型中第三个卷积层的输出与第七个卷积层的输出,来确定卷积网络的损失值,卷积网络的损失值的具体计算可以参见前面的解释,在此不再赘述。在卷积网络蒸馏阶段中,主要调整的是卷积网络的参数。
[0190]
在编码网络蒸馏阶段,主要对比的是第一语音识别模型中第2m个编码层的输出与第二语音识别模型中第m个编码层的输出,来确定编码网络的损失值,并且,针对第二语音识别模型中每一个编码层,设置对应的蒸馏拟合参数来进行特征拟合,编码网络的损失值的具体计算可以参见前面的解释,在此不再赘述。在编码网络蒸馏阶段中,主要调整的是编码网络的参数。
[0191]
在输出层蒸馏阶段,主要对比的是第一语音识别模型的输出层与第二语音识别模型的输出层的输出,来确定输出层的损失值,并且,由于第二语音识别模型的输出层的参数是复制第一语音识别模型中输出层的参数得到的,因此需要利用第二语音识别模型第十个编码层对应的蒸馏拟合参数来计算第二语音识别模型的输出层的输出。输出层的损失值的具体计算可以参见前面的解释,在此不再赘述。在输出层蒸馏阶段中,主要调整的是整个第
二语音识别模型的参数。
[0192]
经过上述蒸馏训练后,将第二语音识别模型的编码网络中前九个编码层对应的蒸馏拟合参数进行剪枝,另外,将第二语音识别模型的编码网络中第十个个编码层对应的蒸馏拟合参数与输出层对应的参数相乘,即剪枝后的第二语音识别模型的输出层的特征维度为384*c,通过上述处理得到的第二语音识别模型大小仅为第一语音识别模型大小的1/13。
[0193]
经测试,本技术实施例提供的目标语音识别模型的单核实时率为0.353,低于传统hybird模型的0.374。
[0194]
表2目标语音识别模型字错率测试结果
[0195]
测试集/模型传统hybird模型目标语音识别模型直接训练同尺寸的目标语音识别模型测试集120.9014.5617.52测试集229.3422.4525.33
[0196]
另外,参照上述表2,表2为本技术实施例提供的目标语音识别模型字错率测试结果,测试集1和测试集2为口语考试场景下的语音数据,可见,通过本技术实施例提供的蒸馏训练后得到的目标语音识别模型,其模型性能较传统的hybird模型提升31%,较直接训练得到的目标语音识别模型提升24.5%,可以用于实际部署。
[0197]
可以理解的是,在上述例子中三个训练阶段的参数调整都是独立的,实际上,也可以计算出每个训练阶段的损失值后再进行统一的参数调整。
[0198]
目标语音识别模型训练完成后,可以用于后续的语音识别处理,具体至少有以下几种应用场景:
[0199]
场景一
[0200]
待识别的目标语音数据可以为即时通信语音数据,例如,即时通信对象a向即时通信对象b发送即时通信语音数据,即时通信对象b使用语音转文本的功能将即时通信语音数据转化为对应的文本,则即使通信对象b所使用的终端可以调用预先训练好的目标语音识别模型,基于目标语音识别模型对即时通信语音数据进行语音识别,得到对应的识别结果并在屏幕中进行显示。
[0201]
场景二
[0202]
待识别的目标语音数据可以为口语考试语音数据,例如,考试终端采集考试者在口语考试过程中的口语考试语音数据,调用预先训练好的目标语音识别模型,基于目标语音识别模型对口语考试语音数据进行语音识别,得到对应的识别结果并根据识别结果进行评分。
[0203]
场景三
[0204]
待识别的目标语音数据可以为智能家居控制语音数据,例如,智能家电设备采集使用者的智能家居控制语音数据,调用预先训练好的目标语音识别模型,基于目标语音识别模型对智能家居控制语音数据进行语音识别,得到对应的识别结果,根据识别结果确定对应的控制指令并执行。
[0205]
场景四
[0206]
待识别的目标语音数据可以为车载系统控制语音数据,例如,车载设备采集驾驶者的车载系统控制语音数据,调用预先训练好的目标语音识别模型,基于目标语音识别模型对车载系统控制语音数据进行语音识别,得到对应的识别结果,根据识别结果确定对应
的控制指令并执行。
[0207]
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0208]
需要说明的是,在本技术的各个具体实施方式中,当涉及到需要根据目标对象属性信息或属性信息集合等与目标对象特性相关的数据进行相关处理时,都会先获得目标对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本技术实施例需要获取目标对象属性信息时,会通过弹窗或者跳转到确认页面等方式获得目标对象的单独许可或者单独同意,在明确获得目标对象的单独许可或者单独同意之后,再获取用于使本技术实施例能够正常运行的必要的目标对象相关数据。
[0209]
参照图13,图13为本技术实施例提供的语音识别装置的结构示意图,该语音识别装置1300包括:
[0210]
样本数据获取模块1301,用于获取未进行标注的第一样本语音数据集和已进行标注的第二样本语音数据集;
[0211]
第一训练模块1302,用于初始化原始模型,基于第一样本语音数据集对原始模型进行无监督训练,得到基础语音处理模型;其中,基础语音处理模型包括多个依次连接的基础编码层;
[0212]
第二训练模块1303,用于将多个基础编码层中位于预设编码层之后的基础编码层进行剪枝,基于第二样本语音数据集对剪枝后的基础语音处理模型进行有监督训练,得到第一语音识别模型;
[0213]
第三训练模块1304,用于初始化第二语音识别模型,以第一语音识别模型为基准,基于第一样本语音数据集对第二语音识别模型进行蒸馏训练,得到目标语音识别模型;
[0214]
语音识别模块1305,用于基于目标语音识别模型对目标语音数据进行语音识别,得到目标语音数据对应的目标识别结果。
[0215]
进一步,第一语音识别模型包括相互连接的第一编码网络和第一输出层,第一编码网络包括多个依次连接的第一编码层;第二语音识别模型包括相互连接的第二编码网络和第二输出层,第二编码网络包括多个依次连接的第二编码层,第二编码层的数量小于第一编码层的数量,上述第三训练模块1304具体用于:
[0216]
对各个第二编码层的编码参数进行随机初始化;
[0217]
将第一输出层的输出参数作为第二输出层的输出参数;
[0218]
根据各个第二编码层的编码参数和各个第二输出层的输出参数初始化第二语音识别模型。
[0219]
进一步,第一语音识别模型还包括与第一编码网络连接的第一卷积网络,第一卷积网络包括多个依次连接的第一卷积层;第二语音识别模型还包括与第二编码网络连接的
第二卷积网络,第二卷积网络包括多个依次连接的第二卷积层,第二卷积层的数量与第一卷积层的数量相等,位于预设卷积层之前的第二卷积层为目标卷积层,目标卷积层的特征维度小于目标卷积层对应的第一卷积层的特征维度,上述第三训练模块1304具体用于:
[0220]
对预设卷积层的卷积参数和目标卷积层的卷积参数进行随机初始化;
[0221]
将剩余卷积层对应的第一卷积层的卷积参数作为剩余卷积层的卷积参数;其中,剩余卷积层为多个第二卷积层中除了预设卷积层和目标卷积层以外其余的第二卷积层;
[0222]
根据各个第二卷积层的卷积参数、各个第二编码层的编码参数和各个第二输出层的输出参数初始化第二语音识别模型。
[0223]
进一步,上述第三训练模块1304具体用于:
[0224]
将第一样本语音数据集输入至第一语音识别模型,获取与预设卷积层对应的第一卷积层输出的第一卷积特征,获取最后一个第一卷积层输出的第二卷积特征;
[0225]
将第一样本语音数据集输入至第二语音识别模型,获取预设卷积层输出的第三卷积特征,获取最后一个第二卷积层输出的第四卷积特征;
[0226]
根据第一卷积特征和第三卷积特征确定第一卷积损失值,根据第二卷积特征和第四卷积特征确定第二卷积损失值;
[0227]
根据第一卷积损失值和第二卷积损失值确定目标卷积损失值,根据目标卷积损失值对第二卷积网络进行蒸馏训练。
[0228]
进一步,上述第三训练模块1304具体用于:
[0229]
将第一样本语音数据集输入至第一语音识别模型,从第一语音识别模型中确定与第二编码层相同数量的基准编码层,获取各个基准编码层输出的第一编码特征;
[0230]
将第一样本语音数据集输入至第二语音识别模型,获取各个第二编码层输出的第二编码特征;
[0231]
确定各个第二编码层的蒸馏拟合参数,根据蒸馏拟合参数调整对应的第二编码特征的特征维度;
[0232]
根据调整特征维度后的第二编码特征与对应的第一编码特征,确定各个第二编码层对应的编码层损失值,根据各个编码层损失值确定目标编码损失值,根据目标编码损失值对第二编码网络进行蒸馏训练。
[0233]
进一步,上述第三训练模块1304具体用于:
[0234]
获取第一输出层输出的第一样本识别结果和第二输出层输出的第二样本识别结果;
[0235]
根据第一样本识别结果和第二样本识别结果确定目标输出损失值;
[0236]
根据目标编码损失值和目标输出损失值对第二编码网络进行蒸馏训练。
[0237]
进一步,上述第三训练模块1304具体用于:
[0238]
根据目标编码损失值对第二编码网络进行蒸馏训练,根据目标输出损失值再次对第二编码网络进行蒸馏训练;
[0239]
或者,对目标编码损失值和目标输出损失值进行加权,得到目标模型损失值,根据目标模型损失值对第二编码网络进行蒸馏训练。
[0240]
进一步,上述第三训练模块1304具体用于:
[0241]
根据最后一个第二编码层的蒸馏拟合参数,调整目标语音识别模型中第二输出层
的特征维度;
[0242]
基于调整特征维度后的目标语音识别模型对目标语音数据进行语音识别。
[0243]
进一步,上述第三训练模块1304具体用于:
[0244]
将目标语音识别模型中各个目标编码层的蒸馏拟合参数进行剪枝,基于剪枝后的目标语音识别模型对目标语音数据进行语音识别;其中,目标编码层为除了最后一个第二编码层以外其余的第二编码层;
[0245]
或者,将目标语音识别模型中各个第二编码层的蒸馏拟合参数进行剪枝,基于剪枝后的目标语音识别模型对目标语音数据进行语音识别。
[0246]
进一步,原始模型包括依次连接的原始卷积网络和原始编码网络,上述第一训练模块1302具体用于:
[0247]
将第一样本语音数据集输入至原始模型,对原始卷积网络输出的原始卷积特征进行屏蔽操作,得到屏蔽卷积特征;
[0248]
对原始卷积特征进行乘积量化操作,得到量化卷积特征;
[0249]
获取原始编码网络处理屏蔽卷积特征后输出的屏蔽编码特征;
[0250]
根据屏蔽编码特征和量化卷积特征确定第一原始损失值;
[0251]
根据第一原始损失值对原始模型进行无监督训练。
[0252]
进一步,上述第一训练模块1302具体用于:
[0253]
获取进行乘积量化操作时量化码本的第一数量和各个量化码本中聚类中心的第二数量;
[0254]
确定各个量化码本中任意一个聚类中心被选中的概率分布;
[0255]
根据第一数量、第二数量和概率分布确定第二原始损失值;
[0256]
根据第一原始损失值和第二原始损失值对原始模型进行无监督训练。
[0257]
上述语音识别装置1300与前述的语音识别方法基于相同的发明构思,因此利用语音识别装置1300对目标语音数据进行语音识别,能够在提升语音识别效率的同时提升语音识别精度。
[0258]
本技术实施例提供的用于执行上述语音识别方法的电子设备可以是终端,参照图14,图14为本技术实施例提供的终端的部分结构框图,该终端包括:射频(radio frequency,简称rf)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(wireless fidelity,简称wifi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0259]
rf电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
[0260]
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。
[0261]
输入单元1430可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入装置1432。
[0262]
显示单元1440可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单
元1440可包括显示面板1441。
[0263]
音频电路1460、扬声器1461,传声器1462可提供音频接口。
[0264]
在本实施例中,该终端所包括的处理器1480可以执行前面实施例的语音识别方法。
[0265]
本技术实施例提供的用于执行上述语音识别方法的电子设备也可以是服务器,参照图15,图15为本技术实施例提供的服务器的部分结构框图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,简称cpu)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储装置)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器1500中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
[0266]
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0267]
服务器1500中的处理器可以用于执行语音识别方法。
[0268]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的语音识别方法。
[0269]
本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的语音识别方法。
[0270]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
[0271]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0272]
应了解,在本技术实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
[0273]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0274]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0275]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0276]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0277]
还应了解,本技术实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
[0278]
以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1