🚀 CommonAccent:基于CommonVoice探索用于口音分类的大型声学预训练模型
使用XLSR模型的英语口音分类器
本项目旨在解决自动语音识别(ASR)中带口音语音识别的难题,通过ECAPA - TDNN和Wav2Vec 2.0/XLSR架构进行多语言口音分类。利用SpeechBrain工具包,基于Common Voice数据集开展研究,在英语口音分类上取得了高达95%的准确率。
🚀 快速开始
本仓库提供了使用 SpeechBrain 从语音记录中进行口音识别的所有必要工具。系统使用了在CommonAccent英语数据集(16种口音)上预训练的模型,基于位于此处的CommonLanguage配方:https://github.com/speechbrain/speechbrain/tree/develop/recipes/CommonLanguage 。
提供的系统可以从英语(EN)的短语音记录中识别以下16种口音:
- us
- england
- australia
- indian
- canada
- bermuda
- scotland
- african
- ireland
- newzealand
- wales
- malaysia
- philippines
- singapore
- hongkong
- southatlandtic
Github仓库链接:https://github.com/JuanPZuluaga/accent-recog-slt2022
⚠️ 重要提示
由于模型与当前SpeechBrain接口不兼容,我们无法提供推理API。请按照“从语音记录中进行口音识别”中的步骤使用此意大利口音识别模型。
💡 使用建议
为了获得更好的体验,建议您进一步了解 SpeechBrain。
✨ 主要特性
- 多语言口音分类:通过ECAPA - TDNN和Wav2Vec 2.0/XLSR架构,实现多语言口音分类。
- 高准确率:在英语口音分类上达到了高达95%的准确率。
- 基于Common Voice数据集:使用Common Voice 7.0(英语)和Common Voice 11.0(意大利语、德语和西班牙语)进行训练。
📦 安装指南
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain:
pip install speechbrain
建议您阅读相关教程,进一步了解 SpeechBrain。
💻 使用示例
基础用法
以下是从语音记录中进行口音识别的示例代码:
import torchaudio
from speechbrain.pretrained.interfaces import foreign_class
classifier = foreign_class(source="Jzuluaga/accent-id-commonaccent_xlsr-en-english", pymodule_file="custom_interface.py", classname="CustomEncoderWav2vec2Classifier")
out_prob, score, index, text_lab = classifier.classify_file('Jzuluaga/accent-id-commonaccent_xlsr-en-english/data/us.wav')
print(text_lab)
out_prob, score, index, text_lab = classifier.classify_file('Jzuluaga/accent-id-commonaccent_xlsr-en-english/data/philippines.wav')
print(text_lab)
高级用法
在GPU上进行推理
若要在GPU上进行推理,在调用 from_hparams
方法时添加 run_opts={"device":"cuda"}
。
📚 详细文档
管道描述
该系统由一个微调的XLSR模型和统计池化组成,在此基础上应用了一个使用NLL损失训练的分类器。
系统使用采样率为16kHz(单声道)的录音进行训练。调用 classify_file 时,代码会自动对音频进行归一化处理(即重采样 + 单声道选择)。如果使用 encode_batch 和 classify_batch,请确保输入张量符合预期的采样率。
训练
模型使用SpeechBrain进行训练。若要从头开始训练,请按照以下步骤操作:
- 克隆SpeechBrain:
git clone https://github.com/speechbrain/speechbrain/
- 安装:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 克隆我们的仓库:
git clone https://github.com/JuanPZuluaga/accent-recog-slt2022
cd CommonAccent/accent_id
python train_w2v2.py hparams/train_w2v2.yaml
您可以在本仓库的 文件和版本
页面找到训练结果(模型、日志等)。
局限性
SpeechBrain团队不保证该模型在其他数据集上的性能。
🔧 技术细节
摘要
尽管自动语音识别(ASR)最近取得了进展,但带口音语音的识别仍然是一个主要问题。为了创建更具包容性的ASR系统,研究表明,将口音信息作为更大ASR框架的一部分进行整合,可以减少带口音语音的识别错误。我们通过ECAPA - TDNN和Wav2Vec 2.0/XLSR架构解决多语言口音分类问题,这些架构已被证明在各种与语音相关的下游任务中表现良好。我们介绍了一个简单易懂的、与SpeechBrain工具包对齐的口音分类配方,该配方基于Common Voice 7.0(英语)和Common Voice 11.0(意大利语、德语和西班牙语)。此外,我们在英语口音分类方面建立了新的技术水平,准确率高达95%。我们还通过t - SNE研究了Wav2Vev 2.0嵌入的内部分类,发现存在基于语音相似性的聚类现象。
📄 许可证
本项目采用MIT许可证。
📖 引用说明
引用本项目
如果您觉得本项目有用,请按以下方式引用:
@article{zuluaga2023commonaccent,
title={CommonAccent: Exploring Large Acoustic Pretrained Models for Accent Classification Based on Common Voice},
author={Zuluaga-Gomez, Juan and Ahmed, Sara and Visockas, Danielius and Subakan, Cem},
journal={Interspeech 2023},
url={https://arxiv.org/abs/2305.18283},
year={2023}
}
引用XLSR模型
@article{conneau2020unsupervised,
title={Unsupervised cross-lingual representation learning for speech recognition},
author={Conneau, Alexis and Baevski, Alexei and Collobert, Ronan and Mohamed, Abdelrahman and Auli, Michael},
journal={arXiv preprint arXiv:2006.13979},
year={2020}
}
引用SpeechBrain
如果您在研究或业务中使用了SpeechBrain,请进行引用:
@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}