本文是观看上海交通大学陈谐老师在《人机语音通信》课程的讲座的笔记,原视频链接,本文参考[3] [4]。

1 Model Overview: Transformer Transducer

语音识别发展背景:
首先是GMM-HMM:混合高斯模型作声学模型,n-gram作为语言模型,hmm做时序建模模型;
12年深度学习发展,声学模型和语言学模型分别都逐渐被深度神经网络替换;
最近流行的是end2end模型(用存粹的神经网络模型进行语音识别,也不用hmm),模型更简单,此时可以将声学模型和语言模型联合起来进行优化,不再需要复杂的字典、声学模型和语言学模型等,性能也比较好(错误率比之前更低),这种模型结构有三大类:LAS、CTC、RNN-T。

这种端到端的语音识别系统在训练的时候也需要考虑以下因素:准确率、是否能实时处理语音信号、是否能流式处理、域适应问题。目前语音识别领域使用较多、性能较好的是transformer transducer模型[1],结构如下图所示,label encoder和audio encoder两个部分使用的结构是transformer的时候,模型结构为transformer transducer:

encoder部分使用的transformer结构如下图所示:

接下来详细解释Neural Transducer的结构如下,一般encoder部分使用transformer结构,predictor部分使用lstm结构,x代表语音信号的输入,y代表识别出来的文字输出,分别经过encoder和predictor之后,代表语音表征f和文字表征g,再将这两个表征进行联合训练(一般是线性层加relu函数)得到表征z,最后利用这个表征z来预测下一个词。
因为输入的语音帧数t一般是远大于文字数u的,因此通常来说,t >> u。为了实现对齐,一般需要在输出的文字中填充blank符号。每一个识别结果填充blank的方式有很多种,对所有填充的可能进行累积起来的概率就是目标函数。

上面这些模型存在两个大问题:

一、流式处理问题

使用transformer做流式处理的时候,由于有attention,会存在两方面的问题:

  1. 内存和计算量会随着语音帧长的逐渐增加而线性递增;
  2. 使用未来帧进行预测的时候(允许有一定延迟的情况下,这种方式可以提高识别率),look-ahead window会随着层数的增加而增加。

二、语言自适应问题
此外,传统的声学模型和语言模型分开的情况下,只需要单独在语言模型上进行语言自适应即可,但是transducer模型没有单独的语言模型,因此解决语言自适应问题有困难。

2 Efficient Streaming: Attention Mask is All You Need

针对流式处理问题,使用attention mask is all you need方案来解决,大概是在计算attention weight的时候,设计一个attention mask来决定对哪些帧计算weight,哪些帧不计算weight。
(1)离线系统,对任何一帧的预测都会看到整个句子,此时attention mask设置为全1即可。(非流式识别)

(2)将attention mask设置为下三角,每一帧只能看到历史信息,不能看到未来帧信息,因此不需要等语音结束就可以进行流式识别,但是内存和计算量会随着语音帧长的逐渐增加而线性递增。

(3)将attention mask中太远的历史帧设置为0,只保存有限的历史帧信息(3帧),因为计算代价不会随着时间的增长而增加(比如识别f10和f100的时候计算量是一样的)。
但是某些情况下,允许存在一定的延迟以提高识别性能,即需要对未来的某些帧也计算attention weight。

(4)允许看到未来最多两帧(lookahead window为[0, 2]),历史3帧。

(5)上面的mask可能存在某些帧仍然看不到未来帧的信息,因此有了下面的mask,look-ahead window为[1, 3](这种方式计算量难免会稍微增加)

实验表明,每一层也并不需要看到所有帧的历史信息,只需要看到一定数量的历史帧,识别错误率也和全部历史帧的错误率差别不大。

3 Efficient LM Adaptation: Factorized Neural Transducer

针对语言模型自适应问题,目前存在三个解决方法:
(1)基于TTS的方法
首先将目标语言文本进行语音合成,然后将合成的语音和文本输入模型进行finetune,这种方法的缺点就是计算代价比较大。
(2)external LM fusion
(3)fast LM adaptation
对端到端模型中的内部语言模型进行finetune,但是训练流程比较复杂。

因此[2]提出了一种新的解决办法 Factorized Neural Transducer(如下图),将预测blank和预测词的predictor部分分解成两个部分:predictor_b和predictor_v,分别只预测blank和只预测词。因此黄色结构部分就是一个正确的语言模型,它可以用来做语言模型自适应。训练的时候将transducer和语言模型的loss组合起来一起训练,自适应的时候只针对语言模型的loss进行训练。

利用文本进行语言模型自适应的实验结果表明,这种模型结构能够有效提升性能。

4 Discussion and Future Work

  • 验证语言模型是否真的是语言模型;
  • 提高benchmark性能;
  • 重新考虑RNN-T中的blank是否科学(正是因为blank的存在才会导致transducer做语言自适应比较复杂),考虑是否需要blank或者是否有更好的blank;
  • 还有一些提高性能的问题,比如更好地压缩延迟等。

[1] Zhang Q, Lu H, Sak H, et al. Transformer transducer: A streamable
speech recognition model with transformer encoders and rnn-t
loss[C]//ICASSP 2020-2020 IEEE International Conference on Acoustics,
Speech and Signal Processing (ICASSP). IEEE, 2020: 7829-7833.
[2] Chen X , Meng Z , Parthasarathy S , et al. Factorized Neural Transducer for Efficient Language Model Adaptation[J]. 2021.
[3]【Advancing Transformer Transducer for Speech Recognition on Large-Scale Dataset-哔哩哔哩】 https://b23.tv/E8FFm4F
[4] Chen X, Wu Y, Wang Z, et al. Developing real-time streaming transformer transducer for speech recognition on large-scale dataset[C]//ICASSP 2021-2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2021: 5904-5908.

Advancing Transformer Transducer for Speech Recognition on Large-Scale Dataset》相关推荐

  1. 【SFace】《SFace: An Efficient Network for Face Detection in Large Scale Variations》

    arXiv-2018 文章目录 1 Background and Motivation 2 Advantages / Contributions 3 Method 3.1 Feature Pyrami ...

  2. 语音识别(ASR)论文优选:端到端ASR综述Recent Advances in End-to-End Automatic Speech Recognition

    声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵.搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html.语音合成领域论文列表请访问h ...

  3. 【学习笔记】:Multi-mode Transformer Transducer with Stochastic Future Context

    原文链接 文章基本信息:题目,作者,作者机构,发表刊物或会议,年份,期刊会议等级(CCF) 题目,Multi-mode Transformer Transducer with Stochastic F ...

  4. 语音识别(ASR)论文优选:Adapting GPT, GPT-2 and BERT Language Models for Speech Recognition

    声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵.平时搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html.如转载,请标明出处.欢迎 ...

  5. (IS 19)wav2vec: Unsupervised Pre-training for Speech Recognition

    会议:INTERSPEECH 2019 论文:wav2vec: Unsupervised Pre-training for Speech Recognition 作者:Steffen Schneide ...

  6. Deep Audio-Visual Speech Recognition翻译

    原文链接:https://arxiv.org/pdf/1809.02108.pdf 这是一篇较为系统的介绍音视频融合的语音识别文章.翻译参考博客园一篇翻译,进行了大量修正和增补. 摘要 本文的目的是基 ...

  7. Kaldi学习笔记——The Kaldi Speech Recognition Toolkit(Kaldi语音识别工具箱)(上)

    最近看了有关KALDI的论文,在这里介绍一下. Abstract: We describe the design of Kaldi, a free, open-source toolkit for s ...

  8. 语音识别(Speech Recognition)综述

    文章目录 1. 语音识别的基本单位 1.1 Phoneme(音位,音素) 1.2 Grapheme(字位) 1.3 Word(词) 1.4 Morpheme(词素) 1.5 bytes 2. 获取语音 ...

  9. (ICASSP 19)Streaming End-to-end Speech Recognition for Mobile Devices

    会议:ICASSP 2019 论文:Streaming End-to-end Speech Recognition for Mobile Devices 作者:Yanzhang He, Tara N. ...

最新文章

  1. Observer Pattern 观察者模式
  2. linux下各个目录里面都装了什么
  3. 在Windows上使用Docker运行.NetCore
  4. Gym - 102001K Boomerangs 构造 + 三元环
  5. php购物车(session)
  6. 近期在做或要做的实验
  7. linkin大话面向对象--内部类
  8. leetcode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)
  9. NSNotFound
  10. 从原子操作走向模板部署,详解云上资源自动化部署新模式
  11. mysql 向量写法_mysql – 你如何在Ruby中处理一个非常大的向量?
  12. 一张图助你了解传统项目管理与敏捷项目管理的区别!
  13. 50个Windows自带软件的免费替代品
  14. sql在select中添加内容为空的字段
  15. 香农编码译码c语言,实验三香农编码.doc
  16. 周志华《机器学习》中的西瓜数据集
  17. PowerDesigner详细安装教程
  18. 干货 | 硬件设计基础60问
  19. android能用svg格式,关于Android SVG图形:Android SVG图形 – 将当前PNG文件转换为svg格式的缺点...
  20. iOS开发之支付宝集成

热门文章

  1. mysql的分页查询用哪个关键字_MySQL 分页查询
  2. 【Docker】子系统与其相关名词的界定、Control Groups等详细讲解
  3. Android获取SHA1
  4. 一念之差 一面是佛一面是魔
  5. jquery实现app开发闹钟功能_jquery+html5时钟特效代码共享(可设置闹钟并且语音提醒)...
  6. wzy的大冒险——接龙红包
  7. 电脑CPU型号规格清单及参数
  8. [JAVA] java读取Excel文件内容,jxl(Excel 2003)
  9. 《Java从入门到精通读后感》
  10. 报表数据连接二次开发