编者按:在人工智能飞速发展的今天,语音识别技术成为很多设备的标配,过去五年间,语音识别的需求逐渐爆发。然而,目前语音识别相关的应用及使用场景仍具有局限性,因此,国内外众多企业纷纷开始探索语音识别的新算法新策略。
本文中,百分点感知智能实验室从技术发展的角度出发,深入分析了语音识别技术不同发展阶段的模型构建和优化,以及未来发展趋势。
语音识别技术简单的说,就是将计算机接收到的音频信号转换为相应的文字。语音识别技术从上个世纪50年代出现,发展到现在已有半个多世纪的历史。经过多轮技术迭代,语音识别已经从最早的孤立数字识别,发展到今天复杂环境下的连续语音识别,并且已经应用到各种电子产品中,为人们的日常生活带来许多便利。
从技术发展的历史来讲,语音识别技术主要经历了三个时代,即基于模版匹配的技术框架、基于统计机器学习的技术框架和最新的端到端技术框架。近年来,得益于深度学习技术突破性的进展,以及移动互联网的普及带来的海量数据的积累,语音识别已经达到了非常高的准确率,在某些数据集上甚至超过了人类的识别能力。
随着识别准确率的提升,研究者们的关注点也从语音识别的准确率,渐渐转移到了一些更加复杂的问题上,比如多语种混合语音识别。该问题涉及到多语种混合建模、迁移学习和小样本学习等技术。对某些小语种来说,由于无法获得足够多的训练样本,因此,如何从小样本数据中构建可靠的语音识别系统成为一个待解决的难题。
针对该问题,百分点科技提出了一系列的算法,针对小语种语音识别系统构建中出现的训练样本获得困难、文本书写规则复杂、发音单元不统一等问题作了相应的优化。基于这些技术,百分点科技已经成功研发出数十种小语种语音识别系统,在支持语种的数量,以及识别准确率上都处于国内领先地位。
接下来的章节中,将重点介绍语音识别技术不同发展阶段经历的重要技术框架,包括传统的HMM-GMM和HMM-DNN,以及最新的端到端方法等。
一、GMM-HMM/DNN-HMM
GMM-HMM
先从GMM-HMM开始说,GMM-HMM基本使用HTK或者Kaldi进行开发。在2010年之前,整个语音识别领域都是在GMM-HMM里做一些文章,如图一所示。

图一 GMM-HMM框架
我们的语音通过特征提取后,利用混合高斯模(GMM)来对特征进行建模。这里的建模单元是cd-states,cd-states的具体生成方法如图二所示。

图二 cd-states的生成方法
建模单元在GMM-HMM时代,或者DNN-HMM时代,基本没有太多创新,大多使用tied triphone,即senone,下图描述了GMM-HMM的整体过程。

图三 GMM-HMM的整体过程
图三展示了基本的训练前准备,此外就是纯训练的过程。纯训练解决的是如何将图三右边的特征向量分配到左边状态序列里的问题。
DNN-HMM
在2010年前后,由于深度学习的发展,整个语音识别的框架开始转变成DNN-HMM。其实就是把原来用GMM对特征进行建模,转换成用神经网络去建模。由于神经网络从2010年至今不断发展,各种不同的结构不断出现,也带来了不同的效果。DNN-HMM的基本结构如图四所示。

图四 DNN-HMM的基本结构
DNN模型,可以是纯DNN模型、CNN模型或LSTM模型等。整个模型层只是在GMM基础上做替换。在这个时代,模型结构整体上都是各种调优,最经典的模型结果就是谷歌的CLDNN模型和LSTM结构。
《Context-DependentPre-Trained Deep Neural Networks for Large-Vocabulary Speech Recognition》是公认的第一篇研究DNN-HMM的论文,文中对比了GMM-HMM跟DNN-HMM的性能,如下表所示。

而后,谷歌、微软等公司在这一算法上不断推进,在模型结构上各种挑战,下面的表格是Alex Graves在《Hybrid speech recognition with deepbidirectional LSTM》里GMM,DNN和DBLSTM的性能对比,该数据集用的是WSJ。

从上述的实验结果中可以看到,相对传统的GMM-HMM框架,DNN-HMM在语音识别任务上可以获得全面的提升。DNN-HMM之所以取得巨大的成功,通常被认为有三个原因:第一,DNN-HMM舍弃了声学特征的分布假设,模型更加复杂精准;第二,DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息;第三,可以更好的利用鉴别性模型的特点。
二、端到端语音识别
端到端语音识别,是近年来业界研究的热点,主流的端到端方法包括CTC,RNN-T和LAS,如图五所示。

图五 端到端语音识别方法
CTC
传统的模型训练还是比较繁琐,而且特别依赖HMM这套架构体系。真正脱离HMM的是CTC。CTC在一开始是由Hinton的博士生Grave发现的。CTC框架虽然在学习传统的HMM,但是抛弃了HMM中一些复杂的东西。CTC从原理上就解释的比HMM好,因为强制对齐的问题是会存在不确定因素或者状态边界有时是分不清楚的,但HMM必须要求分一个出来。
而CTC的好处就在于,它引入了一个blank概念,在边界不确定的时候就用blank代替,用尖峰来表示确定性。所以边界不准的地方我们就可以用blank来替代,而我们觉得确信的东西来用一个尖峰来表示,这样尖峰经过迭代就越来越强,如图六所示。

图六 CTC的工作原理
CTC在业界的使用有2个办法,有人把它当作声学模型使用,有人把它当作语音识别的全部。但目前工业界系统都只把CTC当作声学模型来使用,其效果更好。纯端到端的使用CTC做语音识别,效果还是不够好。
这里说下chain模型,Chain模型的起源来自kaldi。kaldi当时也想做CTC,但发现kaldi体系下CTC效果不好,但CTC的一些思想特别好,后来Dan Povey发现可以在此基础上做一些优化调整,于是就把chain模型调好了。但在kaldi体系里chain模型的效果的确比原来模型的效果要更好,这个在Dan Povey的论文中有解释。
CTC时代的改进让语音识别技术朝着非常好的方向发展,CTC还有一个贡献就是前面提到的建模单元,CTC把建模单元从原来的cd-states调整为cdphone,或到后面的音节(syllable),或到后面的字级别(char)。因此,端到端的语音识别系统里就很少用前面细粒度的建模。目前很多公司的线上系统都是基于LSTM的CTC系统。
CTC在业界用得最成功的论文是《Fast and Accurate Recurrent Neural NetworkAcoustic Models for Speech Recognition》,论文里探索出来在CTC领域比较稳定的模型结构是5层LSTM的结构。这篇文章从LSTM是单向还是双向,建模单元是cdstate是ciphone还是最终的cdphone等问题进行探究。集中建模单元的比较结果,如下面的表格所示。从表格上可以看到,性能最优的是cdphone的双向LSTM的CTC系统。但是由于双向在线上流式处理会不好处理,所以单向LSTM的性能也是可以接受的。

谷歌还探索了区分度训练sMBR在CTC这套系统下带来了多少的性能提升,结果如下面的表格所示。

此外,谷歌在这一阶段还探索了一套教CLDNN的模型结构,结构如图七所示。

图七 CLDNN的模型结构
该模型的整体性能对比如下:

整体CTC阶段,以Alex Graves的论文为主线,论文中从timit小数据集,到最终谷歌上万小时数据集,一步一步验证了CTC算法的威力,引领了语音界的潮流。CTC是语音界一个比较大的里程碑的算法。
LAS

图八 LAS模型的整体结构
接下来就是注意力机制(attention)。注意力机制天然适合seq2seq的模型,而语音天然就是序列问题。LAS的全称叫做listen, attended and spell,此模型拉开了纯端到端语音识别架构的序幕,一个LAS模型的整体结构如图九所示。LAS目前应该是所有网络结构里面最好的模型,性能也是最好的,这点毋庸置疑,超过了原来基于LSTM-CTC的baseline。但是LAS要求见到所有的输入,这对流式解码来说是不允许的,这一致命的问题影响了这种算法的推进,也引起了众多研究者的关注。当然最好的办法就是把attention对输入那块改小点,出了一个叫Mocha的算法,该算法以后有机会再做介绍。
CTC算法虽然是一个里程牌的算法,但CTC算法也有缺陷,比如要求每一帧是条件独立的假设,比如要想性能好需要外加语言模型。一开始的LAS模型效果也不够好,实验对比的结果如下表所示。

后来谷歌的研究者们经过各种算法演练,各种尝试,最终提出了可流式解码,性能也更好的模型,结果如下表所示。但是严格上来说,谷歌的流式模型也不是LAS模型,如果不考虑流式解码,LAS模型结构肯定是最优的。

RNN-T
和LAS模型类似的,还有一个叫RNN-T算法,它天然适合流式解码。RNN-T也是Grave提出的,此算法在2012年左右就提出来了,但是并没有受到广泛关注,直到谷歌把它运用到pixel手机里才开始流行起来。RNN-T相比CTC,继承了blank机制,但对原来的路径做了约束。相比CTC来讲, RNN-T的约束更合理,所以整体性能也比CTC好。但是RNN-T较难训练,一般需要把CTC模型当作预训练模型的基础再进行训练。此外,RNN-T的显存极易爆炸,因此有很多人在改进显存的应用。谷歌在2020 ICASSP里的论文里写着用RNN-T结合LAS,效果超过了基于LSTM-CTC的baseline方案。图九表示了从HMM的路径扩展,到CTC约束的路径,再到RNN-T的路径约束。

图九 HMM、CTC和RNN-T的路径约束
RNN-T最初在timit上的模型性能如下表所示。

后来,谷歌在大数据上各种尝试,比如预训练、模型结构优化等,最终性能达到了比CTC好的性能,谷歌的RNN-T模型的结构如图十所示。

图十 谷歌的RNN-T模型的结构
谷歌最终在大数据集上验证了性能比基线好。这是一个里程碑,但这些都是Alex Graves工作的延展。由于RNN-T天然具备流式,外加RNN-T模型效果好,谷歌不断的宣传这个模型结构,此模型最终也被谷歌上线到pixel手机上。
Transformer/Conformer
transformer和conformer是目前性能最好的模型。transformer模型是从NLP借鉴到ASR领域,从ESPnet的论文里证明, transformer模型在各个数据集上效果比RNN或者kaldi的模型都好,如图十一所示。

图十一 transformer模型在各个数据集上效果
此外,图十二表示了在librispeech数据集上各个模型的性能对比(错误率),大家可以自己来看,目前最好的系统就是conformer LAS模型。

图十二 在librispeech数据集上各个模型的性能对比(错误率)图片来源于https://github.com/hirofumi0810/neural_sp
同样,在谷歌的论文《FastEmit: Low-latency Streaming ASR with Sequence-levelEmission Regularization》里,同样在librispeech上,conformer模型比LSTM或者transformer模型好,如图十三所示。

图十三 conformer模型在librispeech上的错误率
最后,为什么要去大家都去研究端到端模型,其实可以从两方面来考虑:第一,端到端模型把原来传统的模型简化到最简单的模型,抛弃了传统的那些复杂的概念和步骤;第二,其实整个端到端模型用很小的模型结构大小就达到原来几十G模型的效果。谷歌论文的原文里写着:
In this section, we compare the proposed RNN-T+LAS model (0.18G inmodel size) to a state-of-the-art conventional model. This model uses alow-frame-rate (LFR) acoustic model which emits contextdependent phonemes[11] (0.1GB), a 764k-word pronunciation model (2.2GB), a 1st-pass 5-gramlanguage-model (4.9GB), as well as a 2nd-pass larger MaxEnt language model(80GB) [31]. Similar to how the E2E model incurs cost with a 2nd-pass LASrescorer, the conventional model also incurs cost with the MaxEnt rescorer. Wefound that for voice-search traffic, the 50% computation latency for the MaxEntrescorer is around 2.3ms and the 90% computation latency is around 28ms. InFigure 2, we compare both the WER and EP90 of the conventional and E2E models.The figure shows that for an EP90 operating point of 550ms or above, the E2Emodel has a better WER and EP latency tradeoff compared to the conventionalmodel. At the operating point of matching 90% total latency (EP90 latency + 90%2nd-pass rescoring computation latency) of E2E and server models, Table 6 showsE2E gives a 8% relative improvement over conventional, while being more than400-times smaller in size.
但端到端模型真正与业务相结合时,遇到的问题还是很明显,比如:不同场景下模型需要如何调整?遇到一些新词的时候LM如何调整?针对此类问题,学术界和工业界都在寻找新的解决方案。

参考资料
[1]谷歌end-to-end speech recogntion
https://docs.google.com/presentation/d/1RFfws_WdT2lBrURbPLxNJScUOR-ArQfCOJlGk4NYaYc/edit?usp=sharing
[2]A Streaming On-Device End-to-End Model Surpassing Server-Side ConventionalModel Quality and Latency :https://arxiv.org/pdf/2003.12710.pdf
[3]几个端到端的开源代码地址:espnet,wenet,speechbrain,wav2letter,
https://github.com/hirofumi0810/neural_sp
https://github.com/cywang97/StreamingTransformer
[4]Towards End-to-End Speech Recognition
[5]李宏毅老师的课程:https://speech.ee.ntu.edu.tw/~hylee/dlhlp/2020-spring.html

百分点感知智能实验室:语音识别技术发展阶段探究相关推荐

  1. 百分点感知智能实验室:计算机视觉理论和应用研究

    编者按:计算机视觉(ComputerVision,CV)是一门综合性的学科,是极富挑战性的重要研究领域,目前已经吸引了来自各个学科的研究者参加到对它的研究之中. 本文中,百分点感知智能实验室梳理了计算 ...

  2. 百分点认知智能实验室:智能校对的技术原理和实践

    编者按 :大数据时代下各种文本信息爆炸,传统的文本分析处理工作逐渐被计算机取代.文本数据量越大,其中所包含的错误的总数也越多,通过校对工作来纠正文本中的错误显得尤其重要.传统的校对主要依赖人工,通过人 ...

  3. 百分点认知智能实验室:基于NL2SQL的问答技术和实践

    百分点认知智能实验室:基于NL2SQL的问答技术和实践 编者按 NL2SQL是语义解析和智能问答领域的前沿问题,可以将人类的自然语言问句转化为结构化查询语句,是实现人类和数据库无缝交互和提高数据库分析 ...

  4. 百分点认知智能实验室出品:情感分析在舆情中的研发实践(上)

    大数据产业创新服务媒体 --聚焦数据 · 改变商业 编者按 文本情感分析是对带有主观感情色彩的文本进行分析.处理.归纳和推理的过程.互联网上每时每刻都会产生大量文本,这其中也包含大量的用户直接参与的. ...

  5. 百分点认知智能实验室出品:机器翻译是如何炼成的(上)

    数据猿 [金猿产品展]百分点智能媒体审校系统:内容安全生产的守护者 大数据产业创新服务媒体 --聚焦数据 · 改变商业 编者按 机器翻译作为自然语言处理中最典型的应用,翻译"神器" ...

  6. 百分点认知智能实验室:如何打造工业级的机器翻译

    编者按 机器翻译是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程,不同于目前的主流机器翻译,大多是基于神经机器翻译,实现单纯的机器翻译,打造兼具稳定.易用.高效并符合用户需求 ...

  7. 百分点认知智能实验室出品:机器翻译是如何炼成的(下)

    数据猿报道 [金猿产品展]百分点智能媒体审校系统:内容安全生产的守护者 大数据产业创新服务媒体 --聚焦数据 · 改变商业 编者按 在"机器翻译是如何炼成的(上)"的文章中,我们回 ...

  8. 百分点认知智能实验室:智能对话技术应用和实践

    转载自DataFun Talk 文字由DataFun Talk整理 编者按:智能对话系统因其巨大的潜力和商业价值受到越来越多研究者和从业者的关注,对话的主要种类包括闲聊型.知识型.任务型.阅读理解型等 ...

  9. 百分点认知智能实验室:NLP模型开发平台在舆情分析中的设计和实践(下)

    编者按 NLP模型开发平台是以快速打造智能业务为核心目标,无需机器学习专业知识,模型创建-数据上传-数据标注(智能标注.数据扩充)-模型训练-模型发布-模型校验全流程可视化便捷操作,短时间内即可获得高 ...

  10. 百分点认知智能实验室出品:智能问答中的对抗攻击及防御策略

    编者按 深度学习模型应用广泛,但其自身有一定的"脆弱性",即模型输入的微小改动,在不影响人判断的情况下,可能使模型的输出出错,这个过程被称为对模型的对抗攻击.针对对抗攻击的研究,早 ...

最新文章

  1. LightOJ - 1038 Race to 1 Again 基础期望概率 dp
  2. 十二 手游开发神器 cocos2d-x editor 之游戏暂停悬浮层
  3. Ubuntu系统下添加程序启动器
  4. PyQt5 技术篇-QTableWidget表格组件指定行的隐藏与显示控制实例演示,设置表格指定列的列宽方法
  5. 【行业趋势】国内这10个AI研究院,你想好去哪个了吗?
  6. 人工神经网络_验证码破译(数据挖掘入门与实践-实验9)
  7. 研发和人力资源发展模式对比研究
  8. 雅可比旋转求解对称二维矩阵的特征值和特征向量
  9. Cookie和Session 登录
  10. Tiktok下载量激增至20亿次,视频带货或将席卷海外,跨境电商的风口
  11. matlab程序中for,matlab中的for循环
  12. [转载] 七龙珠第一部——第029话 冒险再度开始
  13. rapidxml对unicode的支持
  14. ultilize什么意思_utilize是什么意思_utilize在线翻译_读音_用法_例句_含义-查字典网...
  15. oracle in like组合,IN操作符与LIKE子句-各种查询
  16. 笔记本需要测试哪些软件有哪些,笔记本电脑制造应用测试有哪些呢?
  17. OC 5217欧创芯原装芯片一款连续电感电流导通模 式的降压型 LED 恒流驱动器,SOT23-5 封装
  18. 拒绝反爬虫!教你搞定爬虫验证码
  19. android软件开发 开题报告,基于Android手机app开发与设计 毕业设计 开题报告
  20. 编码——隐匿在计算机软硬件背后的语言上

热门文章

  1. 重磅 | 企业大数据战略规划,看这一篇文章就够了!
  2. Scratch(十七):保卫萝卜
  3. 深度去除WinRAR广告
  4. 盘点 7 个超级 Nice 的微信小程序项目
  5. 药品数据查询系统工具(非付费官网50个)
  6. 分享盒子直播软件.已测试,网络机顶盒看电视直播哪个软件好(最好用的三款免费直播软件分享)...
  7. JxBrowser做爬虫时处理浏览器对话框
  8. MySQL安装配置+Navicat安装配置
  9. 【Vue】postman汉化教程 保姆级教程 包教会
  10. 专访李运华:程序员如何在技术上提升自己