用于发言处理的识别器的基于标记语言的选择和利用
版权声明
这一专利文档的本公开内容的部分包含受到版权保护的材料。版权所有者不反对任何人按本专利文档或本专利公开内容在专利与商标局专利文件或记录中出现的那样来复制它,但是无论如何都以另外方式保留所有版权。
背景技术
移动计算设备利用语音识别技术来执行诸如拨号和信息查询等的各种语音激活的功能。由于移动计算设备的存储限制,为了执行全面的语音识别,可能需要包括(用于处理简单的命令和简单的查询的)本地的或基于设备的识别器和(用于处理诸如要求访问在线服务的那些查询的更复杂的查询的)网络识别器的多个“识别器”。然而,当前的移动计算设备限于仅使用单个识别器来处理查询或通过以串行方式使用本地和网络识别器来处理查询,在串行方式中,在将结果发送给网络识别器以进行结果处理之前必须由本地识别器处理。与仅使用本地识别器相关联的缺点是,(由于存储限制)结果限于简单的命令和控制请求。与仅使用网络识别器相关联的缺点是,对于简单的命令和控制请求来说用于接收结果的过多的等待时间。以串行方式使用本地和网络识别器的缺点是,,即使在本地识别器不能提供足够的结果处理时,本地识别器也必须在网络识别器之前使用。鉴于此及其他考虑,进行本发明的各种实施方式。
概述
提供本概述以便以简化形式介绍下面在详细描述中进一步描述的概念的选集。本概述不旨在标识所要求保护的本主题的关键特征或必要特征,也不旨在辅助确定所要求保护的本主题的范围。
提供用于选择和利用多个识别器来基于标记语言文档处理发言的实施方式。在计算设备中接收标记语言文档和发言。可以从多个识别器中选择一个或多个识别器以基于标记语言文档中的标记语言返回发言的结果集。以由标记语言文档中指定的处理方法所确定的格式从所选择的一个或多个识别器接收结果集。然后,响应于接收结果集,在计算设备上执行事件。
将从下列详细描述的阅读和关联的图的查阅明显看出这些和其他特征和优点。应理解,前述的一般描述和下列详细描述都仅是说明性的,且不限制所要求保护的本发明。
附图简述
图1是示出根据各种实施方式的用于选择和利用多个识别器来基于标记语言文档处理发言的网络体系结构的框图;
图2是示出根据各种实施方式的可以被用于选择和利用多个识别器来基于标记语言文档处理发言的客户机计算环境的框图;
图3是示出根据各种实施方式的用于选择和利用多个识别器来基于标记语言文档处理发言的例程的流程图;
图4是示出根据各种实施方式的用于利用经更新的识别器来基于标记语言文档处理发言的例程的流程图;以及
图5显示根据各种实施方式的包括标签的标记语言文档,其可以被用来从多个识别器中选择以处理发言和处理发言的结果集。
详细描述
提供用于选择和利用多个识别器来基于标记语言文档处理发言的实施方式。在计算设备中接收标记语言文档和发言。从多个识别器中选择一个或多个识别器以基于标记语言文档中的标记语言返回发言的结果集。以由标记语言文档中指定的处理方法所确定的格式从所选择的识别器或识别器接收结果集。然后,响应于接收结果集,在计算设备上执行事件。
在下列详细描述中,对形成下列详细描述的部分的附图进行引用,且附图通过阐释具体的实施方式或示例而示出。可以组合这些实施方式,可以利用其他实施方式,且可以在不偏离本发明的精神的范围的前提下做出结构改变。因此,不应以限制的意义来看待下列详细描述,且本发明的范围由所附权利要求及其等效物来界定。
现在参见各图,将描述本发明的各种方面,贯穿各图,相似的数字表示相似的元素。图1是示出根据各种实施方式的用于选择和利用多个识别器来基于标记语言文档处理发言的网络体系结构的框图。该网络体系结构包括跨网络4与网络服务器70通信的客户机计算设备2。客户机计算设备2可以包括语音识别服务应用程序30、事件处理器应用程序38、识别器40、发言42、标记语言文档44、结果集46、设备接口应用程序50和同步服务应用程序60。应理解,根据各种实施方式,识别器40可以包括一个或多个识别器。根据各种实施方式,客户机计算设备2可以包括能够执行一个或多个应用程序程序的移动或便携式计算机或其他类型的计算机,包括但不限于膝上型计算机、“智能电话”(即,具有计算机功能和/或能够运行操作系统软件以便为应用程序开发者提供标准化界面和平台的移动电话)以及车载计算设备。
客户机计算设备2中的语音识别服务应用程序30可以包括可以利用语音识别的各种生产力软件应用程序,包括但不限于搜索引擎(例如,企业搜索、股票报价搜索、体育比分、电影时间、气象数据、占星、文档搜索)、导航、语音激活拨号(“VAD”)、车载软件(例如,用于打开或关闭收音机、激活导航控制功能、温度控制、控制视频显示功能、播放“DVD”)、设备控制功能(例如,关闭客户机计算设备2、记录通知、删除/创建/移动文件)、消息收发(例如,文本和MMS)、媒体(例如,照相)和内容。根据各种实施方式(这些实施方式将在图2-图3的讨论中更详细地描述)、事件处理器应用程序38可以被用来从客户机计算设备2接收发言42并处理发言42以得到语法。应明白,发言42可以包括命令(例如拨号来自通信录的联系人)或由客户机计算设备2上的语音识别服务应用程序30的用户查询以得到信息。事件处理器应用程序38还可以被用来解析标记语言文档44以得到标签,该标签基于发言42中使用的语法指定识别器(即,识别器40或识别器72),以响应于发言42返回一个或多个结果(即,一个或多个结果集46或结果集76)。根据一实施方式,识别器40可以包括可以在客户机计算设备2上执行的用于处理发言42的结果的单独应用程序。根据另一实施方式,识别器40可以被嵌入到客户机计算设备2的操作系统中。
客户机计算设备2中的设备接口应用程序50可以包括应用程序编程接口(“API”),用于可以由客户机计算设备2执行的各种功能,这些功能包括但不限于生成用户界面、联网、音频捕捉、语音识别、音频播放、照相机、通信录和全球定位系统(“GPS”)功能。客户机计算设备2中的同步服务应用程序60促进客户机计算设备2与网络服务器70的同步。
客户机计算设备2可以跨网络4与网络服务器70通信,网络4可以包括局域网或广域网(例如,因特网)。网络服务器70可以包括识别器72、标记语言文档74和结果集76。应理解,根据各种实施方式,识别器72可以包括一个或多个识别器。根据一实施方式,网络服务器70可以包括数据中心中的多个计算设备,这些计算设备用于响应于发言42从客户机计算设备2接收发言42且用于(响应于来自事件处理器应用程序38的请求)使用识别器72以确定结果集76并将其返回给客户机计算设备2。
根据各种实施方式,且如下面参考图4更详细地描述,标记语言文档74可以包括标记语言文档44的版本。事件处理器应用程序38可以被配置为将客户机计算设备2上的标记语言文档44与标记语言文档74进行比较,且如果标记语言文档74是经更新的版本(例如,标记语言文档74可能包括用于处理可以由识别器40利用的新近添加的特征的附加标记语言),那么,用附加标记语言更新标记语言文档44。
包括网络服务器70的多种计算设备(未示出)可以包括但不限于应用程序网关、应用程序服务器、同步网关和识别POD或复制设备。本领域中的技术人员应明白,可以通过使用多个网络协议来促进在包括网络服务器70和客户机计算设备2的多种计算设备之间的通信。例如,可以通过使用传输控制协议(“TCP”)和安全套接字层协议上的超文本传输协议(“HTTPS”)来促进在客户机计算设备2和应用程序网关之间的安全数据通信。可以通过使用超文本传输协议(“HTTP”)来促进在应用程序网关、应用程序服务器,和识别POD之间的通信。前述的协议对本领域中的技术人员来说是公知的,且因此不需要在此进一步讨论。根据一实施方式,可以使用HTTP POST方法(带音频)来处理结果集76和由网络服务器70接收的发言42(例如,在被发送给识别POD和应用程序服务器之前由应用程序网关处理)。在将结果集76传递给的客户机计算设备2之前,网络服务器70(例如,经由应用程序服务器)也可以将结果集76转换成标记语言文档(即,独立于标记语言文档44和标记语言文档74的标记语言文档)(根据这一实施方式,事件处理器应用程序38可以包括用于处理包括结果集76的标记语言文档的标记语言解释器(未示出)。根据一实施方式,在传递给客户机计算设备2之前,可以使用一种或多种压缩方法来压缩结果集76。在各种各实施方式中可以使用的压缩方法的示例是公知的无线应用协议二进制可扩展标记语言(“WBXML”)和GNU zip(“GZIP”)压缩方法。
示例性操作环境
现在参见图2,下列讨论旨在提供其中可以实现各种说明性的实施方式的合适的计算环境的简要、一般的描述。尽管将在与在计算机设备上的操作系统上运行的程序模块结合运行的程序模块的一般上下文中描述各种实施方式,但本领域中的技术人员应认识到,也可以与其他类型的计算机系统和程序模块组合来实现各种实施方式。
一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域中的技术人员应明白,可以借助于许多计算机系统配置实践各种实施方式,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程的消费性电子设备、小型计算机、大型计算机等等。也可以在分布式计算环境中实践各种实施方式,分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者。
图2示出客户机计算设备2,客户机计算设备2可以包括能够执行一个或多个应用程序程序的移动或便携式计算机或其他类型的计算机,包括但不限于膝上型计算机、“智能电话”(即,具有计算机功能和/或能够运行操作系统软件以便为应用程序开发者提供标准化界面和平台的移动电话)和车载计算设备。客户机计算设备2包括至少一个中央处理单元8(“CPU”)、包括随机存取存储器18(“RAM”)和只读存储器(“ROM”)20的系统存储器12,和将存储器耦合到CPU 8的系统总线10。包含诸如在启动期间帮助在计算机内的元件之间传输信息的基本例程的基本输入/输出系统被存储在ROM 20中。
客户机计算设备2还包括用于存储操作系统32的海量存储设备14、语音识别服务应用程序30、事件处理器应用程序38、识别器40、发言42、标记语言文档44、结果集46、设备接口应用程序50,和同步应用程序60。本领域中的技术人员应明白,除了实现为驻留在海量存储设备14上的软件之外,识别器40也可以完全以硬件实现。例如,识别器40可以被实现为具有语音分析、识别处理和系统控制功能的单片CMOS语音识别LSI电路。
根据各种实施方式,操作系统32可以适用于控制联网的个人计算机的操作,例如来自华盛顿州雷德蒙市的微软公司的WINDOWS操作系统。海量存储设备14通过被连接到总线10的海量存储控制器(未示出)而被连接到CPU 8。海量存储设备14及其关联的计算机可读介质为客户机计算设备2提供非易失性存储。尽管在此包含的计算机可读介质的描述是指诸如例如硬盘或CD-ROM驱动器等的海量存储设备,但本领域中的技术人员应明白,计算机可读介质可以是可以由客户机计算设备2访问或利用的任何可用的介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读的指令、数据结构、程序模块或其他数据等的信息任何物理方法或技术实现的易失性硬件存储介质和非易失硬件存储介质、可移动硬件存储介质和不可移动硬件存储介质。计算机存储介质包括但不限于可以被用来存储所期望的信息且可以由客户机计算设备2访问的RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多用盘(“DVD”)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备。通信介质可以在其中以诸如载波或其他传输机制和包括任何信息传输介质等的经调制数据信号具体化计算机可读指令、数据结构、程序模块或其他数据。术语“经调制数据信号”意味着以在信号中编码信息的方式来设置或改变该信号的特性中的一种或多种的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接等的有线介质和诸如声学、RF、红外和其他无线介质等的无线介质。以上的任何的组合也应被包括在计算机可读介质的范围内。计算机可读介质也可以被称为计算机程序产品。
根据本发明的各种实施方式,客户机计算设备2可以通过网络4使用到远程计算机的逻辑连接来在联网环境中操作,如以上所描述的,网络4可以包括局域网或广域网(例如,因特网)。客户机计算设备2可以通过被连接到总线10的网络接口单元16来连接到网络4。应明白,网络接口单元16也可以被用来连接到其他类型的网络和远程计算系统。客户机计算设备2也可以包括输入/输出控制器22,用于接收和处理来自包括话筒80以及键盘、鼠标、笔、触笔、手指和/或其他装置(未示出)的许多输入类型的输入。类似地,输入/输出控制器22可以向显示器设备82以及打印机或其他类型的输出设备(未示出)提供输出。
图3是示出根据各种实施方式用于选择和利用多个识别器来基于标记语言文档处理发言的例程300的流程图。在阅读在此呈现的例程的讨论时,应明白,本发明的各种实施方式的逻辑操作被实现为(1)计算机实现动作的序列或在计算系统上运行的程序模块和/或(2)在计算系统内的互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求的选择。因此,图3-图4中示出的且构成在此描述的各种实施方式的逻辑操作不同地被称为操作、结构设备、动作或模块。本领域中的技术人员应认识到,可以在不偏离在此陈述的权利要求内叙述的本发明的精神的范围的前提下以软件、固件、专用数字逻辑和任何其组合来实现这些操作、结构设备、动作和模块。
例程300在操作305开始,操作305中由客户机计算设备2接收标记语言文档(例如,标记语言文档44)。在一种实施方式中,可以通过由事件处理器应用程序38对网络服务器70发出的请求来接收标记语言文档。
从操作305,例程300继续到操作307,其中事件处理器应用程序38判断所接收的标记语言文档44中指定的任何识别器是否已经被更新。下面在图4的讨论中将更详细地描述用于判断所更新的识别器的例程。
从操作307,例程300继续到操作310,其中在客户机计算设备2上执行的事件处理器应用程序38开始从用户接收作为流的发言(例如,发言42)。应理解,根据各种实施方式,不需要从用户接收整个发言42。具体地,当用户对着客户机计算设备2说话时,发言42可以被流化到事件处理器应用程序38以进行语法识别。例如,通过对着话筒80(在图2中示出)说话,客户机计算设备2的用户可以结合事件处理器应用程序38利用一个或多个语音识别服务应用程序40来做出发言,该发言包括对联系人的查询以经由语音激活拨号呼叫、或对工商企业的位置、交通信息、方向、气象信息,或电影信息的查询。
从操作310,例程300继续到操作315,其中事件处理器应用程序38识别在操作310接收的发言42中使用的语法。具体地,事件处理器应用程序38可以被配置为执行言语处理以识别发言中所说的语法(即,字)。根据一实施方式,事件处理器应用程序38可以利用所识别的语法与标记语言文档44结合来判断识别器(即,本地或网络识别器)以提供该发言的结果。
从操作315,例程300继续到操作320,其事件处理器应用程序38解析标记语言文档44以得到标识识别器的标记语言标签,以基于在操作315识别的语法处理发言。具体地,事件处理器应用程序38可以被配置为解析标记语言文档44中的标记语言,以得到<语法>(<grammar>)标记语言标签,该标签可以标识本地或网络(例如,经由通用资源定位符(“URL”)),从中检索所存储的语法,以与在操作315从发言42识别的语法进行比较。
从操作320,例程300继续到操作325,其中事件处理器应用程序38选择由标记语言文档44中的标记语言标签标识的本地识别器(即,识别器40)或网络识别器(即,识别器72)中的任一个。具体地,事件处理器应用程序38可以选择与语法相关联的识别器以返回所接收的发言42的结果。例如,如果发言42包括对被存储在客户机计算设备2上的通信录中所包含的联系人的语音激活拨号的请求,则事件处理器应用程序38可以选择在标记语言文档44中被标识为与包括客户机计算设备2的通信录联系人的语法相关联的(本地)识别器40。另一方面,如果发言42包括对本地企业搜索的请求,则事件处理器应用程序38可以选择在标记语言文档44中被标识为与包括可以经由从网络服务器70到远程web搜索引擎的查询检索的企业搜索信息的语法相关联的(网络)识别器72。
从操作325,例程300继续到操作330,其中事件处理器应用程序38将发言42发送或流化到所选择的识别器(例如,识别器40或识别器72)。一旦所选择的识别器接收到发言42,就可以处理发言以得到结果。
从操作330,例程300继续到操作335,其中事件处理器应用程序38根据在标记语言文档44中指定的格式从所选择的识别器接收一个或多个结果集。具体地,识别器40和识别器72可以被配置为根据各种实施方式以未经处理的或“原始”格式或经处理的格式返回发言42的结果集。未经处理的识别器结果可以包括一个或多个项,这些项包括识别器40或识别器72对发言42的语音识别。另一方面,经处理的识别器结果可以包括与发言42相关联的一个或多个项的语音识别。例如,包括项“咖啡”的发言的未经处理的结果可以包括项咖啡以及由识别器指派的指示对发言的语音识别的精度(例如,80%)的置信度分数。另一方面,包括项“咖啡”的发言的经处理的结果可以包括企业搜索结果,该搜索结果包括售卖咖啡的本地企业的名称和地址。标记语言文档44可以包括标识格式的标记语言标签,其中发言的结果集以该格式返回。
从操作335,例程300继续到操作340,其中事件处理器应用程序38响应于从所选择的识别器接收一个或多个结果集而执行事件。事件可以包括许多动作,包括但不限于(例如,在显示器设备82上)向客户机计算设备2的用户显示一个或多个结果集、基于结果集执行语音激活拨号功能、忽略结果集和将结果集与先前所接收的结果集组合起来以显示在客户机计算设备2上。根据一实施方式,多个结果集可以被显示在标签化用户界面中(未示出),其中每一标签与一个结果集相关联。用户界面也可以包括带有与每一结果集关联的所显示的类别的明细(drilldown)列表或按结果类型排序的列表。事件处理器应用程序38可以被配置为基于许多准则确定如何处理所接收的结果(即,确定采取哪一动作),这些准则包括但不限于结果集中的结果数量、结果集的置信度分数、结果集的返回代码(例如,返回代码可以包括指示网络服务器70故障的错误代码)和结果集的某一(即,预先确定的)值的存在。例如,如果识别发言的置信度分数是低的(例如,少于50%),则事件处理器应用程序38可以忽略结果集,并因此防止向客户机计算设备2的用户显示结果集。作为另一示例,响应于接收指示用于处理结果的服务器故障的结果集返回代码,事件处理器应用程序38可以生成错误对话框并向客户机计算设备2的用户显示。作为另一示例,事件处理器应用程序38可以处理与结果集一起返回的预先确定的值,这些值表示结果对用户的呈现,例如将结果集呈现为带有公司徽标或广告。从操作340,然后,例程300结束。
图4是示出根据各种实施方式的用于利用经更新的识别器以基于标记语言文档处理发言的例程400的流程图。从(以上所描述的)图3的操作305,例程400在操作405开始,其中事件处理器应用程序38从客户机计算设备2向网络服务器70发送(本地)识别器40的版本数据。如以上在图1的描述中所描述的,识别器40可以是在客户机计算设备2的操作系统(即,操作系统32)中。应明白,在识别器被嵌入到操作系统中时,事件处理器应用程序38可以被配置为向网络服务器70发送操作系统的版本。
从操作405,例程400在操作410继续,其中事件处理器应用程序38基于版本数据判断在客户机计算设备2上是否已经更新识别器40。例如,对于嵌入的识别器,可以在客户机计算设备2上的操作系统更新之后更新识别器40。
在操作410,如果(由网络服务器70基于所接收的版本数据判断)识别器40已经被更新,那么,例程400在操作415继续,其中事件处理器应用程序38从网络服务器70接收附加标记语言(即,标记语言文档74)。标记语言文档74可以包括用于利用经更新的版本的识别器40中的新近添加的特征(诸如例如语音激活拨号)的附加标记语言标签。然后,例程400返回到图3的操作310。在操作410,如果(由网络服务器70基于所接收的版本数据判断)识别器还没有更新,那么,例程400也返回到图3的操作310。
图5示出包括根据各种实施方式的标签的标记语言文档,其可以被用来从多个识别器当中选择以处理发言并处理发言的结果集。具体地,图5示出客户机计算设备2上的标记语言文档44。标记语言文档44包括<听众>(<listener>)标签90、<识别>(<recognize>)标签92、<语法>(<grammar>)标签94、<识别>(<recognize>)标签96、<语法>(<grammar>)标签98、<听众>(<listener>)标签100、<如果>(<if>)标签102、<指派>(<assign>)标签104、<如果>(<if>)标签106、<抛出事件>(<throw event>)标签108、<否则/>(<else/>)标签109、<如果>(<if>)标签110、<指派>(<assign>)标签111和<抛出事件>(<throwevent>)标签112。
<听众>(<listener>)标签90可以被事件处理器应用程序38用来从客户机计算设备2的用户接收发言42。<识别>(<recognize>)标签92包括标识“本地”识别器的“类型”属性。<语法>(<grammar>)标签94包括标识用于访问由本地识别器使用的语法的“http”地址(即,网站地址)的“url”属性。<识别>(<recognize>)标签96包括标识“网络”识别器的“类型”属性。<语法>(<grammar>)标签98包括标识用于访问由网络识别器使用的语法的“http”地址(即,网站地址)的“url”属性。如以上参照图3所描述的,事件处理器应用程序38可以解析标记语言文档中的标签以标识发言中使用的语法并选择识别器来基于所标识的语法处理发言。
如以上参照图3所描述的,事件处理器应用程序38可以从所选择的识别器接收一个或多个结果集并基于置信度分数处理该一个或多个结果集。<听众>(<listener>)标签100可以被事件处理器应用程序38用来响应于发言而从所选择的识别器接收结果集。标签102、104、106、108、109、110和111可以被事件处理器应用程序38用来判断是否将一个或多个结果集用于在客户机计算设备2上执行动作(例如,如果识别发言的置信度分数是高的(例如,大于50%-“gSelectedresult.confidence>0.5”),则<throwevent=“process_selectedresult”/>,或如果识别发言的置信度分数是低的是否使用“空”结果集(例如,<if expr=“event.result>gSelectedresult.confience”>,其中event.result是“空”结果),且因而防止在客户机计算设备2上针对该结果集执行动作。
尽管已经结合各种说明性的实施方式描述了本发明,但本领域中的普通技术人员应理解,可以对此做出落在随后的权利要求的范围内的许多修改。因此,本发明的范围不预期以任何方式受到上面的描述的限制,而是完全参考随后的权利要求来确定。