声明:本文原文来源于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)端到端语音识别相关推荐

  1. 【记录】本科毕设:基于树莓派的智能小车设计(使用Tensorflow + Keras 搭建CNN卷积神经网络 使用端到端的学习方法训练CNN)

    0 申明 这是本人2020年的本科毕业设计,内容多为毕设论文和答辩内容中挑选.最初的灵感来自于早前看过的一些项目(抱歉时间久远,只记录了这一个,见下),才让我萌生了做个机电(小车动力与驱动)和控制(树 ...

  2. c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...

  3. rhel 8.2不识别unicode_基于tensorflow 实现端到端的OCR:二代身份证号识别

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的.本文实现思路主要 ...

  4. python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...

  5. 利用 AssemblyAI 在 PyTorch 中建立端到端的语音识别模型

    作者 | Comet 译者 | 天道酬勤,责编 | Carol 出品 | AI 科技大本营(ID:rgznai100) 这篇文章是由AssemblyAI的机器学习研究工程师Michael Nguyen ...

  6. tensorflow LSTM + CTC实现端到端OCR

    最近在做OCR相关的东西,关于OCR真的是有悠久了历史了,最开始用tesseract然而效果总是不理想,其中字符分割真的是个博大精深的问题,那么多年那么多算法,然而应用到实际总是有诸多问题.比如说非等 ...

  7. 脸书开源第一个使用卷积神经网络技术的端到端语音识别系统

    https://www.toutiao.com/a6639449370913669635/ 2018-12-27 07:34:30 脸书发布全新自动语音识别的卷积方法 ,以及开源目前最先进的端到端语音 ...

  8. 百度宣布AI语音调用登顶中国第一,自研芯片+最新端到端模型颠覆传统语音识别算法...

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2019年,NLP和语音技术取得了多项技术突破,但是科技公司考虑更多的是AI的"场景",如何在各种场景中都能方便地集成语 ...

  9. 当微信小程序遇上TensorFlow:Server端实现补充

    在前面一篇文章<当微信小程序遇上TensorFlow:Server端实现>中,我们探讨了微信小程序server端的实现.今天在调试微信小程序时才发现一个问题,那就是:微信小程序要求HTTP ...

  10. 语音识别:从GMM-HMM到端到端

    临近秋招,语音识别岗位的招聘需求陆续发布,各大企业更希望能够招募到基础更扎实的语音人才.最近知乎上的一个招聘话题引起广泛讨论:你知道面试官如何判断语音识别的候选人基础是否扎实吗?其实很简单,问一两个G ...

最新文章

  1. 数据库acid简介(一)
  2. 在Android手机上配置office 365邮箱
  3. 纱窗.20190512
  4. adb命令安装apk到手机_安装在手机上自动化测试apk-傻猴
  5. java中list,set,map集合的区别,及面试要点
  6. squid代理与缓存(下)
  7. 七个不放过和四项原则
  8. MYSQL常用函数总结
  9. E-Prime学习笔记
  10. b2c京东流程图_京东商城的商业模式及其运作流程(精)
  11. UCOSII系统移植详解
  12. 相聚 桂林电子科技大学第三届ACM程序设计竞赛
  13. MySQL的登陆【数据库系统】
  14. java applet类开始博饼_博饼小游戏java源代码.doc
  15. android自动画廊,Android3D画廊效果与自动轮播Banner
  16. 基于51单片机+DS18B20温度测温器+LCD1602显示
  17. 如何将已有图片做成透明水印_如何给图片制作透明水印
  18. 单目标跟踪CVPR 2018 ECO+
  19. VueJs探索之watch用法详解
  20. ppt密码忘记了怎样能打开文档,ppt权限密码如何解开?

热门文章

  1. D. DS栈—波兰式,逆波兰式(dsoj c++)
  2. 揭秘信用卡账单、支付宝背后的黑色产业链
  3. DevExpress xtraGrid控件的使用
  4. 二维、三维、四维矩阵每个维度含义解释
  5. WebView交互架构项目实战(三):多进程WebView使用实践
  6. 介绍weixin4j实现微信JS-SDK签名算法
  7. QA for Install Oracle 11G Release 2 on Centos Linux 7
  8. 计算机系统的软件资源管理器,一套好用的文件管理器(资源管理器)软件,极大提高电脑办公和方便电脑使用...
  9. 阔密保密专家 防泄密软件概念
  10. android开发之来电自动拒接并自动回复短信_上课模式app