Package: ppasr
PPASR流式与非流式语音识别项目本项目将分三个阶段分支，分别是入门级、进阶级和最终级分支，当前为最终级的V2版本，如果想使用最终级的V1版本，请在这个分支r1.x。PPASR中文名称PaddlePaddle中文语音识别（PaddlePaddle Automatic Speech Recognition），是一款基于PaddlePaddle实现的语音识别框架，PPASR致力于简单，实用的语音识别项目。可部署在服务器，Nvidia Jetson设备，未来还计划支持Android等移动设备。别忘了star欢迎大家扫码入知识星球或者QQ群讨论，知识星球里面提供项目的模型文件和博主其他相关项目的模型文件，也包括其他一些资源。在线使用1.在AI Studio平台训练预测2.在线使用Dome3.在线使用本项目使用的环境：Anaconda 3Python 3.8PaddlePaddle 2.4.1Windows 10 or Ubuntu 18.04项目快速了解本项目支持流式识别模型deepspeech2、conformer、squeezeformer，efficient_conformer，每个模型都支持流式识别和非流式识别，在配置文件中streaming参数设置。本项目支持两种解码器，分别是集束搜索解码器ctc_beam_search和贪心解码器ctc_greedy，集束搜索解码器ctc_beam_search准确率更高。下面提供了一系列预训练模型的下载，下载预训练模型之后，需要把全部文件复制到项目根目录，并执行导出模型才可以使用语音识别。更新记录2023.01.28: 调整配置文件结构，支持efficient_conformer模型。2022.12.05: 支持自动混合精度训练和导出量化模型。2022.11.26: 支持Squeezeformer模型。2022.11.01: 修改Conformer模型的解码器为BiTransformerDecoder，增加SpecSubAugmentor数据增强器。2022.10.29: 正式发布最终级的V2版本。视频讲解知识点讲解（哔哩哔哩）流式识别的使用讲解（哔哩哔哩）快速使用这里介绍如何使用PPASR快速进行语音识别，前提是要安装PPASR，文档请看快速安装。执行过程不需要手动下载模型，全部自动完成。短语音识别fromppasr.predictimportPPASRPredictorpredictor=PPASRPredictor(model_tag='conformer_streaming_fbank_wenetspeech')wav_path='dataset/test.wav'result=predictor.predict(audio_data=wav_path,use_pun=False)score,text=result['score'],result['text']print(f"识别结果:{text}, 得分:{int(score)}")长语音识别fromppasr.predictimportPPASRPredictorpredictor=PPASRPredictor(model_tag='conformer_streaming_fbank_wenetspeech')wav_path='dataset/test_long.wav'result=predictor.predict_long(audio_data=wav_path,use_pun=False)score,text=result['score'],result['text']print(f"识别结果:{text}, 得分:{score}")模拟流式识别importtimeimportwavefromppasr.predictimportPPASRPredictorpredictor=PPASRPredictor(model_tag='conformer_streaming_fbank_wenetspeech')# 识别间隔时间interval_time=0.5CHUNK=int(16000*interval_time)# 读取数据wav_path='dataset/test.wav'wf=wave.open(wav_path,'rb')data=wf.readframes(CHUNK)# 播放whiledata!=b'':start=time.time()d=wf.readframes(CHUNK)result=predictor.predict_stream(audio_data=data,use_pun=False,is_end=d==b'')data=difresultisNone:continuescore,text=result['score'],result['text']print(f"【实时结果】：消耗时间：{int((time.time()-start)*1000)}ms, 识别结果:{text}, 得分:{int(score)}")# 重置流式识别predictor.reset_stream()模型下载WenetSpeech(10000小时) 的预训练模型列表：使用模型是否为流式预处理方式语言测试集字错率下载地址conformerTruefbank普通话0.03579(aishell_test)0.11081(test_net)0.16031(test_meeting)加入知识星球获取deepspeech2Truefbank普通话0.05379(aishell_test)加入知识星球获取WenetSpeech(10000小时)+中文语音数据集(3000+小时) 的预训练模型列表：使用模型是否为流式预处理方式语言测试集字错率下载地址conformereTruefbank普通话0.02923(aishell_test)0.11876(test_net)0.18346(test_meeting)加入知识星球获取AIShell(179小时) 的预训练模型列表：使用模型是否为流式预处理方式语言测试集字错率下载地址squeezeformerTruefbank普通话0.04675加入知识星球获取conformerTruefbank普通话0.04178加入知识星球获取efficient_conformerTruefbank普通话0.04143加入知识星球获取deepspeech2Truefbank普通话0.09732加入知识星球获取Librispeech(960小时) 的预训练模型列表：使用模型是否为流式预处理方式语言测试集词错率下载地址squeezeformerTruefbank英文0.13033加入知识星球获取conformerTruefbank英文0.08109加入知识星球获取efficient_conformerTruefbank英文加入知识星球获取deepspeech2Truefbank英文0.15294加入知识星球获取说明：这里字错率或者词错率是使用eval.py程序并使用集束搜索解码ctc_beam_search方法计算得到的。没有提供预测模型，需要把全部文件复制到项目的根目录下，执行export_model.py导出预测模型。由于算力不足，这里只提供了流式模型，但全部模型都支持流式和非流式的，在配置文件中streaming参数设置。有问题欢迎提issue交流文档教程快速安装快速使用数据准备WenetSpeech数据集合成语音数据数据增强训练模型集束搜索解码执行评估导出模型使用标点符号模型使用语音活动检测（VAD）预测本地预测长语音预测Web部署模型GUI界面预测Nvidia Jetson部署相关项目基于PaddlePaddle实现的声纹识别：VoiceprintRecognition-PaddlePaddle基于PaddlePaddle静态图实现的语音识别：PaddlePaddle-DeepSpeech基于Pytorch实现的语音识别：MASR特别感谢感谢JetBrains开源社区提供开发工具。打赏作者打赏一块钱支持一下作者参考资料https://github.com/PaddlePaddle/PaddleSpeechhttps://github.com/jiwidi/DeepSpeech-pytorchhttps://github.com/wenet-e2e/WenetSpeech