ASRT_SpeechRecognition/README.md

11 KiB
Raw Blame History

GPL-3.0 Licensed TensorFlow Version Python Version DOI

ASRT是一个基于深度学习的中文语音识别系统如果您觉得喜欢请点一个 "Star" 吧~

ReadMe Language | 中文版 | English |

ASRT项目主页 | 发布版下载 | 查看本项目的Wiki文档 | 实用效果体验Demo | 打赏作者

如果程序运行期间或使用中有什么问题可以及时在issue中提出来我将尽快做出答复。本项目作者交流QQ群894112051

提问前请仔细查看项目文档FAQ常见问题 以及Issues 避免重复提问

以下问题AI柠檬博主和群友可能会拒绝回答包括但不限于

  • 询问已经写在 ASRT语音识别项目文档Issues 上解决过的已知重复问题。
  • 找不到重点、不知所云的提问内容,但是不给出任何其他信息。
  • 跟ASRT项目没有直接相关的问题
  • “伸手党”类的问题
请注意,开发者并没有义务回复您的问题,也没用义务免费给你打工,您应该具备基本的提问技巧,并善用搜索引擎,
每个人的时间都是宝贵的。

有关AI柠檬ASRT语音项目的相关信息亦可使用AI柠檬站内搜索引擎进行相关信息的搜索。

ASRT相关资料

ASRT的原理请查看本文

ASRT训练和部署教程请看

关于经常被问到的统计语言模型原理的问题,请看:

关于CTC的问题请看

更多内容请访问作者的博客:AI柠檬博客

或使用AI柠檬站内搜索引擎进行相关信息的搜索

Introduction 简介

本项目使用tensorFlow.keras基于深度卷积神经网络和长短时记忆神经网络、注意力机制以及CTC实现。

This project uses tensorFlow.keras based on deep convolutional neural network and long-short memory neural network, attention mechanism and CTC to implement.

  • 操作步骤 以在Linux系统下的操作为例

首先通过Git将本项目克隆到您的计算机上然后下载本项目训练所需要的数据集下载链接详见文档末尾部分

$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git

或者您也可以通过 "Fork" 按钮将本项目Copy一份副本然后通过您自己的SSH密钥克隆到本地。

通过git克隆仓库以后进入项目根目录并创建一个存储数据的子目录 例如 /data/speech_data (可使用软链接代替),然后将下载好的数据集直接解压进去

注意当前版本中在配置文件里默认添加了Thchs30、ST-CMDS、Primewords、aishell-1、aidatatang200、MagicData 六个数据集如果不需要请自行删除。如果要使用其他数据集需要自行添加数据配置并提前使用ASRT支持的标准格式整理数据。

$ cd ASRT_SpeechRecognition

$ mkdir /data/speech_data

$ tar zxf <数据集压缩文件名> -C /data/speech_data/ 

下载默认数据集的拼音标签文件:

$ python download_default_datalist.py

目前可用的模型有24、25和251

运行本项目之前,请安装必要的Python3版依赖库

本项目开始训练请执行:

$ python3 train_speech_model.py

本项目开始测试请执行:

$ python3 evaluate_speech_model.py

测试之前,请确保代码中填写的模型文件路径存在。

ASRT API服务器启动请执行

$ python3 asrserver.py

请注意开启API服务器之后需要使用本ASRT项目对应的客户端软件来进行语音识别详见Wiki文档下载ASRT语音识别客户端Demo

如果要训练和使用非251版模型请在代码中 import speech_model_zoo 的相应位置做修改。

使用docker直接部署ASRT

$ docker pull ailemondocker/asrt_service:1.1.0
$ docker run --rm -it -p 20000:20000 --name asrt-server -d ailemondocker/asrt_service:1.1.0

仅CPU运行推理识别不作训练

Model 模型

Speech Model 语音模型

CNN/LSTM/GRU + CTC

其中输入的音频的最大时间长度为16秒输出为对应的汉语拼音序列

  • 关于下载已经训练好的模型的问题

已经训练好的模型包含在发布版服务端程序压缩包里面,发布版成品服务端程序可以在此下载:ASRT下载页面

Github本仓库下Releases页面里面还包括各个不同版本的介绍信息每个版本下方的zip压缩包也是包含已经训练好的模型的发布版服务端程序压缩包。

Language Model 语言模型

基于概率图的最大熵隐马尔可夫模型

输入为汉语拼音序列,输出为对应的汉字文本

About Accuracy 关于准确率

当前最好的模型在测试集上基本能达到80%的汉语拼音正确率

不过由于目前国际和国内的部分团队能做到98%,所以正确率仍有待于进一步提高

Python Dependency Library

Python的依赖库

  • tensorFlow (1.15 - 2.x)
  • numpy
  • wave
  • matplotlib
  • math
  • scipy
  • requests

不会安装环境的同学请直接运行以下命令(前提是有GPU且已经安装好 CUDA 11.2 和 cudnn 8.1)

$ pip install -r requirements.txt

依赖环境和性能配置要求

Data Sets 数据集

几个最新免费开源的中文语音数据集

特别鸣谢!感谢前辈们的公开语音数据集

如果提供的数据集链接无法打开和下载,请点击该链接 OpenSLR

License 开源许可协议

GPL v3.0 © nl8590687 作者:AI柠檬

参考引用本项目

DOI: 10.5281/zenodo.5808434

Contributors 贡献者们

贡献者页面

@nl8590687 (repo owner)