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

一种基于多任务学习的多语种识别模型的构建和训练方法与流程

2022-02-19 12:50:50 来源:中国专利 TAG:


1.本发明涉及语音识别技术领域,尤其涉及一种基于多任务学习的多语种识别模型的构建和训练方法。


背景技术:

2.近些年,语音识别技术取得显著进步,语种识别作为语音识别的重要技术之一,在军事、医疗、教育等多个领域发挥着重要作用;在多语言语音识别系统中,语种识别作为语音识别系统中的上游任务,对提高多语种语言识别的准确率和系统的用户体验上发挥重要作用;传统的语种识别方法通常包括语音信号特征提取、语种模型构建和判决规则这三个过程,在这个过程中常用的语音特征有mfcc、fbank、语谱图、i

vector等,语种模型通常为一个或多个分类器,常用的分类器有svm、决策树、随机森林等,判决规则与所选的分类器有关,通常是根据先验信息计算出待分类的样本的概率或置信度,以此来预测出语种的类别;基于深度学习的语种识别方法通常不需要人为手动提取特征,通过深度学习模型,例如cnn、lstm、transformer等这些非线性特征提取器将语音变换到一个可区分的向量空间,从而定义优化目标函数,使用梯度下降算法更新模型的参数,直到模型预测的类别与真实类别一致。在这类方法中,模型的好坏往往依赖标注数据的质量和数量,此外,这些模型很难提取出语音的深层特征,例如说话人的性别、年龄以及不同语种间发音差异等等。


技术实现要素:

3.鉴于上述的分析,本发明旨在提供一种基于多任务学习的多语种识别模型的构建和训练方法,同时完成实现对输入数据的语种识别和是否为有效话音的多任务识别。
4.本发明提供的技术方案是:本发明公开了一种基于多任务学习的多语种识别模型的构建和训练方法,包括以下步骤:使用无监督预训练方式对wav2vec模型进行第一次预训练;根据包括语种识别和数据有效识别在内的任务要求建立包含多语种样本数据的训练样本集;采用训练样本集中的样本数据对第一次预训练好的wav2vec模型再进行第二次预训练;针对于所述任务要求对第二次预训练好的wav2vec模型进行适应性微调后构建出最终的多语种识别模型;再次采用训练样本集中样本数据对所述多语种识别模型进行训练,使多语种识别模型能够同时识别输入语音数据的语种和话音有效性。
5.进一步地,所述训练样本集的数据来源包括通话录音语音数据;所述通话录音语
音数据包括多个语种的有效话音数据;对所述有效话音数据进行包括数据重采样、去除静音和数据切割在内的处理后,得到有效话音的样本数据;并对所述样本数据进行语种类别标记。
6.进一步地,所述训练样本集还包括音频范围和特征与有效话音数据存在区别的无效话音数据;对无效话音数据进行包括数据重采样、去除静音和数据切割在内处理后,得到无效话音的样本数据,并进行数据无效标记。
7.进一步地,所述有效话音数据或无效话音数据的处理,包括:1)将多个语种的有效话音数据或无效话音数据进行初次重采样后,统一话音数据的采样率、编码、精度和头文件格式;2)将声道数大于1的话音数据拆分成单声道话音数据;3)对于单声道的话音数据进行语音检测,将语音数据分为固定时长的多个语音片段,根据每个语音片段在人声的频带范围内各子带的能量,判断语音片段是否是静音片段,是则去掉该片段,否则保留;得到去除静音的话音数据;4)根据语音切割的阈值范围,将去除静音的话音数据切割成为为固定长度的话音数据片段;5)将切割后的话音数据片段再次重采样后,得到作为模型训练和识别的输入有效话音或无效话音的样本数据。
8.进一步地,通过训练样本增强来增加话音数据量少的语种数据的数据量;所述训练样本增强,通过分别以不同的话音语速倍数对所述话音数据进行变速扰动,以增加话音数据量。
9.进一步地,所述多语种识别模型包括特征提取层、上下文编码层以及输出层;所述特征提取层采用第二次预训练好的wav2vec模型中的卷积网络;用于提取输入语音样本语音帧级别的浅层特征;所述上下文编码层用第二次预训练好的wav2vec模型中基于自注意力机制的transformer网络,用于提取语音各个帧间的权重和特征;基于语种识别和数据有效识别任务,对wav2vec模型输出层和损失函数进行调整,使用全连接网络将提取的权重和特征变换到对应任务的label维度,同时输出两个任务的识别结果。
10.进一步地,根据所述任务要求,所述调整后的输出层得到第i个样本的属于语种任务的输出y
i
和数据有效识别任务的输出z
i
;其中,;其中,其中,p(x
i
,h
yi
)为语种类别概率归一化输出,p(x
i
,h
zi
)数据有效性概率归一化输出,x
i
为所述多语种识别模型输入的第i个样本数据;h
yi
为属于语种任务的经过卷积网络和自注意力网络后得到的隐层特征;h
yi
=(h
yi1
,h
yi2
,

,h
yij
,

,h
yit
);h
zi
为属于数据有效识别任务的经过卷积网络和自注意力网络后得到隐层特征;
h
yi
=(h
yi1
,h
yi2
,

,h
yij
,

,h
yit
);j=1,2,

,t;t为经过所述多语种识别模型中的卷积操作后的帧个数。
11.进一步地,在多语种识别模型中的损失函数l
fine_tuning
=(1

α)l
y
αl
z
;其中,α为平衡语种识别和数据有效识别两种任务的输出的加权因子;l
y
为语种识别任务的softmax交叉损失,;l
z
为数据有效识别任务的sigmoid交叉损失,;y
i
、z
i
分别为语种的真实类别和有效音真实类别,n为样本总数。
12.进一步地,在多语种识别模型中的损失函数l
fine_tuning
=(1

α)l
y
αl
z
;其中,α为平衡语种识别和数据有效识别两种任务的输出的加权因子;l
y
为语种识别任务的softmax交叉损失,;l
z
为数据有效识别任务的sigmoid交叉损失,;y
i
、z
i
分别为语种的真实类别和有效音真实类别,n为样本总数;其中,;β为缩放不同类别语种损失的加权因子;reject为数据无效标记。
13.进一步地,所述α和β分别取0.2和1.5。
14.本发明至少可实现以下有益效果之一:本发明构建的多语种识别模型直接输入语音数据,在语种识别的同时能判断出无效音,能够同时满足实际场景中有效话音检出和语种识别两个任务,节省了时间和空间成本。
15.本发明采用三次训练的方式,其中,将两次预训练后产生的模型作为多语种识别模型的初始模型的输入,初始化多语种识别模型除了输出层以外的模型中的参数,使得微调任务的起点在一个更接近最优点的位置,使第三次训练的后对有效话音检出和语种识别两个任务的识别效果更好训练时间短。
16.训练样本集中使用少量的语种标记数据,减少了获取大量标记数据耗费的人力成本、时间成本;并且,引入标记的无效话音数据,以提高模型对语种识别的泛化能力,并且,通过语速扰动的数据增强来增加样本数量少的语种数据的数据量,以提高模型的训练准确率、召回率和f1值。
附图说明
17.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
18.图1为本发明实施例中语种识别模型的构建和训练方法流程图;图2为本发明实施例中wav2vec预训练任务模型结构图;图3为本发明实施例中多语种识别模型结构图。
具体实施方式
19.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理。
20.本实施例中的一种基于多任务学习的语种识别模型的构建和训练方法,如图1所示,包括以下步骤:步骤s1、使用无监督预训练方式对wav2vec模型进行第一次预训练;获得语音数据的表示;具体的,本实施例采用wav2vec模型这种开源的预训练模型作为初始模型,使用mask的无监督预训练方式,其预训练任务则是去预测这些片段来获得对语音context信息的增强表示,以此作为初始参数去对下游的任务进行参数微调,使得下游的任务有更好的性能。
21.图2给出了采用wav2vec的预训练模型结构。从图中可知,首先,原始语音输入到feature encoder中依次通过7层的卷积做特征提取,每一层的输出作为下一层的输入,每一层的步长分别为(5,2,2,2,2,2,2),卷积核宽度分别为(10,3,3,3,3,2,2)。例如,输入一条(1,l)维的语音,其中l为该语音的长度,通过特征编码后产生维度为(1, l/320,512)的3维向量。
22.其次,通过上步后得到固定维度为512的语音特征向量,然后通过12层的block进行计算语音特征间的“注意力”,每个block为包含768个隐层单元的transformer结构,使用多头的self

attention计算上述l/320个特征序列间的注意力权重,以此来获得整条完整语音的深层context特征,通过12层的transformer编码后一条语音得到维度为(l/320,1 ,768)的向量。
23.在预训练阶段,为了构建预测目标,wav2vec通过mask的方式将cnn卷积输出的特征中某一固定长度的特征序列遮蔽,训练任务的目标则是预测这些被遮蔽的特征序列。为了计算被遮蔽掉的特征,wav2vec引入了量化模块将上下文编码输出层的表示进行离散成接近ont

hot向量,以此来量化表示输出特征用来和ground

truth计算损失。wav2vec提供了gumbel

softmax和k

means clustering两种量化方法,本发明的预训练任务使用的是前一种方法。预训练任务的损失函数为:l
pre
=l
m
α1l
d
其中,l
m
为做mask预测的对比损失,l
d
为多样性损失,α1设为0.1。具体地,l
m
,c
t
为当前时刻t的transformer网络输出,q
t
为隐特征(多层卷积后的feature encoder)量化后的输出,对于以上两输出计算cosine相似度,即sim(a,b)=a
t
b/||a|| ||b||。在此,wav2vec引入了负采样技术:在当前时刻t,模型要在包含q
t
在内的κ 1个量化候选中识别出q
t
,其中q
t
表示这κ 1个量化候选,,κ是其
他遮蔽项中均匀采样出的干扰项个数。
24.l
d
,g为码本数,取2,v为每个码本的条目数,取320,码本的维度为128;为一组语音片段在每一个码本条目上的平均gumbel softmax概率;具体地体地;为gumbel softmax的非负温度,n=

log(

log(u)),u服从均匀分布u(0,1),l
g,v
为码本中的每个条目,即l
g,v
∈r
(g
×
v)

25.wav2vec模型第一次预训练的训练数据为大规模语音数据;该大规模语音数据可以是待识别的目标语种以外的语音数据,且无需进行根据任务需要的标记,不会增加额外的工作量。
26.使用上述处理完的语音进行预训练,预训练的优化目标为上述的直到l
pre
小于预设的最大值或预训练的学习率小于预设的最大学习率值。
27.步骤s2、根据包括语种识别和有效话音识别在内的任务要求建立包含多语种样本数据的训练样本集;在本实施例的多任务学习中,语种识别任务和有效话音识别任务各被形式化为一个多分类任务,即输入为语音数据,输出为语种类别和语音是否为有效话音。不同于一般的语种识别任务,本本实施例的任务是去确定语种类别标签的同时还要预测出该条语音是否为有效话音,通过引入有效话音识别任务,在判断一条语音的语种类别的前提是该语音必须为有效话音数据,而实际的智能语音识别系统中难以保证所有的输入均为有效音,往往包含大量的无效音,引入有效话音识别任务对于语种识别有其实际的意义,此外无效音相比有效话音,其音频范围和特征与话音数据有一定的区别,可以提高语种识别的泛化能力。因此,训练样本集中的样本数据包括有效话音的样本数据和无效话音数据。
28.所述训练样本集的数据来源为通话录音语音数据,包括多个语种的有效话音数据;对所述有效话音数据进行包括数据重采样、去除静音和数据切割在内的处理后,得到有效话音的样本数据;并对所述样本数据进行语种类别标记;所述训练样本集中的无效话音数据为音频范围和特征与有效话音数据存在区别的音频数据,如噪音数据或机器合成的语音提示音。对无效话音数据进行与所述有效话音数据相同的包括数据重采样、去除静音和数据切割在内的处理后,得到无效话音的样本数据,并进行数据无效标记。在本实施例中将无效话音的样本数据采用标签“reject”进行标记,表示为无效话音的语种类别。
29.具体的,多个语种的有效话音数据,涉及15个语种,包括俄语、印地语、孟加拉语、德语、日语、汉语、法语、波斯语、泰米尔语、泰语、英语、西班牙语、越南语、阿拉伯语、韩语以及部分无效话音数据,根据每类数据量的不同,将随机划分为表1数据集中的训练集、开发集和测试集,用以交叉验证模型的性能。
30.更具体的,为了实现更好的训练效果与训练的模型匹配,本实施例中对所述有效话音数据或无效话音数据的处理,包括以下步骤:1)将多个语种的有效话音数据和无效话音数据进行初次重采样后,进行话音数据
的采样率、编码、精度和头文件格式的统一;具体的,通过初次重采样,将所有语音的格式转换为采样率为8000,通道数为1,pcm编码,精度为16bit的格式,并且为每个语音添加语音头文件;所述头文件为位于语音文件开头的一段数据,用于对主体数据的描述,共占44字节,包含了采样率、通道数、编码等语音格式信息。
31.2)将声道数大于1的话音数据拆分成单声道话音数据。
32.3)对于单声道的话音数据进行语音检测,将语音数据分为固定时长的多个语音片段,根据每个语音片段在人声的频带范围内各子带的能量,判断语音片段内是否是静音片段,是则去掉该片段,否则保留;得到去除静音的话音数据。
33.具体的,本实施例采用webbrtc语音端点检测检测语音片段;首先,将输入的语音以20ms间隔进行分片,得到系列语音片段,其次,将对每个语音片段分别去检测该片段是否为静音,如果是则去掉该片段,否则保留。
34.其中,使用webrtc的vad中very aggressive模式进行检测,把输入语音片段的频谱分成六个子带(80hz~250hz,250hz~500hz,500hz~1k,1k~2k,2k~3k,3k~4k);并分别计算这六个子带的能量,即特征并且使用高斯模型的概率密度函数做运算,得出六个子带的对数似然比函数,即静音和语音的概率。
35.将每个子带的对数似然比作为局部判定的条件;根据人声的频谱范围(大约在80hz至1k左右)进行权重优选,将(0.25,0.25,0.25,0.08,0.08,0.08)作为上述六个子带分别使用的权重;将六个子带进行加权求和作为全局特征。
36.在进行是否为静音判断时,先判断局部,即判断每个子带的对数似然比是否超出了判断阈值,阈值分为局部和全局两组,分别使用94和1100;当有一个子带的超出了阈值时,则判断为包含语音;当所有局部均判断为不包含语音时,再判断全局,即判断六个子带进行加权求和结果是否超出了判断阈值,超出了阈值,则判断为包含语音,未超出则判读为静音。
37.4)根据语音切割的阈值范围,将去除静音的话音数据切割成为为固定长度的话音数据片段;语音切割的阈值范围包括最小长度min_len和最大长度max_len;根据min_len和max_len将语音切割为固定长度范围内的长度;使用最小语音min_len来过滤掉过短的语音,以此去除训练集中的一些噪音数据,加快模型收敛速度;由于模型无法处理过长的数据,设置max_len将过长的语音进行截取,以此提高训练效率。本发明中min_len和max_len分别取1秒和30秒,作为经验本方案认为1秒以下的话音数据由于表达内容和说话人语速的限制,难以确定其语种类别,而30秒以内的话音数据足以判断其说话内容涉及的语种。
38.5)将切割后的话音数据片段再次重采样后,得到作为模型训练和识别的输入有效话音和无效话音的样本数据。
39.所述再次重采样,将切割后的语音统一转换为采样率为16000切割后的语音统一转换为采样率为16000,采样精度为16bit的格式,作为模型训练和识别的样本数据。
40.本实施例的样本数据的处理,采用两次重采样的方式进行,在初次重采样中采用一个采样率比较低的采样速率,则使对语音进行格式统一,声道拆分、静音去除和语音切割
处理时的数据量降低,可以加快处理的速度,对处理硬件的要求降低,在上述处理进行完后,以一个高采样速率去再次进行重采样,使样本数据的采样率和采样精度满足模型训练的要求。
41.对于某一个语种由于样本数据太少,在训练的过程中会导致准确率、召回率和f1较差,即识别效果会变差,为了改善该语种识别效果,本实施例通过训练样本增强来增加话音数据量少的语种数据的数据量。
42.具体的,对数据量少的语种的话音数据,分别以各设定的话音倍数进行变速扰动,以增加话音数据的数量,用以缓解样本不均衡带来的过拟合和提高模型准确率。
43.优选的,分别进行0.9、1.1、1.2倍速变速扰动,扰动方法使用sox工具操作;通过变速操作,使该语种的数据量增多了3倍;再通过上述有效话音数据的处理方法进行处理,大大提高了该语种的样本数据量,用以缓解样本不均衡带来的过拟合和模型准确率差问题。
44.步骤s3、采用训练样本集中的样本数据对第一次预训练好的wav2vec模型再进行第二次预训练;获得针对多语种样本数据的一般表示;具体的,第二次预训练过程中不改动模型结构和损失函数,直到损失达到一个相对平衡的状态后结束训练;优选的,可将第一次预训练的学习率l
rpre
加0.5,在学习的过程中,直到损失l
pre
的值再次小于预设的损失l
pre
最大值结束预训练;在第二次预训练过程中,由于训练样本集中的样本数据与第一次预训练数据存在差异,在第二次预训练过程中可能会导致损失函数l
pre
变大,但是经过几轮以后又会逐渐变小,通过继续训练可以使模型参数更接近该数据的特征,这样有益于微调任务提高准确率。
45.第二次预训练,优选迭代超过10000步以后结束预训练。
46.步骤s4、针对于所述任务要求对第二次预训练好的wav2vec模型进行适应性微调后构建出最终的多语种识别模型;再次采用训练样本集中样本数据对所述多语种识别模型进行训练,使多语种识别模型能够同时识别输入语音数据的语种和有效性。
47.具体的,进行适应性微调后构建出最终的多语种识别模型包括特征提取层、上下文编码层以及输出层;所述特征提取层采用第二次预训练好的wav2vec模型中的卷积网络;用于提取输入语音样本语音帧级别的浅层特征;所述上下文编码层用第二次预训练好的wav2vec模型中基于自注意力机制的transformer网络,用于提取语音各个帧间的权重和特征;基于语种识别和有效话音识别任务,对wav2vec模型输出层和损失函数进行调整,使用全连接网络将提取的权重和特征变换到对应任务的label维度,同时输出两个任务的识别结果。
48.为了训练语种识别任务和有效话音识别两种任务,本实施例中模型的输出层包含1个softmax层和1个sigmoid层来分别预测语种类别和有效音类别。对于第i个样本数据,预测其类别语种类别y
i
和有效音类别z
i

49.微调后的模型结构如图3所示,语音数据第i个样本x
i
=(x
i1
,x
i2


,x
il
)作为输入,l为语音的长度(l与语音的采样率有关,本方案的训练样本采样率均为16k),经过卷积网络和自注意力网络后得到隐层特征h
i
=(h
i1
,h
i2
,

,h
ij
,

,h
it
),其中t的值为经过7层卷积操作后的帧个数,优选的t=l/320;经过卷积网络和自注意力网络后通过改进的输出层得到属于语种任务的输出y
i
和有效话音类别输出z
i

模型中,属于语种任务的经过卷积网络和自注意力网络后得到的隐层特征;属于数据有效识别任务的经过卷积网络和自注意力网络后得到隐层特征;属于语种任务的输出:y
i
=argmax(p(x
i
,h
iy ));属于数据有效识别任务的输出:z
i
=argmax(p(x
i
,h
iz ));其中,p(x
i
,h
yi
)为语种类别概率归一化输出,p(x
i
,h
zi
)数据有效性概率归一化输出,x
i
为所述多语种识别模型输入的第i个样本数据;h
yi
为属于语种任务的经过卷积网络和自注意力网络后得到的隐层特征;h
yi
=(h
yi1
,h
yi2
,

,h
yij
,

,h
yit
);h
zi
为属于数据有效识别任务的经过卷积网络和自注意力网络后得到隐层特征;h
yi
=(h
yi1
,h
yi2
,

,h
yij
,

,h
yit
);j=1,2,

,t;t为经过所述多语种识别模型中的卷积操作后的帧个数。
50.本实施例中的softmax使用log_softmax函数,也就是softmax之后再通过一个log函数,用以缓解softmax函数计算中的上溢和下溢问题。
51.h
i
计算方式如下:;表示将语音的特征按照帧级别求取平均值,即将一条语音的所有帧的特征求平均,作为概率转换函数的输入,以得到目标输出类别。
52.此外,由于有效话音识别的就只有“有效”和“无效”两种类别,则使用sigmoid函数作为输出层的激活函数。
53.在多语种识别模型中的损失函数中引入加权因子α来平衡语种识别和数据有效识别两种任务的输出,使用加权因子β来缩放不同类别语种的损失。
54.具体的,整个微调任务的损失函数如下所示:l
fine_tuning
=(1

α)l
y
αl
z
,其中,l
y
为语种的softmax交叉损失,l
z
为有效音的sigmoid交叉损失,具体地:,因此,
;其中,y
i
、z
i
分别为语种的真实类别和有效音真实类别,y
i
、z
i
分别为模型预测输出的语种类别和有效音真实类别。
55.n为样本总数。
56.实际中,对语种识别后的不同语音通常会输入给不同的转写识别引擎去做处理,这就要求对于语种识别的准确率要求要更高;为此,进一步使用因子β来缩放不同类别语种的损失,即:,其中,。
57.具体的,本实施例的多语种识别模型,基于fairseq开源框架进行微调,在整个微调过程中,模型的主体结构仍然由7层卷积和12层的transformer,模型参数不做调整。
58.训练过程中,将训练样本输入fairseq中进行训练,在损失函数中α和β分别取0.2和1.5时效果较为稳定;记录loss的变化,直到loss变化幅度在0.001内时停止训练。
59.采用15个语种的数据进行语种识别训练后的统计结果如表1所示,表中的数据包括15个语种的数据,每个语种随机划分为训练集、开发集、测试集3部分。在数据集1实验中,除了带*语种数据较少,导致准确率、召回率和f1较差外,其他语种的交叉验证均取得了较好的识别效果;数据集2中针对这几类样本较少的类别,依次做了0.9、1.1、1.2倍速的语速扰动,很明显的经过语速扰动的数据增强,无论是准确率、召回率还是f1均取得了较好的效果。
60.表1语种识别装置实施结果
综上所述,本实施例中构建的多语种识别模型直接输入语音数据,在语种识别的同时进行有效话音识别,能够同时满足实际场景中有效话音识别和语种识别两个任务,节
省了时间和空间成本。
61.采用三次训练的方式,其中,将两次预训练后产生的模型作为多语种识别模型的初始模型的输入,初始化多语种识别模型除了输出层以外的模型中的参数,使得微调任务的起点在一个更接近最优点的位置,使第三次训练后对语种识别和有效话音识别两个任务的识别效果更好,训练时间短。
62.训练样本集中使用少量的语种标记数据,减少了获取大量标记数据耗费的人力成本、时间成本;并且,引入标记的无效话音数据,以提高模型对语种识别的泛化能力,并且,通过语速扰动的数据增强来增加样本数量少的语种数据的数据量,以提高模型的训练准确率、召回率和f1值。
63.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献