language:
- en
thumbnail:
tags:
- 音频分类
- speechbrain
- 嵌入向量
- 口音
- 识别
- pytorch
- ECAPA-TDNN
- TDNN
- CommonAccent
license: "mit"
datasets:
- CommonVoice
metrics:
- 准确率
widget:
- example_title: 非洲英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/african_1.wav
- example_title: 澳大利亚英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/australia_1.wav
- example_title: 印度英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/indian_1.wav
- example_title: 爱尔兰英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/ireland_1.wav
- example_title: 马来西亚英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/malaysia_1.wav
- example_title: 加拿大英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/canada_1.wav
- example_title: 南大西洋英语
src: https://huggingface.co/Jzuluaga/accent-id-commonaccent_ecapa/resolve/main/data/southatlantic_1.wav
基于ECAPA-TDNN嵌入向量和CommonAccent数据集的语音口音识别
摘要:带口音的语音识别仍然是自动语音识别(ASR)系统中的一个主要问题。我们通过Emphasized Channel Attention, Propagation and Aggregation Time Delay Neural Network(ECAPA-TDNN)架构来分类带口音的英语语音,该架构已在多种语音任务中表现良好。提出了三种模型:一种从头开始训练,另外两种模型(一种使用数据增强,另一种为基线模型)从speechbrain/spkrec-ecapa-voxceleb(VoxCeleb)的检查点进行微调。我们的结果表明,使用数据增强微调的模型效果最佳。大多数误分类是由于口音相似性(如美国和加拿大口音)而结构化和预期的。我们还通过降维技术t-SNE探索了嵌入向量的内部分类,发现存在基于语音学相似性的聚类。未来的工作中,我们希望探索在建议的框架中实现这种口音分类系统,通过使其更包容带口音的语音来提高ASR性能。
该存储库提供了使用SpeechBrain从语音录音中执行口音识别的所有必要工具。
该系统使用在CommonAccent数据集(16种口音)上预训练的模型。该系统基于位于此处的CommonLanguage配方:https://github.com/speechbrain/speechbrain/tree/develop/recipes/CommonLanguage
提供的系统可以从英语(EN)的短语音录音中识别以下16种口音:
非洲
澳大利亚
百慕大
加拿大
英格兰
香港
印度
爱尔兰
马来西亚
新西兰
菲律宾
苏格兰
新加坡
南大西洋
美国
威尔士
Github存储库链接:https://github.com/JuanPZuluaga/accent-recog-slt2022
为了更好的体验,我们鼓励您了解更多关于
SpeechBrain。给定模型在测试集上的性能为:
发布日期(日/月/年) |
准确率(%) |
01-08-2023(本模型) |
87 |
01-08-2023(本模型,未使用数据增强训练) |
85 |
01-08-2023(本模型,从头开始训练,无参数迁移) |
82 |
流程描述
该系统由ECAPA模型与统计池化相结合组成。在顶部应用了一个使用分类交叉熵损失训练的分类器。
系统使用16kHz(单声道)采样的录音进行训练。
代码在调用classify_file时会自动对音频进行归一化处理(即重采样+单声道选择)。如果使用encode_batch和classify_batch,请确保输入张量符合预期的采样率。
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain:
pip install speechbrain
请注意,我们鼓励您阅读我们的教程并了解更多关于
SpeechBrain的信息。
从语音录音中执行口音识别
import torchaudio
from speechbrain.pretrained import EncoderClassifier
classifier = EncoderClassifier.from_hparams(source="Jzuluaga/accent-id-commonaccent_ecapa", savedir="pretrained_models/accent-id-commonaccent_ecapa")
out_prob, score, index, text_lab = classifier.classify_file('Jzuluaga/accent-id-commonaccent_ecapa/data/ireland_1.wav')
print(text_lab)
out_prob, score, index, text_lab = classifier.classify_file('Jzuluaga/accent-id-commonaccent_ecapa/data/malaysia_1.wav')
print(text_lab)
GPU推理
要在GPU上执行推理,在调用from_hparams
方法时添加run_opts={"device":"cuda"}
。
训练
该模型使用SpeechBrain进行训练。
要从头开始训练,请按照以下步骤操作:
- 克隆SpeechBrain:
git clone https://github.com/speechbrain/speechbrain/
- 安装:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 克隆我们的存储库https://github.com/JuanPZuluaga/accent-recog-slt2022:
git clone https://github.com/JuanPZuluaga/accent-recog-slt2022
cd CommonAccent/accent_id
python train.py hparams/train_ecapa_tdnn.yaml
您可以在本存储库的文件和版本
页面找到我们的训练结果(模型、日志等)。
限制
SpeechBrain团队不保证该模型在其他数据集上的性能。