简介
icefall项目包含了使用k2-fsa和lhotse的各种数据集的语音相关配方。
您可以使用sherpa、sherpa-ncnn或sherpa-onnx来部署icefall中的模型;这些框架也支持icefall之外的模型;更多详情请参阅各自的文档。
您可以通过访问这个huggingface space,在浏览器中试用预训练模型,无需下载或安装任何东西。更多详情请参阅文档。
安装
请参阅文档进行安装。
配方
更多详情请参阅文档。
ASR: 自动语音识别
支持的数据集
-
[yesno][yesno]
-
[Aidatatang_200zh][aidatatang_200zh]
-
[Aishell][aishell]
-
[Aishell2][aishell2]
-
[Aishell4][aishell4]
-
[Alimeeting][alimeeting]
-
[AMI][ami]
-
[CommonVoice][commonvoice]
-
[Corpus of Spontaneous Japanese][csj]
-
[GigaSpeech][gigaspeech]
-
[LibriCSS][libricss]
-
[LibriSpeech][librispeech]
-
[Libriheavy][libriheavy]
-
[Multi-Dialect Broadcast News Arabic Speech Recognition][mgb2]
-
[PeopleSpeech][peoplespeech]
-
[SPGISpeech][spgispeech]
-
[Switchboard][swbd]
-
[TIMIT][timit]
-
[TED-LIUM3][tedlium3]
-
[TAL_CSASR][tal_csasr]
-
[Voxpopuli][voxpopuli]
-
[XBMU-AMDO31][xbmu-amdo31]
-
[WenetSpeech][wenetspeech]
未来将会添加更多数据集。
支持的模型
[LibriSpeech][librispeech]配方支持最全面的模型集合,欢迎您尝试。
CTC
- TDNN LSTM CTC
- Conformer CTC
- Zipformer CTC
MMI
- Conformer MMI
- Zipformer MMI
Transducer
- 基于Conformer的编码器
- 基于LSTM的编码器
- 基于Zipformer的编码器
- 基于LSTM的预测器
- 无状态预测器
Whisper
- OpenAI Whisper(我们支持在AiShell-1上进行微调)
如果您愿意为icefall做出贡献,请参阅contributing以获取更多详情。
我们想在此强调一些配方的性能。
[yesno][yesno]
这是icefall
中最简单的ASR配方,可以在CPU上运行。
训练不到30秒,就能得到以下WER:
[test_set] %WER 0.42% [1 / 240, 0 ins, 1 del, 0 sub ]
[LibriSpeech][librispeech]
请查看RESULTS.md 获取最新结果。
Conformer CTC
test-clean | test-other | |
---|---|---|
WER | 2.42 | 5.73 |
TDNN LSTM CTC
test-clean | test-other | |
---|---|---|
WER | 6.59 | 17.69 |
Transducer (Conformer编码器 + LSTM预测器)
test-clean | test-other | |
---|---|---|
greedy_search | 3.07 | 7.51 |
Transducer (Conformer编码器 + 无状态预测器)
test-clean | test-other | |
---|---|---|
modified_beam_search (beam_size=4 ) | 2.56 | 6.27 |
Transducer (Zipformer编码器 + 无状态预测器)
WER(除非另有说明,否则使用modified_beam_search beam_size=4
)
- LibriSpeech-960小时
编码器 | 参数数量 | test-clean | test-other | 训练轮数 | 设备 |
---|---|---|---|---|---|
Zipformer | 65.5M | 2.21 | 4.79 | 50 | 4 32G-V100 |
Zipformer-small | 23.2M | 2.42 | 5.73 | 50 | 2 32G-V100 |
Zipformer-large | 148.4M | 2.06 | 4.63 | 50 | 4 32G-V100 |
Zipformer-large | 148.4M | 2.00 | 4.38 | 174 | 8 80G-A100 |
- LibriSpeech-960小时 + GigaSpeech
编码器 | 参数数量 | test-clean | test-other |
---|---|---|---|
Zipformer | 65.5M | 1.78 | 4.08 |
- LibriSpeech-960小时 + GigaSpeech + CommonVoice | 编码器 | 参数量 | test-clean | test-other | |--------|--------|------------|------------| | Zipformer | 65.5M | 1.90 | 3.98 |
[GigaSpeech][gigaspeech]
Conformer CTC
开发集 | 测试集 | |
---|---|---|
词错率 | 10.47 | 10.58 |
Transducer (pruned_transducer_stateless2)
Conformer 编码器 + 无状态预测器 + k2 剪枝 RNN-T 损失
开发集 | 测试集 | |
---|---|---|
贪婪搜索 | 10.51 | 10.73 |
快速束搜索 | 10.50 | 10.69 |
改进束搜索 | 10.40 | 10.51 |
Transducer (Zipformer 编码器 + 无状态预测器)
开发集 | 测试集 | |
---|---|---|
贪婪搜索 | 10.31 | 10.50 |
快速束搜索 | 10.26 | 10.48 |
改进束搜索 | 10.25 | 10.38 |
[Aishell][aishell]
TDNN LSTM CTC
测试集 | |
---|---|
字错率 | 10.16 |
Transducer (Conformer 编码器 + 无状态预测器)
测试集 | |
---|---|
字错率 | 4.38 |
Transducer (Zipformer 编码器 + 无状态预测器)
词错率(改进束搜索 beam_size=4
)
编码器 | 参数量 | 开发集 | 测试集 | 训练轮数 |
---|---|---|---|---|
Zipformer | 73.4M | 4.13 | 4.40 | 55 |
Zipformer-small | 30.2M | 4.40 | 4.67 | 55 |
Zipformer-large | 157.3M | 4.03 | 4.28 | 56 |
[Aishell4][aishell4]
Transducer (pruned_transducer_stateless5)
1 使用所有子集训练:
测试集 | |
---|---|
字错率 | 29.08 |
[TIMIT][timit]
TDNN LSTM CTC
测试集 | |
---|---|
音素错误率 | 19.71% |
TDNN LiGRU CTC
测试集 | |
---|---|
音素错误率 | 17.66% |
[TED-LIUM3][tedlium3]
Transducer (Conformer 编码器 + 无状态预测器)
开发集 | 测试集 | |
---|---|---|
改进束搜索 (beam_size=4 ) | 6.91 | 6.33 |
Transducer (pruned_transducer_stateless)
开发集 | 测试集 | |
---|---|---|
改进束搜索 (beam_size=4 ) | 6.77 | 6.14 |
[Aidatatang_200zh][aidatatang_200zh]
Transducer (pruned_transducer_stateless2)
开发集 | 测试集 | |
---|---|---|
贪婪搜索 | 5.53 | 6.59 |
快速束搜索 | 5.30 | 6.34 |
改进束搜索 | 5.27 | 6.33 |
[WenetSpeech][wenetspeech]
Transducer (pruned_transducer_stateless2)
开发集 | 测试网络 | 测试会议 | |
---|---|---|---|
贪婪搜索 | 7.80 | 8.75 | 13.49 |
快速束搜索 | 7.94 | 8.74 | 13.80 |
改进束搜索 | 7.76 | 8.71 | 13.41 |
转换器 流式 (pruned_transducer_stateless5)
开发集 | 测试网络 | 测试会议 | |
---|---|---|---|
贪婪搜索 | 8.78 | 10.12 | 16.16 |
快速束搜索 | 9.01 | 10.47 | 16.28 |
改进束搜索 | 8.53 | 9.95 | 15.81 |
[阿里会议][alimeeting]
转换器 (pruned_transducer_stateless2)
评估集 | 测试网络 | |
---|---|---|
贪婪搜索 | 31.77 | 34.66 |
快速束搜索 | 31.39 | 33.02 |
改进束搜索 | 30.38 | 34.25 |
[TAL_CSASR][tal_csasr]
转换器 (pruned_transducer_stateless5)
中文字错率(CER%)和英文词错率(WER%)的最佳结果(zh: 中文,en: 英文):
解码方法 | 开发集 | 开发集_中文 | 开发集_英文 | 测试集 | 测试集_中文 | 测试集_英文 |
---|---|---|---|---|---|---|
贪婪搜索 | 7.30 | 6.48 | 19.19 | 7.39 | 6.66 | 19.13 |
快速束搜索 | 7.18 | 6.39 | 18.90 | 7.27 | 6.55 | 18.77 |
改进束搜索 | 7.15 | 6.35 | 18.95 | 7.22 | 6.50 | 18.70 |
TTS: 文本转语音
支持的数据集
- [LJSpeech][ljspeech]
- [VCTK][vctk]
支持的模型
使用 C++ 部署
一旦您在 icefall 中训练了模型,您可能希望使用 C++ 部署它,而不依赖 Python。
请参考以下内容了解如何操作:
- https://k2-fsa.github.io/icefall/model-export/export-with-torch-jit-script.html
- https://k2-fsa.github.io/icefall/model-export/export-onnx.html
- https://k2-fsa.github.io/icefall/model-export/export-ncnn.html
我们还提供了一个 Colab 笔记本,向您展示如何在 [k2][k2] 中使用 C++ 运行 torch 脚本化模型。 请查看: