首页 > 乐器声学 专利正文
语音识别方法及装置与流程

时间:2022-02-24 阅读: 作者:专利查询

语音识别方法及装置与流程

1.本发明实施例涉及人工智能技术领域,尤其涉及一种语音识别方法及装置。


背景技术:

2.随着人工智能技术的高速发展,自动语音识别(automatic speech recognition,asr)技术已经在智能客服、语音助手、人机交互等多种业务场景中获得了广泛的应用。自动语音识别技术本质上是自动将用户发出的语义转换为文字,基于文字执行相应的指令的过程。
3.自动语音识别过程中,针对某个场景一,获取该场景一的音频数据,利用该些音频数据训练获得asr模型,该asr模型主要用于识别场景一中的音频数据。对于另一个新的场景二,若继续使用前述针对场景一的asr,则识别准确率很有可能会大幅度下降。为克服该问题,通常采用深度迁移学习的方法,通过利用少了新业务场景的音频数据,将asr模型从原来的业务场景迁移到新的业务场景。迁移过程中,根据经验固定asr模型的部分参数,对asr模型的另一部分参数进行调整,直到调整后的asr模型适应新的业务场景。
4.上述深度迁移学习的方法中,需要固定部分参数,调整剩余的参数。而固定哪部分参数、调整哪部分参数是通过经验尝试的,大大增加了asr模型的开发难度和时间成本。


技术实现要素:

5.本技术实施例提供一种语音识别方法及装置,通过采用知识蒸馏的方式,仅利用少量新业务场景的音频数据,便可获得同时适用于新业务场景和旧业务场景的asr模型,降低自动语音识别的难度和时间成本。
6.第一方面,本技术实施例提供一种语音识别方法,包括:
7.获取待处理的语音信号,所述语音信号是新业务场景的语音信号;
8.利用增量训练模型识别所述语音信号,以得到文本信息;其中,所述增量训练模型是利用针对所述新业务场景的样本,对针对旧业务场景的自动语音识别asr模型进行知识蒸馏处理得到的。
9.一种可行的设计中,所述利用增量训练模型识别所述语音信号,以得到文本信息之前,还包括:
10.根据所述asr模型构建固定模型,所述固定模型和所述asr模型的结构相同且参数也相同,所述固定模型的参数在训练过程中保持不变;
11.根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数;
12.利用针对所述新业务场景的样本对所述asr模型进行训练使得所述asr模型的损失函数的损失值最小,以得到所述增量训练模型。
13.一种可行的设计中,所述根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数,包括:
14.将针对所述新业务场景的样本输入至所述asr模型得到第一输出结果,将针对所述新业务场景的样本输入至所述asr模型得到第二输出结果;
15.根据所述第一输出结果和所述第二输出结果构建知识蒸馏损失函数;
16.根据针对所述新业务场景的样本和所述asr模型,构建针对所述新业务场景的连接主义时间分类ctc损失函数;
17.根据所述知识蒸馏损失函数和所述针对所述新业务场景的ctc损失函数,确定所述增量训练模型的损失函数。
18.一种可行的设计中,第一样本集和第二样本集中的任意一个样本表示为其中,所述第一样本集包含来自所述旧业务场景的样本,所述第二样本集包含来自所述新业务场景的样本,i∈[1,nk],nk表示样本集中样本的数量,表示样本的频谱特征矢量,表示拼音标注结果,k∈[1,2];当k=1时,表示的样本属于所述第一样本集,当k=2时,表示的样本属于所述第二样本集;
[0019]
所述知识蒸馏损失函数为:其中,f
s
表示所述asr模型,f
t
表示所述固定模型,表示所述第一输出结果,表示所述第二输出结果,l
2,kl
表示所述知识蒸馏损失函数,l
kl
(
·
)表示散度;
[0020]
所述针对所述新业务场景的ctc损失函数为:其中,l
2,c
表示针对所述新业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数;
[0021]
所述增量训练模型的损失函数为:l2=λ2l
2,c
+(1-λ2)σl
2,kl
,其中,l2表示所述增量训练模型的损失函数,λ2表示所述增量训练模型对所述旧业务场景的语音信号和所述新业务场景的语音信号的学习能力,σ表示用于平衡l
2,kl
和l
2,c
的数值尺度。
[0022]
一种可行的设计中,所述利用增量训练模型识别所述语音信号,以得到文本信息之前,还包括:
[0023]
对针对所述旧业务场景的样本进行训练,以得到所述asr模型,所述asr模型的损失函数为:其中,l1表示针对所述旧业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数。
[0024]
一种可行的设计中,所述对针对所述旧业务场景的样本进行训练,以得到所述asr模型之前,还包括:
[0025]
对针对所述旧业务场景的音频数据进行标注,以得到所述音频数据的汉字标注结果;
[0026]
根据汉字和拼音的对应关系,将所述汉字标注结果转换为拼音标注结果;
[0027]
根据所述音频数据的频谱特征矢量和所述拼音标注结果,得到所述旧业务场景的样本。
[0028]
一种可行的设计中,所述利用增量训练模型识别所述语音信号,以得到文本信息,
包括:
[0029]
确定所述语音信号对应的频谱特征矢量;
[0030]
将所述频谱特征矢量输入至所述增量训练模型,以得到目标矩阵;
[0031]
根据所述目标矩阵确定所述文本信息。
[0032]
一种可行的设计中,所述利用增量训练模型识别所述语音信号,以得到文本信息之后,还包括:
[0033]
执行所述文本信息对应的控制指令。
[0034]
第二方面,本技术实施例提供一种语音识别装置,包括:
[0035]
获取模块,用于获取待处理的语音信号,所述语音信号是新业务场景的语音信号;
[0036]
识别模块,用于利用增量训练模型识别所述语音信号,以得到文本信息;其中,所述增量训练模型是利用针对所述新业务场景的样本,对针对旧业务场景的自动语音识别asr模型进行知识蒸馏处理得到的。
[0037]
一种可行的设计中,上述的装置还包括:训练模块,用于根据所述asr模型构建固定模型,所述固定模型和所述asr模型的结构相同且参数也相同,所述固定模型的参数在训练过程中保持不变,根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数,利用针对所述新业务场景的样本对所述asr模型进行训练使得所述asr模型的损失函数的损失值最小,以得到所述增量训练模型。
[0038]
一种可行的设计中,所述训练模块,在根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数时,用于将针对所述新业务场景的样本输入至所述asr模型得到第一输出结果,将针对所述新业务场景的样本输入至所述asr模型得到第二输出结果,根据所述第一输出结果和所述第二输出结果构建知识蒸馏损失函数,根据针对所述新业务场景的样本和所述asr模型,构建针对所述新业务场景的连接主义时间分类ctc损失函数,根据所述知识蒸馏损失函数和所述针对所述新业务场景的ctc损失函数,确定所述增量训练模型的损失函数。
[0039]
一种可行的设计中,第一样本集和第二样本集中的任意一个样本表示为其中,所述第一样本集包含来自所述旧业务场景的样本,所述第二样本集包含来自所述新业务场景的样本,i∈[1,n
k
],n
k
表示样本集中样本的数量,表示样本的频谱特征矢量,表示拼音标注结果,k∈[1,2];当k=1时,表示的样本属于所述第一样本集,当k=2时,表示的样本属于所述第二样本集;
[0040]
所述知识蒸馏损失函数为:其中,f
s
表示所述asr模型,f
t
表示所述固定模型,表示所述第一输出结果,表示所述第二输出结果,l
2,kl
表示所述知识蒸馏损失函数,l
kl
(
·
)表示散度;
[0041]
所述针对所述新业务场景的ctc损失函数为:其中,l
2,c
表示针对所述新业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数;
[0042]
所述增量训练模型的损失函数为:l2=λ2l
2,c
+(1-λ2)σl
2,kl
,其中,l2表示所述增量
训练模型的损失函数,λ2表示所述增量训练模型对所述旧业务场景的语音信号和所述新业务场景的语音信号的学习能力,σ表示用于平衡l
2,kl
和l
2,c
的数值尺度。
[0043]
一种可行的设计中,上述的装置还包括:
[0044]
训练模块,用于在所述识别模块利用增量训练模型识别所述语音信号,以得到文本信息之前,对针对所述旧业务场景的样本进行训练,以得到所述asr模型,所述asr模型的损失函数为:其中,l1表示针对所述旧业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数。
[0045]
一种可行的设计中,上述的装置还包括:标注模块,用于在所述训练模块对针对所述旧业务场景的样本进行训练,以得到所述asr模型之前,对针对所述旧业务场景的音频数据进行标注,以得到所述音频数据的汉字标注结果,根据汉字和拼音的对应关系,将所述汉字标注结果转换为拼音标注结果,根据所述音频数据的频谱特征矢量和所述拼音标注结果,得到所述旧业务场景的样本。
[0046]
一种可行的设计中,所述识别模块,用于确定所述语音信号对应的频谱特征矢量,将所述频谱特征矢量输入至所述增量训练模型,以得到目标矩阵,根据所述目标矩阵确定所述文本信息。
[0047]
一种可行的设计中,上述的装置还包括:执行模块,用于在所述识别模块利用增量训练模型识别所述语音信号,以得到文本信息之后,执行所述文本信息对应的控制指令。
[0048]
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器以及可执行指令;其中,所述可执行指令被存储在所述存储器中,并且被配置为由所述处理器执行,所述可执行指令包括用于执行如上第一方面或第一方面的各种可能的实现方式中的方法。
[0049]
第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上第一方面或第一方面的各种可能的实现方式中的方法。
[0050]
本技术实施例提供的语音识别方法及装置,服务器获得待处理的语音信号后,利用预先部署的增量训练模型对该语音信号进行识别从而得到文本信息。由于增量训练模型是预先采用知识蒸馏的方式,仅利用少量新业务场景的样本对旧业务场景的asr模型进行训练得到的,使得该增量训练模型既能够适用于新业务场景又能保留旧业务场景的语音信号的识别能力,解决了采用全量数据训练带来的时间成本以及深度迁移学习导致的泛化能力下降的问题。
附图说明
[0051]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0052]
图1是本技术实施例提供的语音识别方法的网络架构示意图;
[0053]
图2是本技术实施例提供的语音识别方法的流程图;
[0054]
图3是本技术实施例提供的语音识别方法的过程示意图;
[0055]
图4是本技术实施例提供的语音识别方法中asr模型的结构示意图;
[0056]
图5是本技术实施例提供的语音识别方法中知识蒸馏增量学习的示意图;
[0057]
图6为本技术实施例提供的一种语音识别装置的结构示意图;
[0058]
图7为本技术实施例提供的另一种语音识别装置的结构示意图;
[0059]
图8为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
[0060]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0061]
目前,基于端到端深度神经网络(deep neural network,dnn)的语音识别模型在输入端以音频数据作为输入,在输出端输出对应的文本信息,即文字识别结果,该基于dnn的语音识别模型具有训练过程简单、且能够方便的针对不同应用场景进行模型更新的优点,已经成为当前asr技术的主流发展趋势。
[0062]
通常情况下,基于端到端的dnn语音识别模型的主要框架包括:连接主义时间分类(connectionist temporal classification,ctc)框架、听力、注意力机制、拼写(listen attention spell,las)框架、循环神经网络转写(recurrent neural network transducer,rnn-t)框架等。后续出现的端到端神经网络语音识别模型都是在这三种框架的基础上演变获得的。相比于最早提出的端到端asr模型,最新的端到端asr模型已经在语音识别准确率和泛化能力上有了较大幅度的提升。尽管如此,目前的端到端asr技术依然无法实现:通过训练一个通用asr模型来对所有场景的音频数据进行准确识别。通常情况下,采用一个场景的音频数据训练获得asr模型,该asr模型称之为针对旧业务场景的asr模型。倘若将该针对旧业务场景的asr模型用于识别新业务场景的语音信号,则识别准确率可能会大幅度下降,导致无法满足新业务场景的需求。
[0063]
相对于图像、文本等训练数据而言,音频数据由于涉及隐私、版权等问题,通常难以轻易获得,对于新业务场景而言,音频数据的获取问题则尤为突出。同时,由于音频数据的标注需要人工至少听取一遍,标注成功也很高。因此,针对新业务场景,若采用全量数据训练的方式,即获取足够的样本并进行训练,以训练出适应新业务场景的asr模型,则由于难以在短期内积累大量的训练数据用于模型训练,从而直接影响新业务场景的业务上线进度。显然,若针对新业务场景训练asr模型,则获取大规模的新业务场景音频数据及标注数据是很困难的。
[0064]
因此,如何利用少量新业务场景的音频数据,实现短时间、低成本的训练获取能应用于新业务场景的asr模型,视为急待解决的问题。
[0065]
为解决上述问题,常见的做法是采用深度迁移学习的方法。该方法中,通过利用少量新业务场景的音频数据,将针对旧业务场景的asr模型迁移到新业务场景。常见的做法是:固定旧业务场景的asr模型的一部分参数,利用新业务场景少量的音频数据对剩余的参数进行微调以实现模型的迁移。然而,在深度迁移学习的工程应用中,asr的模型结构由多层神经网络组成,不同层结构模型中的特性差别较大,仅能通过经验的方法来确定规定哪些网络层参数、训练哪些网络层的参数、以及微调的学习率参数等等,大幅度提高了开发新
业务场景asr模型的难度和时间成本。
[0066]
同时,采用深度迁移学习训练的模型,由于训练过程中不再涉及旧业务场景的音频数据,容易导致最终训练出的asr模型对旧业务场景的音频数据难以准确识别的现象。然而,虽然旧业务场景和新业务场景在场景上所有差别,但是音频数据在不同业务场景的存在具有一定的重叠性。因此,上述采用深度迁移学习的方法可能会导致训练出的模型对部分新业务场景的音频数据难以准确识别的问题,asr模型的通用性差。
[0067]
有鉴于此,本技术实施例提供一种语音识别方法及装置,通过采用知识蒸馏的方式,仅利用少量新业务场景的音频数据,便可获得同时适用于新业务场景和旧业务场景的asr模型,降低自动语音识别的难度和时间成本。
[0068]
图1是本技术实施例提供的语音识别方法的网络架构示意图。请参照图1,该网络架构包括端设备1和服务器2,终端设备1和服务器2建立网络连接。服务器2上预先部署增量训练模型,服务器获取到的待处理的语义信号后,利用增量训练模型识别该语音信号以得到文本信息。其中,增量训练模型是利用针对所述新业务场景的样本,对针对旧业务场景的自动语音识别asr模型进行知识蒸馏处理得到的。
[0069]
图1中,终端设备1可以为智能手机、平板电脑、便携式计算机、台式计算机等,服务器2可以是独立部署的服务器或多个服务器组成的服务器集群等。终端设备1和服务器2之间的网络可以是有线通信连接、无线通信连接等。
[0070]
需要说明的是,本技术实施例提供的语音识别方法通常由服务器2执行,相应的,增量训练模型一般设置于服务器2中。但是,在本技术的其他实施例中,终端设备1也可以与服务器2具备相似的功能,从而执行本技术实施例所提供的语音识别方法。
[0071]
下面,在上述图1的基础上,以增量训练模型设置在服务器上为例,对本技术实施例所述的语音识别方法进行详细说明。示例性的,可参见图2,图2是本技术实施例提供的语音识别方法的流程图,本实施例包括:
[0072]
101、获取待处理的语音信号,所述语音信号是新业务场景的语音信号。
[0073]
该语音信号可以是用户讲话时发出的一段语音,或者从语音数据库等获得的一段音频数据。例如,终端设备上安装有语音识别引擎,用户发出的语音信号被语音识别引擎采集并发送给服务器。再如,服务器从本地数据库或远程数据库中获取一段预存的音频数据。
[0074]
102、利用增量训练模型识别所述语音信号,以得到文本信息;其中,所述增量训练模型是利用针对所述新业务场景的样本,对针对旧业务场景的自动语音识别asr模型进行知识蒸馏处理得到的。
[0075]
示例性的,服务器上预先部署增量训练模型,该模型是预先利用少量的新业务场景的样本,对旧业务场景的asr模型进行知识蒸馏处理得到的,该增量训练模型除了具备识别新业务场景的语音信号的能力外,还保留旧业务场景的语音识别能力。也就是说,该增量模型是对旧业务场景和新业务场景具有通用性的自动语音识别模型。
[0076]
本技术实施例提供的语音识别方法,服务器获得待处理的语音信号后,利用预先部署的增量训练模型对该语音信号进行识别从而得到文本信息。由于增量训练模型是预先采用知识蒸馏的方式,仅利用少量新业务场景的样本对旧业务场景的asr模型进行训练得到的,使得该增量训练模型既能够适用于新业务场景又能保留旧业务场景的语音信号的识别能力,解决了采用全量数据训练带来的时间成本以及深度迁移学习导致的泛化能力下降
的问题。
[0077]
本技术实施例中,获得增量训练模型后,利用该增量训练模型识别新业务场景的语音信号,以得到文本信息时,先确定语音信号的频谱特征矢量,再将语音信号的频谱特征矢量输入至增量训练模型以得到目标矩阵,根据该目标矩阵确定语音信号对应的文本信息。
[0078]
示例性的,服务器在获取到待处理的语音信号后,将该语音信号转换为频谱特征,得到频谱特征矢量。之后,将该频谱特征矢量输入至增量训练模型中进行运算,得到一个目标矩阵。该目标矩阵的每一列代表一个概率值,每个概率表示该语音信号属于1300类拼音标注结果中的某一类拼音标注结果的概率。如此一来,可以根据目标矩阵的每一列确定出多个概率,将该些概率中最大概率对应的拼音标注结果即为该语音信号的拼音标注结果。采用该种方案,实现利用增量训练模型识别语音信号的目的。
[0079]
服务器利用增量训练模型识别语音信号得到文本信息后,执行该文本信息对应的控制指令。例如,文本信息为“xxx地方怎么走”,则服务器生成当前位置与xxx地方导航路径并返回给终端设备。
[0080]
图3是本技术实施例提供的语音识别方法的过程示意图。请参照图3,本技术实施例包括:
[0081]
201、获取针对旧业务场景的样本。
[0082]
旧业务场景指自动语音识别技术比较成熟的业务场景,已针对该场景训练出准确率较高的asr模型。针对旧业务场景可获取的大量样本,该些样本用于训练出针对旧业务场景的asr模型。
[0083]
202、获取针对新业务场景的样本。
[0084]
新业务场景指自动语音识别技术不成熟的业务场景,暂时未针对该场景训练出准确率较高的ase模型。针对新业务场景可获取的样本比较少。针对新业务场景的样本结合针对旧业务场景的asr模型构造知识蒸馏损失函数、对旧业务场景的asr模型进行再训练以得到增量训练模型等。该增量训练模型即为针对新业务场景的asr模型。
[0085]
本技术实施例中,每个样本即为一段音频数据,如10秒或其他长度的音频数据。旧业务场景的样本比较多,总时长例如为12000小时,新业务场景的样本比较少,总时长例如为300小时。
[0086]
旧业务场景的样本包含于第一样本集ψ1,所述新业务场景的样本包含于第二样本集ψ2,所述第一样本集ψ1和所述第二样本集ψ2中的任意一个样本表示为其中,i∈[1,n
k
],n
k
表示样本集中样本的数量,表示频谱特征矢量,表示拼音标注结果,k∈[1,2];当k=1时,表示的样本属于所述第一样本集,当k=2时,表示的样本属于所述第二样本集。
[0087]
对于每一个样本,可采用传统短时傅里叶变换(short-time fourier transform,stft)获得该样本的频谱特征矢量,stft的窗口大小为20毫秒(ms)、窗口滑动步长为10ms,通过stft可以获得每一个样本的81维频谱信息序列,根据该81维频谱信息序列即可得到频谱特征矢量。通常情况下,针对旧业务场景的样本的数量远远大于新业务场景的样本的数量,也就是说,n1>>n2。
[0088]
对于每一个样本,由于音频数据通常采用汉字进行标注,因此可以通过汉字对样本进行标注,得到样本的汉字标注结果。由于汉字标注结果的类别比较多,大概有7000类,因此,还可以根据汉字和拼音的对应关系,将所述汉字标注结果转换为拼音标注结果。例如,可采用开业工具pypinyin将汉字标注结果转换为拼音标注结果,并采用拼音作为建模单元,从而将汉字中的同音字合并,将类别数量降低为1300类。例如,样本1为的中文标注结果为“中文”,样本2的中文标注结果为“钟表”,拼音“zhong”、“wen”、“biao”的编号分别为





,则样本1的拼音标注结果为
“①②”
,样本2的拼音标注结果为
“①③”
。采用该种方案,通过减小分类类别,提高模型的收敛效果。
[0089]
203、对旧业务场景的样本进行预训练以得到针对旧业务场景的asr模型。
[0090]
示例性的,在进行增量学习之前,需要先设定端到端的asr模型的结构。与las框架、rnn-t-t框架不同,ctc框架在对每一帧音频的识别过程中不依赖上一帧音频的识别结果,具有效率高、实时性好的优点,适用于大量的实际应用场景中。本技术实施例采用目前流行的三类网络框架中的ctc框架,来构建针对旧业务场景的asr模型。
[0091]
基于ctc框架的asr模型旨在利用针对旧业务场景的样本构造样本到拼音标注结果的非线性映射函数。针对旧业务场景的asr模型,即非线性映射函数表示为f
s
。图4是本技术实施例提供的语音识别方法中asr模型的结构示意图。
[0092]
请参照图4,该针对旧业务场景的asr模型f
s
包括3层卷积神经网络(convolutional neural network,cnn)、10层自注意力模块(self-attention block,sab),以及2层全连接层(fully connected,fc)。需要说明的是,虽然图4是以asr模型f
s
为3+10+2的结构进行说明,然而,本技术实施例并不限制cnn、sab和fc的层数。
[0093]
设定好asr模型f
s
的结构后,对针对旧业务场景的样本进行训练,得到针对旧业务场景的asr模型f
s
。训练过程中,对针对旧业务场景的样本进行训练,以得到asr模型f
s
,该asr模型f
s
的损失函数为:
[0094][0095]
其中,l1表示asr模型f
s
的损失函数,l
c
(
·
)表示针对所述旧业务场景的ctc损失函数,f
s
表示所述asr模型,表示所述asr模型f
s
中所有参数的2-范数的总和,λ1表示正则项系数,例如,λ1=10-5
。其中,针对所述旧业务场景的ctc损失函数可以理解为输入为旧业务场景的样本的ctc损失函数。
[0096]
本技术实施例中,采用反向传播算法进行神经网络模型训练,例如,可采用自适应矩估计(adaptive moment estimation,adam)优化算法[5],adam的初始值设置为4
×
10-4
。当初始化的asr模型收敛后,即上述公式(1)所示损失函数的损失值最小时,即可获得针对旧业务场景的asr模型。
[0097]
需要说明的是,倘若可以直接获取到针对旧场景的asr模型,则可以直接使用该asr模型而无需执行上述的步骤201和步骤203。
[0098]
204、构建知识蒸馏损失函数。
[0099]
服务器根据所述asr模型构建固定模型,所述固定模型和所述asr模型的结构相同且参数也相同,所述固定模型的参数在训练过程中保持不变。示例性的,可参见图5,图5是本技术实施例提供的语音识别方法中知识蒸馏增量学习的示意图。
[0100]
请参照图5,左边为asr模型f
s
,该asr模型f
s
的参数在训练过程中发生变化;右边为固定模型f
t
,该固定模型f
t
的参数在训练过程中发生变化。服务器可根据asr模型f
s
、所述固定模型f
t
和针对所述新业务场景的样本,确定所述增量训练模型的损失函数。
[0101]
确定增量训练模型的损失函数的过程中,先构建知识蒸馏损失函数,再根据知识蒸馏损失函数构建增量训练模型的损失函数。构建知识蒸馏损失函数的过程中,将针对所述新业务场景的样本输入至所述asr模型得到第一输出结果,将针对所述新业务场景的样本输入至所述asr模型得到第二输出结果,根据所述第一输出结果和所述第二输出结果构建知识蒸馏损失函数。
[0102]
例如,每条针对新业务场景的样本经过上述的asr模型f
s
和固定模型f
t
后,分别得到第一输出结果和第二输出结果其中,asr模型f
s
的参数随着训练发生变化,因此,第一输出结果表示后续训练得到的增量训练模型(新模型)对样本的特征提取结果,而固定模型f
t
的参固定,固定模型f
t
代表了针对旧业务场景的asr模型,因此,第二输出结果表示针对旧业务场景的asr模型(旧模型)对样本的特征提取结果。倘若第一输出结果和第二输出结果保持一致,则表示增量训练模型和asr模型对新业务场景的样本具有相同的识别能力。倘若第一输出结果和该样本的标注结果保持一致,则说明增量训练模型能够对新业务场景的样本进行准确识别。为了衡量第一输出结果和第二输出结果的一致性,以及第一输出结果和该样本的标注结果的一致性,本技术实施例中,构建知识蒸馏损失函数为:
[0103][0104]
其中,f
s
表示所述asr模型,f
t
表示所述固定模型,表示所述第一输出结果,表示所述第二输出结果,l
2,kl
表示所述知识蒸馏损失函数,l
kl
(
·
)表示散度。
[0105]
205、构建增量训练模型的损失函数。
[0106]
构建增量训练模型的损失函数的过程中,服务器根据针对所述新业务场景的样本和所述asr模型,构建第一连接时间分类ctc损失函数,根据所述知识蒸馏损失函数和所述针对所述新业务场景的ctc损失函数,确定所述增量训练模型的损失函数。
[0107]
示例性的,针对所述新业务场景的ctc损失函数为:
[0108][0109]
其中,l
2,c
表示所述asr模型的损失函数,l
c
(
·
)表示ctc损失函数,f
s
表示所述asr模型,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数。针对所述新业务场景的ctc损失函数可以理解为输入为新业务场景的样本的ctc损失函数。
[0110]
在构建出知识蒸馏损失函数和针对所述新业务场景的ctc损失函数后,服务器对该两个损失函数进行加权,得到增量训练模型的损失函数。增量训练模型的损失函数为:
[0111]
l2=λ2l
2,c
+(1-λ2)σl
2,kl
ꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0112]
其中,l2表示所述增量训练模型的损失函数,λ2表示所述增量训练模型对所述旧业务场景的语音信号和所述新业务场景的语音信号的学习能力,σ表示用于平衡l
2,kl
和l
2,c

数值尺度。
[0113]
公式(4)中,参数λ2用于平衡增量训练模型对旧业务场景和新业务场景的音频数据的学习能力。如果λ2=1,则表明该增量训练模型只关注新业务场景,这将使得增量训练模型会尽可能的去拟合新业务场景的音频数据,这样做的好处是最大化的利用了新业务场景的样本。然而,由于新业务场景的样本比较少,很有可能导致增量训练模型的泛化能力比较差,影响增量训练模型的实际效果。相反,若λ2=0,则表明增量训练模型的训练过程中,尽可能的保留旧业务场景的asr模型的知识,使得增量训练模型与asr模型具有相同的识别性能,这样做相当于没有利用新业务场景的样本,训练获得的增量训练模型难以适用于新业务场景。由于上述公式(2)和公式(3)所示的损失函数的物理意义不同,数量级差别较大。本技术实施例中,采用参数σ来平滑上述的两个损失函数的数值尺度,参数λ2和参数σ的取值例如为:λ2=0.5,σ=0.02。
[0114]
206、利用新业务场景的样本对asr模型进行再训练,使得所述增量训练模型的损失函数的损失值最小,以得到所述增量训练模型
[0115]
示例性的,服务器利用新业务场景的业务数据,对旧业务场景的asr模型进行再训练。训练过程中,可采用反向传播算法进行神经网络模型训练,例如,可采用adam优化算法[5],adam的初始值可设置为1
×
10-4
等。
[0116]
下面,用一组数据对本技术实施例所述的增量训练模型进行验证。示例性的,可参见表1。
[0117]
表1增量学习端到端语音识别模型在测试集上的准确率
[0118][0119]
请参照表1,分别利用基准模型、针对旧业务场景的asr模型、增量训练模型对7个测试集进行测试,该7个中文语音测试集分别为:中文开源测试集aishell1、aishell2、primewords、st-cmds,thu-30,以及原业务和新业务测试集。其中,基准模型是将旧业务场景的音频数据和新业务场景的音频数据混合后训练得到的模型,例如,旧业务场景的12000时长的音频数据和新业务场景的12000时长的音频数据混合后进行全量训练得到的语义识别模型。
[0120]
请参照表1,相较于针对旧业务场景的asr模型,本技术实施例所述的增量训练模型对aishell1、aishell2、primewords、st-cmds,thu-30以及旧业务测试机的识别准确率均有微幅下降,这是因为虽然采用知识蒸馏,使得在一定程度上保留了增量训练模型对旧业务场景的识别能力,但是,由于增量训练模型的训练过程中,完全没有涉及旧业务场景的音频数据,因此不可避免的出现对旧业务场景知识的少量“遗忘”。然而,这种准确率下降的幅
度非常小,均小于0.5%。新业务场景的测试中,增量训练模型的性能较旧业务场景的asr模型的识别准确率显著提升,且性能与基准模型接近。
[0121]
因此,实验结果表明:通过使用本技术的增量学习得到的增量训练模型,能够在保持(或略有下降)旧业务场景的asr模型准确率的条件下,能够较好的提升针对新业务场景的识别准确率。而且,训练过程中,仅采用了小规模的新业务场景的音频数据,因此,能够大大提升模型的训练时间,提高了模型更新效率。
[0122]
下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
[0123]
图6为本技术实施例提供的一种语音识别装置的结构示意图。该语音识别装置100可以通过软件和/或硬件的方式实现。如图6所示,该语音识别装置100包括:
[0124]
获取模块11,用于获取待处理的语音信号,所述语音信号是新业务场景的语音信号;
[0125]
识别模块12,用于利用增量训练模型识别所述语音信号,以得到文本信息;其中,所述增量训练模型是利用针对所述新业务场景的样本,对针对旧业务场景的自动语音识别asr模型进行知识蒸馏处理得到的。
[0126]
图7为本技术实施例提供的另一种语音识别装置的结构示意图。本实施例提供的语音识别装置100在图6的基础上,还包括:
[0127]
训练模块13,用于根据所述asr模型构建固定模型,所述固定模型和所述asr模型的结构相同且参数也相同,所述固定模型的参数在训练过程中保持不变,根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数,利用针对所述新业务场景的样本对所述asr模型进行训练使得所述asr模型的损失函数的损失值最小,以得到所述增量训练模型。
[0128]
一种可行的设计中,所述训练模块13,在根据所述asr模型、所述固定模型和针对所述新业务场景的样本,确定所述增量训练模型的损失函数时,用于将针对所述新业务场景的样本输入至所述asr模型得到第一输出结果,将针对所述新业务场景的样本输入至所述asr模型得到第二输出结果,根据所述第一输出结果和所述第二输出结果构建知识蒸馏损失函数,根据针对所述新业务场景的样本和所述asr模型,构建针对所述新业务场景的连接主义时间分类ctc损失函数,根据所述知识蒸馏损失函数和所述针对所述新业务场景的ctc损失函数,确定所述增量训练模型的损失函数。
[0129]
一种可行的设计中,第一样本集和第二样本集中的任意一个样本表示为其中,所述第一样本集包含来自所述旧业务场景的样本,所述第二样本集包含来自所述新业务场景的样本,i∈[1,n
k
],n
k
表示样本集中样本的数量,表示样本的频谱特征矢量,表示拼音标注结果,k∈[1,2];当k=1时,表示的样本属于所述第一样本集,当k=2时,表示的样本属于所述第二样本集;
[0130]
所述知识蒸馏损失函数为:其中,f
s
表示所述asr模型,f
t
表示所述固定模型,表示所述第一输出结果,表示所述第二输出结果,l
2,kl
表示所述知识蒸馏损失函数,l
kl
(
·
)表示散度;
[0131]
所述针对所述新业务场景的ctc损失函数为:其中,l
2,c
表示针对所述新业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数;
[0132]
所述增量训练模型的损失函数为:l2=λ2l
2,c
+(1-λ2)σl
2,kl
,其中,l2表示所述增量训练模型的损失函数,λ2表示所述增量训练模型对所述旧业务场景的语音信号和所述新业务场景的语音信号的学习能力,σ表示用于平衡l
2,kl
和l
2,c
的数值尺度。
[0133]
一种可行的设计中,训练模块13,用于在所述识别模块12利用增量训练模型识别所述语音信号,以得到文本信息之前,对针对所述旧业务场景的样本进行训练,以得到所述asr模型,所述asr模型的损失函数为:其中,l1表示针对所述旧业务场景包含正则项的ctc损失函数,l
c
(
·
)表示ctc损失函数,表示所述asr模型中所有参数的2-范数的总和,λ1表示正则项系数。
[0134]
再请参照图7,一种可行的设计中,上述的语音识别装置100还包括:
[0135]
标注模块14,用于在所述训练模块13对针对所述旧业务场景的样本进行训练,以得到所述asr模型之前,对针对所述旧业务场景的音频数据进行标注,以得到所述音频数据的汉字标注结果,根据汉字和拼音的对应关系,将所述汉字标注结果转换为拼音标注结果,根据所述音频数据的频谱特征矢量和所述拼音标注结果,得到所述旧业务场景的样本。
[0136]
一种可行的设计中,所述识别模块12,用于确定所述语音信号对应的频谱特征矢量,将所述频谱特征矢量输入至所述增量训练模型,以得到目标矩阵,根据所述目标矩阵确定所述文本信息。
[0137]
再请参照图7,一种可行的设计中,上述的语音识别装置100还包括:执行模块15,用于在所述识别模块12利用增量训练模型识别所述语音信号,以得到文本信息之后,执行所述文本信息对应的控制指令。
[0138]
本技术实施例提供的语音识别装置,可以执行上述方法实施例中服务器的动作,其实现原理和技术效果类似,在此不再赘述。
[0139]
图8为本技术一实施例提供的电子设备的结构示意图。如图8所示,该电子设备200包括:
[0140]
处理器21和存储器22;
[0141]
所述存储器22存储可执行指令;
[0142]
所述至少一个处理器21执行所述存储器22存储的可执行指令,使得所述至处理器21执行如上所述的语音识别方法。
[0143]
处理器21的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0144]
可选地,该电子设备200还包括通信部件23。其中,处理器21、存储器22以及通信部件23可以通过总线24连接。
[0145]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有可执行指令,所述可执行指令被处理器执行时用于实现如上所述的语音识别方法。
[0146]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
[0147]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。