基于卷积神经网络和时域金字塔池化的语音情感分析
一、概述
这是最近学习《Speech Emotion Recognition Using Deep
Convolutional Neural Network and Discriminant
Temporal Pyramid Matching》时所做的笔记和代码实现。
论文使用卷积神经网络和时域金字塔匹配来提取和识别语音信号中的情感特征。主要思路如下:对音频信号提取其梅尔谱图,在时域上有重叠地切割成64*64的图像块;将其送入AlexNet结构的CNN中进行分类,提取到特征向量 X X X;对同一个音频样本的向量集 { X i ∣ i = 1 , 2 , ⋯   , n } \{ X_i\mid i=1,2,\cdots,n \} {
Xi∣i=1,2,⋯,n}应用时域金字塔特征池化方法,得到描述整个音频样本的定长特征向量;使用SVM加以分类,完成情感识别。
二、数据集介绍
实验采用的数据集是EMO-DB语音情感数据集,下载地址是 http://emodb.bilderbar.info/download/ 。音频的采样频率16kHz,每一个点用16bit的长度存储。数据集不大,只有535条语音数据,情感的标签在文件名的倒数第二位记录着。如下图,‘F’,‘N’,'W’都是不同的情感标签。
每一条音频文件打开之后,将每点幅值画出来,就是下图。
详细的标签对照如下表,数据集都是以德语单词的首字母标记的,也就是下表的右两列。
letter | emotion(English) | letter | emotion(German) |
---|---|---|---|
A | anger | W | Ärger |
B | boredom | L | Langeweile |
D | disgust | E | Ekel |
F | anxiety/fear | A | Angst |
H | happiness | F | Freude |
S | sadness | T | Trauer |
N | neutral version | N | neutral version |
三、梅尔谱图提取
声谱图(语谱图)、梅尔谱图(Mel Spectrum)、梅尔倒谱(MFCC)是语音信号处理时常用的特征提取手段,在深度学习没有得到应用之前,MFCC等特征和隐马尔科夫模型等传统机器学习模型的结合是语音识别、语音情感识别的常用手段。
声谱图的生成主要用到短时傅里叶变换(STFT,Short Time Fourier Transform)。假设有一段时域上的语音信号 s ( t ) s(t) s(t),在时域上将其分割成重叠或不重叠的 i i i个片段 s ′ ( t ) , t ∈ [ t i , t i + 1 ] s'(t),t\in [t_i,t_{i+1}] s′(t),t∈[ti,ti+1],在每个片段 s ′ ( t ) s'(t) s′(t)上做傅里叶变换,得到频域信号 S ( j ω ) S(j\omega) S(jω)。对 S ( j ω ) S(j\omega) S(jω)划分为 N N N段量化,就得到一个 N N N维向量,对应到数字图像上,就是用敏感不同的一列像素点来表示 s ′ ( t ) s'(t) s′(t)的幅频响应了。
将 i i i个片段的 N N N维向量沿时域拼接起来,就得到了整段音频的声谱图。声谱图的横向表示时间维度,纵向表示频率维度,体现了视频分析的思想,从图中就能读出什么时间声音的高频分量多,什么时候音频的低频段强度高。
梅尔谱图是在声谱图的基础上用一组符合人类听觉系统频响特性的滤波器组进行滤波处理。这组滤波器就叫梅尔滤波器组,这组滤波器在频域上呈现低频段密集(滤波器多),高频段稀疏(滤波器少),低频段幅频响应大,高频段幅频响应小。人类的听觉系统也符合这样的特性,低频段灵敏,高频段不灵敏。用这样的滤波器组对声谱图作进一步处理,是将“客观存在”的声音形式转换成“人耳听到”的声音形式,因为不论是