语音情感识别探讨

本文探讨了语音情感识别技术的关键挑战及应用,包括特征提取的方法、情感分类的技术难点以及如何通过结合多种特征提升识别准确率。

简介

语音识别的发展可以说是非常成熟,但距离我们的目标——自然的人机交互,还差的很远,这其中的一个原因就是现在机器还无法理解我们说话时的情感。这是研究语音情感识别的一个重要的motivation。

El Ayadi M, Kamel M S, Karray F. Survey on speech emotion recognition: Features, classification schemes, and databases[J]. Pattern Recognition, 2011, 44(3): 572-587.

情感识别的用处

  • 自然的人机交互(natural man-machine interaction)。
  • 车载系统(in-car board system)。用于检测司机的精神状况以确保驾驶安全。
  • 。。。

情感识别面临的挑战

  1. 什么样的特征在分辨情感中最有用。
  2. 一个发音中可以会包含多种感情,不同情感的边界也难以界定,哪个情绪是当前主导的情绪?
  3. 表达情感是一个个性化极强的事情,根据个人,环境甚至文化差异都很大。
  4. 情绪可能持续很长时间,但期间也会有快速变化的情绪,情感识别系统是检测长期的情绪还是短时的情绪了(比如被炒鱿鱼了,会悲伤很久,但这期间吃了顿好吃的饭,虽然会开心,但人还处在伤心的状态中,那么该判定为悲伤还是开心呢)。
  5. 情感本身都难以明确的定义。

情感

虽然情感本身十分复杂,但一个被广泛认同的模型是讲情感划分为两个维度:activation 和 valence。activation指得是表达这个情感需要的能量。比较强烈的情感比如愤怒,喜悦,恐惧。伴随着这类感情可能会有心跳加速,血压升高等等,同时人的语速会变快,音高变高。相反比较舒缓的请看比如忧伤,语速可能会降低,高频会减少。而activation类似的感情,比如愤怒与喜悦,则用valence来加以区分。用何种feature来描述valence尚无定论。因此,在情感识别系统中,强烈的感情与舒缓的感情很好区分,而区分不同类别的情感则还是一个挑战。

语音情感识别中的特征

特征提取是模式识别任务中最重要的一个环节之一,在语音情感识别的任务中亦然。我们会面对四个主要的问题

  1. 特征提取的作用域。是对音频进行分帧(frame)再提取特征,或是对全局进行提取?
  2. 提取什么样的特征?
  3. 是否要进行前处理与后处理?比如移除静音的部分。
  4. 要不要结合其他的特征?比如语言模型或者面部表情。

对以上四个问题的分析

  1. 局部特征还是全局特征

    全局特征在分类的准确率上往往比局部特征表现的要好,同时耗时也更少(特征量较少)。然而全局特征也有许多缺点:

    1. 只在分类高兴奋度的情感(high-arousal emotions,也是我们之前说的activation较高的情感)中比较有效,比如在分类anger和joy时,全局特征就会失效。
    2. 全局特征会丢失语音的短时信息(temporal information)。
    3. 当使用较为复杂的分类器(HMM,SVM等)时,全局变量会因为特征较少而无法进行有效的训练。

    因此在复杂的模型中使用局部特征,模型的准确率更好。

    还有一种做法是对语音信号根据音素进行分段而不是分帧。研究显示了把分段的特征和全局特征相结合可以一定程度提高是别的准确率。

  2. 提取什么样的特征

    我们可以把语音特征划分为四类:

    1. Continuous speech features 连续语音特征
      • pitch-related features
      • formants features
      • energy-related features
      • timing features
      • articulation features
        常用的有F0,Energy,Duration,Formants。另外在特征的提取中,除了使用特征还对特征进行一些转换,比如平均,最大最小等。在INTERSPEECH 2009 中有个图表就很清晰的展示了这一点。
        1532502050.png
        对于每一帧信号,我们提取16个特征和它们的delta,并对这32个特征进行右边的12种变换,得到384维((16x2)x12)的特征向量(每一帧)。
    2. Voice quality features
      • voice quality
      • harsh
      • tense
      • breathy
    3. Spectral-based speech features
      • LPC
      • MFCC
      • LFPC
    4. TEO-based features

    小结:Continuous speech features 用来检测high-arousal和low-arousal的情感;频谱特征比如MFCC用来做N-way classification的问题,TEO-based features 用于压力检测;

  3. 语音处理

    • 前处理
      • pre-emphasis filter, H(z)=10.97z1H(z)=1−0.97z−1: to equalize the effect of the propagation of speech throungh air.
      • overlapped frames: to smooth the extracted contours.
      • Hamming window: to reduce ripples in the spectrum of the speech spectrum.
      • slient intervals: 语音中的静音间隔也包含情感信息,通常会保留下来。
    • 特征提取
    • 后处理
      • 正规化 feature normalization
        • x^=xμσx^=x−μσ
        • 重要!但由于方差中包含许多情感信息,normalize后会消除这些特征,要考虑到这一点。
      • 降维
        • feature selection:找到分类效果最好的子特征。
        • feature extraction:对原始特征进行mapping到另一空间,从而达到降维效果。
        • -
  4. 声学特征与其他特征结合

    • 语言信息(linguistic information)
    • 视频信息

分类方法

都是些大家熟悉的手法。

  • HMM:效果好(在语音情感识别的任务里,正确率甚至可能超过人类)
  • GMM:比HMM高效,但不能利用短时特征
  • Neural networks:emmm。。大家都在用
  • SVM
  • Multiple classifer system
    这个比较有趣,可以把情感识别分几步来做,比如先分类 high arousal 和 low arousal 的情感,再进行子类别的分类可以看这个图。
    12324.png
概要:   DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用禁用、重新启动、更新、删除查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。   您可以将 DevCon 用于 Windows 2000 、Windows XPWindows vista。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。   下载:http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe 用法及参数说明:   devcon.exe [-r] [-m:\\] [...]   -r 如果指定它,在命令完成后若需要则重新启动计算机。    是目标计算机的名称。    是将要执行的命令(如下所示)。   ... 是命令需要的一个或多个参数。   要获取关于某一特定命令的帮助,请键入:devcon.exe help   classfilter 允许修改类别筛选程序。   classes 列出所有设备安装类别。   disable 禁用与指定的硬件或实例 ID 匹配的设备。   driverfiles 列出针对设备安装的驱动程序文件。   drivernodes 列出设备的所有驱动程序节点。   enable 启用与指定的硬件或 实例 ID 匹配的设备。   find 查找与指定的硬件或 实例 ID 匹配的设备。   findall 查找设备,包括那些未显示的设备。   help 显示此信息。   hwids 列出设备的硬件 ID。   install 手动安装设备。   listclass 列出某一安装类别的所有设备。   reboot 重新启动本地计算机。   remove 删除与特定的硬件或 实例 ID 匹配的设备。   rescan 扫描以发现新的硬件。   resources 列出设备的硬件资源。   restart 重新启动与特定的硬件或 实例 ID 匹配的设备。   stack 列出预期的设备驱动程序堆栈。   status 列出设备的运行状态。   update 手动更新设备。   UpdateNI 手动更新设备,无用户提示   SetHwID 添加、删除更改根枚举设备的硬件 ID 的顺序。 示例:   devcon -m:\\test find pci\* 列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)   devcon -r install Windows directory\Inf\Netloop.inf *MSLOOP 安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重启计算机。   devcon classes 列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)描述性名称(例如,“通用串行总线控制器”)。 禁用启用网卡的步骤:   1.用devcon hwids PCI*命令得到所有以PCI开头的设备。这时会列出很多设备,那么哪个才是网卡对应的呢?   2.打开设备管理器,展开网络适配器,找到网卡的名称,然后记住到刚才得到的列表中找对应的Name,然后你会在下面看到好几个ID,随便挑一个就行   3.用devcon disable "PCI\VEN_11AB&DEV_4380&SUBSYS_301B17AA&REV_10"禁用网卡(启用的话讲disable换成enable就行了)   4.其实用PCI开头得到的几组设备中一般第一个就是网卡设备 sysdzw 16:01 2010-11-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值