揭密微软语音翻译软件内幕

时间:2022-09-09 12:02:40

揭密微软语音翻译软件内幕

2012年11月,微软了一段视频(http:///20121109/n357137973.shtml),微软首席研究官瑞克·拉希德(Rick Rashid)在视频中演示了他们正在研发的语音翻译软件的使用。这款软件不仅能将拉希德的现场演讲实时转换成文本显示在大屏幕上,而且能同步语音翻译成其他语言。借助软件,拉希德现场大秀了一段还算标准的中国普通话,声音中保留了拉希德的口音、音色和语调,听上去就像拉希德本人亲口所说。这正是微软研究院正在下大力气研发的语音翻译软件。

让机器像人一样识别声音

语音翻译(Speech translation)就是通过计算机系统实现持不同语言的说话人之间的话语翻译的过程,也称口语翻译或对话翻译。语音翻译技术一般包括三大部分:语音识别(输入)、机器翻译(转换处理)、语音合成(输出)。

我们知道,OCR识别。可以将纸面上的文字转变成电脑可识别的文本,而语音识别与其类似,不过它是将人的说话语音转变成文本。人的语音是千差万别的,如不同的方言口音,说话时的重复、停顿、错误等,都增加了软件对语音的识别难度。人工神经网络是较好的解决方案之一。

人工神经网络技术包括学习和识别两个过程。其中的学习过程,就是使用者按要求念出指定的文本,经过话筒转化为已知的语音信号作为学习样本,经过语音分段,从中求取语音的特征参数(这个过程反复多次,所以也称之为训练)。识别的过程则是,将待测的语音(同样经过话筒)进行语音分段,提取出特征参数,按一定的规则与学习所得的结果进行比对计算,最后得出识别的结果。可以看出,学习和识别的过程中,最关键的是语音特征参数的求取。

如图所示,语音信号输入就是将人的声带发出的模拟波形语音转换成数字波形,这样才能被计算机处理,这跟OCR识别中先把文字扫描进电脑的道理是一样的。人说话时一般都是连贯的,语音信号分段,就是根据字与字之间、词与词之间极短的间隔(低音或无音),将话语分解成每一个语音段,最后通过各种算法对处理过的语音段进行分析。比如不少语音识别系统中采用倒频谱(Cepstrum)分析,将倒频谱参数作为语音的特征参数输入神经网络中。

微软本次演示的软件,在人工神经网络技术上更进一步,采用了“深度神经网络”(Deep Neural Networks,DNNs)技术。

语音识别系统的本质,实际上就是对语音组成单元(音素)进行建模,比如英语中表达发音方式的大约也就30个音素。而深层神经网络(DNNs)将音素进一步细分,分解成更小的元素(Senone),总数达到几千上万个。这项创新简化了大词汇量语音识别中的语音处理,大大降低了错词率。原理何在?其实从输入法的编码就可以想象得到,中文有几万字(相当于形式各变的语音),却只有26个字母键(相当于有限的音素)可用,于是造成了许多重码,输入时我们必须时时手工选择才不会出错。而如果用来编码的字母足够多,重码率肯定可以降低。

不一样的语言里找出相似规则

语音到文本的问题解决了,接下来是更大的难题:机器怎么翻译?语言千变万化,两种语言之间很难一一对应。前人为此探索出很多方法,可以归结为两大类型:基于语言规则的机器翻译法(包括直接翻译系统、转换系统、中间语言系统等)和基于语料库的机器翻译法(包括统计法、实例法等)。微软的语音翻译软件中机器翻译的部分,采用的是多引擎翻译,即多种翻译方法的整合,所以这里我们在两大类型中各挑一个典型的翻译方法来介绍。

以中英文为例,像“This is a book”和“这是一本书”这么一一对应的句子少之又少,而且“a”和“一本”之间也不是完全对应。更多的是“The book which was given to him was a workbook of English grammar”这样的句子,如果一个单词一个单词对应翻译,就成了“这书哪个是给到他是一本手册的英语语法”根本就不通,实际意思是“送给他的是一本英语语法练习册”。看似很凌乱,但通过分析会发现,混乱的原因主要是两种语言对定语的处理习惯不同造成的。中文定语前置,而英语定语习惯后置。

整个机器翻译过程可分为三个阶段:分析、转换、生成。因为自然语言有着太多的岐义性,所以这个过程也是对岐义的一步步消解。软件首先根据一系列算法对句子进行切分(即分词),并进行词性标注。词性对结构分析非常重要,比如上例中的代词which和介词of,通过词性判断可以确定最终翻译中的定语位置。一般词会有多个词性,所以还要通上下文分析排除有岐义的词性,得到明确判断。接下来是句法分析,一般是树形结构,由词到词组,由词组到句子。结构分析完成后进行转换,最后生成目标语言。当语法清晰了,程序算法也就容易实现。

基于实例的机器翻译

简单来说,基于实例的机器翻译系统中,存有一个对照的翻译实例语料库,实例库主要有两个字段,一个保存源语言句子(比如英文),另一个保存与之对应的译文(比如中文)。当要翻译某个句子时,系统先把这个句子与实例库进行比较,找出最相似的句子,模拟这个句子相对应的译文,最后输出译文。

比如要翻译句子:

(E1)He bought a book on physics.

在语料库中查到相似的英语句子及其汉语译文是:

(E2)He wrote a book on history.

(C2)他写了一本关于历史的书。

比较(E1)和(E2)两个句子,我们得到变换式:

(T1)replace(wrote, bought) and replace(history, physics)

将这个变换式中的单词都换成汉语就变成:

(T2)replace(写 , 买) and replace(历史 , 物理)

将(T2)作用于(C2),最后得到正确译文:

(C1)他买了一本关于物理学的书。

以上,我们推断了微软最新语音软件中的语音识别和机器翻译部分,最后的语音合成及输出,限于篇幅,这里就不再细述了。现在,大家都知道翻译软件都做了什么,以及它们为什么有时做得好有时做不好的原因了吧。(本文部分实例摘编自刘群《计算语言学》讲义)

上一篇:科技创造纯净未来 下一篇:无线破解出新招 一键加密成帮凶