🚀 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許可證。