前言

本博客将详细介绍基于深度学习的语音情感识别的流程及方法,之后讲针对该方法做一篇基于Pytorch的语音情感识别的实现方式。

数据集

数据集的选择

限于篇幅,具体数据集内容不再详细介绍。
推荐的语音情绪识别的数据集:

  1. Emodb:来自德国的语音数据集,包含7种情绪。
  2. SAVEE:The Surrey Audio-Visual Expressed Emotion。来自英国的语言数据集,包含7种情绪。
  3. EMOVO:来自意大利的语音数据集,包含7种情绪。
  4. BTNRH:来自美国的语音数据集,包含5种情绪。
    具体的数据集下载及来源在此不再列出,如有需要,可留言。

数据集的预处理

数据处理步骤:
1.利用FIR滤波器对其进行滤波,使得频率为 16 kHZ
2.把所有的音频数据要转化为频谱图。(用纵轴来表示频率,横轴表示时间,energy or intensity 可以由图片的黑暗程度或颜色来编码)
且宽带语谱图的时域分辨率高、可以看见语谱图上的纵的线条;窄带语谱图的频域分辨率高、语谱图上横的线条明显。我们采用宽带语谱图。(原因还不是很懂,先这样用)
为了实现转化,我们需要将Hamming windows 设置长度5 ms with 4.4 ms overlap,DFT points=512
3.另外,我们将频谱图中大于4 kHZ的部分也丢掉了,因为在正常交流中,4000 Hz以内的频率已经足够我们进行对情绪的分类。而且还可以提升我们算法的性能。

训练和测试集

训练和测试集的选取步骤:
1.将数据进行5倍交叉验证,分成五部分。
2.数据集的第一部分被用作测试集,其它部分被用作训练集。及按照8/2比例进行训练集和测试集的分类。
3.之后,数据集的第二部分被用作测试集,其它部分被用作训练集。依次循环。
4.为了防止过拟合与数据库过小的不利影响,我们的对数据进行了增强通过添加具有+15(SNR)信噪比的white Gaussian noise(高斯白噪声)到每个音频文件中 either 10 times or 20 times.
5.在训练时我们使用了增强后的数据,而在进行测试时我们仍使用原数据。
6.最终,我们的数据被编码成One-hot vectors One hot vectors讲解
7.训练epochs 在100-4000之间

模型

Modle讲解

未完待续……

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐