Skype前几天推出了实时语音翻译的预览版,让用户可以跨越语言的障碍畅快交流。今天我们就来聊聊微软是如何做到这一点的。
Skype 的翻译系统主要分三步:首先,把你的实时语音转换成文字;然后,再把文字翻译成另一种语言的文字;最后,把文字转换成语音。其中,识别实时语音并转换成文字一直是最棘手的部分。
图像处理和语音识别是深度学习发展的两个主要方向。近几年来,由于深度学习的进步,语音识别依靠深度神经网络(deep neural networks)也取得了不少进展。神经网络在八十年代就已出现,但真正开始焕发光芒是在 2012 年,Google 让计算机能够“自我修养”——在一堆视频里自主学习并总结出猫的概念。
微软研究员 John Platt 在接收wired采访时曾表示,微软其实很早之前就开始利用神经网络改善平板电脑的手写识别精确度了。而 Skype 实时语音翻译系统真正的突破在于识别不同用户间的不同语言不同口音的说话方式。
这一突破发生在 2009 年的圣诞节,当时微软在英国哥伦比亚赞助了一个小型研讨会,来自多伦多大学的演讲嘉宾 Geoff Hinton 介绍了自己研究的一种模仿脑神经工作原理的机器学习模型,这一模型依靠多层次的人工神经元,让机器逐渐理解更加复杂的概念。微软听完介绍后,随即砸下一笔巨款,让 Hinton 的模型可以利用最新的图形处理器单元进行测试。测试的结果很棒,语音识别的精确度提升了 25%。
Skype 的机器学习原型通过预览阶段的大量数据进行训练,并优化语音识别(SR)和自动化机器翻译(MT)任务,这些优化包括去除语句中的不流利成分(比如“ahs”、“umms”和重复性的语言)、把文本分段成句子、增加标点符号、文本的大小写等等。
其中,语音识别和机器翻译的训练集数据主要有多个来源,包括已翻译的网页、带字幕的视频、翻译转录的一对一对话内容等。此外,很多志愿者向微软贡献出的语音对话也是一个非常重要的训练集数据来源。同时,Skype 的翻译系统还会记录用户的对话内容,实现二次利用,以进行数据分析,加以学习。
在数据进入系统之后,机器学习软件会为对话中的单词建立统计模型,当你说到某一个东西时,系统会在统计模型里寻找类似的单词,并响应之前做过的类似的翻译。实时语音翻译对用户对话的环境很敏感,稍有噪音干扰可能准确度就会降低很多。这一方面,深度神经网络有效的减少识别错误率,改善了系统的健壮性,让实时翻译能够有更大的应用范围。
至于不同语言的文本翻译,Skype 利用的则是和Bing翻译一样的引擎技术:语法和统计模型的结合使用,同时为特定语言进行特殊的训练。普通的文本翻译往往要求使用规范正确的书面语言,而 Skype 翻译系统不仅包括 Bing 翻译的引擎技术,还额外增加了一层口语化的语言业务。
此外,Skype 还建立了一套自定义的串连整个流程的架构,以协调系统里多个部分间的运作。如何简单又高效的运作整个系统,也是一门不小的学问。
Skype 的实时语音翻译系统还面临着很多挑战,比如语言的变化的速度很快,每个人说话的方式又很独特,这些都会为实时翻译造成不少的麻烦。微软研究院总监 Vikram Dendi 说,截止到星期一,总共已经有 5 万个用户注册了预览版 Skype 翻译,而一天后,这个数字变成了两倍。对于这一种可能会真正改变人们交流方式的科技产品,越来越多的人为之感到激动。
原文发布时间为:2015-01-21
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号