汪兰兰, 蔡昌新
(长江大学电子信息学院, 荆州 434023)
要实现自然人机交互,需要计算机能够学习和理解人类情感,现今语音情感识别随着人们对于机器智能化要求的增加,逐渐被许多研发人员开始研究与应用。科学实验证实,语音情感在基础的理性和智能行为中起到重要作用,此外,语音情感识别不但可以增进人与人之间交互的质量,且直接影响人们以智能的方式进行交互的能力。语音情感识别作为信号处理、人工智能、自然语言处理等各个领域的交叉学科研究,在研究前期,主要是对语音信号进行初期的探索,语音信号是传递信息的载体,其中包含大量声学、韵律学等复杂的特征信息,对于语音信号中准确提取表征情感的特征参数一直是语音情感识别研究的重点。
在语音信号探索初期至今为止,语音识别相关的研究和应用方向已经发展较为成熟。目前智能语音识别在生活中有着具体的体现,比如手机语音助手、车载语音识别系列功能、家庭智能语音遥控等,这些应用表明了语音识别在噪声环境下也具有准确识别的能力,但目前语音识别仅在低信噪比环境下研究较多。王群等[1]根据语音识别在低信噪比中所使用的语音增强算法并不能明显提高识别率的这种情况,提出一种麦克风阵列增强算法,从而提高语音识别的鲁棒性,利用梅尔频率倒谱系数(Mel-frequency ceptral coefficients,MFCC)和隐马尔可夫模型(hidden Markov model,HMM)来对增强后的信号进行特征提取和识别,实验表明此增强算法有效提高了真实环境下的语音识别鲁棒性。戚龙等[2]提出利用改进BP神经网络(back propagation neural network)来提高语音识别率,并根据非特定人群中出现连续和非连续语音的情况都能够准确识别。而语音情感识别作为语音识别方向的分支,相比语音识别而言其研究要较为落后,陈鹏展等[3]提出一种改进k最近邻(k-nearest neighbor,KNN)识别算法,利用此算法能够识别出个人情感;杨明极等[4]提出将卷积神经网络(convolutional neural networks,CNN)和长短期记忆网络(long short-term memory,LSTM)先后提取语音情感特征的方法,最后得出两者结合比单一模型能够提高语音情感识别率。
对比中外语音识别和语音情感识别的研究,语音情感识别在噪声干扰下的研究较少,且未应用到实际生活中,主要原因有三点:一是目前大部分实验数据来源相比其他类型构建困难,只能利用现有的情感语料集进行实验分析及验证;二是目前语音特征提取方法较多,但同时具有准确表征语音情感和抗噪性的特征提取方法目前并没有提及;三是情感语料集中的语音都是专业发音人员在无噪环境下进行录制,应用到实际噪声干扰环境中会使得语音情感识别率较低。针对此三点情况,现提出一种新的特征提取方法,即线性预测基音频率特征提取方法,利用模型相同的LPC美尔倒频谱系数(LPC Mel cepstral coefficients,LPCMCC)[5]特征提取方法来改进,从而改善噪声干扰下所出现的情感分类模糊化问题,并设计基于改进特征的语音情感识别系统,测试此改进特征在实际生活中的应用价值。
基于人的发音器官特点和语音产生的机理,构成了语音信号生成的数学模型[6]。而线性预测模型则是将数学模型进行简化处理,并提出了一种非常好的声道模型(全极点模型)及模型参数估计方法。其实质是将声门激励、声道以及辐射的全部效应简化为一个时变的数字滤波器来等效,简化模型如图1所示。
图1 简化模型Fig.1 The simplified model
其模型传递函数为
(1)
式(1)中:S(z)为语音信号的z变换形式;U(z)为激励信号的z变换形式;ai为线性预测系数,其中i=1,2,…,p;p为线性预测模型阶数;G为声道滤波器增益。将式(1)变换为s(n)和u(n)之间的关系,即
(2)
线性预测模型的数学表达形式为
(3)
由式(3)可知,线性预测分析的基本思想是由s(n)过去p个样本值加权线性组合来预测或估计当前语音信号,通过在方均误差准则下使e(n)达到最小值的方法来获得线性预测系数[7],主要原理过程如下。
首先定义某一帧内的短时方均预测误差为E,可表示为
(4)
式(4)中:N为语音帧数;e(n)为预测误差。对式中ai求偏导后,由于求导后运算较为复杂,引入自相关函数来降低运算量,自相关函数[8]表示为
(5)
式(5)中:N为语音段的N个样点。将式(5)代入式(4)求偏导过程中,则最小方均预测误差可表示为
(6)
φ(j,i)的计算较为复杂,根据自相关法将最小方均预测误差改写为
(7)
式(6)中:r(i)为语音段s(n)的自相关函数,为求得式(7)最小解,引入莱文逊-杜宾(Levinson-Durbin)算法进行递推求解,最终求得解集为
(8)
式(8)中:E随着预测器阶数p的增加而减小,表明了线性预测模型的精度会随着阶数的增加而提高,在实验时取得较为合适的阶数能够提高语音情感识别率,当阶数无穷大时,误差并不会消除。
根据式(2)和式(3)可知,线性预测模型并没有考虑到声带激励信号中的声学参数,而基音周期[9]作为语音信号处理中描述激励源的重要参数之一,在语音合成、语音压缩编码、语音识别和说话人识别等领域有着广泛的应用。
基音周期相应的频率称为基音频率[10]。基音频率与个人声带的长短、厚薄、韧性和发音习惯等相关,且随着人的性别、年龄不同而有所不同。一般男性说话者的基音频率较低,大部分在70~200 Hz的范围内,女性说话者和小孩的基音频率相对较高,为200~450 Hz,因此相比基音周期而言,基音频率在声带激励信号中更能表征说话人情感特征。通常使用基音频率作为特征提取方法不能准确表征说话人情感特性,导致情感识别时出现分类模糊化情况,主要原因为:其一,基音频率能够在无噪环境中利用公式进行准确提取,但在含噪语音中的噪声干扰或类噪激励信号干扰下,反映基音信息的特征将会变得不清晰;其二,语音信号中的声道响应信息也会对基音信息提取造成困难。
为解决这些问题,提取一种新的特征提取方法,即线性预测基音频率特征提取方法。首先,此方法利用线性预测模型去除语音信号中的声道响应信息,对分帧语音进行线性预测模型得到主要预测系数ai,利用预测系数构成逆滤波器为
(9)
将原分帧语音通过式(9)进行滤波,得到不包含声道响应信息的预测余量信号v(n),为提取包含噪声干扰的激励信息,利用常用的倒谱分析方法,即对v(n)做傅里叶变换、取对数。由于语音基音频率一般低于500 Hz,根据信号特性和噪声特性,通过一个低通滤波器或者将高频分量置0来抑制噪声干扰。本文利用将高频分量置0的方式,这样操作既可实现低通滤波,又可以滤去含噪语音中的噪声和激励源的高频分量,由于噪声不可消除,此方法对噪声干扰有较好的抑制作用。此后作傅里叶逆变换得到原分帧信号的倒谱,寻找倒谱信号样本点最大值,利用区间筛选出基音周期,选择区间为
(10)
式中:fs为语音信号的抽样频率; 60、500 Hz为带宽,选择60 Hz是为了降低低频上的噪声干扰,选择500 Hz是由于基音频率一般低于500 Hz。基音周期参数中包含一些“野点”,这些点偏离其他点的轨迹,并不具有一定的参考价值,采用中值平滑滤波来去除野点。基音频率利用公式为
(11)
式(11)中:T为筛选出的基音周期,计算后得到一个语音信号的线性预测基音频率,在此算法过程表述中,解决了情感识别时出现的模糊化问题,滤除声道响应信息,抑制噪声干扰。
目前与本文提出新的特征提取方法较为相似的仅有LPCMCC特征提取方法,都是基于线性预测分析以及倒谱分析进行算法完善。LPCMCC实质是提取包含声学特性与听觉特性的特征参数,其算法原理如下。
先设通过线性预测分析得到的声道模型系统函数为
(12)
式(12)中:p为线性预测阶数。
其次设h1(n)为h(n)的复倒谱,将式(12)代入H1(z)=ln[H(z)]中,两边对z-1求导数,有
(13)
令式(13)左右两边的常数项和z-1各次幂的系数分别相等,则由ak求出h1(n):
(14)
由式(14)得出复倒谱,需将复倒谱变换为倒谱,由
(15)
得到倒谱c(n),此倒谱为实际频率尺度的倒谱系数,称为LPC倒谱系数(linear predictive cepstral coding,LPCC)[11]。将此LPCC系数进一步按符合人的听觉特性的Mel尺度进行非线性变换,从而求出LPCMCC[12]为:
(16)
式(16)中:n为迭代次数;k为Mel倒谱阶数;∂为自定义因子。
综上算法原理概述,对比LPCMCC特征与线性预测基音频率,两者相同之处在于都是基于线性预测分析与倒谱分析进行算法完善,不同之处在于LPCMCC特征不仅具有声学特性,且在此基础上增加了听觉特性,而线性预测基音频率特征中仅仅只包含声学特性。
目前语音特征分类较广,大体分为两类:根据人的发音器官而产声的声学特性,以及根据人耳听觉的生理结构和心理特性而识音的听觉特性。将声学特性与听觉特性都包含的特征提取方法并不常见,本文提出新的特征提取方法仅仅基于声学特性的部分特征提取,而LPCMCC特征提取方法基于声学特性和听觉特性的部分特征混合提取,将两者结合后得到改进线性预测基音频率特征,改进线性预测基音频率算法框图如图2所示,此改进线性预测基音频率的具体步骤如下。
(1)对输入语音进行分帧加窗,此后对分帧段进行LPC分析,得到线性预测系数并由此系数构成逆滤波器A(z)。
(2)将原分帧段通过逆滤波器得到预测误差e(n)。
(3)将此预测误差进行傅里叶变换、取模和对数之后,将此信号作反傅里叶变换后得到原信号的倒谱。
(4)在最大值和最小值区间内寻找语音帧的最大值,获取整个语音的全部基音周期后听过五点中值平滑算法去除偏离基音轨迹的“野点”。
(5)利用F=fs/T公式,获得最终线性预测基音频率F。
(6)将线性预测系数通过傅里叶变换、取模、取对数后得到复倒谱信号,利用式(15)转换为倒谱信号。
(7)根据符合人听觉特性的Mel尺度进行非线性变换,即在式(16)的运算下最终获得LPCMCC特征参数。
(8)利用矩阵运算的法则,将线性预测基音频率特征参数进行数据处理后与LPCMCC特征参数进行融合运算,最后得到改进线性预测基音频率特征参数。
为了验证线性预测基音频率特征提取方法是否在噪声干扰下对语音情感识别具有较好的应用性,设计基于线性基频的语音情感识别实验。设计基于LPCMCC的对比实验,探究线性基频特征提取方法与目前特征提取方法在语音情感识别领域的精确度。设计基于改进线性预测基音频率的语音情感识别实验,研究此改进方法相比以上两类方法所提高的情感识别率。在设计的三类实验中,部分算法是在MATLAB2020b和Spyder (anaconda3)平台上进行编译,训练和预测函数均调用libsvm-3.20工具箱,下载相对应的C语言编译器,通过生成的mex文件来调用C语言函数文件。
采用CASIA汉语情感语料库对实验所需数据集进行构建,整理出适应自然环境下的含噪数据集。选取300句语音文件,其中包括说话内容相同的6种情感各具50个语音文件,将噪声和选取的300句纯净语音在-5 db的信噪比下进行语音合成,其中所选用的噪声为常见的加性噪声[13]:语音干扰(babble noise)、周期噪声(f16 noise)、冲激噪声(machinegun noise)、宽带噪声(white noise),而语音合成后的4类含噪情感数据集则是本文所需的实验数据集。部分数据集类别和数量分布如表1所示,其中将实验数据集划分为60%的训练集和40%的测试集。
表1 部分数据集类别和数量分布Table 1 Part of the dataset category and quantity distribution
在CASIA汉语情感语料库与4类噪声按照信噪比为-5 db进行合成数据集过程中,设置采样频率为16 kHz,使得合成语音为人耳适应的范围。在语音预处理阶段,设置的帧长和帧移分别为320、80,所加窗函数为汉明窗,窗长为320。在开始对线性预测基音频率以及LPCMCC、改进线性预测基音频率实验前,都需要进行线性预测分析,在线性预测分析中阶数设置为36。式(16)中参数∂的选取对于后期实验较为关键,即∂的选取会对语音情感识别的准确率有较高的影响,目前中外研究有两类此参数的选取:当抽样频率为8 kHz时,∂的取值为0.31;抽样频率为10 kHz时,∂的取值为0.35,但本文选取的抽样频率为16 kHz,并不适合以上两类情况。设计基于LPCMCC的SVM语音情感识别实验来选取较为适合的∂参数,选取6种情感平均F1作为评估指标,∂参数的选取下平均F1情况如表2所示。
表2 ∂参数的选取下平均F1情况Table 2 The average F1 situation under the selection of ∂ parameters
根据上述实验情况可以得出,在babble数据集上的语音情感识别率在∂为0.47时达到最高;在f16数据集上∂从0.43~0.48波动时,语音情感识别率从稳定的64%下降为56%,说明∂为0.47时已经趋于稳定;在machinegun数据集上∂从0.45~0.47过渡时,语音情感识别率从64%下降为60%,但从这后面基本趋于稳定不变;在white数据集上∂从0.43~0.47波动时,语音情感识别率基本趋于稳定状态,并达到峰值为62%。以上的4种情况可以说明当∂为0.47时,语音情感识别率不仅可以达到最高,且相比其他参数而言较为稳定。
设计基于线性预测基音频率、改进线性预测基音频率与LPCMCC的三类语音情感识别实验,实验中所用情感识别模型则是选用在小样本上识别效果较好的非线性SVM(支持向量机),并没有选取目前较为流行的神经网络算法,主要在于神经网络并不适合应用于小样本数据上,并且实验结果具有不稳定性,并不具有实际应用价值。而非线性SVM在解决小样本、非线性及高维数据模式识别等这些方面,具有稳健的识别率。基于改进特征部分数据如表3所示,计算F1评估指标均值的三个特征提取方法对比数据,方法对比数据如表4所示。
表3 基于改进特征部分数据 Table 3 Partial data based on improved features
表4 方法对比数据Table 4 Method comparison data
从表3可以看出,其中悲伤的精确度、召回率、F1在两类数据集下都是一样的,并且相比其他情感要低于10%~20%。说明在数据处理过程中对于悲伤这一类语音文件的情感特征并没有很好地进行提取,导致最后语音情感识别率较低,但对于其他类别情感的语音情感识别率较高。整体说明改进线性预测基音频率的特征提取方法在噪声干扰下具有抗噪性,并且应用到语音情感识别中的识别率较高。从表4可以看出,改进线性预测基音频率特征参数下的情感识别精度相比LPCMCC最高提高了20%,相比线性预测基音频率最高提高了32%。说明本文提出新的语音特征提取方法在噪声干扰下能够有效地识别出语音情感,以及在此基础上改进的特征提取方法在原先的基础上能够较大的提高语音情感识别率,并比国内目前的特征提取方法在噪声干扰下的语音情感识别率要高。反映出改进特征提取方法不仅具有抗噪性,也具有在语音情感识别方面的应用价值。
为了验证基于改进特征是否具有广泛实际应用价值,设计基于MATLAB GUI技术[14]的语音情感识别系统仿真界面。MATLAB GUI界面是通过MATLAB命令行运行guide设计平台,并在guide平台上摆放按钮、图形句柄、文本编辑框等控件,设计完成基于改进线性预测基音频率的语音情感识别系统仿真界面,所包含的功能为导入语音文件、波形显示、端点检测、语音增强、改进特征参数提取、情感识别。在设计完成后对系统进行功能性测试,其中随机录制不同环境下的语音文件导入系统中进行测试,部分测试界面如图3~图5所示。
图3 正确识别为“中性”情感Fig.3 Correctly identified as “neutral” emotion
图4 正确识别为“高兴”情感Fig.4 Correctly identified as “happy” emotion
图5 错误识别为“惊讶”情感Fig.5 Misidentified as “surprise” emotion
图3和图4显示界面是在不同高信噪比环境下进行测试实验的结果,图3为正确识别为“中性”情感的测试结果,图4为正确识别为“高兴”情感的测试结果。从图3(b)和图4(b)标的语谱图[15]可以看出,其中含有较清晰的黑红横条(共振峰频率)和竖直条纹(基音频率),从侧面印证了语音文件含噪率较低,少量噪声对于语音情感的正确识别并没有影响。以上说明反映了基于本文所提出新的特征提取方法的改进特征,在高信噪比环境下具有实际语音情感识别应用价值,降低了分类模糊化出现的情况。图5显示界面是在较低信噪比环境下进行测试实验,实验结果为错误地将“害怕”识别为“惊讶”。从图5(b)标的语谱图中看出噪声将整个语音段进行覆盖,但图5(d)标的滤波语谱图相比图5(b)标而言噪声含量较少,但相应地滤掉部分重要特征,使得最后的识别结果与预期不同。以上说明反映了改进特征提取方法在较低信噪比环境下的语音情感识别率较低,选用的语音增强算法并不适用于改进特征提取方法。综上所述,基于本文所提出新的特征提取方法的改进特征在日常生活中具有广泛实际应用价值,但在一些噪声完全覆盖说话者语音的情况下并不具有实际应用价值。
首先,利用线性预测模型对本文提出新的语音特征提取方法进行算法完善,设计基于线性预测基音频率的SVM语音情感识别实验,验证其在日常噪声干扰下的语音情感识别应用中是否具有一定的抗噪性。实验结果表明,其在语音情感识别中具有一定的抗噪性,但提取的特征并不能很好地表征情感特征。其次,根据LPCMCC原理对其进行改进得到改进线性预测基音频率特征提取方法,利用线性预测基音频率、LPCMCC、改进线性预测基音频率这3类方法对4类自建含噪数据集分别进行特征提取。最后,将3类特征提取方法所提取的特征各自导入SVM模型中进行训练和测试。实验表明,相比线性基频以及LPCMCC而言,改进特征能够改善分类模糊化这类情况,比线性预测基音频率和LPCMCC要高出22%、14%。为验证改进特征在真实环境下的实际应用价值,设计基于改进方法的语音情感识别系统,整体系统界面基于MATLAB GUI技术进行功能性完善,对其系统进行功能性测试。实验结果表明其改进方法在日常噪声干扰下具有广泛实际应用价值。在接下来的研究工作中,会尝试在较低信噪比环境下对改进方法进行优化。