语音识别让电脑“听懂”人话

技术与开发

比尔·盖茨不久前预言:5年后键盘和鼠标会被淘汰,人们将通过更自然的界面,如触摸式、视觉型以及声控界面与计算机进行交互。而其中的声控界面要想得到广泛应用,就必须解决一个问题:语音识别。

某一天,你打开电脑,对电脑说:“进入DO目录,运行杀毒软件,查杀该目录中的病毒。”电脑立即开始自动按你的命令执行,不需要你动鼠标或者键盘。这看起来似乎很难,实际上很多公司和科技人才正在向这个方向努力,而让电脑能“听”懂人话的关键技术就是语音识别技术。

尚不成熟的语音识别技术

语音识别技术是计算机领域中仍然处于不成熟阶段的技术之一。能够直接地从人类的自然语音中识别出准确的信号,并根据这样的信号来精准地控制计算机的运作,这是人类在计算机发明不久以后就提出的一个伟大的梦想。然而直到今天,语音识别技术虽然已经取得了一系列关键技术突破,但是仍然不能够完全满足人类日常应用的需要。

比如你不能对计算机说“嗨,我说伙计,帮我搞一碗皮蛋瘦肉粥和一个荷包蛋当早餐——蛋只煎一面,要嫩些”,然后就坐等这样一顿饭上桌。很多项目还停留在实验室里,已经问世的成熟产品不多,应用范围也比较狭窄。但仅仅是这样一些“才露尖尖角”的初步尝试,已经让我们这个星球上最聪明的一群天才费尽了心机,也让众多的跨国公司竞相投入数十亿乃至数百亿美元。

那么,语音识别技术究竟为何如此吸引人,里面又有哪些挑战呢?语音识别的前途如何,我们能够在多大程度上享受到这项技术为我们带来的生活上的便利?让我们带着这些问题走近语音识别。

08-f10图.jpg
语音识别的实现

提取声音特征——只听你的话

语音识别技术几乎在刚起步的时候就遇到了完全不能进行下去的问题,因为把声音转化成数字形式——波形以后,似乎完全找不到一种普适模式分辨出所有人的声音。

费了很大的劲后总算能够从A 的声音波形中找到一些规律,能够分辨出A 的一些语句了,但是把相同的模式应用到B 的声音波形中时,解析出来的东西就完全不靠谱了。由于这种实验都是在隔音室中进行的,所以噪声影响的因素是不存在的。

经过多年研究,研究人员终于发现人的声音犹如人的指纹一样,相互之间是不同的。其中有很多因素,比如声音的高低、频率范围和讲话速度的快慢等,都会直接影响声音波形。如果只用一种模式去套,那当然就不能提取出有意义的信息来了。

这种每个人都有自己特征声音的难题直到今天都没有完全解决,但科学家基本上已经有了一个思路,那就是在识别某个特定人的语音之前,先采集一些他的声音波形作为“特征提取样本”。

再从这个样本的分析结果中先提取有关这个特定人的“声音特征”,生成一个针对他的声音特征库,以后对这个人作语音识别的时候,就根据这个特征库中的声音参数来进行。这样就能够做到较为准确地识别这个人的语音了。

换句话说,就是让计算机先学习你的话,并且只听你的话。如果你使用过现在比较流行的语音识别软件,比如 IBM ViaVoice ,你就会发现它在第一次启动的时候,总是会让你先朗读一些它预先准备好的文本,而且读的文本越多、朗读时越自然,在使用时的诀别准确率就越高。这是因为声音样本容量的扩大,以及与你正常语音相似度的提高,都有利于语音识别软件生成较高质量的特征库。

这件事说起来容易,实际做起来异常困难,要用到艰深的数学,但是概念还是比较清楚的。具体地说,声音的波形会被首先切成一系列的“音素片段”,然后在标准的语音参考库中会有一系列的“预测模型”来把这些片段连缀起来。

比如一个人在说“ma”这个音的时候,系统会首先识别出浊辅音“m”,然后再在它下一个音素片段中寻找元音匹配片段。找到了,就再找下一个……基于不同的语言模型,系统会进一步加工。对于英语这样轻重音基本不影响词义的语言是比较好处理的,对于汉语和日语这样的抑扬顿挫直接决定字、词选择的语言,需要极大的模型库才能达到比较理想的效果。但是无论如何,声音特征提取是语音识别的重要基础技术之一。

抗噪模式匹配——忽略背景声音

任何技术从实验室走入寻常百姓家的时候,总会遇到研究人员意想不到的问题,语音识别技术也不例外。任何实际的语音输入都不可能是在隔音环境里进行的,背景噪声无可避免。噪声对于声音波形的模式具有相当大的破坏性,从而会导致语音输入和标准参考库的模式匹配出现问题,严重地影响语音识别的质量。这个问题是语音识别领域的又一大难题:如何能在存在不可忽略的背景噪声下也能进行较好的模式匹配?

这里,我们可以看出来,在人机交互的技术中,语音识别确实是属于高难度的技术之一,比文本的自动翻译和自然语言理解还要难。因为文本的输入是无差别的,没有特征,也没有噪音,而语音识别却必须克服这样的难题。

所谓的抗噪模式匹配,就是在输入中存在不可忽略的无关数据时,对有意义的数据尽可能地提取,并对它实施模式匹配的技术。这项技术在语音识别中,也有重要的结合产物。

目前主要的应用首先是一种“打分”的机制,对于输入的样本的相似度,系统会根据历史输入来评出一个分数,然后如果有一两种特征的值异常的高或低,就对它加以修正,调整到一个分数适宜的范围内,接着才进行模式匹配。这种打分的机制有效地把波形中的“特定人声”加强了,而把无关的声音削弱了。

还有一种融入一些人工智能思想的技术,它是一种启发式的剪枝技术,也就是说,在预测模型中,把前一种音素片段后面不可能出现的或者出现概率非常小的声音直接忽略掉。由于人声和其他的声音有很大的不同,有很多声音是绝不可能在人声中出现的。所以这种技术就能够把混在一起的声音中的无关声音以很高的效率挑拣出人声的那部分。语音识别中著名的 Viterbi-Beam 算法就是剪枝算法中最有效的算法之一。

抗噪模式匹配是保证语音识别结果质量的关键,任何成熟的语音识别引擎中都有自己的抗噪模式匹配模块。好的抗噪模式匹配模块甚至能够在噪音比正常语音还大的时候都能正常工作,当然,在第一次训练的时候最好还是保持相对安静的环境,以免软件把噪音也“学进去”,那样的话对正常人声的识别率反而会下降,而且很难纠正。

8-f10-1-1.jpg
IBM的语音识别产品IBM ViaVoice

固定输入的非特征化识别——人人可用的识别服务

前面提到,语音识别一般都是针对一个特定的人,因为大部分语音识别都是以特征库为基础来运作的。没有特征库的语音识别称为非特征化语音识别,而如果要实现对任意语音输入的非特征化识别,这实在是太困难了。但是,如果从另一个角度来看,要实现对某些特定的输入进行非特征化识别,还是能够做到的。

非特征化识别技术的关键在于对固定输入的参考模型的泛化,如果说普通的语音识别是让语音输入来匹配参考模型中的语句,那么非特征化的语音识别则反其道而行之,是让参考模型来匹配语音输入。因为输入是被固定的,也就是说任何人,不管是男女老幼,也不管怎么讲话,讲话的内容都是一样的。而且,这样的输入一般都很短,是一个字、词或者一个数。所以,使用参考模型来匹配语音输入,发现一个匹配的难度并不算高。

固定输入的非特征化识别的应用范围很广,最简单的例子是所谓的手机语音拨号。只要对着手机说出受话人的名字,就能够实现自动拨号,这比较适用于驾驶时当双手被占用的情况。

国外有一些电话的网关,特别是客户服务电话都已经实现了语音转接。不再是“如需帮助,请拨0”,而是“如需帮助,请说‘帮助’”。这对于一些不能提供数字脉冲反馈的电话机来说,是非常重要的。

目前也有一些软件实现了语音操作,这也是固定输入的非特征化识别的一种应用。由于非特征化识别不需要一个初始化训练的过程,它也很适合文盲和残疾人使用。当然,语音识别技术本身就是相当一部分残疾人朋友的福音,因为它只需要用户说话就可以了。非特征化识别不能适用的人群主要是聋哑人和方言非常重的人,当然对于比较通行的方言如粤语,也早有非特征化识别的软件和硬件面世了。

语音识别的未来——智能化的信息社会

随着技术的进步,语音识别技术也日渐成熟。目前,在Windows Vista 、Leopard 等主流操作系统中,都已经集成了语音识别的软件模块。在手持设备如索尼公司的PSP 中也集成了像Talkman 这样的语音识别硬件,使得操作大大简化而且变得有趣。手机、监控系统甚至普通的家用电器也开始越来越多地应用语音识别技术。

特征化语音识别对英语语音的识别率已经超过了99.9% ,对汉语和日语的识别率也已经超过了95% 。标点符号的输入仍然是一个较为棘手的问题,而且每次必须说出标点来也使得语音识别“很影响思路”。它作为输入法来说,还是较适合“读入”,而不太适合“说入”。

然而作为命令输入来说,非特征化识别已经有了比较好的应用。我们完全可以预见在未来的家电中将会有大量的语音控制应用,而省去了在菜单中漫游和“迷路”的麻烦。比如,可以直接对电视机说“调亮”、“湖南卫视”等命令来调整参数或换台。如果非特征化识别能够在一定程度上摆脱固定的输入,也能进行一些模式化的改变,我们就能够进行更复杂的命令控制。这对于工业和军事应用来说,具有非常好的前景。

语音识别总有一天能够彻底实现,那时机器就能够同时听懂多人的七嘴八舌,而且准确地知道每个人想做什么,这就是机器人保姆的必备素质。一个部署了语音识别模式的门铃知道妈妈来了要开门,坏人来了要报警。那时,人们就可以像和其他人交谈那样随意地用语音而不是键盘或触摸屏来控制机器为自己服务。