语言: "英文"
缩略图:
标签:
- 音频分类
- 语音大脑
- 情感
- 识别
- wav2vec2
- PyTorch
许可证: "Apache-2.0"
数据集:
- IEMOCAP
评估指标:
- 准确率
推理: 不支持
基于IEMOCAP的wav2vec2情感识别
本仓库提供了使用SpeechBrain进行情感识别所需的所有工具,采用微调的wav2vec2(基础)模型。该模型在IEMOCAP训练数据上进行训练。
为了获得更好的体验,我们建议您了解更多关于SpeechBrain的信息。模型在IEMOCAP测试集上的性能如下:
发布日期 |
准确率(%) |
2021年10月19日 |
78.7 (平均: 75.3) |
流程描述
该系统由wav2vec2模型构成,结合了卷积和残差块。通过注意力统计池化提取嵌入特征,采用加性边际Softmax损失进行训练。说话人验证通过计算说话人嵌入之间的余弦距离完成。
系统训练使用的录音采样率为16kHz(单声道)。在调用classify_file时,代码会自动对音频进行标准化处理(如重采样和单声道选择)。
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain的开发版本:
pip install git+https://github.com/speechbrain/speechbrain.git@develop
请注意,我们建议您阅读我们的教程,了解更多关于SpeechBrain的信息。
进行情感识别
本HF仓库使用外部py_module_file=custom.py
作为自定义预测器类。我们利用speechbrain.pretrained.interfaces
中的foreign_class
函数加载自定义模型。
from speechbrain.inference.interfaces import foreign_class
classifier = foreign_class(source="speechbrain/emotion-recognition-wav2vec2-IEMOCAP", pymodule_file="custom_interface.py", classname="CustomEncoderWav2vec2Classifier")
out_prob, score, index, text_lab = classifier.classify_file("speechbrain/emotion-recognition-wav2vec2-IEMOCAP/anger.wav")
print(text_lab)
预测张量将包含一个元组(嵌入向量, 类别ID, 标签名称)。
GPU推理
若要在GPU上进行推理,调用from_hparams
方法时添加run_opts={"device":"cuda"}
参数。
训练
该模型使用SpeechBrain(提交号aa018540)训练。从头开始训练的步骤如下:
- 克隆SpeechBrain:
git clone https://github.com/speechbrain/speechbrain/
- 安装:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 运行训练:
cd recipes/IEMOCAP/emotion_recognition
python train_with_wav2vec2.py hparams/train_with_wav2vec2.yaml --data_folder=您的数据目录
训练结果(模型、日志等)可在此处查看。
限制
SpeechBrain团队不对该模型在其他数据集上的表现提供任何保证。
引用SpeechBrain
如果您在研究中使用了SpeechBrain,请引用我们。
@misc{speechbrain,
title={{SpeechBrain}: 通用语音工具包},
author={Mirco Ravanelli等},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
关于SpeechBrain
- 官网: https://speechbrain.github.io/
- 代码库: https://github.com/speechbrain/speechbrain/
- HuggingFace: https://huggingface.co/speechbrain/