基于时空多重融合网络的变长语音情感识别方法

文档序号:31857224发布日期:2022-10-19 03:21阅读:82来源:国知局
基于时空多重融合网络的变长语音情感识别方法

1.本发明属于人工智能领域,涉及基于时空多重融合网络的变长语音情感识别方法。


背景技术:

2.语音是人类自然交流中最方便、最直接的一种媒介,也是人类实现信息传递的一种有效方式。随着计算机技术和人工智能的不断革新,如何利用语音进行人机交互逐渐成为这个机器时代的一个炙热话题。在目前的商业市场上,已有一系列智能产品携带了语音助手功能,从而通过语音让计算机更好地服务人类。比如苹果的siri、华为的小e、百度的小度、阿里的天猫精灵、小米的小爱同学、亚马逊的alexa等。这些语音助手都是语音识别研究的成功表现,已经发展到了相当成熟的程度,甚至能够达到人类的语音识别能力。
3.然而,目前拥有语音识别能力的语音助手并不能明白语音中包含的情感信息。事实上,在人类互动过程中,情感是不可分割的组成部分,对人类的社会行为和意图决策起着至关重要的作用。因而,机器需要具有识别、解释和反应人类情感的能力。此外,将情感识别加入语音的相关研究中,能够使人机交流更加的人性化和智能化。于是,语音情感识别逐渐成为各国语音研究者的一个新方向。
4.语音情感识别的目的是通过语音信号来识别说话者的情感状态。目前,在许多实际应用中,语音情感识别有望于发挥不可替代的作用。比如,在呼叫中心服务中,可根据语音跟踪客户的情感,并根据检测结果调整所提供的服务以适应客户的情感状态。在医学领域,基于语音的诊断系统已在开发中,并寄望应用于抑郁症的辅助检测。除此之外,多媒体检索系统和智能汽车系统都旨在使用高效的语音情感识别系统来提高它们的性能。基于以上列举的应用前景,语音情感识别具有重要的研究意义和实际价值。
5.语音情感识别的研究迄今已有三十余年的历史,在国内外众多学者的共同努力下,现已取得了丰富的研究成果。早期的语音情感识别方法主要集中于从原始录音中手工提取像韵律、音质、mel频率倒谱系数等声学特征,并通过机器学习算法实现情感分类,这为语音情感识别提供了一个好的起点。然而,这种传统方法需要人全程参与,无法自动进行,效率普遍不高,且无法深层次描述语音中的情感信息。
6.在如今的机器新时代,采用深度神经网络从语音中自动提取鲁棒的情感特征已成为语音情感识别的最新发展趋势。基于语音频谱本身特有的时频特性,通过经典的卷积神经网络和循环神经网络(recurrent neural network,rnn)从频谱中提取深度特征逐渐受到研究者们的关注。在图像领域,cnn已被证明能够从空域中提取出显著特征,同时,rnn对时序特性的建模能力已在自然语言处理领域得到了很好的表现。受益于这些研究,目前ser通常采用cnn与rnn级联的模型进行特征提取。然而,cnn的下采样会使后续rnn学到的时间信息不连续,这可能会导致部分长依赖情感线索被忽略。于是,对语音频谱的时空域设计一种更合理的特征提取网络是一项符合实际需求的考虑。


技术实现要素:

7.有鉴于此,本发明的目的在于提供一种基于时空多重融合网络的变长语音情感识别方法。
8.为达到上述目的,本发明提供如下技术方案:
9.基于时空多重融合网络的语音情感识别方法,包括以下步骤:
10.步骤一:利用短时傅里叶变换和mel滤波器组将一维语音记录映射为二维的对数mel滤波能量谱,能量谱包含时域与空域两个维度,并保持能量谱的原始长度。
11.步骤二:利用bigru捕获能量谱时域的上下文关系,注意力机制凸显能量谱时域的显著情感时刻,实现对能量谱时域情感变化的捕捉。
12.步骤三:利用cnn定位能量谱空域的情感区域,全局平均池化整合空域的全局情感信息,实现对能量谱空域情感触发的定位。
13.步骤四:利用时域分类器与空域分类器分别输出时域与空域的概率分布,直接连接获得时空域融合特征,并设计融合域分类器输出时空融合域的概率分布,将上述三个域的概率分布采用集成策略整合,实现时域与空域的多重融合,达到时空情感信息的交互。
14.步骤五:利用多分类交叉熵损失函数作为模型训练的指导,通过最小化损失函数输出的损失值作为训练目标,实现模型参数的更新与优化。
15.进一步,所述步骤一具体过程包括:
16.首先,将记录的一维语音信号用汉明窗口分为短帧,利用短时傅里叶变换将每一个短帧从一维时域映射为二维频域,并按时间维度拼接,得到语音的线性频谱表示。但是,直接通过短时傅里叶变换得到的线性频谱并不具备人耳听觉特性,且存在着维度过高和信息冗余的问题。
17.然后,为了能够使输入特征更准确地包含与情感相关的信息,将频谱的线性频率尺度f映射为非线性的mel尺度m(f),计算如下:
[0018][0019]
此映射过程采用数量为d的mel滤波器组实现,将每个滤波器范围内的能量相加后取对数,获得更符合人耳听觉特性的对数mel滤波能量谱,定义为其中xi表示频谱的第i帧,s表示语音频谱的长度。
[0020]
最后,为保持能量谱的原始长度并满足神经网络的批次输入要求,将同一批次中长短不一的能量谱零填充为相同长度,定义其中任意能量谱为其中t为能量谱零填充后的时域长度,x
s+1
,

,x
t
为零填充帧。
[0021]
对数mel滤波能量谱包含时域和空域,时域描述了情感变化的过程,空域描述了情感触发的区域。接下来,将为时域与空域分别设计情感提取网络,分别刻画能量谱时域与空域的独特情感信息。
[0022]
进一步,所述步骤二具体过程包括:
[0023]
首先,为了避免零填充帧对bigru的计算产生影响,输入x
in
通过序列压缩函数将零填充部分压缩。具体地,将输入x
in
按时间轴依次取出每一帧,忽略零填充帧后拼接成一维向
量x
p
,这个过程可采用基于python编译的pytorch工具实现,它封装的pack_padded_sequence函数可对零填充帧实现自动压缩,过程可表示如下:
[0024]
x
p
=pack_padded_sequence(x
in
)
[0025]
然后,将此一维向量x
p
经过隐藏神经元数量为d
t
的bigru从能量谱时域的正向和反向捕获上下文关系,获得一维局部时域特征bv。为了便于后续的特征提取,需将bv通过序列扩展函数扩展为二维局部时域特征b,上述计算过程可表示为:
[0026]
b=pad_packed_sequence(bigru(x
p
))
[0027]
其中,pad_packed_sequence函数在pytorch工具中与pack_padded_sequence函数对应,可以实现零填充的扩展,即将压缩的数据恢复为原始维数。通过以上对零填充的压缩与扩展,可以避免冗余的零填充信息对bigru的特征提取造成影响,节约计算资源。
[0028]
最后,将二维局部时域特征b送入带有掩码的注意力机制,对每个时间帧赋予权重并忽略零填充帧的权重,计算每一帧对情感识别的贡献程度,得到向量c=[c1,c2,

,ci,

,cm],计算过程如下:
[0029]
利用前馈运算计算第i帧的情感得分hi:
[0030]hi
=vtanh(wbi+b)
[0031]
其中,tanh(
·
)表示双曲正切激活函数,bi为bigru的第i帧输出,v和w均为前馈运算中的可训练权重,b为可训练偏置。
[0032]
将情感得分hi映射到0~1范围内,得时域特征b每一帧的贡献度:
[0033][0034]
其中,exp(
·
)是指数函数,α
s+1
,


t
是零填充时间段对应的权重。
[0035]
由于二维局部时域特征b中仍包含了零填充段,为了忽略这部分无效信息,在注意力机制自动选择显著情感帧的时候,需将零填充帧进行遮掩。本发明采用掩码矩阵将零填充帧对应的贡献度置为0,得到新贡献度表示c

=[c1′
,c2′
,

,ci′
,

,c
′m],表达式如下:
[0036]c′
=c

mask(x
in
)
[0037]
其中,mask(x
in
)表示输入序列x
in
的掩码矩阵。矩阵中,有效部分的值为1,无效部分的值为0。
[0038]
根据上述所求的贡献度对输入特征进行加权求和,得到全局时域特征
[0039][0040]
进一步,所述步骤三具体过程包括:
[0041]
首先,由于cnn的计算过程中本身具有零填充操作,故零填充在cnn中的特征提取没有影响,可将输入矩阵x
in
直接输入cnn。为了满足cnn的输入需求,需为x
in
添加通道维度,从而得到空域的输入
[0042]
其次,由于语音的频谱是一个时间与频率变化的关系图,不仅包含了与情感相关的局部特征,还包含了与时间相关的序列特征。为了捕捉这种变化关系,在空域网络的第一层,分别对频谱的时间维和频率维设置一组卷积核,而后拼接为新的特征图:
[0043]
xc=concat(conv
1a
(xi′n),conv
1b
(xi′n))
[0044]
其中xc为第一层卷积的输出,conv
1a
(
·
)和conv
1b
(
·
)分别表示对频谱时间维和频率维的卷积,concat(
·
)表示连接操作。
[0045]
进而,采用多层卷积核大小为3
×
3的卷积层对xc进行特征提取,这个过程可视作将第一层卷积输出的不同特征信息进行编码,得到局部空域特征x
l

[0046]
x
l
=conv(xc)
[0047]
其中conv(
·
)表示一个复合函数,包含4层卷积层。具体地,为了减轻过拟合和加快网络收敛速度,每个卷积层包含cnn、批处理归一化(batchnormalization,bn)、修正线性单元(rectified linearunit,relu)。此外,为了在编码过程中实现对特征信息的浓缩,在前三层卷积层之后添加了池化层。对于池化层类型的选取,本发明采用平均池化,既可实现对有效部分和填充部分之间的边界变化不那么敏感,又可更好地提取特征图中的有效信息。
[0048]
接着,采用全局平均池化将任意维度的局部空域特征x
l
映射为全局空域特征us:
[0049]us
=gap(x
l
)
[0050]
其中gap(
·
)表示全局平均池化的过程。
[0051]
最后,将us的维度变换为ds×
1,以便于后续与时域特征u
t
拼接。
[0052]
进一步,所述步骤四具体过程包括:
[0053]
为了将上述时域特征和空域特征融合,利用直接融合策略和集成策略组成多重融合。首先,分别对时域特征和空域特征设计分类器,得到时域的预测概率向量和空域的预测概率分布
[0054]yt
=softmax(relu(bn(w1u
t
+b1))w2+b2)
[0055]ys
=softmax(w
sus
+bs)
[0056]
其中w1,w2,ws为全连接层的可训练权重,b1,b2,bs为全连接层的可训练偏置,relu(
·
)表示修正线性单元,bn(
·
)表示批处理归一化。
[0057]
然后,将上述分别生成的全局时域特征和全局空域特征直接融合,拼接时域特征与空域特征,得到时域与空域的融合特征
[0058]
uf=concat(u
t
,us)
[0059]
通过全连接将融合特征映射为预测概率分布
[0060]
yf=softmax(wfuf+bf)
[0061]
其中wf为全连接层的权重矩阵,bf为全连接层偏置,softmax(
·
)表示softmax函数,n代表情感分类个数。
[0062]
最后,综合考虑融合域、时域与空域的预测概率向量,将时域与空域进行二次融合。本发明考虑将三个域的输出进行统计平均,得到最终预测概率向量
[0063][0064]
进一步,所述步骤五具体过程包括:
[0065]
首先,以多分类交叉熵损失函数作为模型训练的指导,其表达式如下:
[0066][0067]
其中y=[y1,

,yk,

,yn],分别表示真实概率分布和预测概率分布,yk,分别代表第k
th
类别的真实概率和预测概率。
[0068]
然后,通过adam优化器根据反向传播算法的梯度来对损失函数输出的损失值最小化,实现模型参数的更新与优化,最优化问题可表述如下:
[0069][0070]
其中,θ表示神经网络模型的可训练参数,x
in
表示输入神经网络的数据,y表示数据的真实标签。
[0071]
本发明的有益效果在于:
[0072]
1)以并联结构的模型对变长语音实现时空域特征提取是种新的且有效的尝试。
[0073]
2)将变长语音分别应用于时域网络和空域网络的方法为实现变长输入提供了一个参考。
[0074]
3)多重融合有助于时域特征域空域特征的融合。
[0075]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0076]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0077]
图1为基于时空多重融合网络的变长语音情感识别过程;
[0078]
图2为基于时空多重融合网络的变长语音情感识别系统模型图;
[0079]
图3为多重融合结构图。
具体实施方式
[0080]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0081]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0082]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描
述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0083]
如图1所示,本发明提供一种基于时空多重融合网络的变长语音情感识别方法。
[0084]
图2为本发明的系统模型图,下面结合附图进行说明,包括以下几个模块:
[0085]
模块一:通过汉明窗口和短时傅里叶变换将一维语音转换为二维线性频谱,然后在线性频谱上应用一组mel滤波器,并取每个滤波器对应输出的能量,得到更符合人耳听觉特性的对数滤波能量谱。
[0086]
模块二:使用bigru和注意力机制组成时域特征提取模块,bigru按能量谱的时域从正向和反向提取频谱的上下文关系,生成局部时域特征,继而采用注意力机制考虑全局时刻,凸显情感显著的时刻,生成全局时域特征。
[0087]
模块三:使用cnn和全局平均池化组成空域特征提取模块,cnn定位能量谱空域中时间与频率的局部变化关系,生成局部空域特征,全局平均池化考虑全局空间关系,将空间情感信息均值化,得到全局空域特征。
[0088]
模块四:利用直接融合策略和集成策略组成多重融合模块,直接融合策略将时域特征与空域特征拼接获得直接融合特征,集成策略对时域特征、空域特征和融合域特征分类输出的概率进行综合考虑,生成时空域融合信息的情感概率分布。
[0089]
图3为实现时域与空域特征融合的多重融合模块。
[0090]
可选的,模块一具体包括:
[0091]
语音预处理模块。首先,记录的一维语音信号用汉明窗口分为短帧,利用短时傅里叶变换将每一个短帧从一维时域映射为二维频域,并按时间维度拼接,得到语音的线性频谱表示。但是,直接通过短时傅里叶变换得到的线性频谱并不具备人耳听觉特性,且存在着维度过高和信息冗余的问题。所以,为了能够使输入特征更准确地包含与情感相关的信息,将频谱的频率尺度f映射为非线性的mel尺度m(f),计算如下:
[0092][0093]
此映射过程采用数量为d的mel滤波器组实现,将每个滤波器范围内的能量相加后取对数,获得更符合人耳听觉特性的对数mel滤波能量谱,定义为:
[0094][0095]
其中,s表示频谱的长度,d为三角滤波器组中的滤波器数量。
[0096]
为了促进网络计算效率,将所有语音频谱样本按长度排序,将长度相似的样本划分为一个批次。为了保持能量谱的原始长度并满足神经网络的批次输入要求,将同一批次中长短不一的能量谱零填充为相同长度,并对应保存每一个数据的原始长度s,定义其中任意能量谱为:
[0097][0098]
其中,t为零填充后时域的长度,x
s+1
,

,x
t
均为零填充帧的全零向量。
[0099]
可选的,模块二具体包括:
[0100]
时域特征提取模块。首先,为了避免零填充帧对bigru的计算产生影响,输入x
in
通过序列压缩函数将零填充部分压缩。具体地,将输入x
in
按时间轴依次取出每一帧,忽略零填充帧后拼接成一维向量x
p
,这个过程可采用基于python编译的pytorch工具实现,它封装的pack_padded_sequence函数可对零填充帧实现自动压缩,过程可表示如下:
[0101]
x
p
=pack_padded_sequence(x
in
)
[0102]
然后,将此一维向量x
p
经过隐藏神经元数量为d
t
的bigru从能量谱时域的正向和反向捕获上下文关系,获得一维局部时域特征bv。为了便于后续的特征提取,需将bv通过序列扩展函数扩展为二维局部时域特征b,上述计算过程可表示为:
[0103]
b=pad_packed_sequence(bigru(x
p
))
[0104][0105]
其中,bi为bigru的第i帧输出,b
s+1
,

,b
t
仍保持为零填充帧,pad_packed_sequence函数在pytorch工具中与pack_padded_sequence函数对应,可以实现零填充的扩展,即将压缩的数据恢复为原始形态。通过以上对零填充的压缩与扩展,可以避免冗余的零填充信息对bigru的特征提取造成影响,节约计算资源。
[0106]
进而,将二维局部时域特征b送入注意力机制,对不同时刻赋予不同的权重,计算每一帧对情感识别的贡献程度,得到向量c=[c1,c2,

,ci,

,cm],计算过程如下:
[0107]
利用前馈运算计算第i帧的情感得分hi:
[0108]hi
=vtanh(wbi+b)
[0109]
其中,tanh(
·
)表示双曲正切激活函数,bi为局部时域特征b的第i帧,v和w均为前馈运算中的可训练权重,b为可训练偏置。
[0110]
将情感得分hi映射到0~1范围内,得时域特征b每一帧的贡献度:
[0111][0112]
其中,exp(
·
)是指数函数,α
s+1
,


t
是零填充时间段对应的权重。
[0113]
由于二维局部时域特征b中仍包含了零填充段,为了忽略这部分无效信息,在注意力机制自动选择显著情感帧的时候,需将零填充帧进行遮掩。本发明采用掩码矩阵将零填充帧对应的贡献度置为0,得到新贡献度表示c

=[c1′
,c2′
,

,ci′
,

,c
′m],表达式如下:
[0114]c′
=c

mask(x
in
)
[0115]
其中,mask(x
in
)表示输入序列x
in
的掩码矩阵。矩阵中,有效部分的值为1,无效部分的值为0。
[0116]
根据上述所求的贡献度对输入特征进行加权求和,得到全局时域特征
[0117][0118]
可选的,模块三具体包括:
[0119]
空域特征提取模块。首先,由于cnn的计算过程中本身具有零填充操作,故零填充在cnn中的特征提取没有影响,可将输入矩阵x
in
直接输入cnn。为了满足cnn的输入需求,需
为输入x
in
添加通道维度,从而得到空域的输入
[0120]
其次,由于语音的频谱是一个时间与频率变化的关系图,不仅包含了与情感相关的局部特征,还包含了与时间相关的序列特征。为了捕捉这种变化关系,在空域网络的第一层,分别对频谱的时间维和频率维设置一组卷积核,然后拼接为新的特征图:
[0121]
xc=concat(conv
1a
(xi′n),conv
1b
(xi′n))
[0122]
其中xc为第一层卷积的输出,conv
1a
(
·
)和conv
1b
(
·
)分别表示对频谱时间维和频率维的卷积,concat(
·
)表示连接操作。
[0123]
进而,采用多层卷积核大小为3
×
3的卷积层对xc进行特征提取,这个过程可视作将第一层卷积输出的不同特征信息进行编码,得到局部空域特征x
l

[0124]
x
l
=conv(xc)
[0125]
其中conv(
·
)表示一个复合函数,包含4层卷积层。具体地,为了减轻过拟合和加快网络收敛速度,每个卷积层包含cnn、批处理归一化(batchnormalization,bn)、修正线性单元(rectified linearunit,relu)。此外,为了在编码过程中实现对特征信息的浓缩,在前三层卷积层之后添加了池化层。对于池化层类型的选取,本发明采用平均池化,既可实现对有效部分和填充部分之间的边界变化不那么敏感,又可更好地提取特征图中的有效信息。
[0126]
接着,采用全局平均池化将任意维度的局部空域特征x
l
映射为全局空域特征us:
[0127]us
=gap(x
l
)
[0128]
其中gap(
·
)表示全局平均池化的过程。
[0129]
最后,将us的维度变换为ds×
1,以便于后续与时域特征u
t
拼接。
[0130]
可选的,模块四具体包括:
[0131]
多重融合模块。如图3所示,为了将上述时域特征和空域特征融合,利用直接融合策略和集成策略组成多重融合。首先,分别对时域特征和空域特征设计分类器,得到时域的预测概率向量和空域的预测概率分布
[0132]yt
=softmax(relu(bn(w1u
t
+b1))w2+b2)
[0133]ys
=softmax(w
sus
+bs)
[0134]
其中w1,w2,ws为可训练的权重,b1,b2,bs为可训练的偏置,relu(
·
)表示修正线性单元,bn(
·
)表示批处理归一化。
[0135]
然后,将上述分别生成的时域特征u
l
和空域特征uc直接融合,即将时域特征与空域特征拼接,得到时域与空域的融合特征
[0136]
uf=concat(u
t
,uc)
[0137]
通过全连接将融合特征映射为预测概率分布
[0138]
yf=softmax(wfuf+bf)
[0139]
其中wf为可训练的权重,bf为可训练的偏置,softmax(
·
)表示softmax函数,n代表情感分类个数。
[0140]
最后,综合考虑融合域、时域与空域的预测概率向量,将时域与空域进行二次融合。本发明考虑将三个域的输出进行统计平均,得到最终预测概率向量
[0141][0142]
另外,采用标准的多分类交叉熵函数作为目标函数,表达式如下:
[0143][0144]
其中y=[y1,

,yk,

,yn],分别表示真实概率分布和预测概率分布,yk,分别代表第k
th
类别的真实概率和预测概率。
[0145]
根据损失函数计算得到的损失值,通过adam优化器根据反向传播算法的梯度来对损失函数输出的损失值最小化,实现模型参数的更新与优化,最优化问题可表述如下:
[0146][0147]
其中,θ表示神经网络模型的可训练参数,x
in
表示输入神经网络的数据,y表示数据的真实标签。
[0148]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1