识别声音的“魔术”
极客
在《碟中谍4》中,汤姆·克鲁斯通过语音识别伪造了大反派的声音,蒙蔽了大反派的保镖;在现实生活中,随着Siri的大红大紫,语音应用如雨后春笋般成长起来,如今语音识别已经成为移动APP耍酷的武器。不过,你真的了解语音识别吗?
讨人喜欢的语音应用
提到语音应用,大家第一个想到的就是苹果的Siri,除了它之外还有什么语音应用呢?输入法类,有搜狗输入法、QQ输入法等(到底哪款输入法的语音识别功能最强,请看F5的《三款Android拼音输入法实测》)。
搜索类,Google Mobile App(适用Android、iOS 、BlackBerry)、Bing(适用Android、iOS)、Vlingo(适用Android、iOS、BlackBerry、Nokia、Windows Phone)等。生活类,主要是虫洞(适用Android)、能听懂说话的Cupi(适用iOS)、智能语音记账(适用iOS)等。这么多语音应用,你用过几个?想知道语音识别技术的细节吗?


语音识别有三个关键技术
虽然各家的语音识别不尽相同,但都离不开三个关键技术:预处理语音信号、构建声学模型和语言处理。其实语音识别跟做菜有异曲同工之妙:购买食材(获取语音信号),清洗食材(预处理语音信号),然后是蒸煮炒食材(构建声学模型),接着加入各种作料(语言处理),最后就可以上菜了(识别用户的口令)。下面,我们来谈谈这三个关键技术。
●预处理语音信号
预处理音源、选择识别单元是语音识别的第一步,有单词(句)、音节和音素三种方式可选:单词(句)单元因为算法复杂不适合大词汇系统,因此被广泛应用于中小词汇语音识别系统,例如微软早期的Whisper语音识别系统;音节单元多见于汉语语音识别(因为汉语是单音节结构的语言),例如QQ语音识别系统、科大讯飞语音识别系统;音素单元不稳定,使用得较少。
●构建声学模型
声学模型是语音识别最关键的部分,它要计算预处理音源后提取的信息(计算声母和韵母),既要可以识别汉语单词,也要能识别连续的语句,难度非常大。模型方式主流用的都是HMM模型,这个模型的内部计算非常复杂,有兴趣的朋友可以私下研究。
●语言处理
语言处理就是进行语法和语义分析。要知道汉语可是一种复杂的语言,同音的字或者词比比皆是,要识别难度可不小,因此语言处理就显得非常重要了。这个处理过程会用到统计学,最常用的那些字或者词会优先考虑。此外,还会根据语句的连接关系判断该选用什么字或者词。


准确率是语音识别的软肋
虽然语音识别取得了不俗的成绩,但准确率还是有待提高,例如在QQ语音识别系统中说“娃哈哈”,得到的答案可能是“A”,也可能是“娃”或“网秦”。是什么影响了语音识别的准确率?
●不完善的模型库
模型库是听写识别的基础,这方面没有突破,语音识别的进展就只能是一句空话。目前,这方面的研究还在继续,例如如何将系统提取的特征码转换成唯一的汉字。在未来,随着模型库的逐步完善,语音识别的准确率就会提高。
●适应用户发音能力不足
在以前要想用语音识别系统,例如IBM公司的ViaVoice,会先念一篇几百字文章,以便让系统记住用户的声音特征。现在这样的训练基本上消失了,语音识别都是拿来就用,谁还有工夫念稿子,如此一来语音识别系统无法识别用户的口音就不奇怪了。优化声音特征提取技术,才能排除口音、方言对语音识别系统的影响。
●杂音干扰
对语音识别效果影响较大的另外一个因素就是杂音干扰。在公共场合,你会发现各大语音识别系统的准确率直线下降(来自四面八方的声音让系统茫然)。过滤杂音技术,是对抗复杂环境的法宝,但该技术在软件中的运用还比较薄弱,我们期待它在未来变得更加成熟。
@北京 杨天赐
延伸阅读
语音识别的发展史
语音识别的研究工作最早可以追溯到上世纪50年代贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统,不过该系统只是实验室的产品,实用价值较低。真正取得重大突破是在上世纪80年代,美国卡耐基梅隆大学(CarnegieMellonUniversity)设计出Sphinx系统,它是第一个高性能的非特定人、大词汇量连续语音识别系统。
上世纪90年代前期,许多著名的大公司如微软、IBM、苹果、AT&T等展开了语音识别的研究,例如IBM公司设计了ViaVoice系统,DragonSystem公司设计了NaturallySpeaking系统,Nuance公司设计了NuanceVoicePlatform系统,微软设计了Whisper,Sun设计了VoiceTone系统等。
进入21世纪特别是近几年,语音识别取得了突飞猛进的成绩,语音识别不再是好看的花瓶,进入了普通人的生活,例如苹果手机的Siri系统,QQ浏览器可以根据语音搜索相关的网页,汽车可以语音识别方言等。当前,微软正在研究语音识别翻译系统,号称可以翻译26种语言。
