nl8590687

A Deep-Learning-Based Chinese Speech Recognition System

A Deep-Learning-Based Chinese Speech Recognition System 基于深度学习的中文语音识别系统
Under GNU General Public License v3.0
By nl8590687

python tensorflow keras cnn speech-recognition speech-to-text ctc chinese-speech-recognition asrt

ASRT: A Deep-Learning-Based Chinese Speech Recognition System

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





ReadMe Language | 中文版 | English |


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


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


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


以下问题AI柠檬博主和群友可能会拒绝回答,包括但不限于:
* 询问已经写在 ASRT语音识别项目文档Issues 上解决过的已知重复问题。
* 找不到重点、不知所云的提问内容,但是不给出任何其他信息。
* 跟ASRT项目没有直接相关的问题
* “伸手党”类的问题


请注意,开发者并没有义务回复您的问题,也没用义务免费给你打工,您应该具备基本的提问技巧,并善用搜索引擎,
每个人的时间都是宝贵的。

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


ASRT相关资料

ASRT的原理请查看本文:
* ASRT:一个中文语音识别系统


ASRT训练和部署教程请看:
* 教你如何使用ASRT训练中文语音识别模型
* 教你如何使用ASRT部署中文语音识别API服务器


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



关于CTC的问题请看:



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


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


Introduction 简介

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


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



首先通过Git将本项目克隆到您的计算机上,然后下载本项目训练所需要的数据集,下载链接详见文档末尾部分。
shell
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git


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


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


注意,当前版本中,Thchs30和ST-CMDS两个数据集都必须下载使用,缺一不可,并且使用其他数据集需要修改代码。


```shell
$ cd ASRT_SpeechRecognition


$ mkdir dataset


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


然后需要将datalist目录下的文件全部拷贝到 dataset/ 目录下,也就是将其跟数据集放在一起。
shell
$ cp -rf datalist/* dataset/


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


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


本项目开始训练请执行:
shell
$ python3 train_mspeech.py

本项目开始测试请执行:
shell
$ python3 test_mspeech.py

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


ASRT API服务器启动请执行:
shell
$ python3 asrserver.py


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


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


Model 模型
Speech Model 语音模型

CNN + LSTM/GRU + CTC


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



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


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


Language Model 语言模型

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


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


About Accuracy 关于准确率

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


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


Python Import

Python的依赖库



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


shell
$ pip install -r requirements.txt


程序运行依赖环境详细说明


Data Sets 数据集

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



data_thchs30.tgz
OpenSLR国内镜像
OpenSLR国外镜像


test-noise.tgz
OpenSLR国内镜像
OpenSLR国外镜像


resource.tgz
OpenSLR国内镜像
OpenSLR国外镜像



ST-CMDS-20170001_1-OS.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像



data_aishell.tgz
OpenSLR国内镜像
OpenSLR国外镜像


注:数据集解压方法


$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done



primewords_md_2018_set1.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像



aidatatang_200zh.tgz
OpenSLR国内镜像
OpenSLR国外镜像



train_set.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像


dev_set.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像


test_set.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像


metadata.tar.gz
OpenSLR国内镜像
OpenSLR国外镜像


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


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


License 开源许可协议

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


Contributors 贡献者们

@zw76859420
@madeirak @ZJUGuoShuai @williamchenwl


@nl8590687 (repo owner)