基于SVM的语音情感识别系统设计

目录

基于SVM的语音情感识别系统设计

1  引言

2  情感语音信号的采集

3. 特征参数

§3.1 基音频率参数

§3.3 能量参数

4  语音情感的识别

§4.1  采用高斯分布模型的分类

§4.2 SVM分类器的原理

§4.3  数据分析及整理

5  实验结果

§5.1  实验结果的小结

§5.2  系统展示


本内容部分原创,因作者才疏学浅,偶有纰漏,望不吝指出。本内容由灵声讯音频-语音算法实验室整理创作,转载和使用请与“灵声讯”联系,联系方式:QQ(245051943)


引言

随着信息技术的不断发展,情感信息处理及识别正在受到学者越来越广泛的重视。语音信号中,除了与语言内容相关的信息之外,还包含着说话人的情感信息。这些情感信息在交流中同样具有着重要的作用。不同的情感一般是由说话人通过调整发音器官的动作,改变了语音信号的声学特征所表达出来的。这些特征包括音质特征、韵律特征、共振峰特征等等。

在相对研究较少的汉语情感识别方面,我们在赵力[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)


基于SVM的语音情感识别系统设计相关推荐

  1. 检信智能语音情感识别-基于SVM的语音情感识别系统设计

    1  引言 随着信息技术的不断发展,情感信息处理及识别正在受到学者越来越广泛的重视.语音信号中,除了与语言内容相关的信息之外,还包含着说话人的情感信息.这些情感信息在交流中同样具有着重要的作用.不同的 ...

  2. 基于Matlab神经网络语音情感识别系统

    文件大小:5.1M 代码行数:55行(主程序) 开发环境:Matlab2018 点击下载:点击下载 简要概述:基于Matlab神经网络语音情感识别系统,五种基本情感:'生气','高兴','中性','悲 ...

  3. 基于Pytorch的语音情感识别系统

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  4. 一些关于语音识别和语音情感识别的资源

    这些资源要么就收费很贵,要么用不了,嗯-,但是也花了很长时间收集,先留着吧... 基于SVM的语音情感识别(MATLAB GUI界面和文档)点这里! PythonNLP情感识别项目实战教程(源码+数据 ...

  5. 【情感识别】基于matlab BP神经网络语音情感识别【含Matlab源码 349期】

    一.BP神经网络语音情感识别简介 0 引言 随着科技的迅速发展, 人机交互显得尤为重要.语音是语言的载体, 是人与人之间交流的重要媒介.相较于其它交流方式而言, 语音交流更加直接.便捷.近年来, 随着 ...

  6. 语音情感识别研究进展综述

    人类之所以能够通过聆听语音捕捉对方情感状态的变化,是因为人脑具备了感知和理解语音信号中的能够反映说话人情感状态的信息(如特殊的语气词.语调的变化等)的能力.自动语音情感识别则是计算机对人类上述情感感知 ...

  7. 语音情感识别(Speech Emotion Recognition)相关资料

    150 万条语音的情感分析 - 云+社区 - 腾讯云 深度学习论文笔记 - 一夜星辰 - 博客园 语音情感 - 博客园 语音情感 - GitHub 语音情感 - Gitee 语音情感识别 · GitH ...

  8. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  9. 【论文阅读】智能设备中基于深度特征的语音情感识别

    Badshah A M , Rahim N , Ullah N , et al. Deep features-based speech emotion recognition for smart af ...

最新文章

  1. 找啊找啊找木偶,图灵奖得主G. Hinton第一篇论文曝光!
  2. 在报文摘要算法MD5中,首先要进行明文分组与填充,其中分组时明文报文摘要按照(42)位分组。【答案】C
  3. asp.net 网页做一个浮动层_【CSS】7 页面布局:浮动
  4. 用python做数据分析,安装包一次到位
  5. WPF代码模板-布局部分
  6. 深入理解C语言的函数调用过程
  7. MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮
  8. CCF - 201703-1 - 分蛋糕
  9. php 文本处理 库,处理文本的PHP库
  10. Failure [INSTALL_FAILED_OLDER_SDK] [每件问题100块]
  11. Error: Can’t resolve ‘./src’ in ‘E:\ASUS\Documents\VSCode files\WebPackProject’
  12. day31(GIL锁)
  13. Asp.NetCore远程自启动、重启、关闭实现
  14. vue组件之间互相传值:兄弟组件通信
  15. zmap扫描mysql_基于zmap 的应用层扫描器 zgrab (一)
  16. 【每周荐书系列】——《认知盈余》
  17. 计算机wifi无法启动不了,电脑wifi启用不了怎么办
  18. etc2 纹理压缩_ETC纹理的紧缩压缩
  19. php redis统计在线人数,每天活跃度
  20. 【实践】人体红外传感器

热门文章

  1. 平面上的点——Point类 (I)
  2. STK地心惯性系(ICRF)与卫星上传感器体坐标系转换
  3. iOS 地图定位 地图
  4. maven 设置jdk版本 使用阿里云的MAVEN
  5. php如何写footer,html5 footer标签怎么用?footer标签的用法实例
  6. 自学编程1个月,就去找工作,月入8000
  7. 【伍佰China Blue的由来】
  8. freepbx 脚本安装方法
  9. C#技术漫谈之垃圾回收机制(GC)
  10. tomcat详细介绍