MASR是一个基于端到端的深度神经网络的中文普通话语音识别项目。
原理
MASR使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于Facebook在2016年提出的Wav2letter。但是使用的激活函数不是ReLU
或者是HardTanh
,而是GLU
(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用GLU
的收敛速度比HardTanh
要快。如果你想要研究卷积网络用于语音识别的效果,这个项目可以作为一个参考。
以下用字错误率CER来衡量模型的表现,CER = 编辑距离 / 句子长度,越低越好
大致可以理解为 1 - CER 就是识别准确率。
模型使用AISHELL-1数据集训练,共150小时的录音,覆盖了4000多个汉字。工业界使用的语音识别系统通常使用至少10倍于本项目的录音数据来训练,同时使用特定场景的语料来训练语言模型,所以,不要期待本项目可以和工业界的识别效果媲美。这对于Github上任何个人项目来说都不现实,除非有更先进的技术诞生。
什么叫特定场景的语料训练的语言模型?比如你使用游戏中的语音识别,它更倾向于将你的话识别成你在玩游戏时可能说的话,比如「貂蝉被蓝打死了」。而在其他场景下,「貂蝉被蓝打死了」根本就不是一句通顺的话。不信你和一个只读过三国演义没玩过王者荣耀的人说「貂蝉被蓝打死了」,你确定ta不会反问你:「啥?貂蝉被谁打死了?lan是谁?」
在单卡GTX 1080Ti上,模型每迭代一个epoch大约需要20分钟。(实验室的CUDA版本较低,不排除更新CUDA版本后会快一些的可能。)
from https://github.com/nobody132/masr
----
About
A Deep-Learning-Based Chinese Speech Recognition System 基于深度学习的中文语音识别系统.
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训练和部署教程请看:
关于经常被问到的统计语言模型原理的问题,请看:
关于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将本项目克隆到您的计算机上,然后下载本项目训练所需要的数据集,下载链接详见文档末尾部分。
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
或者您也可以通过 "Fork" 按钮,将本项目Copy一份副本,然后通过您自己的SSH密钥克隆到本地。
通过git克隆仓库以后,进入项目根目录;并创建子目录 dataset/
(可使用软链接代替),然后将下载好的数据集直接解压进去
注意,当前版本中,Thchs30和ST-CMDS两个数据集都必须下载使用,缺一不可,并且使用其他数据集需要修改代码。
$ cd ASRT_SpeechRecognition
$ mkdir dataset
$ tar zxf <数据集压缩文件名> -C dataset/
然后需要将datalist目录下的文件全部拷贝到 dataset/
目录下,也就是将其跟数据集放在一起。
$ cp -rf datalist/* dataset/
目前可用的模型有24、25和251
运行本项目之前,请安装必要的Python3版依赖库
本项目开始训练请执行:
$ python3 train_mspeech.py
本项目开始测试请执行:
$ python3 test_mspeech.py
测试之前,请确保代码中填写的模型文件路径存在。
ASRT API服务器启动请执行:
$ 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的依赖库
- python_speech_features
- TensorFlow (1.13+)
- Keras (2.3+)
- Numpy
- wave
- matplotlib
- math
- Scipy
- h5py
- http
- urllib
Data Sets 数据集
清华大学THCHS30中文语音数据集
data_thchs30.tgz OpenSLR国内镜像 OpenSLR国外镜像
test-noise.tgz OpenSLR国内镜像 OpenSLR国外镜像
resource.tgz OpenSLR国内镜像 OpenSLR国外镜像
Free ST Chinese Mandarin Corpus
ST-CMDS-20170001_1-OS.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
AIShell-1 开源版数据集
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 Chinese Corpus Set 1
primewords_md_2018_set1.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
aidatatang_200zh
aidatatang_200zh.tgz OpenSLR国内镜像 OpenSLR国外镜像
MagicData
train_set.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
dev_set.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
test_set.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
metadata.tar.gz OpenSLR国内镜像 OpenSLR国外镜像
特别鸣谢!感谢前辈们的公开语音数据集
如果提供的数据集链接无法打开和下载,请点击该链接 OpenSLR
from https://github.com/nl8590687/ASRT_SpeechRecognition
No comments:
Post a Comment