让电脑能听会说(上)_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 工程 • 技术

让电脑能听会说(上)

《科学世界》  发表于 2018年05月08日

智能语音技术的应用日益普及,现在电脑已经可以进行实时语音翻译。机器到底是如何学会“听懂”一个人说的话,并翻译成另一种语言说出来的呢?《科学世界》记者方晨专访了微软亚洲研究院首席研究员宋謌平博士,请他为我们介绍其中的奥妙。

 

说话是我们人类最自然、最方便的交流方式。过去,会说话的机器人还只是出现在科幻作品中,但近年来这种技术已逐渐进入我们的生活,你或许已经使用过智能手机上的语音助手,或在开车时用过语音导航。前不久,微软推出了Skype Translator中文预览版,可以实现中英文之间的实时语音翻译,也就是将一个人说的话用对方的语言说出来,让两个只会说各自母语的人可以直接交谈。那么,电脑是如何学会听懂对话内容并翻译成另一种语言说出来的?

 

智能语音翻译包括3个环节

科学世界:您是什么时候开始研究语音的?

宋謌平:我个人做语音的研究工作已经超过30年。我是从念研究生的时候就开始做,后来加入美国贝尔实验室,工作了20年,然后在日本工作了两年,2004年加入微软亚洲研究院,到现在已经超过10年了。在整个过程中,我基本上做的都是语音的研究,包括说话人识别、语音合成、语音编码、抗噪、增强等。

微软研究院的创始人里克·雷斯特(Rick Rashid)首次提出了微软亚洲研究院要做一个从语音到语音翻译的项目,把以前看似不可能的事变为可能。这个翻译系统做了许多年,我是最早参与这个计划的人之一,这个项目主要由微软的雷蒙德和北京两个研究院负责。

20150604让电脑能听会说-上.jpg

图:里克·雷斯特现场演示实时语音翻译技术

 


科学世界:实时语音翻译技术包括哪些内容?

:语音到语音的翻译系统,基本上可以分成三个模块:语音识别、机器翻译和语音合成。甲跟乙说话,我们要做一个甲说的语言的语音识别,把它听出来,然后把语音变成一串词组,中文的话就是汉字;有了文字以后,第二步是机器翻译,就是把甲说的文字翻译成乙可以理解的语言文字;最后,有了文字以后,还要把它说出来。从乙到甲的话,次序都要反过来。这两个沟通方向,可以说可逆,也可以说不可逆。因为两种语言,它的结构、词汇、发音都很不一样,不同方向上很可能有不同的困难。这三个模块,我们的语音组负责语音识别和语音合成这两部分,机器翻译由自然语言计算组负责。

有人说为什么要那么复杂,大家都用键盘打字不就可以了?但是现在很多终端上的键盘和屏幕都很小,打字不好打,阅读显示的文字也比较费力。另外,许多情况下打字没有说话快。其实只要能够说得清晰、听得懂,语音是一种很好的人机交互界面。

我们当初做语音翻译,听起来就是一个梦想。做了几年之后,201210月,在天津召开的“二十一世纪的计算”学术研讨会上,我们做了一个现场展示,就是里克·雷斯特在台上用英文演讲,同时机器识别、翻译,并用语音合成播放出来。

 

科学世界:那是英文和中文之间的翻译?

:对。语音识别技术把里克·雷斯特说的英语识别出来,在大屏幕上显示出英文。大概最多有1秒钟的迟滞,这就是语音识别的过程。认出英文以后,机器翻译成中文。翻译过程中有些因为中英文表达语序不同,所以还要重组后再做翻译。最后是语音合成器把文字变成语音。我们用里克·雷斯特说英文的语料,训练了一个说中文的系统,而且语音听起来像他本人。

 

科学世界:那么现在这方面有什么实际的应用?

:现在通过Skype Translator,我们把它产品化、服务化。这个基本上包括了刚才讲的整个语音识别、机器翻译,还有语音合成的过程。现在我们有Windows PhoneSkype等平台来实现人与人之间的沟通。Skype Translator是目前一个产品化的先锋,我们希望通过它,使说不同语言的人之间可以沟通。另外,有可能实现人和机器之间的沟通。

 

让电脑听懂人的语言

科学世界:回到语音翻译的第一步,语音识别。电脑是怎么听懂人说的语言的?

:你说机器能够“听懂”,我稍微修正一下,语音识别不完全等于“听懂”,但至少是让它“听到”。如果机器真的能够直接全“听懂”,机器翻译也就不是问题了。就像我们看抽象画,每种颜色都认得,每个线条都知道,但说不定还是不知道这个抽象画是什么意思。也就是说“听到”和“听懂”之间还是有距离。

目前来讲,语音识别比“听到”可能更进了一步,因为在这个过程中,我们也利用了一些文法、词汇和习惯的说法来帮助机器“听到”,也就是说“听到”的过程中也有一些“听懂”的成分。语言或者语音的规律里,有一些与“听懂”、“听到”都有关系。我们希望机器不但能够清楚地听到对方说了哪些词,还能听出来是谁说的,甚至连说话时的某些情绪都能识别出来。不过,纯粹的语音识别就是要听到,你说的每一个词都能够听清楚,没有听错。

其实所有的识别,不管是图像识别还是语音识别,基本上都是一个比对的过程。就像小孩听父母说话、学说话一样,首先要让他都听到,而且要通过互动来强化他的意识,让他把具体的内容和听到的声音联系起来。这就是一个学习或者训练的过程。我们也是提供数据、语料,通过训练告诉机器这些语料说的是什么内容。我们希望利用匹配好的文字和语音去训练语音识别器(用于识别语音的电脑程序)。

当然,语音、语言的变化是无穷的,你不可能把世界上所有人的语音全部录下来去做比对。第一,数据量太大了;第二,人们说话总是会有一些新的内容,不可能穷尽。所以我们希望利用一个基于统计的识别模式来实现这个技术。统计的方法和我们总结某些物理定律有些类似,也就是通过大量的观察和数据分析,归纳出一种最简单的方式,可以去解释已有的和新的数据。表示这些数据之间的关系就是一个统计模型,现在有些用马尔可夫模型,有些用比对的程序,或者用机器的深度学习和深层神经网络等,其实它们要达到的根本目的都是相同的。

电脑通过学习和训练的过程,产生了一个模型,这个模型一方面可以用来解释训练数据,另外更重要的是解释一些将要测试的数据。测试数据和训练数据始终是会有一些差别的,不论是噪声的多寡、离麦克风的远近、说话人的不同、讲话的含混度、有没有带口音、高低起伏抑扬顿挫的变化,这些都会影响到识别的效果。对这些数据的解释的准确性,直接与之前在训练中有没有解释过类似的数据有关。

 

科学世界:这些语料信息,都要数字化吗?

:都要把它数字化。整个模型就是一个数字模型,而且是一个经过极度压缩的数字模型。因为如果要把所有东西都放进来对比,会比到天长地久。

要让一个模型对于没有见过的数据能够进行比对,而且还要尽可能少出错,这个模型本身就需要有高精度和抗噪性。因此,训练它的语料需要包括尽可能多的变量,比如说噪音、距离麦克风的远近、不同的手机、环境、口音、情绪等等。让机器在这些变量当中去寻找那些不变的内容,也就是要识别出它说了哪些话。这是一个异中求同的过程。

做语音识别,不仅要求训练数据越多越好,还要求训练数据有代表性,能够尽量描述可能的变量。训练数据的来源有很多,包括翻译的网页、配有字幕的视频,以及经过翻译并转录成文字的对话等。

虽然这永远是一个夸父追日的过程,训练得再多也永远不够,可是你如果能够多做一点,机器就会多学一点。这和小孩学语言类似,听得越多,互动越多,矫正也就越多,效果就越好。

我们前面展示的应用,用来训练的语料的时间长度差不多是2000个小时,包括了一两千人说的话。经过这样训练的系统,对任何一个人说的英文,只要是比较标准、口音不是很重,都可以识别。


(本文发表于《科学世界》2015年第6期)



全部评论

你的评论