订阅程序员杂志RSS CSDN首页> 程序员杂志

DNN与微软同声传译系统背后的故事

发表于2013-06-12 20:23| 次阅读| 来源CSDN| 0 条评论| 作者卢鸫翔

摘要:2012年10月的天津,微软在“21世纪的计算大会”上展示了一套全自动同声传译系统。流畅的效果令其背后的关键技术DNN(深层神经网络)第一次进入了许多人的视野。本文将讲述DNN与这套同声传译系统背后的故事。

2012年10月的天津,微软首席研究官Rick Rashid在“21世纪的计算大会”上公开演示了一个全自动同声传译系统,他的英文演讲被实时转换成与他的音色相近、字正腔圆的中文。流畅的效果不但赢得了现场观众的掌声,也让这一演示背后的关键技术——DNN(深层神经网络)第一次进入了许多人的视野。

作为这套实时语音传译系统的主要构建者之一,微软亚洲研究院主管研究员Frank Seide,以及语音组负责人、首席研究员宋謌平讲述了DNN与微软同声传译系统背后的故事。


图1 宋謌平从1982年就开始从事语音处理方面的研究

语音识别技术简史

从判断独立单词,到识别连续语句;从区分阿拉伯数字,到辨别辞典中的上万语汇;从需要口齿清楚地朗读,到能理解生活中随意的谈话,一次次技术突破对语音识别的发展起到了至关重要的作用。

最早的基于电子计算机的语音识别系统是由贝尔实验室1952年开发的Audrey,它能识别10个英文数字,通过跟踪语音中的共振峰,获得98%的准确率。

1960年代语音识别的两大突破是线性预测编码(Linear Predictive Coding)技术,用作语音信号的频谱包络特征分析和两帧频谱的比对,以及Richard Bellman提出的动态规划(Dynamic Programming)技术,用作语音识别的比对。

1970年代,从Baum提出相关数学算法,到贝尔实验室、IBM等语音研究单位的研究,语音识别技术的另一次突破是开始使用了隐马尔科夫模型 HMM(Hidden Markov Model)。从此以后,语音识别技术都没有脱离HMM框架。

而如今,Deep Neural Network (DNN)的出现,为语音识别技术带来了一次新突破。DNN与Deep Learning是什么关系?宋謌平解释说,虽然两个术语都包含“深”字,但含义不尽相同,DNN中的“深”指确实存在多层结构的神经网络,它的含义务实;而Deep Learning中的“深”更像一个形容词,与“浅”相对,多少有些抽象或哲学意味。

实时翻译的关键技术

同声传译(Speech-To-Speech)的过程大致可以分为三段,首先是使用DNN技术的语音识别系统将输入的语音变为文本;接下来是机器翻译,将文本从语言A转换成语言B;最后利用个性化的文语转换系统 Personalized TTS( Text-To-Speech),将语言B的文字合成与演讲人音色相近的语音,并朗读出来。

研究人员很快发现了其中的挑战,倘若希望搭建Speech-To-Speech系统,并不只是把三个阶段串联起来这么简单——问题在于,从前机器翻译被设计和训练 成善于处理书面文字,这与人们交谈时的习惯完全不同。停顿、反复、夹杂语气词都会导致机器翻译不准。一个微小的意外,都可能使整个语句的结构变得完全不同。

“使结果发生翻天覆地变化的是DNN,通过应用DNN,在日常对话中,最多可使单词识别错误率比之前降低42%。这意味着,以往10个错误,有4个能用这种方法解决。这是自HMM出现以来,单项技术使语音识别精确度获得的最大提升”,Frank Seide解释道。

利用人工神经网络改善语音识别性能并非新想法,1984年,反向传播算法论文的发表让人们知道应该如何训练神经网络,但在多层神经网络中,反向传播算法极不稳定,如何训练有效的模型是件难以捉摸的事。直至2006年,Geoffrey Hinton——二十年前反向传播算法论文的作者之一发表了另一种新方法,基本解决了之前利用反向传播算法训练多层网络不可靠的问题。但在语音识别领域, 技术仍没取得实质性的进展。

Seide说,直到2009年,他的同事俞栋注意到,此前人们在训练神经网络识别语音时忽略了一个重要问题——协同发音(Coarticulation)建模。将这种简单的方法与DNN结合,一下就产生了飞跃。有意思的是,如果将这种方法应用于非DNN,效果并不特别明显,若单纯使用DNN,也无法取得如此惊人的突破。

训练语音识别系统通常需要庞大的语料库,微软在以往的产品中最多使用过15000小时的语料(超过这个规模,训练模型一般说来不会有更多改善),但采用俞栋的方式后,仅基于24小时的语料库进行训练,就取得了显著进展。在这之后,俞栋 和Seide两人开始合作这套系统的软硬件研发。他们将新模型和工具在含有300小时语音训练数据的Switchboard标准数据集上进行评测,早期训练模型需要等待十天,之后通过反向传播算法改进,新模型便不再需要等待这么长时间。“每天都可以测试改进后的版本,每次都会发现性能得到提升,从几天测试 一次,到一天测试几次,看着错误率比之前的方法一路降低至32%(前文提到42%的最佳效果,还结合了其他技术)”,Seide兴奋地说:“我每天坐在计算机旁,夜不能寐,这是我生命中最激动的一段时光。”这个32%识别率的改善于2011年秋季在意大利佛罗伦萨的Interspeech语音国际会议上发表,对语音研究界起了极大的冲击。从此以后,世界各地语音识别的 研究与开发都开始了DNN尝试。


图2 微软语音识别系统架构

并行是DNN系统的最大难题

“性能制约”是早期商用语音识别系统中并未采用人工神经网络技术实现的原因之一。为了最大限度利用计算机的运算能力,Seide和俞栋选择了在GPU上进行运算 (最初在多块NVIDIA Tesla C2090显卡上进行),这对编程技术是一项考验,因为CUDA与常规的编程方式多有不同,另一个软件挑战是如何在内存中处理大量原始数据,尤其当数据量 达到TB级别时,将涉及诸多内存页面的换入换出操作。当这些问题处理完毕,他们还是发现训练的开始阶段需要等待几天时间,速度并不尽如人意。这时的挑战在 于如何将训练过程并行化,但问题在于,与图像识别不同,语音识别中的反向传播算法天生不适合并行化,因为它总是利用一小块数据更新整个系统,接着又利用一小块数据,再次更新整个系统,若想将这个过程并行化,需要极大的带宽。这也是类似Hadoop这样当前流行的大数据软件帮不上忙的原因——Hadoop擅长并行处理,但目前对这套系统的训练加速,能力有限。

DNN如何工作

Seide说,没人确切知道深层神经网络为何有效,但他愿意分享一些自己的猜想。

这套系统中,DNN的第一层隐层节点用于接受输入,接下来的不同层级能够识别语音频谱中的特定模式,这与在静态图像中识别不同的边缘相近,层级越高,识别的模式抽象化程度也越高,而整个系统中包含7级隐层。为什么是7层?因为在实践中,这个数量的隐层效果最好。

在DNN得到广泛应用前,过去的三十年,高斯混合模型(Gaussian Mixture Model,GMM)曾是语音识别研究的主要方向。在过去的这段时间,几乎可以说,整个语音识别研究领域都在围绕GMM系统进行优化,而DNN的出现打破了一切。

DNN的神奇之处在于,它拥有更为稳定的表述(Invariant Representation)特性,层级越多,抽象能力越强。举例来说,尽管男女声音频谱差别很大,但对DNN来说,几乎没有分别,而GMM模型则受其 影响颇大;又比如针对特定个人训练的GMM模型,效率能够提升10%,而DNN则几乎不变;在Aurora语音数据库的噪音测试中,通过多种方式优化后GMM模型所达到的效果,DNN很容易就能实现。在实践中,还曾尝试在训练不同语言时,共用相同的中间层,或者蓝牙麦克风的训练带宽与信号带宽不一致时 DNN也有出色表现,这些都是使用GMM模型无法想象的。

“过去二三十年的对GMM的优化成果,有相当一部分其实对DNN有害。假如我们能更早使用DNN,会节省大量时间”,Seide半开玩笑地讲道。

图3 Frank Seide出生于德国,2001年来到北京

广泛应用语音识别技术的挑战

对于语音识别技术来说,若想获得广泛应用,从前面对的主要问题并不是准确率低,而是找到合适的应用场景。对于使用者来说,配置麦克风就不是一件容易的事。而当智能手机流行后,语音输入比按键更便利的优势开始显现,使用者也知道如何与手机通过语言交流。DNN技术恰逢其时地出现,才引起了人们对它的关注。

微软产品组员工常有这样的疑问:研究员开发出的新技术适合用在我的产品中吗?应用难度有多大?会不会在实验中看起来有效,但现实中却不好使?在产品团队眼中,那些看似并非核心科技,但关乎产品推出的其他因素也同等重要。不同公司的背景、擅长的技术各不相同,将新技术与现有的技术结合的难度也各异。 Seide说:“有的公司已经开始使用二阶优化(Second order Optimization)的算法,有可能替代反向传播(Backward Propagation)算法训练系统。”

利用DNN的语音识别技术早在2009年就已取得阶段性成果,但直至2012年,在公众平台上以更接近现实生活的方式展示后,才更引起人们的广泛关注。从这个角度看,研究人员一方面需要钻研技术,另一方面还要为技术找到合适的应用舞台。

对中文使用者来说,时常感到识别准确率逊于英文,那么对语音识别来说,中文更困难吗?

宋謌平研究员谈到了语言的矛盾面:每种语言都有其长处与短处,一种语言在某种情况下的长处,很可能成为另一情况下的短处。中文没有时态,看起来很简洁,但倘若缺乏下文,就很难判断一句话描述的事件是在何时发生。而我们平时讲话,有时会有重复,初看起来啰嗦,但也因此增加了冗余,增强了抗噪能力。目前的主要几种语言,它们的表达能力相近,语音识别的难度其实也相差无几。我们有这样的印象,主要因为,虽然中文使用者甚众,但从商业应用角度考量,市场远还不及英文,专门针对中文语音识别所做的研究和优化还相对较少。不过宋謌平认为,未来中文识别的准确率可以做得与英文一样好,甚至有可能更好。

Deep Learning不是AI 难题的万灵丹

人们赋予Deep Learning这个术语“以大脑方式思考”的含义,它擅长的领域也是人类大脑所擅长的认知和感觉——如视觉和语音识别,但DNN大概永远也不会擅长计算 圆周率。解决现实世界的问题,有时从生物学角度出发是最佳途径,有时从另外的渠道可能更奏效。“我们谈到AI时,意味着高度抽象,Deep Learning是抽象的一种方式,但它远不是全部。通过神经网络能够识别动物,并不意味就理解了世界,我甚至将其看做‘模式识别’而非‘智 能’”,Seide这样认为:“‘深’对智能系统来说很重要,但它不是智能的全部。语音识别可以视为AI领域的一个缩影,DNN也只是语音识别技术中的一 部分——若从代码长度的角度考量,它甚至只是全部技术中很小的一部分。”

Deep Learning本身也并不能像人类一样真正持续地“学习”,而更接近“训练”,一旦训练完毕,系统即被定型,而人类总会不断接受输入。如何使系统能快速学习新的数据输入,适应新的环境与应用,是DNN的研究必须面对的新挑战。

科学与炼金术

百度多媒体部副总监余凯曾说,他视Deep Learning为艺术更甚于科学,因为其中包含许多我们未知的细节。而Seide和宋謌平则用一个感情色彩更强烈的词语——“炼金术”来描述它。人们希望能知晓事物最根本的原理,但这个过程永远不可能一蹴而就。

“科学”这个词,一部分含义在于理解事物的原理,但更重要的一部分在于探索的过程。科学家常常会像黑客一样利用系统化的、经过严密训练的方式进行探索,突破原有理论的极限。

语音识别正是如此,在安静的环境中听写数字,几乎早可以做到百分之百准确,但环境更嘈杂时,问题就变得复杂多了——当你认为已经解决一个难题时,总可以让这 个问题变得更困难。或早或晚,你总会发现现有模型的瓶颈,原以为找到了解决问题的终极方案,却会发现最后那几个不能克服的困难将始终存在。

当前这套基于DNN语音识别系统,也面临着两个挑战,一是系统尚缺乏适合某个特定主题的领域数据——数据并非越多越好,而是需要匹配;二是浓重的口音会影响识别效果。

Seide说:“我羡慕那些拥有金手指,可以点石成金的人,就像俞栋,他擅长模型训练,能为我所不能,也许这就是所谓的‘艺术’。而这种直觉源自长期训练,不断尝试,以及从失败中吸取的教训。”

宋謌平则说:“如果你问化学家炼金术的故事,他们或许会告诉你,炼金术恰是现代化学的起源。我和Seide将用我们的余生继续投入探索和破译语音的奥秘。

更多文章,请见《程序员》2013年6月刊

0
0

近期活动

更多

即刻申请MDC C2014移动开发者大会免费展位!

本届大会以“你就是主角”为主题,为移动开发者打造一场真正的年度盛会。为让更多的移动应用团队有自己专属、固定的展示交流区域,大会主办方特别提供了MDCC应用团队免费展位。无论是成熟的创业团队,还是处于成长期的移动应用、移动游戏、智能硬件开发团队,只要有成型作品,均可免费申请。

微博关注

程序员杂志for Android/iPad 免费下载
Top_arrow