(Keras/Tensorflow)端到端语音识别
声明:本文原文来源于GitHub,经本人翻译首发于CSDN,仅供技术分享所用,不作商用。欢迎大家关注我的公众号: gbxiao992
本存储库用于记录我使用Keras和Tensorflow开发端到端的语音识别模型的研究。
原文链接:https://github.com/igormq/asr-study/blob/master/README.md
训练基于character 的全神经巴西葡萄牙语语音识别模型
我们的模型使用四个数据集进行训练: CSLU Spoltech (LDC2006S16), Sid, VoxForge, and LapsBM1.4. 部分数据集需要有偿下载。
(部分)巴西葡萄牙语语音数据集预处理
您可以使用提供的脚本下载免费提供的数据集(可能需要一段时间):
$ cd data; sh download_datasets.sh
接下来,您可以将其预处理为hdf5文件。点击此处获取更多信息。
$ python -m extras.make_dataset --parser brsd --input_parser mfcc
训练网络
您可以使用train.py脚本训练网络。欲了解更多使用信息请参阅这里。使用默认参数进行训练:
$ python train.py --dataset .datasets/brsd/data.h5
预训练模型
下载基于完整brsd数据集(包括CSLU数据集)预训练好的brsm v1.0 模型
$ mkdir models; sh download_brsmv1.sh
此外,您可以针对brsd测试集评估模型
$ python eval.py --model models/brsmv1.h5 --dataset .datasets/brsd/data.h5
brsmv1.h5 training
测试集:LER 25.13%(使用光束搜索解码器,光束宽度为100)
预测输出
使用某些数据集预测训练模型的输出:
$ python predict.py --model MODEL --dataset DATASET
可用的数据集解析器
您可以在datasets/ 路径下看到所有可用的数据集解析器。
创建自定义数据集解析器
您可以创建自己的数据集解析器。这是一个例子:
class CustomParser(DatasetParser):def __init__(self, dataset_dir, name='default name', **kwargs):super(CustomParser, self).__init__(dataset_dir, name, **kwargs)def _iter(self):for line in dataset:yield {'duration': line['duration'],'input': line['input'],'label': line['label'],'non-optional-field': line['non-optional-field']}def _report(self, dl):args = extract_statistics(dl)report = '''General informationNumber of utterances: %dTotal size (in seconds) of utterances: %.fNumber of speakers: %d''' % (args)
可用模型
你可以在core/models.py路径下看到所有可用的模型。
创建自定义模型
您可以创建自定义模型。这里是基于CTC的模型的一个例子
def custom_model(num_features=26, num_hiddens=100, num_classes=28):x = Input(name='inputs', shape=(None, num_features))o = xo = Bidirectional(LSTM(num_hiddens,return_sequences=True,consume_less='gpu'))(o)o = TimeDistributed(Dense(num_classes))(o)return ctc_model(x, o)
已知 bugs
- 过高的内存与CPU消耗
- Predicting with batch size greater than 1(Keras’bug)
- warp-ctc似乎没有加速训练
- zoneout实现
要求
基本要求
- Python 2.7
- Numpy
- Scipy
- Pyyaml
- HDF5
- Unidecode
- Librosa
- Tensorflow
- Keras
推荐
- warp-ctc (用于快速CTC损失计算)
可选
- SpeechRecognition (使用 eval apis)
- openpyxl ( 将结果保存在excel文件中)
致谢
- python_speech_features for the audio preprocessing
- Google Magenta for the hparams
- @robertomest for helping me with everything
License
See LICENSE.md for more information
(Keras/Tensorflow)端到端语音识别相关推荐
- 【记录】本科毕设:基于树莓派的智能小车设计(使用Tensorflow + Keras 搭建CNN卷积神经网络 使用端到端的学习方法训练CNN)
0 申明 这是本人2020年的本科毕业设计,内容多为毕设论文和答辩内容中挑选.最初的灵感来自于早前看过的一些项目(抱歉时间久远,只记录了这一个,见下),才让我萌生了做个机电(小车动力与驱动)和控制(树 ...
- c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别
最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...
- rhel 8.2不识别unicode_基于tensorflow 实现端到端的OCR:二代身份证号识别
最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的.本文实现思路主要 ...
- python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...
最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...
- 利用 AssemblyAI 在 PyTorch 中建立端到端的语音识别模型
作者 | Comet 译者 | 天道酬勤,责编 | Carol 出品 | AI 科技大本营(ID:rgznai100) 这篇文章是由AssemblyAI的机器学习研究工程师Michael Nguyen ...
- tensorflow LSTM + CTC实现端到端OCR
最近在做OCR相关的东西,关于OCR真的是有悠久了历史了,最开始用tesseract然而效果总是不理想,其中字符分割真的是个博大精深的问题,那么多年那么多算法,然而应用到实际总是有诸多问题.比如说非等 ...
- 脸书开源第一个使用卷积神经网络技术的端到端语音识别系统
https://www.toutiao.com/a6639449370913669635/ 2018-12-27 07:34:30 脸书发布全新自动语音识别的卷积方法 ,以及开源目前最先进的端到端语音 ...
- 百度宣布AI语音调用登顶中国第一,自研芯片+最新端到端模型颠覆传统语音识别算法...
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2019年,NLP和语音技术取得了多项技术突破,但是科技公司考虑更多的是AI的"场景",如何在各种场景中都能方便地集成语 ...
- 当微信小程序遇上TensorFlow:Server端实现补充
在前面一篇文章<当微信小程序遇上TensorFlow:Server端实现>中,我们探讨了微信小程序server端的实现.今天在调试微信小程序时才发现一个问题,那就是:微信小程序要求HTTP ...
- 语音识别:从GMM-HMM到端到端
临近秋招,语音识别岗位的招聘需求陆续发布,各大企业更希望能够招募到基础更扎实的语音人才.最近知乎上的一个招聘话题引起广泛讨论:你知道面试官如何判断语音识别的候选人基础是否扎实吗?其实很简单,问一两个G ...
最新文章
- 数据库acid简介(一)
- 在Android手机上配置office 365邮箱
- 纱窗.20190512
- adb命令安装apk到手机_安装在手机上自动化测试apk-傻猴
- java中list,set,map集合的区别,及面试要点
- squid代理与缓存(下)
- 七个不放过和四项原则
- MYSQL常用函数总结
- E-Prime学习笔记
- b2c京东流程图_京东商城的商业模式及其运作流程(精)
- UCOSII系统移植详解
- 相聚 桂林电子科技大学第三届ACM程序设计竞赛
- MySQL的登陆【数据库系统】
- java applet类开始博饼_博饼小游戏java源代码.doc
- android自动画廊,Android3D画廊效果与自动轮播Banner
- 基于51单片机+DS18B20温度测温器+LCD1602显示
- 如何将已有图片做成透明水印_如何给图片制作透明水印
- 单目标跟踪CVPR 2018 ECO+
- VueJs探索之watch用法详解
- ppt密码忘记了怎样能打开文档,ppt权限密码如何解开?
热门文章
- D. DS栈—波兰式,逆波兰式(dsoj c++)
- 揭秘信用卡账单、支付宝背后的黑色产业链
- DevExpress xtraGrid控件的使用
- 二维、三维、四维矩阵每个维度含义解释
- WebView交互架构项目实战(三):多进程WebView使用实践
- 介绍weixin4j实现微信JS-SDK签名算法
- QA for Install Oracle 11G Release 2 on Centos Linux 7
- 计算机系统的软件资源管理器,一套好用的文件管理器(资源管理器)软件,极大提高电脑办公和方便电脑使用...
- 阔密保密专家 防泄密软件概念
- android开发之来电自动拒接并自动回复短信_上课模式app