基于SVM的语音情感识别系统设计
目录
本内容部分原创,因作者才疏学浅,偶有纰漏,望不吝指出。本内容由灵声讯音频-语音算法实验室整理创作,转载和使用请与“灵声讯”联系,联系方式:QQ(245051943)
1 引言
随着信息技术的不断发展,情感信息处理及识别正在受到学者越来越广泛的重视。语音信号中,除了与语言内容相关的信息之外,还包含着说话人的情感信息。这些情感信息在交流中同样具有着重要的作用。不同的情感一般是由说话人通过调整发音器官的动作,改变了语音信号的声学特征所表达出来的。这些特征包括音质特征、韵律特征、共振峰特征等等。
在相对研究较少的汉语情感识别方面,我们在赵力[2]、蒋丹宁[4]等人所做工作的基础之上,
建立情感语音数据库是汉语普通话情感语音识别研究的基础。为此我们建立了一个小规模的普通话情感语音数据库,进而对数据库中的各种声学特征与情感状态之间的关系作了统计分析。
本文组织如下:第二章介绍了语音情感信号的采集和数据库的建立;第三章介绍了从情感语音数据库中提取基音、能量、共振峰等特征的方法;第四章介绍了分类器的设计和各种特征参数与情感的统计关系;最后一章给出了分类的结论和需要进行的后续工作。
2 情感语音信号的采集
本文所研究的情感语料对单个特定人共包括5类情感:愤怒、平静、悲伤、高兴、惊讶;对三个人组成的特定人群包括3类情感:愤怒、悲伤、平静。共有超过500句的情感语句,包括了陈述句、祈使句、疑问句等句子类型,以及各种声调组合及语句长度等情况。为方便情感的表达,不同的情感语音文本不完全相同。录音者就是本文的三位作者。录音软件为CoolEdit2000,语音的文件格式为单声道,16KHz采样,量化比特数为16。
为了检验所收集的语音情感的有效性,我们找了另外3位同学,随机播放所录制的情感语音,要求他们通过主观评判说出所播放语音的情感类别,实验结果如表1。根据听取结果剔除了一些语句,最后采用了的情感语句共480句。
表1:情感语音听取实验结果
情感类别 | 愤怒 | 平静 | 悲伤 | 高兴 | 惊讶 | 错误率(%) |
愤怒 | 120 | 6 | 0 | 2 | 5 | 9.8 |
平静 | 0 | 120 | 3 | 0 | 0 | 2.4 |
悲伤 | 0 | 2 | 120 | 0 | 0 | 1.6 |
高兴 | 2 | 0 | 0 | 60 | 2 | 6.3 |
惊讶 | 3 | 2 | 0 | 1 | 60 | 9.1 |
3. 特征参数
§3.1 基音频率参数
对于基音频率的处理,我们的作法是利用自相关法求出基音频率,并对基频曲线进行中心消波和线性平滑处理,然后对基频曲线的下列特征进行了研究,并对特征能够较好区分的情感作了统计。绘制的图像见附表。
为方便起见,下文中五种情绪简化表示如下:
p:平静 b:悲伤 j:惊讶 f:愤怒 g:高兴
表2:基音频率参数的统计结果
特征名称 | 各情感参数 | 效果 | 能够较好区分的情感 | ||||
愤怒 | 平静 | 悲伤 | 惊讶 | 高兴 | |||
基频最大值 | 337.5 | 231.5 | 314.4 | 322.2 | 351.6 | 良 | P+J |
基频最小值 | 64.2 | 44.6 | 57.2 | 60.9 | 66.8 | 中 | 无 |
基频变化范围 | 273.3 | 186.9 | 257.2 | 261.2 | 284.8 | 中 | 无 |
基频局部最小值分布 | 223.6 | 127.4 | 166.3 | 179.2 | 256.7 | 良 | P+F |
基频的均值 | 233.4 | 132.9 | 167.0 | 181.2 | 264.4 | 好 | P+J+G+F |
基频方差 | 4.27e3 | 1.38e3 | 3.68e3 | 5.39e3 | 3.49e3 | 中 | 无 |
基频变化率的均值 | -2.4e-3 | -9.7e-4 | -8.7e-4 | -3.5e-3 | -4.6e-4 | 中 | 无 |
基频变化率的方差 | 7.6e-3 | 3.4e-3 | 6.5e-3 | 6.3e-3 | 4.2e-3 | 中 | 无 |
§3.2 共振峰参数
共振峰是反映声道特性的一个重要参数,我们通过对语音流中加汉明窗再对其进行傅立叶变换的方法求得共振峰,并对其以下特征进行了研究。
表3:共振峰参数的统计结果
特征名称 | 各情感参数 (第一行为均值,第二行为方差) | 效果 | 能够较好区分的情感 | ||||
愤怒 | 平静 | 悲伤 | 惊讶 | 高兴 | |||
第一共振峰均值 | 28.3 | 17.4 | 10.4 | 22.3 | 32.0 | 好 | B+J+G |
共振峰方差 | 16.4 | 6.94 | 19.9 | 8.87 | 27.6 | 中 | 无 |
§3.3 能量参数
在能量方面,考虑到音量的绝对大小并不应该成为表达情感的主要参数,所以我们主要研究了能量变化率等相对变化的特征参数。
其中重音特征能够把情感区分为“愤怒、惊讶、高兴”组成的激动类情感和“平静、悲伤”组成的平缓类情感。
表4:能量参数的统计结果
特征名称 | 各情感参数 (第一行为均值,第二行为方差) | 效果 | 能够较好区分的情感 | ||||
愤怒 | 平静 | 悲伤 | 惊讶 | 高兴 | |||
能量变化率的均值 | 1.3e-5 | 1.9e-5 | 4.7e-5 | 1.1e-5 | 1.4e-5 | 中 | 无 |
能量变化率的方差 | 3.3e-5 | 3.5e-5 | 5.4e-5 | 4.1e-5 | 2.2e-5 | 良 | B+G |
能量变化率的变化率 | 1.59 | 1.26 | 2.09 | 1.88 | 1.02 | 良 | B+G |
语速 | 6.15 | 5.89 | 7.09 | 6.25 | 6.19 | 中 | 无 |
重音 | 0.285 | 0.0034 | 0.0179 | 0.1756 | 0.3166 | 良 | 激动+平缓 |
4 语音情感的识别
§4.1 采用高斯分布模型的分类
实验中我们采用的是一种比较简单的高斯分布模型,将每类特征的分布视为多个高斯分布的加权和。公式描述为:,其中,M为高斯分布的个数,分别为第i个高斯分布的均值和方差。最后加权和概率最大的类别C即为分类结果。
§4.2 SVM分类器的原理
SVM法即支持向量机(Support Vector Machine)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方法是建立在统计学习理论基础上的机器学习方法。通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。该方法只需要由各类域的边界样本的类别来决定最后的分类结果。支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称为最大边缘(maximum margin)算法。待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果.
SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题。简单地说,就是升维和线性化。升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津。但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归)。一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”。这一切要归功于核函数的展开和计算理论。 选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
(1)线性核函数K(x,y)=x·y;
(2)多项式核函数K(x,y)=[(x·y)+1]^d;
(3)径向基函数K(x,y)=exp(-|x-y|^2/d^2);
(4)二层神经网络核函数K(x,y)=tanh(a(x·y)+b);
§4.3 数据分析及整理
在提取了前面的特征参数之后,通过分类器对其进行了分类,结果列于下面的表5至表10中。
下面的表5表6反映了单个特定人情况下训练集与测试集数目关系对正确率的影响。
表格5:(单个特定人)三种特征下训练集与测试集数目关系对正确率的影响
训练集数目 | 测试集数目 | 错误率统计 | 错误句数 | 测试集正确率(%) | |||||||||||||
训练集(错误数目及种类) | 测试集(错误数目及种类) | ||||||||||||||||
平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | 平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | ||||||||
20*5 | 40*5 | 0 | 1j1p | 0 | 2g | 1f | 2b | 3j | 1f | 3g5j | 2f | 5+16 | 92 | ||||
30*5 | 30*5 | 0 | 1j1p | 0 | 3g1j | 2f | 0 | 2j | 0 | 1g3j | 2f | 8+8 | 94.7 | ||||
40*5 | 20*5 | 0 | 1j2p | 1f | 3g1j | 1f | 0 | 0 | 0 | 2g3j | 1f | 9+6 | 94 | ||||
50*5 | 10*5 | 0 | 1j1p | 1f | 5g1j | 2f | 0 | 0 | 0 | 2g3j | 0 | 11+5 | 90 | ||||
60*5 | 无 | 0 | 4j3p | 1f | 6g2j | 4f |
| 20+0 |
| ||||||||
表格6:(单个特定人)两种特征下训练集与测试集数目关系对正确率的影响
训练集数目 | 测试集数目 | 错误率统计 | 错误句数 | 测试集正确率(%) | |||||||||
训练集(错误数目及种类) | 测试集(错误数目及种类) | ||||||||||||
平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | 平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | ||||
10*5 | 50*5 | 0 | 0 | 0 | 0 | 0 | 0 | 4f6j | 3f | 2g2j | 5f | 0+22 | 91.2 |
20*5 | 40*5 | 0 | 2j | 0 | 3g1j | 0 | 0 | 2j | 1f | 4g5f | 0 | 6+12 | 94 |
30*5 | 30*5 | 0 | 2j1p | 0 | 4g1j | 0 | 0 | 2j | 1f | 3g3j | 0 | 8+9 | 94 |
40*5 | 20*5 | 0 | 1j1p | 0 | 7g2j | 0 | 0 | 0 | 0 | 1g2j | 0 | 11+3 | 97 |
50*5 | 10*5 | 0 | 2j1p | 0 | 9g3j | 0 | 0 | 0 | 0 | 2g1j | 0 | 15+3 | 94 |
60*5 | 无 | 0 | 2j1p | 1f | 9g3j | 0 |
| 16+0 |
|
下面的表7反映了单个人情况下特征数目队正确率的影响
表格7:(单个特定人)特征数目对正确率的影响
特征数目 | 错误率统计 | 错误句数 | 测试集正确率(%) | |||||||||
训练集40*5句(错误数目及种类) | 测试集20*5句(错误数目及种类) | |||||||||||
平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | 平静 | 悲伤 | 惊讶 | 愤怒 | 高兴 | |||
两种 (基音均值 +第一共振峰均值) | 0 | 1j1p | 0 | 7g2j | 0 | 0 | 0 | 0 | 1g2j | 0 | 11+3 | 97 |
三种 (基音均值 +第一共振峰均值 +能量变化率的方差) | 0 | 1j2p | 0 | 3g1j | 1f | 0 | 0 | 0 | 2g3j | 1f | 9+6 | 94 |
三种 (基音均值 +第一共振峰均值 +能量变化率的变化率) | 1b | 2j3p | 0 | 2g2j | 2f | 0 | 0 | 0 | 2g | 1f | 12+3 | 97 |
四种 (基音均值 +第一共振峰均值 +能量变化率的变化率 +能量变化率的方差) | 1b | 2j3p | 0 | 1g1j | 6f | 0 | 0 | 2f | 1g4j | 3f | 14+10 | 90 |
从上面几个表格中可以看出,“愤怒”和“高兴”两种情感比较容易混淆,下面就以训练集40*4句,测试集20*4句的情况,比较愤怒和高兴不同时出现的正确率,结果见表8。
表格8:(单个特定人)愤怒Vs高兴
情感数 | 错误个数 | 错误句数 | ||||
P | B | J | F | G | ||
P+B+J+G | 0+0 | 1j1p+0 | 0+0 |
| 0+0 | 2+0 |
P+B+J+F | 0+0 | 1j1p+0 | 0+0 | 2j+2j |
| 4+2 |
下面的表格9反映了组成特定人群的三位录音人,在只有“愤怒”“悲伤”“平静”三种情感语音下的正确率。
表格9:三套单个特定人(三种情绪)的对比
录音人 | 总句数 | 悲伤错误句数 | 平静错误句数 | 愤怒错误句数 | 共错 |
葛林 | 180 | 1p | 0 | 0 | 1 |
张吉 | 129 | 2f | 1f | 1b | 4 |
王文韬 | 60 | 1p | 0 | 0 | 1 |
下面的表格10是特定人群的研究,先是两个人组成的特定人群,然后是三个人组成的特定人群。分类时仍采用高斯分布模型,利用基音频率的均值、能量变化率的方差、第一共振峰的均值三个特征。分类时,对每个特定人的每种情感建立一个高斯分布,进而分别求出这9个高斯分布的值,然后分别对每类情感的3个特定人的分布求和,概率最大的那类情感就是分类结果。
表格10:特定人群正确率
人群 | 测试集句数 | 测试集错误统计 | 共错 | 正确率(%) | ||
平静 | 悲伤 | 愤怒 | ||||
葛+张 | 258 | 1f | 2f2p | 1b | 6 | 97.7 |
张+王 | 120 | 1f | 2f1p | 2b | 6 | 95 |
葛+王 | 120 | 1b | 2f2p | 0 | 5 | 95.8 |
三人 | 180 | 1f1b | 3f4p | 1b | 10 | 94.4 |
5 实验结果
§5.1 实验结果的小结
经过特征的提取和分析,我们发现,“基音频率的均值”、“第一共振峰的均值”这两个特征具有最好的区分效果,“能量变化率的方差”、“能量变化率的变化率”、“基频最大值”等特征也具有一定的区分效果。
对单个特定人的愤怒、悲伤、惊讶、高兴、平静五种情感区分,采用“基音频率的均值”、“第一共振峰的均值”的两个特征具有最好的区分效果,识别正确率平均可达93.7%,其中愤怒和高兴两种情绪比较容易混淆。
对三个特定人组成的特定人群的愤怒、悲伤、平静三种情感区分,采用“基音频率的均值”、“第一共振峰的均值”以及“能量变化率的方差”的三个特征具有最好的区分效果,识别正确率平均可达94.4%。
§5.2 系统展示
参考文献:
[1]杨行俊,迟惠生等,语音信号数字处理,电子工业出版社,1995
[2]王治平等,语音信号中的情感特征的分析和识别,东南大学无线电工程
[3]蒋丹宁,蔡莲红,基于韵律特征的汉语情感语音分类,清华大学计算机系
[4]陈建厦,语音情感识别综述,厦门大学计算机科学系
本内容部分原创,因作者才疏学浅,偶有纰漏,望不吝指出。本内容由灵声讯音频-语音算法实验室整理创作,转载和使用请与“灵声讯”联系,联系方式:QQ(245051943)