🚀 CRDNN与CTC/Attention及RNNLM在LibriSpeech上的训练模型
本仓库提供了在SpeechBrain中使用基于LibriSpeech(英文)预训练的端到端系统进行自动语音识别所需的所有工具。为获得更好的体验,建议您进一步了解 SpeechBrain。该模型的性能如下:
发布日期 |
测试集字错率(WER) |
GPU 配置 |
20-05-22 |
3.09 |
1xV100 32GB |
🚀 快速开始
本ASR系统由三个不同但相互关联的模块组成:
- 分词器(unigram):将单词转换为子词单元,并使用LibriSpeech的训练转录数据进行训练。
- 神经语言模型(RNNLM):在包含1000万个单词的完整数据集上进行训练。
- 声学模型(CRDNN + CTC/Attention):CRDNN架构由N个卷积神经网络块组成,在频域上进行归一化和池化操作。然后,双向LSTM连接到最终的DNN,以获得最终的声学表示,并将其输入到CTC和注意力解码器中。
该系统使用采样率为16kHz(单声道)的录音进行训练。调用 transcribe_file 时,代码会根据需要自动对音频进行归一化处理(即重采样 + 单声道选择)。
✨ 主要特性
- 多模块协同:由分词器、神经语言模型和声学模型三个模块协同工作,实现高效的自动语音识别。
- 数据适应性:系统使用特定采样率的录音进行训练,代码能自动对输入音频进行归一化处理。
📦 安装指南
安装SpeechBrain
首先,请使用以下命令安装SpeechBrain:
pip install speechbrain
建议您阅读我们的教程,进一步了解 SpeechBrain。
💻 使用示例
转录您自己的音频文件(英文)
from speechbrain.inference.ASR import EncoderDecoderASR
asr_model = EncoderDecoderASR.from_hparams(source="speechbrain/asr-crdnn-rnnlm-librispeech", savedir="pretrained_models/asr-crdnn-rnnlm-librispeech")
asr_model.transcribe_file('speechbrain/asr-crdnn-rnnlm-librispeech/example.wav')
在GPU上进行推理
若要在GPU上进行推理,在调用 from_hparams
方法时添加 run_opts={"device":"cuda"}
。
批量并行推理
请参考 此Colab笔记本,了解如何使用预训练模型对一批输入句子进行并行转录。
训练
该模型使用SpeechBrain进行训练(提交哈希值:'2abd9f01')。若要从头开始训练,请按以下步骤操作:
- 克隆SpeechBrain仓库:
git clone https://github.com/speechbrain/speechbrain/
- 安装依赖:
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 运行训练脚本:
cd recipes/LibriSpeech/ASR/seq2seq/
python train.py hparams/train_BPE_1000.yaml --data_folder=your_data_folder
您可以在 此处 找到我们的训练结果(模型、日志等)。
局限性
SpeechBrain团队不对该模型在其他数据集上的性能提供任何保证。
📚 详细文档
关于SpeechBrain
- 官网:https://speechbrain.github.io/
- 代码仓库:https://github.com/speechbrain/speechbrain/
- HuggingFace页面:https://huggingface.co/speechbrain/
引用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}
}
🔧 技术细节
本ASR系统由三个不同但相互关联的模块组成:
- 分词器(unigram):将单词转换为子词单元,并使用LibriSpeech的训练转录数据进行训练。这种方式可以更好地处理未登录词,提高模型的泛化能力。
- 神经语言模型(RNNLM):在包含1000万个单词的完整数据集上进行训练。RNNLM能够学习语言的上下文信息,为语音识别提供更准确的语言模型支持。
- 声学模型(CRDNN + CTC/Attention):CRDNN架构由N个卷积神经网络块组成,在频域上进行归一化和池化操作。这些操作可以提取音频的特征,减少数据的维度。然后,双向LSTM连接到最终的DNN,以获得最终的声学表示,并将其输入到CTC和注意力解码器中。CTC解码器可以处理音频和文本之间的对齐问题,而注意力解码器可以根据上下文动态地关注音频的不同部分,提高识别的准确性。
该系统使用采样率为16kHz(单声道)的录音进行训练。调用 transcribe_file 时,代码会根据需要自动对音频进行归一化处理(即重采样 + 单声道选择),以确保输入数据的一致性。
📄 许可证
本项目采用Apache-2.0许可证。