Siri背后的技术

      今年10月,Apple发布了iphone 4S with IOS 5,其中最大的亮点就是一个语音搜索软件-Siri。一时间,各种geek,伪geek,码农,非码农都流行起调戏siri,各种调戏视频,音频大量出现。不过,常言道“外行看热闹,内行看门道”,作为一个“伪内行”,或者“欲做内行而不得”的人,根据自己的知识,以及一些搜索工具,尝试了解了一下Siri的“门道”,在这里做个总结,列出siri所可能用到的技术。

今年10月,Apple发布了iphone 4S with IOS 5,其中最大的亮点就是一个语音搜索软件-Siri。一时间,各种geek,伪geek,码农,非码农都流行起调戏siri,各种调戏视频,音频大量出现。不过,常言道“外行看热闹,内行看门道”,作为一个“伪内行”,或者“欲做内行而不得”的人,根据自己的知识,以及一些搜索工具,尝试了解了一下Siri的“门道”,在这里做个总结,列出siri所可能用到的技术。
 

Siri是IOS上的个人助理应用:此软件使用到自然语言处理技术,使用者可以使用自然的对话与手机进行互动,完成搜寻资料、查询天气、设定手机日历、设定闹铃等服务。(来自维基百科)

Siri所用到的技术,很多人会回答,人工智能以及云计算,的确,总体来说,是这两样技术,不过,这种概述感觉几乎没有任何意义,和不直接说“计算技术”(注意,不是计算机技术)呢。因此,在本文,我将介绍下我了解Siri可能采用的技术。

首先,在前端方面,即面向用户,和用户交互(User Interface,UI)的技术,主要是语音识别以及语音合成技术。语音识别技术是把用户的口语转化成文字,其中需要强大的语音知识库,因此需要用到所谓的“云计算”技术。而语音合成则是把返回的文字结果转化成语音输出,这个技术理论上本地就能完成(以前用过科大讯飞的在windows mobile上的本地语音阅读软件,软件很小,但能读的很好,还支持方言),但不知道Siri是否如此,当然,在云端完成也并无不可,在当前无线带宽下,那点语音流量根本不算什么。

其次,后台技术,这些其实才是真正的大角色(当然,普通用户是不会在意的,他们只会觉得前端很炫,哎,这就是做后端的悲哀,小小感叹一下)。这些技术的目的就是处理用户的请求,并返回最匹配的结果,这些请求类型很多,千奇百怪,要处理好并不简单。基本的结构猜测可能是分析用户的输入(已经通过语音转化),根据输入类型,分别采用合适的技术(合适的技术后面)进行处理。这些合适的后台技术包括,①以Google为代表的网页搜索技术;②以Wolfram Alpha为代表的知识搜索技术(或者知识计算技术);③以Wikipedia为代表的知识库(和Wolfram Alpha不同的是,这些知识来自人类的手工编辑)技术(包括其他百科,如电影百科等);④以Yelp为代表的问答以及推荐技术。
下面,对上面提到的各种技术进行简要介绍(如有空,后面的博文可能会对某些技术详细的介绍,大家耳熟能详的就免了),强调下,介绍的有些参考来源是维基百科相关词条,下面不一一列出:
 
语音识别以及语音合成技术语音识别技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。

语音合成是将人类语音用人工的方式所产生。若是将电脑系统用在语音合成上,则称为语音合成器,而语音合成器可以用软/硬件所实现。文字转语音(text-to-speech, TTS)系统则是将一般语言的文字转换为语音,其他的系统可以描绘语言符号的表示方式,就像音标转换至语音一样。

相比于语音识别,语音合成感觉难度要低,并且基本能够在本地完成(很多OS都有内置的语音合成引擎)。而语音识别,由于涉及到语义理解,难度大大加大,需要大量的知识库,一般需要在云端完成。