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

语音识别模型的训练方法、语音识别方法及电子设备

2022-06-05 11:04:17 来源:中国专利 TAG:


1.本发明属于语音信号处理领域,具体涉及一种语音识别模型的训练方法、语音识别方法、电子设备以及存储介质。


背景技术:

2.语音识别也称为自动语音识别(automatic speech recognition,asr),其目标是将人类语音转换为计算机可读的文字或指令。噪声鲁棒性语音识别是语音识别的一个研究领域,目前噪声鲁棒性语音识别常采用基于前端语音增强、多任务学习和对抗训练的方法。基于前端语音增强的方法,通过提前训练一个语音增强网络,将带噪的语音通过语音增强网络获取增强之后的语音,然后,增强之后的语音输入语音识别模型中进行语语音识别。基于多任务学习的方法,语音数据通过神经网络得到最后一层的输出,然后最后一层的输出会进行多任务学习,一个分支通过分类层进行连接时序分类(connectionist temporal classification,ctc)任务;另一个分支通过一个辅助分类层对噪声类型进行分类。基于对抗训练的方法,对抗训练方法通过在神经网络的分类层之前引入梯度反转层(gradient reversal layer,grl),通过使噪声分类器很难区分噪声的类型,使得梯度反转层之前的表征是具有噪声不变性的。上述三种方法在噪声鲁棒性语音识别任务中均带来性能提升。
3.目前,现有技术中提供了无监督预训练的方法。无监督预训练(unsupervised pre-training)也称为自监督预训练(self-supervised pre-training),然而无监督预训练的方法存在鲁棒性较差、泛化能力不足的问题。


技术实现要素:

4.鉴于上述问题,本发明提供了一种语音识别模型的训练方法、语音识别方法、电子设备以及存储介质,以期能至少解决上述问题之一。
5.根据本发明的实施例,提供了一种语音识别模型的训练方法,包括:
6.利用语音识别模型的特征提取模块分别处理干净语音和带噪语音,得到干净语音特征和带噪语音特征;
7.利用所述语音识别模型的上下文模块处理带噪语音特征,得到上下文表征;
8.利用语音识别模型的量化模块对干净语音特征进行聚类处理,得到量化后的干净语音特征;
9.利用预训练损失函数处理上下文表征和量化后的干净语音特征,得到预训练损失值;
10.根据预训练损失值优化语音识别模型。
11.根据本发明的实施例,上述语音识别模型的训练方法还包括:
12.利用线性映射层对带标签的带噪语音进行预处理,得到预处理后的带标签的带噪语音;
13.利用语音识别模型的特征提取模块处理预处理后的带标签的带噪语音,得到带标
签的带噪语音特征;
14.利用语音识别模型的上下文模块处理带标签的带噪语音特征,得到带标签的上下文表征;
15.利用微调损失函数处理带标签的上下文表征,并根据微调损失值优化语音识别模型;
16.迭代进行预训练损失优化和微调损失优化,直到预训练损失值和/或微调损失值满足预设条件,得到训练完成的语音识别模型。
17.根据本发明的实施例,上述特征提取模块采用多层卷积神经网络或多层深度可分离卷积神经网络,多层深度可分离卷积神经网络的每一层包括逐通道卷积和逐点卷积;
18.其中,上下文模块采用多层转换神经网络,多层转换神经网络的每一层包括多个自注意力层和前馈神经网络层;
19.其中,量化模块采用乘积量化码本,并通过耿贝尔激活函数进行优化。
20.根据本发明的实施例,上述预训练损失函数由对比损失函数、码本多样性损失函数、l2损失函数以及一致性损失函数的加权和确定。
21.根据本发明的实施例,上述对比损失函数由公式(1)确定:
[0022][0023]
其中,码本多样性损失函数由公式(2)确定:
[0024][0025]
其中,p
g,v
由公式(3)确定:
[0026][0027]
其中,一致性损失函数由公式(4)确定:
[0028]
lc=‖z
noisy-z
clean
‖2ꢀꢀꢀ
(4);其中,z
noisy
表示带噪语音特征,z
clean
表示干净语音特征,sim表示余弦相似度,p
g,v
表示选择第g组第v个码本的概率,nv和nk表示服从高斯分布的、具有不同均值和方差的随机噪声扰动,τ表示非负的温度系数。k表示非负的温度系数,g表示量化码本的个数,v表示量化之后码本向量维度,表示量化之后的、包括正样本特征和负样本特征的所有特征。
[0029]
根据本发明的实施例,上述微调损失函数采用连接时序分类损失函数或交叉熵损失函数。
[0030]
根据本发明的实施例,上述利用语音识别模型的上下文模块处理带标签的带噪语音特征,得到带标签的上下文表征包括:
[0031]
将线性映射层接入到上下文模块,用于处理带标签的带噪语音特征。
[0032]
根据本发明的实施例,提供了一种语音识别方法,包括:
[0033]
获取待识别的语音;
[0034]
利用语音识别模型处理待识别的语音,获取语音识别结果,其中,语音识别模型根据上述语音识别模型的训练方法训练得到。
[0035]
根据本发明的实施例,提供了一种电子设备,包括:
[0036]
一个或多个处理器;
[0037]
存储装置,用于存储一个或多个程序,
[0038]
其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述语音识别模型的训练方法和上述语音识别方法。
[0039]
根据本发明的实施例,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述语音识别模型的训练方法和上述语音识别方法。
[0040]
本发明提供的语音识别模型的训练方法,通过利用干净语音和带噪语音获取包括干净语音特征和带噪语音特征的融合表征来训练语音识别模型,提高了语音识别模型的鲁棒性,提升了语音识别模型的泛化能力,同时提升噪声场景下的语音识别的准确率。
附图说明
[0041]
图1示意性示出了根据本发明的实施例的语音识别模型的训练方法的流程图;
[0042]
图2示意性示出了根据本发明另一实施例的语音识别模型的训练方法的流程图;
[0043]
图3示意性示出了根据本发明实施例的特征提取模块的网络结构图;
[0044]
图4示意性示出了根据本发明实施例的语音识别模型的结构图;
[0045]
图5示意性示出了根据本发明实施例的语音识别方法的流程图;
[0046]
图6示意性示出了根据本发明实施例的适于实现多模态语音识别模型的训练方法和语音识别方法的电子设备的方框图。
具体实施方式
[0047]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0048]
在语音识别领域,目前基于前端语音增强、多任务学习和对抗训练的方法来改善带噪语音识别的性能还存在着一些问题。基于前端语音增强的方法需要先训练一个语音增强网络,然后再训练一个语音识别模型。语音增强网络的训练准则和语音识别模型的训练准则不一致,因此语音增强网络在噪声环境下并不一定能带来语音识别性能的提升。多任务学习中需要对噪声的种类进行分类,因此需要提前知道噪声的种类。而对于未知噪声种类的场景,模型的泛化能力不强。对抗训练的方法,能够在特定的噪声类型上提升语音识别准确率,但是,往往是以降低语音识别模型在干净语音上的语音识别准确率为代价的。
[0049]
而无监督预训练方法通过利用大量无标签语音数据来改善语音识别性能。无监督预训练方法在预训练阶段不需要有标签的数据,旨在通过利用大量无标签的数据学习到语音中共有的结构信息,通过共享这些共有的信息来提升语音识别的性能。例如,通过在大量无标签语音数据上进行无监督预训练得到预训练模型,然后利用该预训练模型获取语音表征或将预训练模型初始化语音识别模型,进一步利用有标签数据进行微调就能显著提高语音识别的性能。基于无监督预训练的方法,通过在大量无标签语音数据上进行预训练来提升语音识别的性能。无监督预训练所需要的无标签数据容易获取,并且噪声数据和带噪数据均容易获取。因此研究无监督预训练方法能否提升噪声场景下的语音识别准确率也具有较大的意义。
[0050]
图1示意性示出了根据本发明的实施例的语音识别模型的训练方法的流程图。
[0051]
如图1所示,包括操作s101~操作s105。
[0052]
在操作s101,利用语音识别模型的特征提取模块分别处理干净语音和带噪语音,得到干净语音特征和带噪语音特征。
[0053]
上述特征提取模块包括多层卷积神经网络或多层深度可分离卷积神经网络,用于从原始语音中提取浅层局部特征。
[0054]
在操作s102,利用所述语音识别模型的上下文模块处理带噪语音特征,得到上下文表征。
[0055]
上下文模块采用采用转换(transformer)神经网络,用于学习语音上下文信息。
[0056]
在操作s103,利用语音识别模型的量化模块对干净语音特征进行聚类处理,得到量化后的干净语音特征。
[0057]
在操作s104,利用预训练损失函数处理上下文表征和量化后的干净语音特征,得到预训练损失值。
[0058]
在操作s105,根据预训练损失值优化语音识别模型。
[0059]
本发明提供的语音识别模型的训练方法,通过利用干净语音和带噪语音获取包括干净语音特征和带噪语音特征的融合表征来训练语音识别模型,提高了语音识别模型的鲁棒性,提升了语音识别模型的泛化能力,同时提升噪声场景下的语音识别的准确率。
[0060]
图2示意性示出了根据本发明另一实施例的语音识别模型的训练方法的流程图。
[0061]
如图2所示,上述语音识别模型的训练方法还包括操作s106~操作s110。
[0062]
在操作s106,利用线性映射层对带标签的带噪语音进行预处理,得到预处理后的带标签的带噪语音。
[0063]
在操作s107,利用语音识别模型的特征提取模块处理预处理后的带标签的带噪语音,得到带标签的带噪语音特征。
[0064]
在操作s108,利用语音识别模型的上下文模块处理带标签的带噪语音特征,得到带标签的上下文表征。
[0065]
在操作s109,利用微调损失函数处理带标签的上下文表征,并根据微调损失值优化语音识别模型。
[0066]
在操作s110,迭代进行预训练损失优化和微调损失优化,直到预训练损失值和/或微调损失值满足预设条件,得到训练完成的语音识别模型。
[0067]
其中,上述预设条件包括但不限于人为设定的阈值、或语音识别模型的损失函数的值不再发生变化(即模型自发收敛于确定的值)、或语音识别模型的损失函数的值下降幅度变化较小、或语音识别模型的损失函数的值在较小数值范围内波动。
[0068]
本发明实施例提供的上述语音识别模型的训练方法,通过利用带标签的带噪语音获取带噪语音特征,并通过微调损失函数优化语音识别模型,从而提高了语音识别模型的泛化能力,拓展了上述语音识别模型的应用范围。
[0069]
根据本发明的实施例,上述特征提取模块采用多层卷积神经网络或多层深度可分离卷积神经网络,多层深度可分离卷积神经网络的每一层包括逐通道卷积(depthwiseconv1d)和逐点卷积(pointwiseconvld);
[0070]
特征提取模块优选地采用7层卷积神经网络或7层深度可分离卷积神经网络。
[0071]
图3示意性示出了根据本发明实施例的特征提取模块的网络结构图,其中图3(a)表示7层普通一维卷积神经网络,其中,conv1d表示卷积神经网络函数;图3(b)表示7层深度可分离卷积神经网络,其中,depthwiseconv1d和pointwiseconv1d表示深度可分离卷积神经网络函数。下面结合图3对上述特征提取模块作进一步详细说明。
[0072]
如图3所示,k表示卷积核的大小,s表示卷积步长的大小,采用七层卷积神经网络,步长分别为(5,2,2,2,2,2,2),卷积核大小分别为(10,3,3,3,3,2,2)。原始干净语音和带噪语音共享特征提取器模块,z
noisy
=f(x
noisy
),z
clean
=f(x
clean
),分别得到干净语音特征z
clean
和带噪语音特征z
noisy
。上述特征提取模块输入为16khz语音采样点,干净语音采样点经过特征提取器模块f获得干净语音特征z
clean
=f(x
clean
),其中,表示第t帧干净语音特征。带噪语音采样点经过特征提取器模块f获得z
noisy
=f(x
noisy
),其中
[0073]
其中,上下文模块采用多层转换神经网络,多层转换神经网络的每一层包括多个自注意力层和前馈神经网络层;
[0074]
上下文模块优选地采用12层转换神经网络(transformer block)组成,每一层transformer block分别由自注意力层和前馈神经网络层组成。带噪的语音特征z
noisy
进入上下文模块得到上下文表征c
noisy
=g(z
noisy
)。例如,带噪的语音特征进入上下文模块g得到上下文表征c
noisy
=g(z
noisy
),其中,上下文表征
[0075]
其中,量化模块采用乘积量化码本,并通过耿贝尔激活函数进行优化。
[0076]
上述量化模块通过gumbel softmax函数(耿贝尔激活函数)进行优化,旨在通过量化模块将相同发音特征进行聚类。干净的语音特征征进行聚类。干净的语音特征进入量化模块得到量化后的特征q
clean
=vq(z
clean
),其中量化之后的干净特征q
clean
在预训练阶段为整个模型提供训练目标。
[0077]
根据本发明的实施例,上述预训练损失函数由对比损失函数、码本多样性损失函数、l2损失函数以及一致性损失函数的加权和确定。
[0078]
上述预训练损失函数由下述公式确定:l=lm αld βlf γlc,其中,l表示预训练损失函数,lm表示对比损失函数,ld表示码本多样性损失函数,lf表示l2损失函数,lc表示一致性损失函数,α、β、γ表示加权系数。
[0079]
根据本发明的实施例,上述对比损失函数由公式(1)确定:
[0080][0081]
上述对比损失函数用于使预测出的带噪语音帧的信息和真实干净语音帧的信息距离接近,使预测出的带噪语音帧的信息和随机采样的语音帧的信息距离增大。
[0082]
其中,码本多样性损失函数由公式(2)确定:
[0083][0084]
上述码本多样性损失函数用于使模型尽可能均匀的使用量化后的码本。
[0085]
上述l2损失函数用于稳定训练过程。
[0086]
其中,p
g,v
由公式(3)确定:
[0087][0088]
其中,一致性损失函数由公式(4)确定:
[0089]
lc=‖z
noisy-z
clean
‖2ꢀꢀꢀ
(4);
[0090]
上述一致性损失函数用于约束干净语音和带噪语音经过特征提取器模块输出的一致性。
[0091]
其中,z
noisy
表示带噪语音特征,z
clean
表示干净语音特征,sim表示余弦相似度,p
g,v
表示选择第g组第v个码本的概率,nv和nk表示服从高斯分布的、具有不同均值和方差的随机噪声扰动,τ表示非负的温度系数。k表示非负的温度系数,g表示量化码本的个数,v表示量化之后码本向量维度,表示量化之后的、包括正样本特征和负样本特征的所有特征。
[0092]
利用上述公式确定的预训练损失函数,能够更好的对语音识别模型进行优化,从而获得具有较高语音识别准确率的语音识别模型。
[0093]
根据本发明的实施例,上述微调损失函数采用连接时序分类(connectionist temporal classification)损失函数或交叉熵(cross entropy)损失函数。
[0094]
利用上述微调损失函数可以方便对语音模型的测试,以解码评估词错误率。
[0095]
根据本发明的实施例,上述利用语音识别模型的上下文模块处理带标签的带噪语音特征,得到带标签的上下文表征包括:
[0096]
将线性映射层接入到上下文模块,用于处理带标签的带噪语音特征。
[0097]
图4示意性示出了根据本发明实施例的语音识别模型的结构图,下面结合图4对本发明实施例提供的语音识别模型的训练方法作进一步说明。
[0098]
如图4所示,本发明实施例提供的语音识别模型的训练方法包括预训练阶段和微调阶段,上述语音识别模型包括特征提取器模块(feature encoder)、上下文模块(transformer encoder)和量化模块(vector quantization)组成,损失函数主要包含预训练损失函数(例如,对比损失函数和一致性损失函数)和微调损失函数,其中c表示上下文表征,z表示经过特征提取模块处理得到的语音特征(例如带噪语音特征和干净语音特征),x表示待处理的语音。通过在带噪语音数据上无监督预训练获取噪声鲁棒性的表征,然后在有标签带噪数据上进行微调来提升不同噪声场景下语音识别性能。
[0099]
为了充分使用容易获取的无标签数据得到预训练模型,来提升语音识别模型在不同噪声场景下的噪声鲁棒性,并且为了验证本发明实施例所提供的训练方法的有效性,本发明提供了下述具体实施方式。
[0100]
首先,本文在预训练阶段使用的无标签数据是公开英语数据集librispeech[9]的子集train-clean-100,一共包含100小时的干净语音有标签数据。噪声数据集为开源freesound[10]和noisex-92[11]数据集,其中噪音数据大致可以分为两类,相对平稳噪声
和相对非平稳噪声,相对平稳噪声类型包含

car’,

metro’和

traffic’,相对非平稳噪声类型包含

babble’,

airport/station’,

cafe’和

ac/vacuum’。通过人工控制信噪比合成带噪数据。首先利用wav2vec2.0模型[4]在带噪数据上进行无监督预训练,然后在带噪数据上微调来获得不同信噪比条件下模型的识别结果。然后训练自己提出的改进模型(图1),其中干净语音和带噪语音通过同一个特征提取器模块,z
noisy
=f(x
noisy
),z
clean
=f(x
clean
),分别得到干净语音特征z
clean
和带噪语音特征z
noisy
。然后带噪特征进入上下文模块c
noisy
=g(z
noisy
),干净特征进入量化模块q
clean
=vq(z
clean
),量化之后的干净特征在预训练阶段为整个模型提供训练目标。通过对比损失函数使得模型学习从带噪语音表征中预测出干净语音表征的能力。
[0101]
其次,预训练过程结束之后,去除量化模块,并在上下文模块之后接入线性映射层,采用有标签带噪数据用ctc损失函数微调预训练模型。其中微调数据为100h动态加噪之后的有标签数据。在相对平稳的噪声类型上实验结果如表1所示,在相对非平稳噪声类型上实验结果如表2所示。其中表中pre-train列信息表示预训练数据采用的噪声数据,fine-tune列信息表示微调阶段采用的噪声数据。

no’表示没有预训练阶段。
[0102]
表1相对平稳噪声类型、不同方法不同信噪比下的词错误率
[0103][0104]
表2相对非平稳噪声类型、不同方法不同信噪比下的词错误率
[0105][0106]
表3各个模型微调之后表征和干净语音基线系统微调之后表征的余弦距离
[0107][0108]
从表2和表3实验结果中发现,1)采用的数据集和文章完全相同,虽然采用的模型结构有些不同,但是和文章中的基线系统具有可比性。2)对于wav2vec2.0模型,

no pre-train freesound fine-tune’和

no pre-train clean fine-tune’相比,在带噪数据集上finetune能够在带噪测试集上改善识别性能。在干净和带噪测试集上,

clean pre-train freesound fine-tune’的识别性能优于

no pre-train freesound fine-tune’,表明额外引入预训练模型能够提升模型的噪声鲁棒性。

freesound pre-train freesound fine-tune’性能优于

clean pre-train freesound fine-tune’,在带噪环境下的预训练,wav2vec2.0模型依然能够学到比较鲁棒性的表征,并提升不同信噪比条件下asr系统的噪声鲁棒性。但是该模型在干净测试集上的效果却下降了不少,3)为了缓解这个问题,生成noisy-clean成对的数据,并在预训练阶段将clean语音当作模型的训练目标。这种训练方法在相同条件下,既能保证在带噪测试集上有进一步的性能提升,又能减少干净测试集上的性能下降。实验结果表明该方法的有效性。4)为了进一步验证预训练模型对噪声种类的鲁棒性,用noisex-92噪声数据集生成预训练数据,用freesound噪声数据集生成微调数据进行实验。实验结果如表2和表3所示。发现在不同噪声种类上得到的预训练模型仍然能够提升语音识别模型的噪声鲁棒性。只是预训练数据和微调数据处于相同领域时,对语音识别的性能提升更大一些。
[0109]
除此之外,对不同模型微调之后的表征进行定量衡量。以干净语音基线系统为目标,衡量各个模型微调之后表征和干净语音基线系统微调之后表征的差异。采用的准则为余弦相似度,实验结果如表3所示。从表3中可以发现,提出的方法在不同方法、不同信噪比测试集上cosine similarity最大,这表明该方法在不同噪声条件得到的表征更加干净,对asr任务是有帮助的。
[0110]
总的来说,本发明提出了一种基于无监督预训练的噪声鲁棒性语音识别模型。旨在通过无监督预训练方法提升语音识别模型在不同噪声环境下的鲁棒性。该模型的训练主要包含预训练阶段和微调阶段。通过在带噪语音数据上无监督预训练获取噪声鲁棒性的表征,然后在有标签带噪数据上进行微调来提升不同噪声场景下语音识别性能。
[0111]
图5示意性示出了根据本发明实施例的语音识别方法的流程图。
[0112]
如图5所示,包括操作s510~操作s520。
[0113]
在操作s510,获取待识别的语音;
[0114]
在操作s520,利用语音识别模型处理待识别的语音,获取语音识别结果,其中,语音识别模型根据上述语音识别模型的训练方法训练得到。
[0115]
图6示意性示出了根据本发明实施例的适于实现多模态语音识别模型的训练方法和语音识别方法的电子设备的方框图。
[0116]
如图6所示,根据本发明实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0117]
在ram 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、rom 602以及ram 603通过总线604彼此相连。处理器601通过执行rom 602和/或ram 603中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 602和ram603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
[0118]
根据本发明的实施例,电子设备600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。电子设备600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0119]
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
[0120]
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的rom 602和/或ram 603和/或rom 602和ram 603以外的一个或多个存储器。
[0121]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献