1.本公开涉及人工智能领域,具体涉及自然语言处理、深度学习技术和语音转写领域,具体涉及一种语音识别方法、装置、设备、存储介质及程序产品。
背景技术:2.近年来,语音识别技术取得了长足的进展,在许多领域中获得了实际应用,包括用于人机对话和智能助理、用于文字输入和用于语音文件的转写等。其中,对于语音文件的转写在当前有着广泛而迫切的需求,尤其是针对大段语音的文件转写,例如广播电视节目的音频、演讲录音、会议录音、课程录音、法庭庭审录音等需要进行当场或事后的转写以得到对应的文本,从而用于字幕生成、文件存档和检索等。
3.诸如上述语音文件的转写,往往要求获得高准确度的文本,因而目前大多数语音文件的转写采用的是人工转写的方式,即人工收听音频内容并录入相应的文字。
技术实现要素:4.本公开实施例提出了一种语音识别方法、装置、设备、存储介质以及程序产品。
5.第一方面,本公开实施例提出了一种语音识别模型训练方法,包括:获取第一训练样本,其中,第一训练样本包括第一样本音频和第一样本音频对应的第一样本文本;提取第一样本音频的第一样本音频特征;将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数,得到语音识别模型。
6.第二方面,本公开实施例提出了一种语音识别方法,包括:获取待识别音频;提取待识别音频的待识别音频特征;将待识别音频特征输入至预先训练的语音识别模型,得到待识别音频对应的文本,其中,语音识别模型是采用第一方面中任一实现方式描述的方法训练得到的。
7.第三方面,本公开实施例提出了一种语音识别模型训练装置,包括:第一获取模块,被配置成获取第一训练样本,其中,第一训练样本包括第一样本音频和第一样本音频对应的第一样本文本;第一提取模块,被配置成提取第一样本音频的第一样本音频特征;第一训练模块,被配置成将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数,得到语音识别模型。
8.第四方面,本公开实施例提出了一种语音识别装置,包括:获取模块,被配置成获取待识别音频;提取模块,被配置成提取待识别音频的待识别音频特征;识别模块,被配置成将待识别音频特征输入至预先训练的语音识别模型,得到待识别音频对应的文本,其中,语音识别模型是采用第三方面中任一实现方式描述的装置训练得到的。
9.第五方面,本公开实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指
令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面和第二方面中任一实现方式描述的方法。
10.第六方面,本公开实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面和第二方面中任一实现方式描述的方法。
11.第七方面,本公开实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面和第二方面中任一实现方式描述的方法。
12.本公开实施例提供的语音识别模型训练方法,设计了逐渐裁减训练(模型域)的说话人自适应的语音识别系统,通过逐渐裁剪的方式训练语音识别模型,避免了网络结构的调整带来迁移的额外成本。
13.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
14.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本公开的限定。其中:
15.图1是根据本公开的语音识别模型训练方法的一实施例的流程图;
16.图2是根据本公开的语音识别模型训练方法的又一实施例的流程图;
17.图3是语音识别模型逐渐裁剪训练的示意图;
18.图4是语音识别模型结构的示意图;
19.图5根据本公开的语音识别模型训练方法的另一实施例的流程图;
20.图6是根据本公开的说话人特征提取模型训练方法的一实施例的流程图;
21.图7是根据本公开的语音识别方法的一实施例的流程图;
22.图8是根据本公开的语音识别模型训练装置的一实施例的结构示意图;
23.图9是根据本公开的语音识别装置的一实施例的结构示意图;
24.图10是用来实现本公开实施例的语音识别模型训练方法语音识别方法的电子设备的框图。
具体实施方式
25.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
26.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
27.图1示出了根据本公开的语音识别模型训练方法的一些实施例的流程100。该语音识别模型训练方法包括以下步骤:
28.步骤101,获取第一训练样本。
29.在本实施例中,语音识别模型训练方法的执行主体可以获取大量第一训练样本。
30.其中,第一训练样本可以来源于源说话人数据集合。每个第一训练样本可以包括第一样本音频和第一样本音频对应的第一样本文本。第一样本音频可以是对源说话人说的话进行录制所得到的源说话人音频。第一样本文本可以是对源说话人音频进行转写所得到的源说话人文本。
31.步骤102,提取第一样本音频的第一样本音频特征。
32.在本实施例中,上述执行主体可以提取第一样本音频的第一样本音频特征。
33.其中,第一样本音频特征可以是第一样本音频的声谱特征,包括但不限于mfcc(mel
‑
frequency cepstral coefficients,梅尔频率倒谱系数)、plp(perceptual linear predictive,感知线性预测系数)和fbank(filter bank,滤波器组)等。一般维度可以取20,每帧时长25ms,帧移10ms,计算时一般带有一定数量的上下文,例如各2帧。
34.步骤103,将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数,得到语音识别模型。
35.在本实施例中,上述执行主体可以将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数,得到语音识别模型。通过逐渐裁剪的方式训练语音识别模型,避免了网络结构的调整带来迁移的额外成本。
36.通常,语音识别模型可以是利用机器学习方法和第一训练样本对初始语音识别模型进行有监督训练而得到的。实践中,可以将初始语音识别模型的各个参数(例如,权值参数和偏置参数)用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败,“不同”用来保证网络可以正常地学习。初始语音识别模型的参数在训练过程中可以被不断地调整和裁剪,迭代若干轮至收敛,即可得到一个性能稳定并且部分参数被裁剪的语音识别模型。其中,训练的损失函数可以是rnn
‑
t(recurrent neural network transducer,循环神经网络传感器),即最大化所有能输出正确序列的路径概率和。
37.其中,逐渐裁剪(gradual pruning)可以是在训练过程中多次裁剪掉模型的参数。具体地,训练过程可以是对模型的多轮迭代过程,一轮迭代过程就是利用一批训练样本对模型进行一次更新的过程,会更新模型的参数。在每轮或几个别轮迭代结束之后,会裁剪掉模型的部分参数,使得模型的有效参数在训练过程中逐渐减少。例如,每轮迭代结束之后,裁剪掉模型1%的参数,经过10轮迭代,即可裁剪掉模型10%的参数。又例如,对于前1到5轮迭代,每轮迭代更新模型的参数,在第5轮迭代结束之后,裁剪掉模型5%的参数,对于前6到10轮迭代,每轮迭代更新模型的参数,在第10轮迭代结束之后,裁剪掉模型5%的参数,经过10轮迭代,即可裁剪掉模型10%的参数。
38.需要说明的是,模型的有效参数是模型的未裁剪参数。模型的无效参数是模型的裁剪参数。在一些实施例中,裁剪掉模型的部分参数可以是将模型的部分参数删除,此时,模型中未被删除的参数就是有效参数,模型中删除的参数就是无效参数。在一些实施例中,裁剪掉模型的部分参数还可以是将模型的部分参数置零,此时,模型中的非零参数就是有效参数,模型中的置零参数就是模型的无效参数。在一些实施例中,裁减掉模型的部分参数还可以将其中一部分参数删除,将其中另一部分参数置零,此时,模型中未被删除的非零参
数就是有效参数,模型中删除的参数和模型中的置零参数都是无效参数。
39.在一些实施例中,在训练过程中,可以先将初始语音识别模型迭代m轮,其中,m(m为正整数)轮中的每轮迭代过程,均会对模型参数进行一次更新,但模型的有效参数的数目保持不变。然后,每隔k(k为正整数)轮迭代,对k轮迭代得到的模型的参数进行裁剪,并对裁剪得到的模型的未裁剪参数继续迭代更新,直至更新得到的模型收敛。其中,对于m轮之后的每k轮迭代过程,k轮中的每轮迭代过程,均会对模型参数进行一次更新,只是在第k轮迭代结束之后,会裁剪掉模型的部分参数,使得模型的有效参数的数目在训练过程中逐渐减少。通常,为了尽可能地降低参数裁剪对模型效果的影响,可以对k轮迭代得到的模型上值比较小的参数进行裁剪。例如,按数值大小对k轮迭代得到的模型的参数进行排序,从数值小的一侧开始将预设比例(如1%)的参数置零,其中,置零的参数为无效参数。以总共迭代150万轮为例,可以先将初始语音识别模型迭代到50万轮。接下来每10万轮迭代,对10万轮迭代得到的模型上值最小的1%的参数置零,在后面的迭代不更新,这样总共裁剪了10%的参数量。
40.本公开实施例提供的语音识别模型训练方法,设计了逐渐裁减训练(模型域)的说话人自适应的语音识别系统,通过逐渐裁剪的方式训练语音识别模型,避免了网络结构的调整带来迁移的额外成本。
41.继续参考图2,其示出了根据本公开的语音识别模型训练方法的又一些实施例的流程200。该语音识别模型训练方法包括以下步骤:
42.步骤201,获取第一训练样本。
43.步骤202,提取第一样本音频的第一样本音频特征。
44.步骤203,将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数。
45.在本实施例中,步骤201
‑
203的具体操作已在图1所示的实施例中步骤101
‑
103中进行了详细的介绍,在此不再赘述。
46.步骤204,获取第二训练样本。
47.在本实施例中,语音识别模型训练方法的执行主体可以获取大量第二训练样本。
48.其中,第二训练样本可以来源于目标说话人数据集合。每个第二训练样本可以包括第二样本音频和第二样本音频对应的第二样本文本。第二样本音频可以是对目标说话人说的话进行录制所得到的目标说话人音频。第二样本文本可以是对目标说话人音频进行转写所得到的目标说话人文本。
49.需要说明的是,在通常情况下,源说话人与目标说话人不存储重叠,即第二训练样本与第一训练样本不重叠,且实际应用中第二训练样本的数量通常远远小于第一训练样本的数量。
50.步骤205,提取第二样本音频的第二样本音频特征。
51.在本实施例中,上述执行主体可以提取第二样本音频的第二样本音频特征。
52.其中,第二样本音频特征可以是第二样本音频的声谱特征,包括但不限于mfcc、plp和fbank等。一般维度可以取20,每帧时长25ms,帧移10ms,计算时一般带有一定数量的上下文,例如各2帧。
53.步骤206,将第二样本音频特征作为输入,将第二样本文本作为输出,对逐渐裁剪
参数之后得到的语音识别模型继续进行训练,以及在训练过程中固定逐渐裁剪参数之后得到的语音识别模型的未裁剪参数,对逐渐裁剪参数之后得到的语音识别模型的裁剪参数进行调整,得到语音识别模型。
54.在本实施例中,上述执行主体可以将第二样本音频特征作为输入,将第二样本文本作为输出,对逐渐裁剪参数之后得到的语音识别模型继续进行训练,以及在训练过程中固定逐渐裁剪参数之后得到的语音识别模型的未裁剪参数,对逐渐裁剪参数之后得到的语音识别模型的裁剪参数进行调整,得到语音识别模型。先通过逐渐裁剪的方式利用源说话人数据进行训练,再在整个网络上采用目标说话人数据进行调整,不仅最大化地保留了对源说话人数据的识别能力,还提升了对目标说话人数据的识别效果。
55.以总共裁剪10%的参数量为例,采用目标说话人数据对逐渐裁剪参数之后得到的语音识别模型进行调整,先将90%的未裁剪参数进行固定,然后对10%的裁剪参数进行训练。这样迭代多轮后,就得到一个对目标说话人数据集合具有良好识别效果的模型。
56.需要说明的是,由于在实际应用中第二训练样本的数量通常远远小于第一训练样本的数量,利用第二训练样本进行模型训练时,只是对模型的裁剪参数进行微调,其训练工作量较小。
57.为了便于理解,图3示出了模型逐渐裁剪训练的示意图。如图3中的(a)所示,先对模型参数初始化。如图3中的(b)所示,再进行模型训练,在模型训练过程中进行模型剪枝。如图3中的(c)所示,最后进行模型调整,得到语音识别模型。
58.从图2中可以看出,与图1对应的实施例相比,本实施例中的语音识别模型训练方法的流程200增加了模型调整的步骤。由此,本实施例描述的方案先通过逐渐裁剪的方式利用源说话人数据进行训练,再在整个网络上采用目标说话人数据进行调整,不仅最大化地保留了对源说话人数据的识别能力,还提升了对目标说话人数据的识别效果。
59.在一些实施例中,初始语音识别模型是语言模型(如transformer),包括编码器(encoder)和解码器(decoder),编码器包括mha(multi
‑
head attention,多头自注意力)模块。为了便于理解,图4示出了语音识别模型结构的示意图。如图4所示,初始语音识别模型由transformer{2个卷积+线性+编码器{层标准化+mha+线性+层标准化+前馈}+解码器{层标准化+mha+层标准化+交叉注意力+层标准化+前馈}构成。其中,第一样本音频经过两个卷积和线性,与其位置编码一起输入至编码器。编码器的mha包括值项、键值和查询。说话人特征构成的说话人特征空间m
v
可以拼接到值项中,说话人特征构成的说话人特征空间m
k
可以拼接到键值中。第一样本文本可以与其位置编码一起输入至解码器。此外,编码器输出可以输入到解码器的交叉注意力模块,解码器输出各个文本单元的概率。
60.进一步参考图5,其示出了根据本公开的语音识别模型训练方法的另一些实施例的流程500。该语音识别模型训练方法包括以下步骤:
61.步骤501,从第一训练样本中获取n个说话人音频。
62.在本实施例中,语音识别模型训练方法的执行主体可以从第一训练样本中获取n(如64)个说话人音频。
63.其中,n为正整数。n个说话人音频同样来源于源说话人数据集合,是对n个源说话人说的话进行录制所得到的源说话人音频。
64.步骤502,分别提取n个说话人音频对应的说话人特征。
65.在本实施例中,上述执行主体可以分别提取n个说话人音频对应的说话人特征。
66.其中,说话人特征可以包括但不限于ivector、xvector和dvector等。具体可以例如是gmm(gaussian mixed model,高斯混合模型)
‑
ivector、dnn(deep neural network,深度神经网络)
‑
ivector、tdnn(time delay neural network,时延神经网络)
‑
xvector和lstm(long short
‑
term memory,长短期记忆网络)
‑
dvector等。说话人特征是将同一个人的多条音频转化为固定长度的特征向量。该特征向量表征了该说话人的特点,例如声带振动频率、口腔大小、嘴唇厚度、舌头位置、鼻咽腔粗细等等。
67.通常,说话人特征是通过预训练说话人识别模型得到。具体地,将n个说话人音频分别输入至说话人特征提取模型,即可得到n个说话人特征。
68.步骤503,基于n个说话人音频对应的说话人特征构成说话人特征空间。
69.在本实施例中,上述执行主体可以基于n个说话人音频对应的说话人特征构成说话人特征空间。
70.通常,多个不同的说话人特征可以构成一个高维的说话人特征空间,在这个特征空间里面,几乎可以模拟出任意说话人特征,通过对各个说话人特征进行某种运算(如加权求和)即可。
71.步骤504,利用说话人特征空间初始化mha模块。
72.在本实施例中,上述执行主体可以利用说话人特征空间初始化mha模块。具体地,可以将说话人特征空间拼接到mha中的键值k和值项v中,以初始化mha模块。
73.通常,利用说话人特征空间初始化mha模块,可以在训练的时候自动的去学习刻画音频中的说话人特征,进而能够对测试中未见过的说话人特征也可以准确的刻画,从而解决训练与测试不匹配的问题。
74.这里,学习刻画说话人特征是通过mha内在的机制实现的。具体是通过修改mha中的键值k和值项v,将n个说话人特征嵌入到里面。
75.过程如下:
76.首先,一般的mha计算过程如下:
[0077][0078]
multihd(q,k,v)=concat(hd1,...,hd
h
)w
o
;
[0079][0080]
其中,q、k、v分别是mha的输入矩阵,对应查询q、键值k、值项v。各个w分别是模块之间的连接变换矩阵,是q的连接变换矩阵,是k的连接变换矩阵,是v的连接变换矩阵。h是mha的头的个数。d是单个头的维度,d1是第1个头的维度,d
h
是第h个头的维度,d
i
是第i个头的维度,其中,i为正整数,且1≤i≤h。
[0081]
然后,先从源说话人数据集合里面随机挑选n个说话人,然后利用相应的音频通过说话人特征模型提取出ivector,构建说话人特征空间如下:
[0082][0083]
[0084]
其中,m是说话人特征,m1是第1个说话人特征,m
n
是第n个说话人特征,在网络参数学习中是固定的。u是矩阵参数,u
k
是k的矩阵参数,u
v
是v的矩阵参数。m
k
作用于k,m
v
作用于v。
[0085]
假设mha的输入为:x=[x1,...,x
t
],x1对应第1个第一样本音频,x
t
对应第t个第一样本音频,那么说话人特征空间通过拼接到输入的x里面,这样通过注意力的计算来捕获说话人相关的特性,并且是基于整个句子的基础上,这样捕获的更加精确:
[0086]
k
m
=[k1,...,k
t+n
]=([w
k
x1,...,w
k
x
t
],m
k
);
[0087]
v
m
=[v1,...,v
t+n
]=([w
v
x1,...,w
v
x
t
],m
v
)。
[0088][0089]
其中,k
m
是说话人特征空间m
k
嵌入到键值k,v
m
是说话人特征空间m
v
嵌入到值项v。这里面的m是被多个mha层共享。
[0090]
步骤505,获取第一训练样本。
[0091]
步骤506,提取第一样本音频的第一样本音频特征。
[0092]
步骤507,将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数。
[0093]
步骤508,获取第二训练样本。
[0094]
步骤509,提取第二样本音频的第二样本音频特征。
[0095]
步骤510,将第二样本音频特征作为输入,将第二样本文本作为输出,对逐渐裁剪参数之后得到的语音识别模型继续进行训练,以及在训练过程中固定逐渐裁剪参数之后得到的语音识别模型的未裁剪参数,对逐渐裁剪参数之后得到的语音识别模型的裁剪参数进行调整,得到语音识别模型。
[0096]
在本实施例中,步骤505
‑
510的具体操作已在图2所示的实施例中步骤201
‑
206中进行了详细的介绍,在此不再赘述。
[0097]
从图5中可以看出,与图2对应的实施例相比,本实施例中的语音识别模型训练方法的流程500增加了特征与的自适应步骤。由此,本实施例描述的方案设计了说话人感知(特征域)结合逐渐裁减训练(模型域)的说话人自适应的语音识别系统,主要包括特征域的自适应和模型域的自适应。通过综合特征域的自适应与模型域的自适应,来弥补内容识别上出现的源说话人特性与目标说话人特性不匹配的情况。通过构建说话人特征空间,调整mha的输入,来准确刻画任意说话人特征,提升对目标说话人数据的识别效果。
[0098]
进一步参考图6,其示出了图6是根据本公开的说话人特征提取模型训练方法的一些实施例的流程600。该说话人特征提取模型包括以下步骤:
[0099]
步骤601,获取第三训练样本。
[0100]
在本实施例中,说话人特征提取模型的执行主体可以获取大量第三训练样本。
[0101]
其中,第三训练样本可以来源于开源数据,包括但不限于aishell,librispeech,sre04
‑
08等。每个第三训练样本可以包括第三样本音频和第三样本音频对应的第三样本说话人标签。第三样本音频可以是对说话人(只包含一个说话人)说的话进行录制所得到的说话人音频。第三样本说话人标签可以是说话人标识,用于唯一标识说话人。
[0102]
步骤602,将第三样本音频输入至初始特征提取模型,得到第三样本说话人特征。
[0103]
在本实施例中,上述执行主体可以将第三样本音频输入至初始特征提取模型,得到第三样本说话人特征。
[0104]
通常,在输入至初始特征提取模型之前,需要对第三样本音频进行预处理。对每条第三样本音频进行预处理,包括去除噪声(如环境噪声、忙音、彩铃声、静音等),得到干净的音频,再对音频进行分帧。初始特征提取模型可以提取每帧的低级特征,比如20维的mfcc、plp或fbank等。具体地,经过一阶二阶差分,然后再正则化,即正态分布规整,这样每帧音频提取到20*3维的特征。
[0105]
步骤603,将第三样本说话人特征输入至初始说话人识别模型,得到第三样本说话人概率。
[0106]
在本实施例中,上述执行主体可以将第三样本说话人特征输入至初始说话人识别模型,得到第三样本说话人概率。
[0107]
通常,每帧特征需要结合一定数量的上下文,再输入到初始说话人识别模型中进行前向计算,输出为各个说话人的概率。其中,初始说话人识别模型可以例如是tdnn、lstm等。
[0108]
步骤604,基于第三样本说话人标签和第三样本说话人概率计算损失。
[0109]
在本实施例中,上述执行主体可以基于第三样本说话人标签和第三样本说话人概率计算损失。通常,可以根据交叉熵计算损失。
[0110]
步骤605,基于损失调整初始特征提取模型和初始说话人识别模型的参数,直至调整后的特征提取模型和调整后的说话人识别模型收敛,将调整后的特征提取模型作为说话人特征提取模型。
[0111]
在本实施例中,上述执行主体可以基于损失调整初始特征提取模型和初始说话人识别模型的参数,直至调整后的特征提取模型和调整后的说话人识别模型收敛,将调整后的特征提取模型作为说话人特征提取模型。
[0112]
通常,反向根据sgd(stochastic gradient descent,随机梯度下降)算法更新网络参数,对每帧特征重复上述步骤,迭代至收敛,即可得到说话人特征提取模型。
[0113]
进一步参考图7,其示出了根据本公开的语音识别方法的一些实施例的流程700。该语音识别方法包括以下步骤:
[0114]
步骤701,获取待识别音频。
[0115]
在本实施例中,语音识别方法的执行主体可以获取待识别音频。
[0116]
其中,待识别音频可以是对任意说话人说的话进行录制所得到的音频。
[0117]
步骤702,提取待识别音频的待识别音频特征。
[0118]
在本实施例中,上述执行主体可以提取待识别音频的待识别音频特征。
[0119]
其中,待识别音频特征可以是待识别音频的声谱特征,包括但不限于mfcc、plp和fbank等。一般维度可以取20,每帧时长25ms,帧移10ms,计算时一般带有一定数量的上下文,例如各2帧。
[0120]
步骤703,将待识别音频特征输入至预先训练的语音识别模型,得到待识别音频对应的文本。
[0121]
在本实施例中,上述执行主体可以将待识别音频特征输入至预先训练的语音识别模型,得到待识别音频对应的文本。
[0122]
其中,语音识别模型是利用图1、图2或图5所示的方法的实施例训练得到的。在测试推理时,待识别音频特征输入到语音识别模型中,其mha模块会自动的学习到待识别音频的说话人特性,从而对待识别音频的内容会有一个比较好的识别结果。
[0123]
本公开实施例提供的语音识别方法,将语音识别技术应用于语音文件的转写,采用语音识别模型对语音文件进行自动化识别,以得到语音文件对应的文本,不仅提高了语音文件的转写效率,还节省了大量的人力和物力。并且,通过逐渐裁剪的方式训练语音识别模型,避免了网络结构的调整带来迁移的额外成本。
[0124]
进一步参考图8,作为对上述各图所示方法的实现,本公开提供了一种语音识别模型训练装置的第一些实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0125]
如图8所示,本实施例的语音识别模型训练装置800可以包括:第一获取模块801、第一提取模块802和第一训练模块803。其中,第一获取模块801,被配置成获取第一训练样本,其中,第一训练样本包括第一样本音频和第一样本音频对应的第一样本文本;第一提取模块802,被配置成提取第一样本音频的第一样本音频特征;第一训练模块803,被配置成将第一样本音频特征作为输入,将第一样本文本作为输出,对初始语音识别模型进行训练,以及在训练过程中逐渐裁剪初始语音识别模型的参数,得到语音识别模型。
[0126]
在本实施例中,语音识别模型训练装置800中:第一获取模块801、第一提取模块802和第一训练模块803的具体处理及其所带来的技术效果可分别参考图1对应实施例中的步骤101
‑
103的相关说明,在此不再赘述。
[0127]
在本实施例的一些可选的实现方式中,第一训练模块包括:训练子模块被配置成先将初始语音识别模型迭代m轮,再每隔k轮迭代,对k轮迭代得到的模型的参数进行裁剪,并对裁剪得到的模型的未裁剪参数继续迭代更新,直至更新得到的模型收敛,其中,每轮迭代均更新模型的参数,m和k为正整数。
[0128]
在本实施例的一些可选的实现方式中,训练子模块进一步被配置成:按数值大小对k轮迭代得到的模型的参数进行排序,从数值小的一侧开始将预设比例的参数置零。
[0129]
在本实施例的一些可选的实现方式中,语音识别模型训练装置800还包括:第二获取模块,被配置成获取第二训练样本,其中,第二训练样本包括第二样本音频和第二样本音频对应的第二样本文本;第二提取模块,被配置成提取第二样本音频的第二样本音频特征;第二训练模块,被配置成将第二样本音频特征作为输入,将第二样本文本作为输出,对逐渐裁剪参数之后得到的语音识别模型继续进行训练,以及在训练过程中固定逐渐裁剪参数之后得到的语音识别模型的未裁剪参数,对逐渐裁剪参数之后得到的语音识别模型的裁剪参数进行调整。
[0130]
在本实施例的一些可选的实现方式中,初始语音识别模型是语言模型,包括编码器和解码器,编码器包括多头自注意力mha模块;以及语音识别模型训练装置800还包括:第三获取模块,被配置成从第一训练样本中获取n个说话人音频,其中,n为正整数;第三提取模块,被配置成分别提取n个说话人音频对应的说话人特征;构成模块,被配置成基于n个说话人音频对应的说话人特征构成说话人特征空间;初始化模块,被配置成利用说话人特征空间初始化mha模块。
[0131]
在本实施例的一些可选的实现方式中,初始化模块进一步被配置成:将说话人特
征空间拼接到mha中的键值k和值项v中,以初始化mha模块。
[0132]
在本实施例的一些可选的实现方式中,第三提取模块进一步被配置成:将n个说话人音频分别输入至预先训练的说话人特征提取模型,得到n个说话人音频对应的说话人特征。
[0133]
在本实施例的一些可选的实现方式中,语音识别模型训练装置800还包括第三训练模块,被配置成:获取第三训练样本,其中,第三训练样本包括第三样本音频和第三样本音频对应的第三样本说话人标签;将第三样本音频输入至初始特征提取模型,得到第三样本说话人特征;将第三样本说话人特征输入至初始说话人识别模型,得到第三样本说话人概率;基于第三样本说话人标签和第三样本说话人概率计算损失;基于损失调整初始特征提取模型和初始说话人识别模型的参数,直至调整后的特征提取模型和调整后的说话人识别模型收敛,将调整后的特征提取模型作为说话人特征提取模型。
[0134]
进一步参考图9,作为对上述各图所示方法的实现,本公开提供了一种语音识别装置的第一些实施例,该装置实施例与图7所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0135]
如图9所示,本实施例的语音识别装置900可以包括:第四获取模块901、第四提取模块902和识别模块903。其中,第四获取模块901,被配置成获取待识别音频;第四提取模块902,被配置成提取待识别音频的待识别音频特征;识别模块903,被配置成将待识别音频特征输入至预先训练的语音识别模型,得到待识别音频对应的文本,其中,语音识别模型是采用图8所示的装置的实施例训练得到的。
[0136]
在本实施例中,语音识别装置900中:第四获取模块901、第四提取模块902和识别模块903的具体处理及其所带来的技术效果可分别参考图7对应实施例中的步骤701
‑
703的相关说明,在此不再赘述。
[0137]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0138]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0139]
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0140]
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0141]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以
及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0142]
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如语音识别模型训练方法或语音识别方法。例如,在一些实施例中,语音识别模型训练方法或语音识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的语音识别模型训练方法或语音识别方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音识别模型训练方法或语音识别方法。
[0143]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0144]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0145]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd
‑
rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0146]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用
任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0147]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0148]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端
‑
服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。
[0149]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
[0150]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。