# 基于深度学习的中文语音识别系统
[![GPL-3.0 Licensed](https://img.shields.io/badge/License-GPL3.0-blue.svg?style=flat)](https://opensource.org/licenses/GPL-3.0) [![TensorFlow Version](https://img.shields.io/badge/Tensorflow-1.7+-blue.svg)](https://www.tensorflow.org/) [![Keras Version](https://img.shields.io/badge/Keras-2.0+-blue.svg)](https://keras.io/) [![Python Version](https://img.shields.io/badge/Python-3.x-blue.svg)](https://www.python.org/)
如果觉得有用的话,小手给个star吧~
## 1. Introduction
该系统实现了基于深度框架的语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC、GRU-CTC、CNN-RNN-CTC,语言模型包含[transformer](https://jalammar.github.io/illustrated-transformer/)、[CBHG](https://github.com/crownpku/Somiao-Pinyin),数据集包含stc、primewords、Aishell、thchs30四个数据集。
本系统更整体介绍:https://blog.csdn.net/chinatelecom08/article/details/82557715
本项目现已训练一个迷你的语音识别系统,将项目下载到本地上,下载[thchs数据集](http://www.openslr.org/resources/18/data_thchs30.tgz)并解压至data,运行`test.py`,不出意外能够进行识别,结果如下:
the 0 th example.
文本结果: lv4 shi4 yang2 chun1 yan1 jing3 da4 kuai4 wen2 zhang1 de di3 se4 si4 yue4 de lin2 luan2 geng4 shi4 lv4 de2 xian1 huo2 xiu4 mei4 shi1 yi4 ang4 ran2
原文结果: lv4 shi4 yang2 chun1 yan1 jing3 da4 kuai4 wen2 zhang1 de di3 se4 si4 yue4 de lin2 luan2 geng4 shi4 lv4 de2 xian1 huo2 xiu4 mei4 shi1 yi4 ang4 ran2
原文汉字: 绿是阳春烟景大块文章的底色四月的林峦更是绿得鲜活秀媚诗意盎然
识别结果: 绿是阳春烟景大块文章的底色四月的林峦更是绿得鲜活秀媚诗意盎然
若自己建立模型则需要删除现有模型,重新配置参数训练,具体实现流程参考本页最后。
## 2. 声学模型
声学模型采用CTC进行建模,采用CNN-CTC、GRU-CTC、FSMN等模型`model_speech`,采用keras作为编写框架。
- 论文地址:http://www.infocomm-journal.com/dxkx/CN/article/openArticlePDFabs.jsp?id=166970
- tutorial:https://blog.csdn.net/chinatelecom08/article/details/85013535
## 3. 语言模型
新增基于self-attention结构的语言模型`model_language\transformer.py`,该模型已经被证明有强于其他框架的语言表达能力。
- 论文地址:https://arxiv.org/abs/1706.03762。
- tutorial:https://blog.csdn.net/chinatelecom08/article/details/85051817
基于CBHG结构的语言模型`model_language\cbhg.py`,该模型之前用于谷歌声音合成,移植到该项目中作为基于神经网络的语言模型。
- 原理地址:https://github.com/crownpku/Somiao-Pinyin
- tutorial:https://blog.csdn.net/chinatelecom08/article/details/85048019
## 4. 数据集
包括stc、primewords、Aishell、thchs30四个数据集,共计约430小时, 相关链接:[http://www.openslr.org/resources.php](http://www.openslr.org/resources.php)
|Name | train | dev | test
|- | :-: | -: | -:
|aishell | 120098| 14326 | 7176
|primewords | 40783 | 5046 | 5073
|thchs-30 | 10000 | 893 | 2495
|st-cmd | 10000 | 600 | 2000
数据标签整理在`data`路径下,其中primewords、st-cmd目前未区分训练集测试集。
若需要使用所有数据集,只需解压到统一路径下,然后设置utils.py中datapath的路径即可。
与数据相关参数在`utils.py`中:
- data_type: train, test, dev
- data_path: 对应解压数据的路径
- thchs30, aishell, prime, stcmd: 是否使用该数据集
- batch_size: batch_size
- data_length: 我自己做实验时写小一些看效果用的,正常使用设为None即可
- shuffle:正常训练设为True,是否打乱训练顺序
```py
def data_hparams():
params = tf.contrib.training.HParams(
# vocab
data_type = 'train',
data_path = 'data/',
thchs30 = True,
aishell = True,
prime = False,
stcmd = False,
batch_size = 1,
data_length = None,
shuffle = False)
return params
```
## 5. 配置
使用train.py文件进行模型的训练。
声学模型可选cnn-ctc、gru-ctc,只需修改导入路径即可:
`from model_speech.cnn_ctc import Am, am_hparams`
`from model_speech.gru_ctc import Am, am_hparams`
语言模型可选transformer和cbhg:
`from model_language.transformer import Lm, lm_hparams`
`from model_language.cbhg import Lm, lm_hparams`
### 模型识别
使用test.py检查模型识别效果。
模型选择需和训练一致。
# 一个简单的例子
# 1. 声学模型训练
train.py文件
```python
import os
import tensorflow as tf
from utils import get_data, data_hparams
# 准备训练所需数据
data_args = data_hparams()
data_args.data_length = 10
train_data = get_data(data_args)
# 1.声学模型训练-----------------------------------
from model_speech.cnn_ctc import Am, am_hparams
am_args = am_hparams()
am_args.vocab_size = len(train_data.am_vocab)
am = Am(am_args)
if os.path.exists('logs_am/model.h5'):
print('load acoustic model...')
am.ctc_model.load_weights('logs_am/model.h5')
epochs = 10
batch_num = len(train_data.wav_lst) // train_data.batch_size
for k in range(epochs):
print('this is the', k+1, 'th epochs trainning !!!')
#shuffle(shuffle_list)
batch = train_data.get_am_batch()
am.ctc_model.fit_generator(batch, steps_per_epoch=batch_num, epochs=1)
am.ctc_model.save_weights('logs_am/model.h5')
```
get source list...
load thchs_train.txt data...
100%|████████████████████████████████████████████████████████████████████████| 10000/10000 [00:00<00:00, 236865.96it/s]
load aishell_train.txt data...
100%|██████████████████████████████████████████████████████████████████████| 120098/120098 [00:00<00:00, 260863.15it/s]
make am vocab...
100%|████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 9986.44it/s]
make lm pinyin vocab...
100%|████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 9946.18it/s]
make lm hanzi vocab...
100%|████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 9950.90it/s]
Using TensorFlow backend.
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
the_inputs (InputLayer) (None, None, 200, 1) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, None, 200, 32) 320
_________________________________________________________________
batch_normalization_1 (Batch (None, None, 200, 32) 128
_________________________________________________________________
conv2d_2 (Conv2D) (None, None, 200, 32) 9248
_________________________________________________________________
batch_normalization_2 (Batch (None, None, 200, 32) 128
__________________
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。 该资源使用CNN对语音特征进行特征提取,构建用于孤立词语言识别的声学模型。
资源推荐
资源详情
资源评论
收起资源包目录
语音识别_CNN+LSTM+CTC.zip (53个子文件)
语音识别_CNN+LSTM+CTC
zero.wav 31KB
speech_test.py 567B
data
graph
events.out.tfevents.1553959171.PC-201805041736 755KB
make_mfcc.py 2KB
center.py 14KB
speech_train.py 761B
DeepSpeechRecognition-master
utils.py 9KB
model_speech
cnn_ctc.py 3KB
__pycache__
cnn_ctc.cpython-36.pyc 4KB
gru_ctc.py 3KB
fsmn.py 0B
logs_lm
yuan
checkpoint 73B
model_20.index 6KB
model_20.data-00000-of-00001 81.63MB
model_20.meta 1.5MB
tutorial
data
zh.tsv 23.69MB
CBHG_tutorail.ipynb 121KB
self-attention_tutorial.ipynb 417KB
CNN+CTC_tutorial.ipynb 409KB
.gitattributes 101B
data
aishell_train.txt 8KB
aishell_dev.txt 9KB
thchs_dev.txt 10KB
thchs_test.txt 10KB
原有
aishell_train.txt 19.08MB
aishell_dev.txt 2.24MB
thchs_dev.txt 254KB
thchs_test.txt 711KB
aishell_test.txt 1.14MB
stcmd.txt 13MB
prime.txt 12.04MB
thchs_train.txt 2.79MB
aishell_test.txt 8KB
thchs_train.txt 10KB
logs_am
model.h5 6.79MB
.gitignore 19B
train.py 4KB
__pycache__
utils.cpython-36.pyc 8KB
test.py 3KB
README.md 25KB
model_language
cbhg.py 0B
transformer.py 13KB
speech_model.py 5KB
model
checkpoint 77B
lstm_model.index 562B
lstm_model.meta 406KB
lstm_model.data-00000-of-00001 144KB
one.wav 31KB
audio1.wav 183KB
103.wav 261KB
num.wav 2.14MB
__pycache__
center.cpython-36.pyc 9KB
audio.wav 91KB
共 53 条
- 1
资源评论
LuLaDe
- 粉丝: 9571
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功