这篇文章主要调研的是另外一种改进在线语音识别的方法:基于 RNN Transducer 方法。当然最近强势的基于 Transformer 的 Encoder-Decoder 在线方法(MoChA-type/local window /triggered attention/Scout Network/Chunk-aware)也是我比较感兴趣的方向,后面会单独拎出来讨论。

这篇文章可能文字讲解的地方会比较少,因为图片的内容信息量已经很大了,同时论文的出处我会一并放出,有兴趣的朋友可以阅读下原文。因为我本人是基于 TensorFlow 进行实验的,所以文末会给出有助于我们搭建基于 TensorFlow 的 RNN-T 训练框架的 Repo。

实时系统的训练准则对⽐

Frame-Level Criterion

Cross Entropy:

CE Loss 公式

Sequence-Level Criteria

Maximum Mutual Information:

MMI Loss 公式

该 loss 出了对带浅层语言声学模型做基于词序列的标准解优化之外,还对竞争路径做了区分优化。

Minimum Phone Error or state-level Minimum Bayes Risk:

sMBR Loss 公式

基于MMI的进一步优化是,对标准路径做了相似路径优化扩充,引入了序列相似度打分,旨在缩小类内距离同时放大类外距离。

End-to-End Criteria

Connectionist Temporal Classification:

CTC Loss 公式

相信会有部分人认为 CTC 方法端到端框架下有点牵强,我觉得这很大可能是因为后期出了 RNN-T、Seq2Seq、Encoder-Decoder 框架。可在 CTC 方法刚提出的时候大家普遍都认为这就是一种端到端的方法,该方法极大的简化了此前基于 GMM-HMM alignment 的数据准备流程,英文可以基于 BPE 等方法直接制作 word-piece 就可以训练,中文,建立发音映射表或者基于常用字替换表就可以直接训练。当然后期还是会依赖发音词典和语言模型。

RNN-T:

RNN-T Loss 公式

RNN-T 是基于 CTC 的一个改进,详细内容可以参考两篇经典文章Sequence Transduction with Recurrent Neural Networks 和 Sequence to Sequence Learning with Neural Networks。具体优化如CTC、Prediction初始化,LayerNorm和学习率等会在后面论文实验部分来分享。似乎 RNN-T 在数据规模不是特别大(7~8万小时)的情况下,还是很需要工匠精神的。

论⽂中的实验对⽐

Model Units

以下是来自京东的一组训练框架的 setup

京东的实验准备

中文识别单元的实验对比如下:

不同识别单元对 Transducer 的影响

京东的实验结果关于中文字的实验结果似乎和阿里 Zhang Shiliang 论文中的 Investigation of Modeling Units for Mandarin Speech Recognition Using Dfsmn-ctc-smbr 结果有些出入。我的理解是两个框架下中文字的建模有比较大的区别,一个基于7228字作为完整映射,一个基于2000/3000/4000中文字加拼音(或常用字替换)后期还是要基于发音词典(或常用字映射)来解码。后者对于语言层面的解码有很大的优化空间。

Different Criterion

Datsebase is 1000 hours Sogou dataset. model units is Chinese character:

26 English characters

6784 frequently-used Chinese characters an unknown token (UNK)

a blank token

1000小时下不同的 RNN-T 优化方法对于识别率的影响

Dataset

不同数据量对于 RNN-T 的影响

Quality Improvements

RNN-T 初始化的影响

Configure:

8-layer encoder, 2048 unidirectional LSTM cells + 640 projection units.

2-layer prediction network, 2048 unidirectional LSTM cells + 640 projection units.

Model output units: grapheme or word-piece.

Total system size: ~120MB after quantization (more on this in a later slide).

RNN-T 的几个优化方法对于识别的影响以及 CTC 的对比

开源项⽬

Mingkun Huang 参考 warp-ctc 实现的 GPU/CPU 版本的 RNN-T Loss,目前支持 PyTorch/Tensorflow binding。我目前也是用这个项目做 RNN-T 的实验,结果符合预期。以下是我针对1万多小时的 3000字+1000Subword 训练的模型,测试了80多小时的语料,Greedy search 的测试结果:

加入预训练后 RNN-T 的 Greedy Search 结果提升明显

Noah Chalifour 大学生开发,一套基于 TensorFlow 2.0 的 RNN-T 训练框架,几乎从数据制作到训练、测试都是采用 TensorFlow,目前原作者似乎都没完整跑完一个 CommonVoice 训练。我目前跑了几个迭代,非常慢并且伴随 crash 的问题,猜测是因为训练过程中实时 Greedy Search 测试的缘故,所有只能从头完成了 RNN-T 的训练,后续考虑开源出来。说回来,rnnt-speech-recognition 这部分代码的条理很清晰,同时风格也比较精练,整套代码很值得参考。

涵盖比较全的训练框架,基于 TensorFlow 2.0. 目前还未详细看过,看文档和试验结果,应该还算蛮靠谱。有试过的朋友麻烦给个留言。

调研报告|在线语音识别改进之 RNN-T 训练相关推荐

  1. tensorflow 语音识别_调研报告|在线语音识别改进方法之序列区分性训练

    这篇文章主要调研的是一种常见的改进在线语音识别的方法:序列区分性训练(Sequence Discriminative Training).相信有很多人已经在 CTC/CE 的训练上遇到了瓶颈,而一些新 ...

  2. 深度网络学习调研报告

     深度网络学习调研报告 目录 1.前言...............................................3 1.1课题研究的背景及意义................. ...

  3. [万字长文] 人脸识别初步调研报告

    人脸识别初步调研报告 Contents 背景 应用背景 硬件背景 技术背景 相关公司及 app 著名公司 非著名公司 相关app 人脸识别业务总结 人脸识别攻防 产品使用对比 应用及开源实现 公开数据 ...

  4. 为提升在线语音识别效率,他创造了两种升级版算法模型

    近日,阿里算法专家坤承携<使用改进版本的LATENCY-CONTROLLED BLSTM 算法模型提升在线语音识别效率>(IMPROVING LATENCY-CONTROLLED BLST ...

  5. 在线语音识别引擎及识别方法与流程

    本发明涉及语音识别领域,具体涉及一种在线语音识别引擎及识别方法. 背景技术: 深度学习网络(Deep-Learning Neural Network,DNN)技术的发展,带来了语音识别领域的飞速发展. ...

  6. 全球及中国塑料包装行业发展方向与应用前景调研报告2022版

    全球及中国塑料包装行业发展方向与应用前景调研报告2022版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 [搜索鸿晟 ...

  7. 中国燃料电池行业供应规模及需求前景调研报告2021-2027年版

    中国燃料电池行业供应规模及需求前景调研报告2021-2027年版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10月 [搜 ...

  8. 解析《中国互联网软件测试行业2018年度调研报告》

    之前收到了一份TesterHome的调查问卷邀请:2018年度中国测试行业问卷调研.最近问卷的汇总结果出来了,有2000+的测试童鞋参与了问卷调查. 从幸存者偏差角度来说,无论是覆盖率还是准确性,结果 ...

  9. 边缘AI研发落地生态挑战调研报告发布

    摘要:随着边缘设备的广泛使用和性能提升,将机器学习相关的部分任务迁移到边缘,也即边缘AI技术,已成为必然趋势.但仅凭技术是不足够完成落地和产业转化的.近日我们启动了边缘AI研发落地生态挑战调研.我们发 ...

最新文章

  1. scau实验题 8596 Longest Ordered Subsequence
  2. python适合做后端开发吗-用Python开发app后端有优势吗
  3. C语言 从指定文件中依次读出字符直至文件结束
  4. nopCommerce的源代码结构和架构
  5. BMP位图之8位位图(三)
  6. 开发服务器 VSS开发库 自动备份方案
  7. Intel Core Enhanced Core架构/微架构/流水线 (8) - 执行核
  8. Kubernetes 证书过期
  9. php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符...
  10. codevs1287 矩阵乘法
  11. HDU 2639(01背包求第K大值)
  12. Office 365提供全天保障服务
  13. mysql一键部署_一键部署----mysql5.6--jue
  14. jsp页面什么时候用 .do 和 .jsp
  15. c语言语句结束的标准,C语言的语句要求以哪种符号结束?
  16. 基于 Arduino 的 RFID 识别实验
  17. ae效果英文版翻译对照表_AE CS6 最全特效中英翻译
  18. 设计模式在项目中的应用案例_BIM案例 | BIM技术在码头项目中的创新应用
  19. SteamSDK发布更新
  20. 关于精益创业理念随想

热门文章

  1. 选项卡 || 图片切换
  2. Codeforces 61B【怪在读题】
  3. 今天用pro安装nginx+php+mysql出现故障的解决方法
  4. 斐波那契数列的递归与迭代写法比较
  5. VC 播放WAV文件
  6. 用于图片切割,图片压缩,缩略图的生成(转到一个好东西)
  7. 排列组合的思考、组合数的推广和拓展
  8. Python 源码剖析(一)—— vs2013 编译 python 源码
  9. 机器学习基础(十八) —— decision stump
  10. 图像处理基本概念、术语