基于MFCC和CNN的语音情感识别
1 介绍
语音情绪识别是音频分类的一个最重要的应用场景,在社会中的很多领域,例如机器人制造,自动化,人机交互、安全、医疗、驾驶和通信等,情绪识别都具有很高的实用价值。
我们今天要讲解的案例——语音情感识别在近年来引起了学术界和工业界的研究热潮。因为情绪作为我们在日常交流中非常重要的表达方式之一,在无法获取说话人面部表情的情况下,音频就成为了理解语言情感含义中不可或缺的一部分。
本文利用飞桨框架实现的ResNet18模型,实现6种语音情绪的识别,让大家亲自感受音频特征提取与音频情绪识别的魅力。
2 数据集介绍
本文使用开源数据集,该数据集包含生气、恐惧、开心、正常、伤心、惊讶;6类数据,每类数据50个样本,共300条数据。具体情况如表1所示。
表1 数据集详细信息
类别 | 样本个数 |
---|---|
生气 | 50 |
恐惧 | 50 |
开心 | 50 |
正常 | 50 |
伤心 | 50 |
惊讶 | 50 |
3 数据预处理
数据集中数据为.wav格式的音频文件,本文使用**librosa库(版本0.9.2)**对音频文件进行处理,使用MFCC算法提取特征并转化为图片形式保存。
3.1 解压数据集
unzip -o "data/data221024/wav.zip" -d ./wav
3.2 数据预处理
本文使用的ResNet18模型对转化后的图片进行分类,所以需要对图片尺寸进行处理,本文将生成的图片统一缩放到224*224大小。
3.2.1 wav转jpg图片
from data_preprocess import wav2img,image_resize,dataset_partition
# wav转jpg
wav2img()