🚀 基於 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)計算資源的支持,在此深表感謝。