产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

端到端语音识别时代来临:网易杭州研究院的智能语音探索之路

  • 2019-12-17
  • 本文字数:6691 字

    阅读完需:约 22 分钟

端到端语音识别时代来临:网易杭州研究院的智能语音探索之路

从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效果真正达到实用化,语音识别技术花了快六十年,但在深度学习的助力之下,语音识别从实用到超过人类水平并没有花费太多时间。2015 以前,业界更多使用的是传统的 DNN-HMM 混合模型,需要借助对齐信息和上下文相关音素才能达到比较好的识别准确率。2015 年以后,CTC 算法兴起,简化了训练过程,而且识别效果毫不逊色,语音界纷纷投入大量资源训练更深、更复杂的神经网络,利用端到端技术进一步大幅提升语音识别的性能。2017 年 12 月,谷歌提出“使用序列到序列模型的当前最佳语音识别系统”(State-of-the-art Speech Recognition With Sequence-to-Sequence Models),将词错率降低至 5.6%,优于人类表现。自此,基于 Attention 机制的新型端到端语音识别系统成为了 ASR 领域的研究主流。从语音领域国际顶会 Interspeech 来看,Attention 相关算法几乎出现在了今年所有语音识别或者说话人识别研究的文章中。端到端语音识别的时代已经来临。


近日,网易杭州研究院(简称网易杭研)语音识别团队凭借其在端到端语音识别系统的积累和针对 Transformer 网络的优化,在 ASRU2019 中英混杂语音识别挑战赛端到端语音识别赛道夺得冠军。借此机会,我们采访了网易杭研语音识别团队负责人刘东,他与我们分享了语音识别团队背后的故事,以及网易杭研在语音识别技术领域的实践和落地经验。

从 4 个人到 10 个人,算法与工程实践并重

网易杭研对语音识别技术的研究始于 2013 年,当时移动互联网兴起,网易的手游以及其它一些 APP 都开始支持发送语音消息,语音转文字功能成为刚需。大家逐渐意识到,语音识别将来可能会成为互联网产品研发流程中不可或缺的一项技术,语音识别团队自此成立。成立之初团队只有四个人,彼时刚加入网易一年的刘东也成为了其中一员。


刚进入网易的时候,刘东主要支持网易云音乐业务,参与了听歌识曲、音乐特征分析、哼唱识别等项目,从 2013 年开始负责网易语音识别系统的核心研发工作。由于网易将深度学习技术用到线上系统的时间相对较早,当时各类开源系统、框架和工具还不像现在这么成熟,因此刘东对于算法研发上线的各个环节都会深度参与:在算法模型研发阶段,为了追求更好的效果,需要研究各种算法与模型结构,同时为了解决海量数据的大规模处理,需要搭建并行计算集群;在模型上线阶段,除了做好算法本身的研发外,还需要对整个计算流程的设计、代码实现的优化、线上服务的部署等都有所了解,才能提供稳定高效的线上服务。这个过程帮助刘东练就了从语音技术、深度学习到 CPU/GPU 优化、客户端算法优化及服务工程搭建的全栈能力。


在刘东看来,生产级语音识别系统的建设,需要团队成员既懂网络架构,又懂底层优化。据介绍,现在网易杭研语音识别团队规模一直维持在 10 人左右,其中有一位解决方案工程师负责各业务需求对接和跟进,其他成员均为算法研发识别工程师。语音识别系统研发中的数据收集整理、模型训练、线上系统开发、服务部署维护都由团队负责,这就要求团队成员同时具备算法和工程方面的能力。



网易杭州研究院语音识别团队(左六为刘东)


此外,语音识别团队研发和落地业界先进技术,最终还是为了解决网易内部各业务遇到的实际问题,而业务问题是多种多样的,因此团队成员需要比较强的综合能力,除了算法和工程方面的专业技能外,还需要很强的学习能力、问题的分析和总结能力。在业务方向上,团队不仅局限在语音识别一个领域,和语音音频相关的方向也会有涉及,比如为网易云音乐提供音频相关技术、语种识别(Language Recognition)等。

6 年迭代,网易杭研语音识别系统从无到有

从 2012 年开始,伴随着深度学习技术的发展,语音识别技术也经历了革命性的变化,基本可以概括为以下三个阶段:


  • 基于 DNN-HMM(深度神经网络 - 隐马尔科夫模型)的语音识别

  • 基于 CTC(连接时序分类)的端到端语音识别

  • 基于 Attention 的端到端语音识别


从技术维度来看,其发展历程与业界的技术进展基本保持一致,首先从 HMM+DNN 系统升级到 HMM+CNN/LSTM 系统,再升级到后来的 CTC 系统,近两年则逐渐转为基于 Transformer 的纯端到端系统。


从 2013 年开始,网易杭研的语音识别系统经历了从最初原型系统、到后期逐步完善优化、直至大规模应用三个阶段。


最开始团队主要基于采购的标准数据集以及相关开源工具来搭建系统,虽然勉强可以工作,但识别精度和识别效率上都不甚理想;后来刘东带领团队逐步构建了自己的数据处理流程,收集并标注了大量实际场景数据,在内部自己维护了一套经过人工仔细校验的发音词典,以及与业务场景匹配的语言模型,显著优化了识别准确度。同时还构建了自己的一套标准化训练流程,并开发了高度优化的线上推理引擎,使得线上服务的效率明显提升。这个阶段的语音识别系统已经能够满足业务大规模使用的需求,开始定向服务少量业务。


杭研的语音识别系统一边在业务实践中磨练一边不断升级,团队又基于整个识别系统构建了一个闭环优化流程,持续积累数据来解决识别不准确的问题,同时在算法层面持续跟进技术发展、迭代算法,构建了多种算法系统的训练流程以及线上服务框架,并结合业务特点匹配最合适的解决方案,使得系统在实际业务中的表现持续提升。同时结合实际业务场景的需求,语音识别系统陆续推出了短语音识别、长语音识别、实时语音识别等服务,在业务方的多次对比评测中取得了较好的结果,并在多个业务大规模落地。


在刘东看来,只要能满足业务需求的识别系统就是好的识别系统,它需要在业务实际场景下提供稳定可靠的识别能力,且充分适配业务需求。


在网易杭研当前的语音识别算法系统中,有不同的算法组件来适配不同的需求,比如传统框架下支持边录音边识别的算法、支持整句识别的算法,端到端框架下的识别算法,以及语音检测、后处理等算法等;在模型层面,也会有针对不同业务场景的模型,比如针对电话客服场景的模型、针对游戏语音消息场景的模型等。其中,Kaldi 和 ESPNET 是现阶段网易杭研语音识别团队最常用的两个框架,研究人员有很多工作会基于这两个框架展开,团队自研的一些算法改进与创新有很多是在这两个框架下完成的。对于工作中发现的框架存在的问题,团队也会在社区中与开发者讨论并提出修改建议。


经过长期积累和多次迭代,网易杭研的语音识别系统现在已经能较好地满足网易内部各类业务需求,同时做到比较高的识别准确率。不过刘东也坦言,该系统目前支持的语种相对还比较少,后续将随着网易集团业务的国际化发展逐步扩展。

炙手可热的端到端语音识别

伴随着 LSTM 等循环神经网络(RNN)等技术的成功,基于深度学习的端到端建模技术逐渐在学术界和工业界中得到关注,其中一个经典的算法就是 CTC 算法。2015 年起, Google、百度等公司使用 CTC 模型取得了比传统混合识别系统更好的性能,业界开始在语音识别系统中大量使用 CTC 技术,拉开了端到端语音识别系统时代的序幕。


何为“端到端”?有人把省略了 GMM-HMM 对齐以及上下文相关建模的系统称为端到端系统;也有人把进一步省略词典、甚至语言模型的系统称为端到端。按照业界目前更通用的说法,端到端语音识别系统指的是,与传统的 DNN-HMM 混合模型相比,省略掉了 GMM-HMM 系统得到对齐信息和上下文相关音素的步骤,无需多次迭代,直接从神经网络开始训练。主要包括连接时序分类(CTC)模型、递归神经网络转换器(RNN-T)模型、基于注意力机制的序列到序列(Attention based Seq2Seq)模型。


端到端系统与传统算法模型简单对比如下:



在数据规模比较大的情况下,CTC 算法的效果优于原来基于 HMM 的语音识别系统,但 CTC 算法上有条件独立的假设,对上下文的信息利用不充分,在识别系统中应用时还需要额外引入语言模型才能达到比较好的效果。


2017 年 12 月,谷歌提出“使用序列到序列模型的当前最佳语音识别系统”(State-of-the-art Speech Recognition With Sequence-to-Sequence Models),首次将基于 Attention 机制的端到端算法应用到语音识别系统中,使得采用单一的深度模型就可以完成语音序列到对应文本序列的转换,而且在识别准确率上达到甚至超过传统算法。


相比于传统的语音识别系统,端到端系统在构建时不需要关注底层的发音字典以及相关的音素信息,减少了对语言学知识的要求,采用纯数据驱动的方式,系统复杂度上简化很多,构建起来更加容易,而且灵活性也更强。


正因为如此,端到端识别技术近些年成为了学术界研究的热点,ICASSP、Interspeech 等学术会议上有大量端到端识别相关的研究成果发表,而且在模型性能优化、应用领域拓展、数据有效利用等多个方向也有创新成果持续涌现。在工业界,以 Google 为代表的互联网巨头也通过论文或博客的方式,多次介绍端到端识别系统在实际业务中的应用落地情况。


网易杭研语音识别团队近期工作的重点也是端到端的语音识别系统,在这次的 ASRU2019 中英混杂语音识别挑战赛中,刘东的团队只参加了端到端语音识别赛道的比赛。


人类实际日常交流中经常会有中文语境下英文单词夹杂的现象,这在学术上称为语种混杂(Code-switch),是当前语音识别技术面临的重要挑战之一。其技术难点主要表现为:嵌入语受主体语影响形成的非母语口音现象严重、不同语言音素构成之间的差异给混合声学建模带来巨大困难、带标注的混合语音训练数据极其稀缺。


刘东进一步解释道,传统语音算法在不同语种识别基础建模单元上,语言学信息是不一样的,如汉语是基于拼音的声母韵母、英语则是英文的音素,这种技术架构对指定语种的语言学知识依赖较大,也难以扩展到多语种识别。网易杭研智能语音团队希望能借助端到端技术来解决上述问题,用统一的网络进行建模,尽量减少语种相关的发音词典编辑、建模单元选择等工作,基于数据驱动而非语言学信息来构建系统,这样后续成果也可以快速迁移到其他语言上。


在端到端这个技术体系内,对于语音识别这种序列到序列(Seq2Seq)问题,参考机器翻译的经验以及业界最近的论文成果,Transformer 网络结构相比其它结构有更好的性能,成为了网易杭研语音识别团队的首选。团队采用基于注意力(Attention)机制的 Transformer 网络结构,并做了各种细节优化,如引入多任务学习机制(Multi-Task Learning),在编码端加入 CTC 损失函数,加速模型收敛,同时在解码时利用 CTC 得分避免 Attention 错误;在解码端引入逐字的语种分类任务,加强模型对语种的区分能力。最终在端到端语音识别赛道提供的数据集上实现了 5.91%的综合错误率(MixErrorRate),从 28 个团队中脱颖而出。


这次比赛对于团队来说是一次阶段性的成果检验。刘东表示,算法层面,杭研中英混合识别在基础框架研发、调优的工作已经基本完成,系统正在逐步完善和优化之中,目前已有业务在测试,但要实现大规模应用还有一些细节需要优化,包括针对一些特定场景的数据收集、模型微调等,需要在业务实践中不断调整。


由于训练的简便性和良好的性能,基于 Attention 的纯端到端系统俨然成为了如今语音识别的标配,但它也并非大家认为的那么完美。刘东坦承,虽然端到端语音识别系统拥有诸多优点,但它的局限也不可忽视。由于是纯数据驱动,端到端语音识别系统没有充分利用到先验的各种语言学知识,在实际使用场景下想要达到比较好的效果,相比于传统算法需要更多的标注数据来做模型训练,虽然系统构建简化了但数据收集难度上升了;而且和其它深度学习系统类似,模型的可解释性不高,错误样例的分析与优化难度大;此外,目前的端到端技术都是序列到序列的映射,缺少传统系统中逐帧分类的信息,因此对于一些需要非常精确的时间对齐信息的场景并不适用。

语音识别落地不再单纯以准确率作为风向标

语音识别的准确率是业内公司在对外宣传是最经常提到的一个指标,但也是最容易让人感到疑惑的一个指标。早些年,业内公司对外宣称的语音识别准确率就已经达到了 97%、98%,各家差别不大,这一指标真的能代表公司语音技术水平的优劣吗?对此,刘东表示并没有太大的可比性。


在刘东看来,语音识别和许多其它 AI 技术一样,都存在场景适配的问题。目前的语音识别技术还不能做到广泛的通用性,需要结合实际的应用场景做适配,如果实际使用的场景和算法训练时使用的数据区别较大,识别效果会有比较明显的下降。杭研语音识别服务性能的评估,都是基于网易内部真实的业务场景进行的,包括客观评价和主观评价两种方式,客观评价就是学术界通用的字错误率统计;主观评价是指人工评估,排除对内容理解无帮助的词的影响,人工统计整句中关键内容识别的准确程度,综合在多个实际业务中的客观与主观评估结果,得到综合的准确率指标。而业界同行宣传的精度指标,应该也是在其特定场景数据上测试得到的结果,虽然有一定的参考意义,但是横向直接对比各家数值的高低是不科学的,而且由于各系统面向的领域都有所不同,所以直接比较意义也不大。


识别准确率不代表一切,在一定程度上代表了整个语音领域的风向,从业人员和消费者都渐渐不再把单纯的技术指标作为关注的焦点了。2019 年,语音识别似乎进入了一个相对平静期,语音识别领域的竞争逐渐从研发转为应用。研发比的是标准环境下纯粹的算法谁更有优势,而应用比较的是在真实场景下谁的技术更能产生优异的用户体验。人们关注的焦点渐渐回归到体验,回归到一种“新的交互方式到底能给我们带来什么价值”这样更为纯粹的商业视角。


当前网易集团内的各条业务线都或多或少用到了杭研的语音识别服务:在游戏业务中,通过语音识别将玩家的语音消息转换为文字进行展示,并且部分游戏里还设置了语音答题等玩法;在音乐业务中,基于语音识别技术获取歌词的时间轴信息用于制作实时歌词,以及在音视频直播中对主播语音进行识别,辅助进行审核与分析;在网易新闻中,对用户上传的短视频进行语音识别,用于内容审核;在有道词典的语音翻译功能中,对用户语音识别为文字信息再进行翻译;此外,在易盾语音反垃圾、七鱼电话客服、易信、云信等业务中也都有落地。


但是从 2017 年开始爆发的智能音箱市场,网易却没有特别出彩的表现。相比之下,国内在语音识别做得比较好的公司,包括阿里、百度、小米等,都有自己的智能音箱产品来承托其智能语音能力。不过在刘东看来,是否布局智能音箱,与公司语音技术能力并无关系。他表示,音箱产品属于业务线层面的问题,从技术层面来看,语音识别在音箱的链条中只占一小部分,后面还需要完善的语义理解以及配套的内容服务体系做支撑;从语音识别的角度看,音箱也只是其落地的一个业务领域而已。目前语音识别技术在网易集团业务中已经有广泛的应用,是否有智能音箱产品和语音技术能力强不强没有太大的相关性。

未来展望

在刘东眼中,2017-2019 年是端到端技术快速发展的三年。过去三年以端到端技术为代表的各种新算法不断出现并应用在实际业务系统中,提升语音识别的效果,基于 HMM 的系统已经不是语音识别系统的唯一选择,技术的不断迭代推动了语音识别领域的持续发展;同时语音识别技术的应用领域越来越广,基于语音识别技术的人机交互系统开始大规模应用,并且在限定场景下已经有比较好的表现,比如机器人电话客服系统、智能手机助手、智能音箱等。


对于从火爆渐趋冷静的语音识别领域,刘东还有很多期望:虽然当下的语音识别系统在一些业务中有非常好的表现,但依然存在处理不好的场景,比如针对重口音、方言的识别,嘈杂环境的识别,多人同时说话的识别等,后续还有很大的进步空间;同时,远场语音识别目前相比近场还有很大差距;此外,语音识别系统与其它系统比如语音合成、机器翻译、语义理解等的统一和融合,随着深度学习技术的发展和演进应该也会有所突破。


对于杭研语音识别团队的未来方向和规划,刘东表示当前还是会把主要精力用在结合业务真实数据优化端到端系统。对于语音领域的新技术,杭研语音识别团队会一直保持关注,并在内部做一些小范围的探索,但只有当技术足够成熟且在网易的业务场景能够带来足够好的提升效果时,才会开始逐步推广。

采访嘉宾介绍

刘东,网易杭州研究院人工智能部语音算法专家,毕业于清华大学,精通语音技术、深度学习、CPU/GPU 优化、客户端算法优化及服务工程搭建等全栈能力。2012 年加入网易,负责语音识别系统的核心研发工作,持续打造高性能语音识别引擎,并带领团队完成语音核心服务相关功能及非功能性需求,推动语音类技术在网易集团业务中的落地应用。刘东是网易集团最早将深度学习应用于实际生产的算法专家,2014 年与团队从 0 到 1 打造网易集团第一代基于深度学习的语音识别服务,并大规模应用于游戏业务中。此后实现针对网易集团不同业务场景的语音识别定制化研发流程,满足游戏、七鱼、易盾、有道、严选、音乐、传媒等业务需求,并在多种业务对比中领先业界公开水平。


2019-12-17 09:045497
用户头像
蔡芳芳 InfoQ主编

发布了 800 篇内容, 共 550.5 次阅读, 收获喜欢 2789 次。

关注

评论

发布
暂无评论
发现更多内容

深度剖析React懒加载原理

xiaofeng

React

硬核好文!网络拓扑类型:总线、环形、星形、网状、树形、点对点、混合

wljslmz

网络技术 网络拓扑 10月月更

最长回文串

掘金安东尼

10月月更 算法、

基于IDE和dlv远程调试Kubernetes组件

琦彦

Go Kubernetes 调试 10月月更 delve

什么是 Python 垃圾回收机制中的引用计数

宇宙之一粟

Python 垃圾回收机制 引用计数 10月月更

网络请求模块(2)

张立梵

Python. 爬虫必备知识讲解 10月月更

Servlet规范中的监听器-Listener

楠羽

Servlet 笔记 10月月更

恼人的网络时延

agnostic

网络时延

【牛客刷题-算法】NC22 合并两个有序的数组

清风莫追

算法 数组 10月月更

2022-10-04:以下go语言代码输出什么?A:{123} main.T{x:123} B:{123} T{x:123} C:boo boo D:boo main.T{x:123}。 packag

福大大架构师每日一题

golang 福大大 选择题

React性能优化的8种方式

xiaofeng

React

深入了解计算机语言

邱学喆

响应式编程 C语言 汇编 对象编程 C++

【C语言难点突破】指针入门讲解

Geek_65222d

10月月更

【牛客刷题-算法】NC25 删除有序链表中重复的元素-I

清风莫追

算法 链表 10月月更

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵教育

书单 国庆节

Vue3入门指北(八)v-model

Augus

Vue3 10月月更

面向对象究竟是什么鬼?该如何理解?

乌龟哥哥

10月月更

C++学习---_IO_new_fdopen函数原理分析学习

桑榆

c++ 源码分析 10月月更

【愚公系列】2022年10月 Go教学课程 018-分支结构之switch

愚公搬代码

10月月更

InetAddress.getLocalHost() 执行很慢?

xiaoxi666

网络 网络库

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵社区

书单 国庆节

React组件复用的技巧

夏天的味道123

React

开发者有话说|我何以坚持编程25年?

个人成长

ESP32-C3 学习测试 蓝牙 篇(六、添加 Service)

矜辰所致

service 蓝牙 ESP32-C3 10月月更

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

React中常见的TypeScript定义实战

xiaofeng

React

一Go到底】第四天---数据类型

指剑

Go golang 10月月更

Qt|双缓存机制

中国好公民st

c++ qt 10月月更

【牛客刷题-算法】NC16 对称的二叉树

清风莫追

算法 二叉树 10月月更

微服务通信

穿过生命散发芬芳

微服务 10月月更

Python应用之反转字符串

梦笔生花

10月月更 反向字符串输出 函数与表达式

端到端语音识别时代来临:网易杭州研究院的智能语音探索之路_语言 & 开发_蔡芳芳_InfoQ精选文章