PPASR是一款基于PaddlePaddle实现的自动语音识别框架,PPASR中文名称PaddlePaddle中文语音识别(PaddlePaddle Automatic Speech Recognition),当前为V3版本,与V2版本不兼容,如果想使用V2版本,请在这个分支V2。PPASR致力于简单,实用的语音识别项目。可部署在服务器,Nvidia Jetson设备,未来还计划支持Android等移动设备。别忘了star
欢迎大家扫码入知识星球或者QQ群讨论,知识星球里面提供项目的模型文件和博主其他相关项目的模型文件,也包括其他一些资源。
本项目使用的环境:
- Anaconda 3
- Python 3.11
- PaddlePaddle 2.6.1
- Windows 11 or Ubuntu 22.04
- 支持多个语音识别模型,包含
deepspeech2
、conformer
、squeezeformer
、efficient_conformer
等,每个模型都支持流式识别和非流式识别,在配置文件中streaming
参数设置。 - 支持多种解码器,包含
ctc_greedy_search
、ctc_prefix_beam_search
、attention_rescoring
、ctc_beam_search
等。 - 支持多种预处理方法,包含
fbank
、mfcc
等。 - 支持多种数据增强方法,包含噪声增强、混响增强、语速增强、音量增强、重采样增强、位移增强、SpecAugmentor、SpecSubAugmentor等。
- 支持多种推理方法,包含短音频推理、长音频推理、流式推理、说话人分离推理等。
- 更多特点等待你发现。
- 2025.03: 正式发布最终级的V3版本。
- WenetSpeech (10000小时,普通话) 的预训练模型列表,错误率类型为字错率(CER):
使用模型 | 是否为流式 | 预处理方式 | 解码方式 | test_net | test_meeting | aishell_test | 下载地址 |
---|---|---|---|---|---|---|---|
Conformer | True | fbank | ctc_greedy_search | 加入知识星球获取 | |||
Conformer | True | fbank | ctc_prefix_beam_search | 加入知识星球获取 | |||
Conformer | True | fbank | attention_rescoring | 加入知识星球获取 | |||
Conformer | True | fbank | ctc_beam_search | 加入知识星球获取 | |||
DeepSpeech2 | True | fbank | ctc_greedy_search | 加入知识星球获取 | |||
DeepSpeech2 | True | fbank | ctc_prefix_beam_search | 加入知识星球获取 | |||
DeepSpeech2 | True | fbank | ctc_beam_search | 加入知识星球获取 |
- AIShell (179小时,普通话) 的预训练模型列表,错误率类型为字错率(CER):
使用模型 | 是否为流式 | 预处理方式 | 解码方式 | 自带的测试集 | 下载地址 |
---|---|---|---|---|---|
Conformer | True | fbank | ctc_greedy_search | 0.06110 | 加入知识星球获取 |
Conformer | True | fbank | ctc_prefix_beam_search | 0.06114 | 加入知识星球获取 |
Conformer | True | fbank | attention_rescoring | 0.05412 | 加入知识星球获取 |
Conformer | True | fbank | ctc_beam_search | 0.04468 | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_greedy_search | 0.14134 | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_prefix_beam_search | 0.14132 | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_beam_search | 0.10598 | 加入知识星球获取 |
- Librispeech (960小时,英语) 的预训练模型列表,错误率类型为词错率(WER):
使用模型 | 是否为流式 | 预处理方式 | 解码方式 | 自带的测试集 | 下载地址 |
---|---|---|---|---|---|
Conformer | True | fbank | ctc_greedy_search | 0.07562 | 加入知识星球获取 |
Conformer | True | fbank | ctc_prefix_beam_search | 0.07518 | 加入知识星球获取 |
Conformer | True | fbank | attention_rescoring | 0.06669 | 加入知识星球获取 |
Conformer | True | fbank | ctc_beam_search | / | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_greedy_search | 0.15479 | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_prefix_beam_search | 0.15247 | 加入知识星球获取 |
DeepSpeech2 | True | fbank | ctc_beam_search | / | 加入知识星球获取 |
- 其他数据集的预训练模型列表,错误率类型,如果是中文就是字错率(CER),英文则是词错率(WER),中英混合为混合错误率(MER):
使用模型 | 是否为流式 | 预处理方式 | 数据集 | 语言 | 解码方式 | 测试数据 | 下载地址 |
---|---|---|---|---|---|---|---|
Conformer | True | fbank | 粤语数据集 | 粤语 | ctc_greedy_search | 0.05736 | 加入知识星球获取 |
Conformer | True | fbank | 粤语数据集 | 粤语 | ctc_prefix_beam_search | 0.05730 | 加入知识星球获取 |
Conformer | True | fbank | 粤语数据集 | 粤语 | attention_rescoring | 0.04877 | 加入知识星球获取 |
Conformer | True | fbank | 粤语数据集 | 粤语 | ctc_beam_search | 0.05409 | 加入知识星球获取 |
Conformer | True | fbank | 中英混合数据集 | 中英文 | ctc_greedy_search | 加入知识星球获取 | |
Conformer | True | fbank | 中英混合数据集 | 中英文 | ctc_prefix_beam_search | 加入知识星球获取 | |
Conformer | True | fbank | 中英混合数据集 | 中英文 | attention_rescoring | 加入知识星球获取 | |
Conformer | True | fbank | 中英混合数据集 | 中英文 | ctc_beam_search | 加入知识星球获取 | |
Conformer | True | fbank | 更大数据集(16000+小时) | 中英文 | ctc_greedy_search | 加入知识星球获取 | |
Conformer | True | fbank | 更大数据集(16000+小时) | 中英文 | ctc_prefix_beam_search | 加入知识星球获取 | |
Conformer | True | fbank | 更大数据集(16000+小时) | 中英文 | attention_rescoring | 加入知识星球获取 | |
Conformer | True | fbank | 更大数据集(16000+小时) | 中英文 | ctc_beam_search | 加入知识星球获取 |
说明:
- 这里字错率或者词错率是使用
eval.py
。 - 分别给出了使用三个解码器的错误率,其中
ctc_prefix_beam_search
、attention_rescoring
的解码搜索大小为10。 - 训练时使用了噪声增强和混响增强,以及其他增强方法,具体请看配置参数
configs/augmentation.yml
。 - 这里只提供了流式模型,但全部模型都支持流式和非流式的,在配置文件中
streaming
参数设置。
有问题欢迎提 issue 交流
- 基于PaddlePaddle实现的声纹识别:VoiceprintRecognition-PaddlePaddle
- 基于PaddlePaddle静态图实现的语音识别:PaddlePaddle-DeepSpeech
- 基于Pytorch实现的语音识别:MASR
- 感谢
JetBrains开源社区 提供开发工具。