首页 > 乐器声学 专利正文
一种实时语音情感识别方法及装置与流程

时间:2022-02-24 阅读: 作者:专利查询

一种实时语音情感识别方法及装置与流程

1.本发明涉及信号处理技术领域,具体涉及一种实时语音情感识别方法及装置。


背景技术:

2.目前,应用于人类情感识别研究的检测信息包括语音、面部表情、生理信号、肢体语言等。语音是人与人之间沟通最快且最自然的方法,语音情感识别研究对促进和谐人机交互意义重大。
3.语音情感识别技术可以应用在医疗、教育、商务辅助等多个领域。在医学上,语音情感识别常常用来识别病人的精神状态以及辅助残疾人讲话;在教育上,借助语音情感识别方法可以分析学生感兴趣的关键片段,同时也能侦测学生听课时的情感状态与疲劳程度,从而帮助老师掌握学生上课时的理解和学习状况,同时可用于对远程课堂用户在学习过程中的情感状态进行监控,从而及时调整授课重点或者进度;在商务辅助中,客服系统可以利用语音情感识别领域相关的方法快速识别用户的情绪,并生成通话中心的服务质量报告,从而帮助客服中心全面提升服务质量;在汽车驾驶中,语音情感识别可以根据司机的语音、语速等信息获取司机的情感状态,进而给予司机一定的提醒,从而防止交通事故的发生。
4.语音情感识别技术在很多场景有着广泛应用,面对国内外对实现人机交互系统情感智能的迫切需求,突破情感计算、人机交互等相关领域的科学技术刻不容缓。
5.目前语音情感识别的主流方法是基于深度神经网络进行处理的,使用梅尔频谱图作为特征输入到设计的深度神经网络当中去学习,在提高识别准确率的同时,却增加了处理所需要的时间,导致所设计出的整体模型延迟时间过长,在实时识别中可实施性较低。大部分语音情感识别方法关注于如何优化梅尔频谱的提取过程,忽略了预处理的根本问题在于特征的选取上,部分研究方法中所提出的方法主要基于文本含义,利用文本中语句与单词的含义来理解情感,这使得系统的泛化能力进一步降低。


技术实现要素:

6.本发明旨在解决传统语音情感识别方法着重于特征分类优化从而造成计算量大,无法实现实时性,且部分方法通过文本中语句与单词的含义来理解情感造成的系统泛化能力较低的技术问题。
7.为了实现上述目的,本发明提出了一种基于音节级特征提取的实时语音情感识别方法,本发明基于多层感知机来进行分类,从而达到简化计算的目的,满足在实时语音情感识别中低延迟的要求。基于共振峰的音节特征的划分有利于在跨语言与跨语料库场景中更好的对语音进行识别,在研究中发现,元音对系统的影响远高于辅音,本发明主要以元音作为研究重点,使用更少的输入特征的情况下达到了与最先进结果相似的精度。
8.根据本发明的一个方面,本发明提供了一种实时语音情感识别方法,包括以下步骤:
9.对原始语音信号进行预处理后,提取梅尔频谱;
10.从所述梅尔频谱中提取每个采样帧的共振峰;
11.通过比较每个采样帧的共振峰中的局部幅值的极大值,获取每个采样帧内振幅值前三的共振峰,作为第一主要共振峰;
12.根据实时噪声门的沉默阈值对所述第一主要共振峰进行去噪处理,得到去噪后的共振峰;
13.计算所述去噪后的共振峰中,任意两帧的任意两个共振峰之间的匹配指标,根据所述匹配指标重建得到原始帧长的共振峰;
14.获取重建后的共振峰振幅的最大值和最小值;
15.获取重建后的共振峰中每个采样帧内振幅值前三的共振峰,作为第二主要共振峰;
16.计算所述第二主要共振峰的复合能量;
17.将所述重建后的共振峰振幅的最大值和最小值作为明显的沉默停顿音节分割标准,并根据所述复合能量的变化进行语音分割,得到多个音节;
18.统计各所述音节内的特征;
19.根据各所述音节内的特征,通过多层感知器获得每个音节的情感类别概率;
20.通过对每个所述音节的情感类别概率进行语句级置信聚合,得到语句级情感识别结果。
21.进一步地,所述预处理步骤具体包括:
22.对原始语音信号进行预加重,得到预加重后的信号;
23.对所述预加重后的信号进行分帧加窗及傅里叶变换处理,得到变换后的信号;
24.将所述变换后的信号通过梅尔滤波器组处理,得到每个采样帧的梅尔频率;
25.将多个相邻采样帧的梅尔滤波器组进行连接,得到语音信号的梅尔频谱。
26.进一步地,所述通过比较每个采样帧的共振峰中的局部幅值的极大值,获取每个采样帧内振幅值前三的共振峰,作为第一主要共振峰的步骤中,所述第一主要共振峰的相关参数计算公式如下:
27.第h个最高振幅共振峰的功率幅值的计算公式为:
[0028][0029]
第h个最高振幅共振峰的梅尔刻度频率的计算公式为:
[0030][0031]
共振峰h的带宽的计算公式为:
[0032][0033]
式中,p
h
为第h个最高振幅共振峰的功率幅值,p(l)为梅尔滤波器组l的幅值,f
h
为第h个最高振幅共振峰的梅尔刻度频率,w
h
为共振峰h的带宽。
[0034]
进一步地,所述实时噪声门的沉默阈值的计算公式为:
[0035][0036]
式中,a
min
是实时噪声门的沉默阈值,a
imp
是梅尔频谱中最高峰值振幅衰减值,该衰
减值不断根据当前传入帧中高于当前衰减值的新峰值进行更新。
[0037]
进一步地,计算任意两帧t
a
,t
b
的任意两个共振峰h
a
,h
b
之间的匹配指标的具体计算公式为:
[0038][0039]
式中,t
b

t
a
表示两帧之间的时间差,f
b

f
a
表示两帧之间的频率差,表示为两帧中最大功率幅值与最小功率幅值的比值,l
a
表示已经与其它共振峰相连接的共振峰数量,k
t
与k
f
为曼哈顿距离常数,取决于相邻共振峰的水平和垂直单位距离。
[0040]
进一步地,所述计算第二主要共振峰的复合能量,具体计算公式为:
[0041][0042]
其中,e
c
(t)为时间坐标t处的复合能量,e
h
(t)为第h个共振峰的能量,f
h
(t)为第h个共振峰的频率,h
e
是一个强调常数,用于提高高频共振峰的能量权重,所述复合能量用于判别讲话时的沉默停顿。
[0043]
进一步地,所述音节内的特征包括至少15个。
[0044]
进一步地,所述原始帧长为25ms。
[0045]
根据本发明的另一方面,本发明还提供了一种实时语音情感识别装置,包括以下模块:
[0046]
梅尔频谱提取模块,用于对原始语音信号进行预处理后,提取梅尔频谱;
[0047]
共振峰提取模块,用于从所述梅尔频谱中提取每个采样帧的共振峰;
[0048]
第一主要共振峰获取模块,用于通过比较每个采样帧的共振峰中的局部幅值的极大值,获取每个采样帧内振幅值前三的共振峰,作为第一主要共振峰;
[0049]
实时噪声门模块,用于通过实时噪声门的沉默阈值对所述第一主要共振峰进行去噪处理,得到去噪后的共振峰;
[0050]
共振峰匹配重建模块,用于计算所述去噪后的共振峰中,任意两帧的任意两个共振峰之间的匹配指标,根据所述匹配指标重建得到原始帧长的共振峰;
[0051]
振幅最值获取模块,用于获取重建后的共振峰振幅的最大值和最小值;
[0052]
第二主要共振峰获取模块,用于获取重建后的共振峰中每个采样帧内振幅值前三的共振峰,作为第二主要共振峰;
[0053]
复合能量计算模块,用于计算所述第二主要共振峰的复合能量;
[0054]
语音分割模块,用于将所述重建后的共振峰振幅的最大值和最小值作为明显的沉默停顿音节分割标准,并根据所述复合能量的变化进行语音分割,得到多个音节;
[0055]
音节特征统计模块,用于统计各所述音节内的特征;
[0056]
音节情感分类模块,用于根据所述音节内的特征,通过多层感知器获得每个音节的情感类别概率;
[0057]
语句级置信聚合模块,用于通过对每个所述音节的情感类别概率进行语句级置信聚合,得到语句级情感识别结果。
[0058]
进一步地,所述梅尔频谱提取模块包括:
[0059]
预加重模块,用于对原始语音信号进行预加重处理,得到预加重后的信号;
[0060]
分帧加窗及傅里叶变换模块,用于对所述预加重后的信号进行分帧加窗及傅里叶变换处理,得到变换后的信号;
[0061]
梅尔滤波模块,用于将所述变换后的信号通过梅尔滤波器组处理,得到每个采样帧的梅尔频率;
[0062]
相邻帧连接模块,用于将多个相邻采样帧的梅尔滤波器组进行连接,得到语音信号的梅尔频谱。
[0063]
本发明的有益效果在于:
[0064]
(1)相较于传统语音情感识别方法,使用基于共振峰的音节级特征,不需要考虑借助改为词句语义或顺序去实现识别,故可以实现跨库情感识别,可以一定程度上克服系统的过拟合问题。
[0065]
(2)传统的语音情感识别方法使用梅尔频谱图作为输入特征,虽然能在实验环境中取得较好实验结果,但是由于计算量过大,无法实现实时识别,而本发明在完成特征提取后,使用基础神经网络对情感进行分类,计算量小,并通过采用优化和泛化技术,可以实现实时识别。
附图说明
[0066]
下面将结合附图及实施例对本发明作进一步说明,附图中:
[0067]
图1是本发明实施例提供的一种实时语音情感识别方法的执行流程图;
[0068]
图2是本发明实施例提供的一种种实时语音情感识别装置的结构图。
具体实施方式
[0069]
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
[0070]
实施例一:
[0071]
参考图1,本发明实施例提供了一种实时语音情感识别方法,包括如下步骤:
[0072]
步骤一:梅尔频谱的提取
[0073]
对原始语音信号进行预加重后,使用步长15ms的25ms(推荐值)的滑动汉明窗进行处理,每个采样帧通过快速傅里叶变换(fast fourier transform,fft)与梅尔滤波器处理,通过以下转换公式得到每个采样帧的梅尔频率,梅尔频率与赫兹刻度频率的转换公式为:
[0074][0075]
其中,m表示梅尔频率,f表示赫兹刻度频率。
[0076]
梅尔滤波器组的中心频率可以表示为:
[0077][0078]
其中,f(l)表示赫兹刻度上梅尔滤波器组l的中心频率,m
l
是梅尔刻度上梅尔滤波
器组l的下限,m
l+1
是梅尔刻度上相邻帧的梅尔滤波器组l+1的下限。
[0079]
通过几个相邻帧(帧长通常为25ms)的梅尔滤波器组连接起来,得到语音信号的梅尔频谱。
[0080]
步骤二:共振峰提取与配准
[0081]
(1)与元音的其它频率相比较,通常基频共振峰具有最高的频率幅度,但是由于每个人的发音具有差异,也会出现较大偏差,故需要进行去噪,检测梅尔频谱当中的浊音。如果没有特定的共振峰,即与其它频段相比没有一个振幅比较高的频带,则取滤波器组中振幅前三的频带作为前三个共振峰,通过比较梅尔滤波器组的局部幅值的极大值来检测振幅前三的共振峰。
[0082][0083]
其中,p
h
为第h个最高振幅共振峰的功率幅值,p
h
‑1为第h

1个最高振幅共振峰的功率功率幅值,p(l)为梅尔滤波器组l的幅值,同样,最高振幅共振峰的梅尔刻度频率可计算为:
[0084][0085]
其中f
h
为第h个共振峰最高振幅的梅尔刻度频率。
[0086]
公式(4)给出了共振峰的中心频率,然而,共振峰没有精确的窄频带,故共振峰的宽度是衡量音质的重要标准,可以衡量声音的尖锐程度。根据频率范围(从当前最小值到邻峰最小值)计算为:
[0087][0088]
其中,w
h
为共振峰h的带宽。
[0089]
(2)实时噪声门
[0090]
语言的振幅信息是判断说话人情绪的重要因素,对其进行正则化会降低有效信息的准确性,在本发明提出的方法中,综合考虑由距离带来的不确定性与保留特征学习所需的振幅信息。在特征提取的最后阶段,本发明使用了一个长期均值正则化器来抵消环境或说话者与麦克风之间距离的差异。本发明基于停顿或共振峰中断等特征检测音节中断部分,而不是深度学习等计算量较大的方法。为此,提出了一种噪声门算法,该算法能动态地适应基于振幅脉冲的沉默阈值,避免了传统的通过恒定持续峰值来判定音节中断的方法。沉默阈值的上限或最小的浊音振幅a
min
被一个衰减的脉冲振幅值重置为
[0091][0092]
其中,a
imp
是梅尔频谱图中最高峰值振幅衰减值,该衰减不断根据当前传入帧中高于当前衰减值的新峰值进行更新。衰减率设置为a
imp
下降到0.5秒内的自身值百分之一并停止进一步下降。此外,带通滤波器的频率只允许100

1200hz范围内用于a
min
的设置。噪声门在频谱上滤去了其它效果不明显部分的共振峰。
[0093]
(3)共振峰配准
[0094]
将语音信号分解成共振峰特性,可以挑选出与相邻帧匹配良好的共振峰。这使得系统可以在梅尔频谱图横向方向上滤去无共振峰特征的部分。长度超于一帧25ms的共振峰必须通过多个相邻的共振峰连接起来,使得共振峰恢复到原来的时间长度,采样窗口创建
固定长度的梅尔频谱,但共振峰的时间跨度可能超过一帧长度,故频谱片段需要被拼接在一起,重建原始时间长度的共振峰。可以通过光谱聚类或任何基于时间邻域内聚集的聚类方法来实现拼接,本发明通过计算匹配指标来完成这项任务,指标用于衡量新入帧与最近帧的共振峰的接近程度。为新入帧中的共振峰分配标签,标签的最大匹配索引值为(h0,h1,h2,

,h
hmax
)。计算任意两帧(t
a
,t
b
)的任意两个共振峰(h
a
,h
b
)之间的匹配指标为
[0095][0096]
其中,t
b

t
a
表示两帧之间的时间差,f
b

f
a
表示两帧之间的频率差,表示为两帧中最大功率幅值与最小功率幅值的比值,l
a
表示已经与其它共振峰相连接的共振峰数量,k
t
与k
f
为曼哈顿距离常数,取决于相邻共振峰的水平和垂直单位距离,在帧长通常为25ms情况下,取k
t
=10,k
f
=10。
[0097]
步骤三:音节分割与统计
[0098]
(1)音节分割
[0099]
在单词的两个部分之间或者两个相邻单词之间没有明确的界限,针对该问题,本发明提出了一种利用共振峰振幅的最大值和最小值来分离音节的技术。讲话时的沉默停顿可以作为一个明显的音节分割标志,其他情况下,很难去指定音节分离规则,故通过设定语音帧的振幅阈值来调整音节结束参数的阈值可以实现音节分割。
[0100]
大多数情况下,多个共振峰会增加帧内的能量。因此,共振峰中央能量并不能直接转化为可以直接测量的音量形式。与此同时,帧内的整体能量可能含有噪音需要去除。因此本发明计算复合能量主要考虑每一帧前3个主要共振峰能量为
[0101][0102]
其中,e
c
(t)为时间坐标t处的复合能量,e
h
(t)为第h个共振峰的能量,f
h
(t)为第h个共振峰的频率,h
e
是一个强调常数,用于提高高频共振峰的能量权重,所述复合能量用于判别讲话时的沉默停顿,因为如果振幅保持不变,高频比低频包含更多的能量。仅计算前三个共振峰可以避免低能量共振峰被误认为说话人发声时产生的能量。主要用于判别讲话时的沉默停顿。
[0103]
在初始化阶段,寻找复合能量e
c
的上升边,当检测到上升边缘时,将进入平台期,即e
c
没有大幅度变换,继续检测到大于50%的e
c
下降时,则继续检测当前帧内共振峰上下振幅的最大值并记录下阈值音节,当e
c
低于下阈值时,音节或语音段将被截断,音频将会被较长的停顿分割为多个部分或者单词,而较短的停顿需2个帧长度(<50ms)用于音节分割。
[0104]
(2)音节统计特征
[0105]
音节有不同的形状和大小。音节的谱表示更依赖于词汇内容而非情感内容,因此本发明提取统计特征而不是序列特征,提出了一种包含15种特征的音节级情感识别方法,在共振峰h内去估计音色、音调、重音和音节的重音,而不是整体的音高。基本上有五种类型的特征,即共振峰频率、重音、功率、重音和信噪比。在音节水平上共振峰频率、功率和跨度来计算,每个特征都是在t
s0
≥t,t
sn
<t内测量的,t
s0
与t
sn
是整个句子中音节的第一个与最
后一个帧。每种特征计算方法如下:
[0106]
1)前3个主要共振峰的频率:
[0107]
freq a:共振峰h频率的平均值μ(f
h
(t)),时间间隔为t
s0
≥t,t
sn
<t
[0108]
freq b:共振峰h频率的标准偏差σ(f
h
(t)),时间间隔为t
s0
≥t,t
sn
<t
[0109]
freq c:共振峰h频率的带宽平均值μ(w
h
(t)),时间间隔为t
s0
≥t,t
sn
<t
[0110]
2)前3个主要共振峰的音调:
[0111]
accent a:升音,沿音节长度的共振峰平均频率的递增:
[0112][0113]
其中,x
h,rise
表示升音,f
h
(t)

f
h
(t

1)表示相邻共振峰频率的差值,rise
h,t
的值为0或1,满足:
[0114][0115]
accent b:降音,沿音节长度的共振峰平均频率的减少:
[0116][0117]
其中,x
h,fall
表示降音,fall
h,t
的值为0或1,满足:
[0118][0119]
3)前3个主要共振峰的功率:
[0120]
power a:音节的平均功率;
[0121]
power b:音节的功率标准差,是语音质量的衡量标准;
[0122]
power c:每帧内变量a
imp
的音节的能量;
[0123]
power d:每帧内变量a
imp
的总发声帧的能量;
[0124]
4)前3个主要共振峰的重音;
[0125]
stress a:沿音节时间轴的共振峰功率峰值计数;
[0126]
stress b:共振峰功率峰值的平均值(μ
peaks
);
[0127]
stress c:共振峰功率最大值的标准差(σ
peaks
);
[0128]
stress d:μ
peaks
与平均功率的相对比值。
[0129]
5)前3个主要共振峰的信噪比:
[0130]
snr a:检测到的前三个共振峰的能量与频谱的总能量的比率;
[0131]
snr b:声音的最大振幅与发声共振峰的最小限值的比率。
[0132]
步骤四:音节情感分类
[0133]
通过测试不同的分类器和不同的参数,复杂分类器的效果劣于简单分类器,故在本发明中仅使用最简单的多层感知器形式来进行分类,仅包含一个隐藏层,训练所使用的损失函数为绝对交叉熵损失函数,可以表示为:
[0134][0135]
其中,n
v
情感标签的总数,ν为情感标签的序号,为模型输出的第一个v
th
标量值(softmax分类概率),y
v
为对应的模型输出的目标值,神经网络模型会预测每个情绪在单个音节上的类别概率。
[0136]
步骤五:语句级置信聚合
[0137]
当整个语句只需要一个情感标签时,通过加权求和来进行估算
[0138][0139]
其中,权重为音节在指标s上的时长的平方根t
s
,p
s,c
为c类的预测概率,为该音节所有类的预测概率的平均值,c
u,c
为该话语u的类置信度,n
s
为该话语中的音节总数。
[0140]
实施例二:
[0141]
参考图2,本发明还提供了一种实时语音情感识别装置,主要包括以下模块:
[0142]
梅尔频谱提取模块1、共振峰提取模块与配准模块2、音节分割与统计模块3、音节情感分类模块4和语句级置信聚合模块5;
[0143]
在一些实施例中,所述梅尔频谱提取模块1,具体包括:
[0144]
预加重模块,用于对原始语音信号进行预加重处理,得到预加重后的信号;
[0145]
分帧加窗及傅里叶变换模块,用于对所述预加重后的信号进行分帧加窗及傅里叶变换处理,得到变换后的信号;
[0146]
梅尔滤波模块,用于将所述变换后的信号通过梅尔滤波器组处理,得到每个采样帧的梅尔频率;
[0147]
相邻帧连接模块,用于将多个相邻采样帧的梅尔滤波器组进行连接,得到语音信号的梅尔频谱。
[0148]
在一些实施例中,所述共振峰提取模块与配准模块2,具体包括:
[0149]
共振峰提取模块,用于从所述梅尔频谱中提取每个采样帧的共振峰;
[0150]
第一主要共振峰获取模块,用于通过比较每个采样帧的共振峰中的局部幅值的极大值,获取每个采样帧内振幅值前三的共振峰,作为第一主要共振峰;
[0151]
实时噪声门模块,用于通过实时噪声门的沉默阈值对所述第一主要共振峰进行去噪处理,得到去噪后的共振峰;
[0152]
共振峰匹配重建模块,用于计算所述去噪后的共振峰中,任意两帧的任意两个共振峰之间的匹配指标,根据所述匹配指标重建得到原始帧长的共振峰。
[0153]
在一些实施例中,所述音节分割与统计模块3,具体包括:
[0154]
振幅最值获取模块,用于获取重建后的共振峰振幅的最大值和最小值;
[0155]
第二主要共振峰获取模块,用于获取重建后的共振峰中每个采样帧内振幅值前三的共振峰,作为第二主要共振峰;
[0156]
复合能量计算模块,用于计算所述第二主要共振峰的复合能量;
[0157]
语音分割模块,用于将所述重建后的共振峰振幅的最大值和最小值作为明显的沉
默停顿音节分割标准,并根据所述复合能量的变化进行语音分割,得到多个音节;
[0158]
音节特征统计模块,用于统计各所述音节内的特征。
[0159]
所述音节情感分类模块4,用于根据所述音节内的特征,通过多层感知器获得每个音节的情感类别概率;
[0160]
所述语句级置信聚合模块5,用于通过对每个所述音节的情感类别概率进行语句级置信聚合,得到语句级情感识别结果。
[0161]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0162]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
[0163]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。