一种基于Conformer结构与多任务学习框架的语音情感识别方法
未命名
08-03
阅读:113
评论:0
一种基于conformer结构与多任务学习框架的语音情感识别方法
技术领域
1.本发明涉及计算机语音识别和语音情感识别技术领域,具体涉及一种基于conformer结构与多任务学习框架的语音情感识别方法。
背景技术:
2.近些年来,随着互联网和人工智能技术的发展,人机交互的应用也逐渐得到普及,人机交互的方式多种多样,而语音交互是其中应用最广泛、最直接的一种。人机语音交互的第一步就是计算机识别并理解人的语音,语音识别是计算机进行语义理解的重要方法之一。然而在实际应用中,只通过语音识别获取文本信息对于语义理解是不够的,人类在说话时一般是带有情绪的,不同的情绪说同一句话可能表达的意思完全不同,因此情感信息对于语义理解同样重要。将语音情感识别引入到人机语音交互应用中,可以为后续的语义理解任务提供情感信息,尽可能减少计算机对用户的误解。
3.早期的语音情感识别模型大都基于传统的机器学习算法,其中最为典型是隐马尔科夫模型、高斯混合模型和支持向量机,这些方法通过对模型进行训练得到语音特征与情感分类之间的关系,但是这些方法无论是在识别准确率还是在模型鲁棒性方面表现都不佳。近年来随着深度学习的发展和计算机硬件算力的增强,基于深度神经网络的模型在语音领域得到广泛应用,研究表明基于深度学习的语音情感识别模型相比于传统的机器学习模型具有更好的性能。
4.目前,将语音识别和语音情感识别相结合的应用场景有很多,这些应用场景包括智能客服、智能语音助手、智慧医疗、智能座舱等。在智能终端上有像小米的小爱同学、百度的小度这类综合性的语音产品,里面包含了语音识别、语音情感识别、语音合成等多种语音技术。但是大部分应用是将语音识别和语音情感识别作为两个独立的模型去执行的,这样会造成系统的冗余和计算资源的浪费。
技术实现要素:
5.本发明的目的就是针对现有技术的缺陷,提供一种基于conformer结构与多任务学习框架的语音情感识别方法,该方法将基于conformer结构的共享编码器、情感识别解码器和语音识别解码器相结合构成一个多任务学习模型,能够提升模型的泛化性能和识别精度。
6.本发明提供一种基于conformer结构与多任务学习框架的语音情感识别方法,包括:
7.s1、获取语音情感数据集,对语音情感数据集中的训练集和验证集的音频数据进行特征提取,生成三元组样本,三元组样本包括fbank特征、情感标签、文本标签;
8.s2、构建用于多任务学习的网络模型,网络模型包括共享编码器、情感识别解码器和语音识别解码器,所述共享编码器包括用于深层特征提取的conformer模型,所述情感识
别解码器包括平均化层和线性全连接层,用于输出情感向量;所述语音识别解码器包括平均化层和ctc解码器,用于输出文本向量;
9.s3、利用训练集对应的三元组样本对网络模型进行训练;
10.s4、利用验证集对应的三元组样本对网络模型进行参数调整;
11.s5、将待识别的音频数据输入至网络模型,实现对待识别的音频数据的语音识别及情感识别。
12.通过上述方法构建一个同时进行语音识别和情感识别的多任务网络模型,将语音识别子任务和情感识别子任务相结合能够利用任务间的相关性,在模型训练时学习到额外信息,从而提升每一个子任务的性能。共享编码器包括用于深层特征提取的conformer模型,能够有效提高网络模型的特征表达能力,提高语音识别和情感识别的精度。
13.进一步地,所述conformer模型包括多个堆叠的conformer模块,所述conformer模型包括多个堆叠的conformer模块,所述conformer模块由cnn模块引入transformer模块而构成。
14.通过堆叠的conformer模块能够产生隐层特征,通过在transformer结构中加入cnn结构,conformer模块能够利用cnn模块对局部性特征的捕捉能力和其在时域上具有不变性的特性,以及transformer模块长距离的建模优势,将提取到的相似特征联系在一起,使得conformer模型既能利用局部特征,又能建立局部特征之间的关系。
15.进一步地,所述conformer模块包括第一前馈模块、自注意力模块、卷积模块、第二前馈模块、归一化模块,所述conformer模块的计算公式为:
[0016][0017][0018]
x
″i=x
′i+conv(x
′i)
[0019][0020]
其中,xi为第一前馈模块的输入,yi为归一化模块的输出,ffn为前馈模块,mhsa为自注意力模块,conv为卷积模块,ln为归一化模块。
[0021]
进一步地,所述conformer模块中的第一前馈模块、自注意力模块、卷积模块、第二前馈模块之间通过残差进行连接。
[0022]
进一步地,多个堆叠的conformer模块之间通过残差进行连接。
[0023]
进一步地,所述共享编码器包括卷积下采样层、全连接层、dropout层和conformer模型。
[0024]
进一步地,所述步骤s3包括:计算网络模型的损失函数,损失函数包括情感识别任务损失、语音识别任务损失和句嵌入损失。
[0025]
通过引入句嵌入损失能够提升语音情感识别模型的泛化性。
[0026]
进一步地,计算网络模型的损失函数包括:三元组样本经过网络模型后得到情感向量fe(xn)和文本向量f
t
(xn)以及共享编码器输出g(xn),其中,xn表示fbank特征向量,计算损失函数l=l1+αl2+βl3,其中,α、β是超参数;
[0027]
情感识别任务损失其中,mseloss表示均方误差损失函数,en表示三元组样本中的情感标签;
[0028]
语音识别任务损失其中,ctcloss表示ctc损失函数,tn表示三元组样本中的文本标签;
[0029]
句嵌入损失其中,crossentropy表示交叉熵损失函数,pool表示平均池化计算,句嵌入损失用于约束语音中的深层信息在语句层级的整体性。
[0030]
通过句嵌入损失来约束情感信息在语句层级的完整性从而进一步提升模型的识别准确率和泛化性。
[0031]
进一步地,所述步骤s1包括:通过速度因子对音频数据进行变速,并在音频数据上增加噪声干扰,将得到的新的音频数据加入训练集。
[0032]
通过上述方法能够增加原始音频数据的数据量。
[0033]
本发明还提供一种电子设备,包括存储器、处理器以及计算机程序,其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现所述的基于conformer结构与多任务学习框架的语音情感识别方法。
[0034]
本发明还提供一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现所述的基于conformer结构与多任务学习框架的语音情感识别方法。
[0035]
本发明的有益效果为:本发明构建一个同时进行语音识别和情感识别的多任务网络模型,将语音识别子任务和情感识别子任务相结合能够利用任务间的相关性,在模型训练时学习到额外信息,从而提升每一个子任务的性能。共享编码器包括用于深层特征提取的conformer模型,能够有效提高网络模型的特征表达能力,提高语音识别和情感识别的精度。
附图说明
[0036]
图1为本发明网络模型的训练流程图;
[0037]
图2为本发明conformer模块的结构图;
[0038]
图3为本发明共享编码器的结构图;
[0039]
图4为本发明语音表征提取流程图;
[0040]
图5为本发明情感识别解码器的训练流程图;
[0041]
图6为本发明语音识别解码器的训练流程图。
具体实施方式
[0042]
为了使本技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0043]
本实施例采用的环境是geforce gtx titan x gpu、inter core i7-5930k、3.50ghz cpu、64g ram、linux操作系统,运用python和开源库pytorch进行开发。
[0044]
一种基于conformer结构与多任务学习框架的语音情感识别方法,包括:
[0045]
步骤s1:将语音情感数据集划分为训练集、测试集和验证集,对训练集和验证集的音频数据进行特征提取,生成三元组样本,三元组样本包括fbank特征、情感标签、文本标签,图4为语音表征提取的流程图。
[0046]
本实施例采用的是开源数据集iemocap,iemocap全称the interactive emotional dyadic motion capture,是一个开源情感识别数据集,iemocap数据集由151个录制的对话视频组成,每个对话有2个发言人,整个数据集总共有302个视频。每个片段都标注了9类情绪(愤怒、兴奋、恐惧、悲伤、惊讶、沮丧、快乐、失望和中性)以及语音对应的文本,本发明选取其中的四个比较典型的情感(愤怒、悲伤、快乐和中性)作为训练用的数据。将数据集进行整合并划分为训练集、验证集和测试集,其数据样本分布如下表1。
[0047][0048]
接着对数据集进行特征提取,具体操作如下:
[0049]
对原始音频进行分帧、预加重和加窗:本实施例通过使用帧窗口大小为25ms,帧位移大小为10ms,来将原始的wav文件划分成固定长度的多个小片段;通过预加重来加强语音信号每一帧高频部分的信号,以提高其高频信号的分辨率;通过加窗操作使时域信号更好地满足快速傅里叶变换(fft)的周期性要求,减少频率泄漏。
[0050]
语音信号是一个非稳态的、时变的信号。但在短时间范围内可以认为语音信号是稳态的、时不变的。这个短时间一般取10ms-30ms,因此在进行语音信号处理时,为减少语音信号整体的非稳态、时变的影响,从而对语音信号进行分段处理,其中每一段称为一帧,一般帧长取25ms。为了使帧与之间平滑过渡,保持其连续性,一般分帧采用交叠分段的方法保证相邻两帧之间相互重叠一部分。相邻两帧的起始位置的时间差称为帧移(frame shift),一般使用的帧移大小为10ms;信号在传输过程中,高频信号更容易衰减,而像元音等一些因素的发音包含了较多的高频信号的成分,高频信号的丢失,可能会导致音素的共振峰并不明显,使得声学模型对这些音素的建模能力不强。预加重是个一阶高通滤波器,可以提高信号高频部分的能量,现实世界中,不可能采集时间从-∞到+∞的信号,只能是有限时间长度的信号。由于分帧后的信号是非周期的,进行fft变换之后会有频率泄露的问题发生,为了将这个泄漏误差减少到最小程度,需要使用加权函数,也叫窗函数。加窗主要是为了使时域信号似乎更好地满足fft处理的周期性要求,减少频率泄漏。
[0051]
提取fbank特征作为模型的输入:本实施例对语音信号进行快速傅里叶变换,得到语音信号的频域表达,将得到的线性频率f转换为倒谱域的mel频率,公式如下:
[0052]
在mel频谱范围内设置80个等带宽的三角状带通滤波器,然后将离散傅里叶变换之后的谱特征进行滤波,得到80个滤波器组能量,在进行log操作后,得到80维的fbank特征。
[0053]
接着对声学特征进行数据扩充:本实施例对声学特征通过0.9倍和1.1倍速度因子
对原始音频数据进行变速,使得原始音频数据量扩充为3倍。另外,对原始音频数据加上一些噪声干扰,将得到的新的音频数据加入训练集。这一过程可以使用开源的语音处理框架kaldi或者音频处理工具librosa等。
[0054]
最后将特征处理成模型训练用的数据文件:特征提取完成后会以文件的形式存储,每一个特征文件对应一个情感标签,将特征文件的路径和对应的情感标签整理成一个文本文件,该文本文件包括多个三元组样本,作为网络模型训练的输入。
[0055]
步骤s2、构建用于多任务学习的网络模型。
[0056]
如图2所示,共享编码器包括卷积下采样层、线性层、dropout层、conformer模型,整体构成一个编码器,作为多任务模型的共享编码器。本实施例通过堆叠15个conformer模块对声学特征进行训练,用来产生隐层特征。
[0057]
conformer模型的构建方法具体如下:
[0058]
conformer模块通过将cnn模块引入到transformer模块中,利用cnn模块对局部性特征的捕捉能力和其在时域上具有不变性的特性,以及transformer模块长距离的建模优势,将提取到的相似特征联系在一起,使得conformer模型既能利用局部特征,又能建立局部特征之间的关系,从而实现深层特征提取。
[0059]
本实施例中的conformer模块在第一前馈模块和第二前馈模块之间增加一个自注意力模块和卷积模块,最后通过归一化模块进行归一化处理,前四个模块之间通过残差进行连接,即第一前馈模块、自注意力模块、卷积模块和第二前馈模块通过残差连接。conformer模型的计算公式如下:
[0060][0061][0062]
x
″i=x
′i+conv(x
′i)
[0063][0064]
其中,xi为第一前馈模块的输入,yi为归一化模块的输出,ffn为前馈模块,mhsa为自注意力模块,conv为卷积模块,ln(layer normalization)为归一化模块。
[0065]
将构造出来的conformer模块组成conformer编码器,conformer模块之间有残差连接。
[0066]
步骤s3、利用训练集对应三元组样本对网络模型进行训练。
[0067]
利用上述网络模型,基于conformer模型分别进行语音识别任务和情感识别任务,具体如下:
[0068]
如图5、6所示,情感识别解码器包括平均化层和线性全连接层,用于输出情感向量;语音识别解码器包括平均化层和ctc解码器,用于输出文本向量。
[0069]
如图1所示,每个三元组样本经过共享编码器之后均得到一个语音表征,将语音表征分别经过情感识别解码器、语音识别解码器、平均池化得到情感向量fe(xn)、文本向量f
t
(xn)、共享编码器输出g(xn)。
[0070]
情感识别任务损失其中,mseloss表示均方误差损失函数,en表示三元组样本中的情感标签;
[0071]
语音识别任务损失其中,ctcloss表示ctc损失函数,tn表示三元组样本中的文本标签;
[0072]
将语音识别任务的输出做句嵌入损失,句嵌入损失其中,crossentropy表示交叉熵损失函数,pool表示平均池化计算,句嵌入损失用于约束语音中的深层信息在语句层级的整体性;n为三元组样本的数量。
[0073]
损失函数l=l1+αl2+βl3,其中,α、β是超参数。
[0074]
步骤s4、利用验证集对应三元组样本对网络模型进行参数调整。
[0075]
通过对总损失函数l的损失梯度计算,实现对两个任务的联合优化更新。在训练过程中可以调整训练批次大小、网络层数、学习率等超参数来微调优化模型。本实施例通过训练和调参,得到以下一组超参数的值:
[0076][0077]
使用上述训练的网络预测测试集中的音频对应的情感类别,根据测试集的真实标签来计算f1-score(一种常用的分类问题评价指标,数值越大表现越好)。
[0078]
为了评估本发明方法的有效性,将本实施例与几种最先进的多任务语音情感识别方法进行识别性能比较,包括mtl with self-attention,mtl with wav2vec和tim-net,本实验将这些模型在同一个训练集和相同的训练环境和条件下进行训练,将训练好的模型在iemocap测试集上计算f1-score,为了比较不同方法的泛化性,本实验还对测试集进行音频加噪,得到“无噪声”和“有噪声”两组测试数据,具体的测试结果见下表。
[0079]
[0080][0081]
本发明的网络模型中的编码器的作用是将输入的语音数据进行信息提取输出的一个中间层嵌入,再将中间层嵌入通过后端分类器识别出对应的情感类别。对于包括语音识别任务和情感识别任务的多任务学习模型,通过编码器得到的嵌入需要包含语义信息和情感信息,同时模型需要有良好的泛化能力,能够识别不同场景的数据。本发明基于conformer结构提出一种改进的编码器,引入残差和dropout层,在提取情感信息时保留更多的整体信息,以提升模型的泛化性能和识别精度。
[0082]
在实际应用中,很多场景下语音情感识别都是结合语音识别一起使用的,为了能够将两个任务进行结合,并利用两者的相关性,本文基于多任务学习理论将语音识别(asr)和语音情感识别(ser)任务相结合构成一个多任务学习模型,通过一个前端共享的编码器得到一个隐层嵌入,再将隐层嵌入同时输入到语音识别模块和语音情感识别模块中。在训练过程中,任务间的相关信息有助于网络学习到更好的内部表示,使共享编码器学习到更多的共享特征,从而提升每一个任务的性能。另外,通过句嵌入损失,计算隐层嵌入与语音识别模块输出间的距离,用来约束隐层嵌入中的信息在语句层级的完整性。
[0083]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
技术特征:
1.一种基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:包括:s1、获取语音情感数据集,对语音情感数据集中的训练集和验证集的音频数据进行特征提取,生成三元组样本,三元组样本包括fbank特征、情感标签、文本标签;s2、构建用于多任务学习的网络模型,网络模型包括共享编码器、情感识别解码器和语音识别解码器,所述共享编码器包括用于深层特征提取的conformer模型,所述情感识别解码器包括平均化层和线性全连接层,用于输出情感向量;所述语音识别解码器包括平均化层和ctc解码器,用于输出文本向量;s3、利用训练集对应的三元组样本对网络模型进行训练;s4、利用验证集对应的三元组样本对网络模型进行参数调整;s5、将待识别的音频数据输入至网络模型,实现对待识别的音频数据的语音识别及情感识别。2.根据权利要求1所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:所述conformer模型包括多个堆叠的conformer模块,所述conformer模块由cnn模块引入transformer模块而构成。3.根据权利要求2所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:所述conformer模块包括第一前馈模块、自注意力模块、卷积模块、第二前馈模块、归一化模块,所述conformer模块的计算公式为:块、归一化模块,所述conformer模块的计算公式为:x
″
i
=x
′
i
+conv(x
′
i
)其中,x
i
为第一前馈模块的输入,y
i
为归一化模块的输出,ffn为前馈模块,mhsa为自注意力模块,conv为卷积模块,ln为归一化模块。4.根据权利要求3所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:所述conformer模块中的第一前馈模块、自注意力模块、卷积模块、第二前馈模块之间通过残差进行连接。5.根据权利要求2所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:多个堆叠的conformer模块之间通过残差进行连接。6.根据权利要求1所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:所述共享编码器包括卷积下采样层、全连接层、dropout层和conformer模型。7.根据权利要求1所述的基于conformer结构与多任务学习框架的语音情感识别方法,其特征在于:所述步骤s3包括:计算网络模型的损失函数,损失函数包括情感识别任务损失、语音识别任务损失和句嵌入损失。8.根据权利要求7所述的基于conformer结构与多任务学习框架的语音情感识别方法,
其特征在于:计算网络模型的损失函数包括:三元组样本经过网络模型后得到情感向量f
e
(x
n
)和文本向量f
t
(x
n
)以及共享编码器输出g(x
n
),其中,x
n
表示fbank特征向量,计算损失函数l=l1+αl2+βl3,其中,α、β是超参数;情感识别任务损失其中,mseloss表示均方误差损失函数,e
n
表示三元组样本中的情感标签;语音识别任务损失其中,ctcloss表示ctc损失函数,t
n
表示三元组样本中的文本标签;句嵌入损失其中,crossentropy表示交叉熵损失函数,pool表示平均池化计算,句嵌入损失用于约束语音中的深层信息在语句层级的整体性;n为三元组样本的数量。9.一种电子设备,其特征在于:包括存储器、处理器以及计算机程序,其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现权利要求1至8中任一项所述的基于conformer结构与多任务学习框架的语音情感识别方法。10.一种计算机可读存储介质,其特征在于:其上存储有计算机程序;计算机程序被处理器执行以实现权利要求1至8中任一项所述的基于conformer结构与多任务学习框架的语音情感识别方法。
技术总结
本发明提供一种基于Conformer结构与多任务学习框架的语音情感识别方法,包括:S1、对语音情感数据集中的训练集和验证集的音频数据进行特征提取,生成三元组样本,三元组样本包括FBank特征、情感标签、文本标签;S2、构建用于多任务学习的网络模型,网络模型包括共享编码器、情感识别解码器和语音识别解码器,所述共享编码器包括用于深层特征提取的Conformer模型;S3、利用训练集对应三元组样本对网络模型进行训练;S4、利用验证集对应三元组样本对网络模型进行参数调整。S5、将待识别的音频数据输入至网络模型,实现对待识别的音频数据的语音识别及情感识别。该方法构建基于Conformer结构的多任务学习模型,能够提升模型的泛化性能和识别精度。能和识别精度。能和识别精度。
技术研发人员:熊盛武 李涛
受保护的技术使用者:武汉理工大学
技术研发日:2023.05.17
技术公布日:2023/8/2
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种袋装物料上料夹具的制作方法 下一篇:一种金属面板灯外环安装结构的制作方法
