🚀 基於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。