fanhuafeng / PPASR

基于PaddlePaddle实现端到端中文语音识别,从入门到实战,超简单的入门案例,超实用的企业项目。支持当前最流行的DeepSpeech2、Conformer、Squeezeformer模型

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

python version GitHub forks GitHub Repo stars GitHub 支持系统

PPASR流式与非流式语音识别项目

本项目将分三个阶段分支,分别是入门级进阶级最终级 分支,当前为最终级的V2版本,如果想使用最终级的V1版本,请在这个分支r1.x。PPASR中文名称PaddlePaddle中文语音识别(PaddlePaddle Automatic Speech Recognition),是一款基于PaddlePaddle实现的语音识别框架,PPASR致力于简单,实用的语音识别项目。可部署在服务器,Nvidia Jetson设备,未来还计划支持Android等移动设备。别忘了star

欢迎大家扫码入QQ群讨论,或者直接搜索QQ群号1169600237,问题答案为博主Github的IDyeyupiaoling

在线使用

1. 在AI Studio平台训练预测

2. 在线使用Dome


本项目使用的环境:

  • Anaconda 3
  • Python 3.8
  • PaddlePaddle 2.4.1
  • Windows 10 or Ubuntu 18.04

项目快速了解

  1. 本项目支持流式识别模型deepspeech2conformersqueezeformer,每个模型又分online(在线)和offline(离线),对应的是流式识别和非流式识别。
  2. 本项目支持两种解码器,分别是集束搜索解码器ctc_beam_search和贪心解码器ctc_greedy,集束搜索解码器ctc_beam_search准确率更高,但不支持Windows。
  3. 下面提供了一系列预训练模型的下载,下载预训练模型之后,需要把全部文件复制到项目根目录,并执行导出模型才可以使用语音识别。

更新记录

  • 2022.12.05: 支持自动混合精度训练和导出量化模型。
  • 2022.11.26: 支持Squeezeformer模型。
  • 2022.11.01: 修改Conformer模型的解码器为BiTransformerDecoder,增加SpecSubAugmentor数据增强器。
  • 2022.10.29: 正式发布最终级的V2版本。

视频讲解

模型下载

  1. conformer预训练模型列表:
使用模型 数据集 预处理方式 语言 测试集字错率(词错率) 下载地址
conformer_online WenetSpeech (10000小时) fbank 中文 0.03579(aishell_test)
0.11081(test_net)
0.16031(test_meeting)
点击下载
conformer_online WenetSpeech (10000小时)+中文语音数据集 (3000+小时) fbank 中文 0.02923(aishell_test)
0.11876(test_net)
0.18346(test_meeting)
点击下载
conformer_online aishell (179小时) fbank 中文 0.04936 点击下载
conformer_offline aishell (179小时) fbank 中文 0.04343 点击下载
conformer_online Librispeech (960小时) fbank 英文 点击下载
conformer_offline Librispeech (960小时) fbank 英文 点击下载
  1. squeezeformer预训练模型列表:
使用模型 数据集 预处理方式 语言 测试集字错率(词错率) 下载地址
squeezeformer_online aishell (179小时) fbank 中文 0.04927 点击下载
squeezeformer_offline aishell (179小时) fbank 中文 0.04889 点击下载
squeezeformer_online Librispeech (960小时) fbank 英文 点击下载
squeezeformer_offline Librispeech (960小时) fbank 英文 点击下载
  1. deepspeech2预训练模型列表:
使用模型 数据集 预处理方式 语言 测试集字错率(词错率) 下载地址
deepspeech2_online WenetSpeech (10000小时) fbank 中文 0.05379(aishell_test) 点击下载
deepspeech2_online aishell (179小时) fbank 中文 0.11367 点击下载
deepspeech2_offline aishell (179小时) fbank 中文 0.09385 点击下载
deepspeech2_online Librispeech (960小时) fbank 英文 0.15294 点击下载
deepspeech2_offline Librispeech (960小时) fbank 英文 0.11035 点击下载

说明:

  1. 这里字错率或者词错率是使用eval.py程序并使用集束搜索解码ctc_beam_search方法计算得到的,min_duration为1.0,max_duration为20.0。
  2. 没有提供预测模型,需要把全部文件复制到项目的根目录下,执行export_model.py导出预测模型。

有问题欢迎提 issue 交流

语言模型

语言模型 训练数据 数据量 文件大小 说明
自定义中文语言模型 自定义中文语料 约2千万 572 MB 训练参数-o 5,无剪枝
英文语言模型 CommonCrawl 18.5亿 8.3 GB 训练参数-o 5,剪枝参数'--prune 0 1 1 1 1
中文语言模型(剪枝) 百度内部语料库 1.3亿 2.8 GB 训练参数-o 5,剪枝参数'--prune 0 1 1 1 1
中文语言模型 百度内部语料库 37亿 70.4 GB 训练参数-o 5,无剪枝

文档教程

快速预测

  • 下载作者提供的模型或者训练模型,并导出模型,使用infer_path.py预测音频,通过参数--wav_path指定需要预测的音频路径,完成语音识别,详情请查看模型部署
python infer_path.py --wav_path=./dataset/test.wav

输出结果:

消耗时间:132, 识别结果: 近几年不但我用书给女儿儿压岁也劝说亲朋不要给女儿压岁钱而改送压岁书, 得分: 94
  • 长语音预测
python infer_path.py --wav_path=./dataset/test_vad.wav --is_long_audio=True
  • Web部署

录音测试页面

  • GUI界面部署

GUI界面

相关项目

特别感谢

参考资料

About

基于PaddlePaddle实现端到端中文语音识别,从入门到实战,超简单的入门案例,超实用的企业项目。支持当前最流行的DeepSpeech2、Conformer、Squeezeformer模型

License:Apache License 2.0


Languages

Language:Python 97.2%Language:JavaScript 1.5%Language:HTML 1.0%Language:CSS 0.3%