🚀 基于 DVoice 沃洛夫语(无语言模型)训练的带 CTC/注意力机制的 wav2vec 2.0
本仓库提供了在 SpeechBrain 中,基于在 ALFFA 沃洛夫语数据集上预训练的端到端系统进行自动语音识别所需的所有工具。为获得更好的体验,建议您进一步了解 SpeechBrain。
🚀 快速开始
本项目提供了在沃洛夫语数据集上训练的自动语音识别系统。您可以按照以下步骤快速开始使用。
✨ 主要特性
- 本 ASR 系统由两部分组成:使用训练转录数据训练的将单词转换为子词单元的分词器(unigram),以及结合了预训练的 wav2vec 2.0 模型(facebook/wav2vec2-large-xlsr-53)和两个 DNN 层并在沃洛夫语数据集上微调的声学模型(wav2vec2.0 + CTC)。
- 系统使用采样率为 16kHz(单声道)的录音进行训练,代码在调用 transcribe_file 时会自动对音频进行归一化处理(即重采样和单声道选择)。
模型性能
DVoice 版本 |
验证集字符错误率(CER) |
验证集词错误率(WER) |
测试集字符错误率(CER) |
测试集词错误率(WER) |
v2.0 |
4.81 |
16.25 |
4.83 |
16.05 |
📦 安装指南
首先,请使用以下命令安装 transformers 和 SpeechBrain:
pip install speechbrain transformers
建议您阅读 SpeechBrain 教程,进一步了解 SpeechBrain。
💻 使用示例
基础用法
以下是转录沃洛夫语音频文件的示例代码:
from speechbrain.inference.ASR import EncoderASR
asr_model = EncoderASR.from_hparams(source="speechbrain/asr-wav2vec2-dvoice-wolof", savedir="pretrained_models/asr-wav2vec2-dvoice-wolof")
asr_model.transcribe_file('speechbrain/asr-wav2vec2-dvoice-wolof/example_wolof.wav')
高级用法
若要在 GPU 上进行推理,可在调用 from_hparams
方法时添加 run_opts={"device":"cuda"}
:
from speechbrain.inference.ASR import EncoderASR
asr_model = EncoderASR.from_hparams(source="speechbrain/asr-wav2vec2-dvoice-wolof", savedir="pretrained_models/asr-wav2vec2-dvoice-wolof", run_opts={"device":"cuda"})
asr_model.transcribe_file('speechbrain/asr-wav2vec2-dvoice-wolof/example_wolof.wav')
📚 详细文档
训练步骤
若要从头开始训练该模型,请按照以下步骤操作:
- 克隆 SpeechBrain 仓库:
git clone https://github.com/speechbrain/speechbrain/
- 安装依赖:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 运行训练脚本:
cd recipes/DVoice/ASR/CTC
python train_with_wav2vec2.py hparams/train_wol_with_wav2vec.yaml --data_folder=/localscratch/ALFFA_PUBLIC/ASR/WOLOF/data/
局限性
SpeechBrain 团队不保证该模型在其他数据集上的性能。
🔧 技术细节
本 ASR 系统由两个不同但相互关联的模块组成:
- 分词器(unigram):将单词转换为子词单元,并使用训练转录数据进行训练。
- 声学模型(wav2vec2.0 + CTC):结合预训练的 wav2vec 2.0 模型(facebook/wav2vec2-large-xlsr-53)和两个 DNN 层,并在沃洛夫语数据集上进行微调。最终得到的声学表示将输入到 CTC 贪心解码器中。
系统使用采样率为 16kHz(单声道)的录音进行训练。代码在调用 transcribe_file 时会自动对音频进行归一化处理(即重采样和单声道选择)。
📄 许可证
本项目采用 Apache-2.0 许可证。
📖 引用信息
如果您使用了本项目或 SpeechBrain,请引用以下文献:
@misc{SB2021,
author = {Ravanelli, Mirco and Parcollet, Titouan and Rouhe, Aku and Plantinga, Peter and Rastorgueva, Elena and Lugosch, Loren and Dawalatabad, Nauman and Ju-Chieh, Chou and Heba, Abdel and Grondin, Francois and Aris, William and Liao, Chien-Feng and Cornell, Samuele and Yeh, Sung-Lin and Na, Hwidong and Gao, Yan and Fu, Szu-Wei and Subakan, Cem and De Mori, Renato and Bengio, Yoshua },
title = {SpeechBrain},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\\\\url{https://github.com/speechbrain/speechbrain}},
}
🌟 关于相关项目
关于 DVoice
DVoice 是一个社区倡议项目,旨在为非洲低资源语言提供数据和模型,以促进语音技术的应用。由于这些语言的数据匮乏,需要采用特定的方法收集数据。目前采用了两种不同的方法:基于 Mozilla Common Voice 的 DVoice 平台(https://dvoice.ma 和 https://dvoice.sn)用于收集社区的真实录音,以及使用迁移学习技术自动标注从社交媒体获取的录音。DVoice 平台目前管理着 7 种语言,包括本版本中出现的达里贾语(摩洛哥阿拉伯语方言)、沃洛夫语、曼丁哥语、塞雷尔语、富拉语、迪奥拉语和索宁克语。
本项目由 AIOX Labs 和 SI2M 实验室合作开展,共同构建技术的未来。
关于 AIOX Labs
AIOX-Labs 总部位于拉巴特、伦敦和巴黎,致力于运用人工智能技术满足企业的业务需求和数据项目。
- 助力企业发展、优化流程或提升客户体验。
- 业务涵盖多个领域,包括金融科技、工业、零售和消费品等。
- 提供具有坚实算法基础且可根据客户特定需求进行定制的数据产品。
- 团队由人工智能领域的博士和具有坚实科学基础及国际出版物的商业专家组成。
官网:https://www.aiox-labs.com/
关于 SI2M 实验室
信息系统、智能系统和数学建模研究实验室(SI2M)是摩洛哥国家统计与应用经济研究所(INSEA)的一个学术研究实验室。该实验室的研究领域包括信息系统、智能系统、人工智能、决策支持、网络与系统安全以及数学建模。
官网:SI2M Laboratory
关于 SpeechBrain
SpeechBrain 是一个开源的一体化语音工具包,设计简单、极其灵活且用户友好,在多个领域都取得了有竞争力或领先的性能。
官网:https://speechbrain.github.io/
GitHub:https://github.com/speechbrain/speechbrain
🙏 致谢
本研究得到了摩洛哥拉巴特 CNRST 提供的 HPC-MARWAN(www.marwan.ma/hpc)计算资源的支持,在此深表感谢。