🚀 基于XLS - R的带有Open Subtitles 5-gram语言模型的CTC模型
本模型主要用于自动语音识别,能够将荷兰语或佛兰芒语的口语准确转录为文本(无标点),在相关评估集上取得了不错的成绩。
🚀 快速开始
使用此模型进行推理时,需要注意以下安装和使用要求:
- 评估此模型除了需要使用
pip
安装pipy - kenlm
和pyctcdecode
外,还需要执行apt install libhunspell - dev
并使用pip
安装hunspell
(详见install_requirements.sh
)。
- 模型的分块长度和步幅分别优化为
12s
和2s
(详见eval.sh
)。
✨ 主要特性
- 基于[facebook/wav2vec2 - xls - r - 2b - 22 - to - 16](https://huggingface.co/facebook/wav2vec2 - xls - r - 2b - 22 - to - 16)模型进行微调。
- 在[CGN数据集](https://taalmaterialen.ivdnt.org/download/tstc - corpus - gesproken - nederlands/)和MOZILLA - FOUNDATION/COMMON_VOICE_8_0 - NL数据集上训练。
- 添加了基于Open Subtitles荷兰语语料库的大型5 - gram语言模型,提高识别准确率。
- 使用
hunspell
处理拼写错误,能纠正一些常见的拼写问题。
📦 安装指南
评估此模型需要以下额外安装步骤:
- 执行
apt install libhunspell - dev
。
- 使用
pip
安装pipy - kenlm
、pyctcdecode
和hunspell
(详见install_requirements.sh
)。
📚 详细文档
模型描述
模型接收16kHz的声音输入,使用带有48个字母的Wav2Vec2ForCTC解码器输出每帧的字母转录概率。为提高准确性,使用基于pyctcdecode
的束搜索解码器,根据在Open Subtitles荷兰语语料库上训练的5 - gram语言模型对最有希望的对齐进行重新排序。为进一步处理拼写错误,使用hunspell
为不在语言模型一元词表中的单词提供替代拼写,然后根据上述训练的语言模型对这些替代项进行重新排序,并根据替代项与识别单词之间的编辑距离施加惩罚。
预期用途和限制
此模型可用于将荷兰语或佛兰芒语口语转录为文本(无标点)。
训练和评估数据
模型的训练过程如下:
- 用[Facebook的2B参数模型](facebook/wav2vec2 - xls - r - 2b - 22 - to - 16)初始化。
- 在[
cv8/nl
数据集](https://huggingface.co/datasets/mozilla - foundation/common_voice_8_0)上训练5
个epoch(6000次迭代,批次大小为32)。
- 在[
cgn
数据集](https://taalmaterialen.ivdnt.org/download/tstc - corpus - gesproken - nederlands/)上训练1
个epoch(36000次迭代,批次大小为32)。
- 再次在[
cv8/nl
数据集](https://huggingface.co/datasets/mozilla - foundation/common_voice_8_0)上训练5
个epoch(6000次迭代,批次大小为32)。
框架版本
- Transformers 4.16.0
- Pytorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
🔧 技术细节
模型评估结果
任务 |
数据集 |
测试WER |
测试CER |
自动语音识别 |
Common Voice 8(nl ) |
3.93 |
1.22 |
自动语音识别 |
Robust Speech Event - Dev Data(nl ) |
16.35 |
9.64 |
自动语音识别 |
Robust Speech Event - Test Data(nl ) |
15.81 |
- |
注意事项
- “Robust Speech Event”集不包含清理后的转录文本,其WER/CER被高估。例如,开发集中的
2014
会被识别为tweeduizend veertien
,计为3个错误;开发集中一些单词周围的单引号会导致匹配失败;最终转录中一些语音单词被移除。可以通过此工具对比[预测结果](https://huggingface.co/FremyCompany/xls - r - 2b - nl - v2_lm - 5gram - os2_hunspell/blob/main/log_speech - recognition - community - v2_dev_data_nl_validation_predictions.txt)和[目标结果](https://huggingface.co/FremyCompany/xls - r - 2b - nl - v2_lm - 5gram - os2_hunspell/blob/main/log_speech - recognition - community - v2_dev_data_nl_validation_targets.txt)。
📄 许可证
文档未提及相关许可证信息。
⚠️ 重要提示
网站上未启用hunspell
拼写错误修复器,返回的是原始的CTC + LM结果。Hunspell重排序仅在eval.py
解码脚本中可用。若要获得最佳结果,请在本地使用模型进行推理时使用该文件中的代码。
⚠️ 重要提示
评估此模型除了需要使用pip
安装pipy - kenlm
和pyctcdecode
外,还需要执行apt install libhunspell - dev
并使用pip
安装hunspell
(详见install_requirements.sh
);此外,模型的分块长度和步幅分别优化为12s
和2s
(详见eval.sh
)。
💡 使用建议
如果你考虑在生产环境中使用此(或其他)模型,但希望有针对特定用例(使用文本和/或标记语音)微调的模型,请[联系我们的团队](https://www.ugent.be/ea/idlab/en/research/semantic - intelligence/speech - and - audio - processing.htm)。此模型由François REMY (twitter)和[Geoffroy VANDERREYDT](https://be.linkedin.com/in/geoffroy - vanderreydt - a4421460)在[Robust Speech Recognition挑战](https://discuss.huggingface.co/t/open - to - the - community - robust - speech - recognition - challenge/13614)活动中开发。感谢[OVH](https://www.ovhcloud.com/en/public - cloud/ai - training/)提供V100S GPU。