用于实现分布式多模态应用的方法和装置的制作方法

文档序号:7942155阅读:181来源:国知局
专利名称:用于实现分布式多模态应用的方法和装置的制作方法
技术领域
本发明的主题总体上涉及分布式应用,并且更具体地涉及在客户端-服务器系统 环境中实现的分布式多模态应用。
背景技术
用户接口“模态”可以被定义为在用户和电子设备之间的交互模式,其中所述交互 是通过设备的用户接口来实现的。可以通过与特定类型的人类可察觉信息(例如,可凭目 视、声音或触摸来察觉的信息)和/或人类生成的信息(例如,通过语音或其它物理动作生 成的信息)相关联的硬件和软件的组合来实现用户接口模态。例如,一个类型的用户接口 模态是“可视模态”,其可以通过显示屏幕和相关联的硬件和软件来实现,所述硬件和软件 用于在所述显示屏幕上生成可视显示。也可以使用便于与可视显示进行用户交互的各个输 入设备来实现可视模态,诸如使用户能够选择在可视显示中呈现的信息(例如,使用滚动 机构、触摸屏或箭头按键)、把信息输入到可视显示的区域(例如,使用小键盘)和/或把可 视显示的焦点从一个区域改变到另一个区域的输入设备。另一类型的用户接口模态是“话 音模态”,其可以使用麦克风、扬声器和相关联的硬件和软件来实现,所述硬件和软件适于 接收并数字化人类语音和/或输出音频信息(例如,音频提示或其它音频信息)。其它类型 的用户接口模态例如包括手势模态和笔模态,仅举两个例子。为了在“单模态”设备上提供改进的可用性,电子设备可以包括“多模态”用户接 口,所述“多模态”用户接口是用于提供一个以上用户接口模态的用户接口。例如,电子设备 可以提供可视模态和话音模态两者。这种设备例如可以同时输出可视信息(例如,显示的 信息)和相关联的音频信息(例如,音频提示),和/或所述设备可以使用户能够经由语音、 小键盘或它们两者来输入信息,如果用户想要的话。通常,具有多模态用户接口的设备提供 了改进的用户体验,这是因为用户可以选择他或她将用来与所述设备进行交互的模态。使 用话音模态的交互可能是所想要的,例如在用户想要免提交互的情况中,诸如当敲字太费 时间时和/或当用户永久地(例如,由于关节炎或其它残疾)或者在某种情况下(例如,当 用户戴着手套时和/或当用户的手被其它任务占用时)存在障碍时。相比之下,使用可视 模态的交互可能是所想要的,例如在其中将呈现复杂信息的情况中,当想要听觉保密时,当 存在噪声限制时,和/或当永久地(例如,当用户具有很重的口音、语音障碍和/或听力损 伤时)或在某种情况下(例如,当存在显著的背景噪声或噪音限制时)存在听觉约束时。可以结合在联网环境(例如,客户端-服务器系统环境)中操作的应用来实现多 模态用户接口。在这种情况下,用户与客户端设备(例如,蜂窝式电话或计算机)上的多模 态用户接口交互,并且所述客户端设备经由网络与一个或多个其它设备或平台(例如,服 务器)通信。在这种联网环境中,已经实现了两种基础技术来设计支持多模态用户接口的 客户端_服务器系统元件,并且更具体是支持适于至少提供可视和话音模态的用户接口的 系统元件。使用“嵌入式”技术,在客户端设备本身中包括与多个模态相关联的基本上所有 必要的硬件和软件。例如,客户端设备可以包括适于执行音频相关任务一诸如语音处理、语音识别和/或语音合成等的软件和硬件。通常,这种音频相关任务使处理器或处理引擎 (例如,数字信号处理器)和相当量的存储器(例如,用于存储与音频相关任务相关联的表 和软件)成为必需。使用“分布式”技术,与一个或多个模态相关联的一些处理可以被转移 到另一处理元件,诸如远程服务器。例如,当用户说话时,可以从客户端设备将音频数据发 送到远程服务器,并且远程服务器可以执行一些或所有音频相关任务并且把数据、错误消 息和/或处理结果返回到客户端设备。每个技术具有其优点和缺点。例如,一些常规的分布式技术的优点在于,与多模态 用户接口相关联的一些集中计算的处理(例如,音频相关任务)可以从客户端设备转移到 另一处理元件(例如,远程服务器),如刚刚所提及。据此,客户端设备可以不包括专用处理 器或处理引擎(例如,数字信号处理器)和额外的存储器,来用于执行从客户端设备移植走 的任务。这意味着,相比实现嵌入式技术的客户端设备,可以以更划算的方式(例如,设备 可以被设计为“瘦”客户端)来设计客户端设备。然而,使用常规的分布式技术,需要在客户端和服务器之间同步各个模态的状态。 跨网络实现多个模态的状态之间的一致同步是很难的。使用非标准协议、修改的可视和语 音应用标记语言和非常规的内容编辑技术来执行一般使用常规的分布式技术的多模态用 户接口的实现。相应地,这种技术尚未易于被应用设计者接受。所需要的是这样的多模态用户接口方法和装置,其可以便于瘦客户端设计以及标 准协议和常规的内容编辑技术的使用。根据随后的详细描述和所附权利要求,结合附图和 背景技术,本发明主题的其它特征和特性将变得更加明显。


以下结合以下附图来描述本发明的主题,其中同样的附图标记表示同样的元素, 并且图1是依照示例性实施例、适于实现分布式多模态应用的系统的简图;图2是依照示例性实施例、用于发起并实施多模态应用会话的方法的流程图;图3是依照示例性实施例、用于执行多模态应用会话同步的方法的流程图;图4是依照示例性实施例、在客户端设备上呈现的多模态页面的例子;图5是依照示例性实施例、用于执行话音模态输入事件处理过程的方法的流程 图;和图6是依照示例性实施例、用于执行可视模态输入事件处理过程的方法的流程 图。
具体实施例方式实施例包括用于实现分布式多模态应用的方法和装置。这些实施例可以便于使用 标准协议和常规的内容编辑技术。另外,可以结合“瘦客户端”型设备来使用这些实施例。如这里所用,术语“多模态”意指适于实现多个用户接口模态。术语“分布式多模 态应用”、“多模态应用”和“分布式应用”可交换地使用以便意指这样的软件应用,所述软件 应用在客户端设备(例如,图1的客户端设备102)上提供多模态用户接口,并且包括在不 同的平台(例如,图1的客户端设备102、应用服务器104和/或话音服务器106)上在独立的运行期环境中执行的不同组件。在一个实施例中,分布式多模态应用适于在具有客户端-服务器系统体系结构的 系统(例如,图1的系统100)中执行。如这里所用,术语“客户端”或“客户端设备”可交 换地使用以便意指这样的处理实体、电子设备或应用,其适于执行与分布式多模态应用相 关联的软件。另外,客户端设备适于经由网络访问一个或多个服务,所述服务与分布式多模 态应用相关联并且由一个或多个远程服务器提供。术语“服务器”意指这样的处理实体、电子设备或应用,其响应于客户端发出或服 务器发出的请求来执行用于一个或多个网络连接的客户端或其它服务器的服务。术语“应 用服务器”和“AS”意指适于发起建立与分布式多模态应用会话相关联的数据和控制链路, 并且控制在与应用会话相关联的各个“视图”之间的同步的服务器。术语“模态服务器”意 指适于浏览器的服务器,该浏览器与一个或多个用户接口模态相关联。术语“话音服务器” 和“VS”意指模态服务器,其特别适于执行与话音模态相关联的浏览器。尽管下面的描述包 括对于其中包括话音服务器以便支持话音模态的系统的详细描述,不过应当理解,在其它 实施例中在系统中可以包括其它类型的模态服务器,所述模态服务器另外地或替换地支持 其它类型的用户接口模态(例如,手势模态,笔模态等)。将遍及此说明书使用分布式多模态应用的特定例子以便于理解示例性实施例。应 当理解,说明性例子不应被认为把实施例的范围只限于该例子。在示例性实施例中,分布 式多模态应用适于支持可视模态和话音模态。客户端设备包括“启用多模态”的浏览器,其 适于解释用于使客户端设备呈现可视显示的机器代码,所述可视显示包括至少一个显示元 素,对于所述至少一个显示元素可由客户端设备通过可视模态和话音模态接收输入数据。 在一个实施例中,机器代码被包括在多模态页面内和/或被多模态页面引用,当其被解释 时,使客户端设备呈现多个用户交互显示元素(例如,用于城市、州、街道号和街道名的数 据输入区域)。如这里所用,术语“解释”意指解释和/或执行,就像那些术语被那些本领域技 术人员理解一样。如这里所用,术语“机器代码”意指标记(例如,用标准通用标记语言 (SGML)、可扩展标记语言(XML)、超文本标记语言(HTML)、可扩展的HTML (XHTML)、动态 HTML (DHTML)、VoiceXML、语音应用语言标签(SALT)、XHTML+话音(X+V)、可缩放的矢量图 (SVG)和/或各种其它标记语言设计的标记)、脚本(例如,Java脚本代码)、编译的代码 (例如,编译的C/C++、Java, Lisp, Fortran, Pascal等)和/或其它信息,其可以易于被计 算机处理器(例如,图1的客户端设备102、应用服务器104和/或话音服务器106)执行或 解释。再次参照这里所论述的示例性多模态应用,客户端设备的用户可以向应用当前 “被聚焦”的显示元素(例如,所选择的或其中光标闪烁的元素)输入信息,和/或可以改变 焦点(例如,通过输入显示元素的信息和/或选择另一显示元素)。在一个实施例中,用户 可以按照其想法使用可视模态或话音模态输入多模态显示元素的信息。当用户使用客户端 设备的小键盘来输入信息时,例如该动作对应于使用可视模态来录入数据,并且所述信息 在聚焦可视图的数据录入区域中作为文本呈现。当输入信息时(例如,通过按压“回车”或 移动光标),可以更新可视显示以便反映不同的焦点。替换地,用户可以使用话音模态来输入信息(例如,用户可以说出城市名称)。当出现这种情况时,在一个实施例中,客户端设备向话音服务器发送表示语音的音频数据。在 一个实施例中,可以通过应用服务器间接地发送音频数据,或者在另一实施例中,可以将音 频数据直接发送到话音服务器。话音服务器适于与语音识别器对接。在一个实施例中,话 音服务器进一步适于向语音识别器指示该语音识别器应当访问哪些语音识别资源(例如, 语法、η元语法序列、统计语言模型或其它资源)以便试图根据给定显示元素所接收的音频 数据来识别语音。话音服务器基于话音浏览器对语音对话的解释来向语音识别器提供语音 识别资源指示,该语音对话对应于被客户端设备解释的机器代码(例如,多模态页面)。语音识别器可以生成语音识别结果(或错误),在一个实施例中,话音服务器可以 经由应用服务器把语音识别结果(或错误)传送到客户端设备。依照各个实施例,然后客 户端设备可以在相应的数据区域中将语音识别结果呈现为文本,并且可以更新并同步话音 视图和可视视图的焦点。当同步话音视图和可视视图的焦点时,被话音浏览器解释的语音 对话部分对应于被客户端设备解释的机器代码部分。如下面将要描述,实施例包括用于基于用户使用多个模态输入信息的能力来同步 可视视图和话音视图的方法。在各个实施例中,尽管可视视图焦点的知识维持在客户端设 备上,并且话音视图焦点的知识维持在话音服务器上,不过可以一致地实现这点。可以使用 标准协议和常规的内容编辑技术来实现同步,不过依照新的方式,这样便于和鼓励开发各 式各样的分布式多模态应用。图1是依照示例性实施例、适于实现分布式多模态应用的系统100的简图。系统 100包括多个系统实体,在一个实施例中,所述系统实体包括至少一个客户端设备102、应 用服务器104 (AS)、话音服务器106 (VS)和语音识别器134 (SR)。如下面将要解释,系统实 体遵照各个同步和异步请求/响应协议,以便支持在系统100内实现分布式多模态应用会 话。如这里所用,术语“多模态应用会话”可以被定义为分布式多模态应用的一个实例。在 一个实施例中,多模态应用会话包括,结合由话音服务器106执行的话音服务器浏览器/对 话解释器132解释一组一个或多个相应的语音对话,由客户端设备102解释(例如,执行和 /或解释)机器代码(例如,与一组一个或多个相关多模态页面115相关联的机器代码)。尽管只图示了一个客户端设备102,不过系统100可以包括多个类似或不同类型 的客户端设备。例如,客户端设备102可以形成从一组设备中所选择的电子设备的一部分, 所述一组设备包括但不限于蜂窝式电话、无线电台、寻呼机、个人数据助理(PDA)、个人导航 设备(PND)、移动计算机系统(例如,汽车或飞机计算机系统)、计算机(例如,膝上型、笔记 本或台式计算机)和在计算机上实现的因特网协议话音(VoIP)电话,仅举几个例子。客户端设备102包括处理子系统和数据存储子系统,并且可以是便携式或固定电 子设备。对于任一类型的设备,客户端设备102可以包括电池子系统,其适于在没有使用线 路功率来为客户端设备102供电的情况下提供能量。客户端设备102可以适于使用各种有 线和/或无线通信技术来经由一个或多个网络108通信。客户端设备102相应地可以包括 有线和无线网络接口中的一个或两者。客户端设备102还可以包括各种用户接口输入设备 (例如,小键盘、按键、拨盘、触摸屏、麦克风、指向设备(例如,鼠标或触摸板)和触针)以及 各种用户接口输出设备(例如,显示屏幕、扬声器、音频输出插孔、耳机、耳塞、机械振动设 备)。在一个实施例中,与可视模态相关联的用户接口设备包括从一组设备中选择的任何一 个或多个设备,所述一组设备包括可视显示器、触摸屏、小键盘、按键、拨盘、指向设备和触针。在一个实施例中,与话音模态相关联的用户接口设备包括从一组设备中选择的任何一 个或多个设备,所述一组设备包括麦克风、扬声器、音频输出插孔、耳机和耳塞。在一个实施例中,客户端设备102适于执行客户端浏览器112和/或客户端应用 114的一个或多个实例。在一个实施例中,客户端浏览器112适于跨过网络108与一个或多 个服务器(例如,应用服务器104和/或话音服务器106)通信。更具体地是,客户端浏览 器112适于访问客户端设备102上的机器代码(例如,多模态页面115),并且进一步适于解 释所述机器代码。在特定实施例中,客户端浏览器112适于访问至少一个多模态页面115, 并且适于解释在所述多模态页面115内的机器代码(例如,标记、脚本及其它信息)。如这里所用,术语“多模态页面”意指表示至少一个用户交互显示元素的信息集, 可以在客户端设备102上可视地表示所述至少一个用户交互显示元素,并且用户可以对于 所述至少一个用户交互显示元素输入信息和/或通过多个模态(例如,话音模态和可视模 态)中的任何一个来指示选择。多模态页面115可以包括,例如而并非限于,网页、文档、文 件、表单、列表或其它类型的信息集。当被解释时,多模态页面115可以使客户端设备102呈 现一个或多个用户交互显示元素。如这里所用,“用户交互显示元素”可以包括,例如而并非 限于,文本录入区域、可选元素(例如,按钮或复选框)和/或交互式文本等。连同一个或 多个用户交互显示元素一起,多模态页面也可以包括其它信息和/或元素,诸如文本信息、 图像(例如,静态或动画图像)、音频信息、视频、超链接、元数据和脚本。如这里所用,“多 模态显示元素”意指用户交互显示元素,对于其可以通过一个以上用户接口模态接收输入 数据。在一个实施例中,多模态页面115包括标记,其可以使客户端浏览器112(或其它 语法分析软件)执行一个或多个嵌入式或引用脚本。脚本可以被嵌入在多模态页面115内 或者所述脚本可以在多模态页面115内被引用,并且客户端浏览器112可以从外部源(例 如,服务器)或从本地存储器(例如,从客户端设备102上的高速缓存器)访问所述脚本。如稍后将结合图2-6所详细描述的那样,脚本可以适于使客户端设备102向应用 服务器104发出异步请求,并且该异步请求可以在应用服务器104内保持挂起,直到话音服 务器106向应用服务器104通知已经出现可以准许对于可视显示和/或可视视图焦点的更 新的事件(例如,语音识别事件或话音视图焦点变化)。在那时,应用服务器104将发出对 异步请求的响应。此协议便于在客户端设备102上的可视视图焦点与话音服务器106上的 话音视图焦点之间的同步,如下面将更详细地解释。在一个实施例中,将异步请求作为异步 超文本传输协议(HTTP)请求发出,并且响应是HTTP响应。脚本也可以适于使客户端设备 102发出同步请求。在一个实施例中,可以使用AJAX(异步Java脚本和可扩展标记语言(XML))技术 来开发多模态页面115,并且据此多模态页面115可以包括XML标记和Java脚本,其适于 发出在先前段落中所提及的异步请求(例如,异步HTTP请求)并且处理对那些请求的响应 (例如,HTTP响应)。在其它实施例中,可以使用其它类型的编程、脚本和/或标记语言来 开发多模态页面115,它们适于发出异步请求并且处理对那些请求的响应。如这里所用,术语“标记语言”意指为信息(例如,标记或其它机器代码)所定义的 一组语法规则,其可嵌入在信息集内(例如,多模态页面115或其它机器代码)并且向语法 分析软件(例如,客户端浏览器112)指示显示元素(例如,文本或其它内容)的结构、布局和/或其它特征,特别是当所述元素在电子设备上呈现时。例如而并非是限制,与标记语言 相关联的标记可以包括展示标记、过程标记和/或描述性标记(也被称为“语义”标记)。可 以在各个实施例中使用的标记语言包括但不限于SGML、XML、HTML、XHTML、DHTML、VoiceXML、 SALT、X+V、SVG和各种其它标记语言。客户端浏览器112包括软件程序,其适于依照使客户端设备102能够呈现在机器 代码内表示或引用的文本、图像、视频、音乐和/或其它信息的方式来对多模态页面(例如, 多模态页面115)内的机器代码(例如,标记)执行语法分析。在各个实施例中,客户端浏 览器112可以包括但不限于HTML/XHTML浏览器、无线应用协议(WAP)浏览器、定制应用和 / 或在商业上可用的浏览器(例如,Internet Explorer、Mozilla Firefox, Safari, Opera 和Netscape,仅举几个例子)。在特定实施例中,客户端浏览器112是XHTML浏览器,其支 持Ajax编程技术并且还具有音频处理能力。客户端浏览器112“启用多模态”,在一个实施 例中,这意指客户端浏览器112配备有Java脚本引擎或其功能等效物,用于解释多模态页 面(或其它适于呈现多模态显示元素的机器代码),并且客户端浏览器112适于支持发出异 步请求并且与HTTP服务器(例如,应用服务器104)交互。另外,当客户端浏览器112适于 访问能够捕获用户发言(例如,用户语音)的音频组件时,客户端浏览器112可以被认为是 启用多模态,使得可以传送表示那些发言的音频数据。在一个实施例中,音频组件还能够接 收并(在音频输出设备上)输出经由客户端浏览器112从网络所接收的音频提示。在一个 环境下,可从客户端浏览器112的脚本环境可编程地访问音频组件,使得由多模态页面所 下载或访问的脚本使音频数据路径能够被正确地建立,如稍后更详细地描述。客户端应用114包括非浏览器计算机软件应用。在一个实施例中,用支持浏览器 的语言(例如,SGML、XML、HTML、XHTML、DHTML、Flash、Java或其它标记语言)来编码客户 端应用114,并且客户端应用114依赖于客户端浏览器112来使应用可被执行。在其它实施 例中,客户端应用114可以不依赖于客户端浏览器112来使应用可被执行(例如,客户端浏 览器112可以不包括在系统100中),并且客户端应用114本身可以实现客户端浏览器112 的功能。例如,客户端应用114可以是适于呈现多模态显示元素的编译程序,并且可以使用 Ajax技术来编程以便向客户端设备102增加话音模态,如下面将要进一步详细描述。换句 话说,在其中客户端应用114包括客户端浏览器112的功能并且客户端浏览器112被排除 的一个实施例中,客户端应用114可以是启用多模态。可以开发多个不同类型的客户端应 用114,例如包括与地图应用、导航应用和搜索应用相关联的应用组件,仅举几个例子。客户端设备102可以经由一个或多个网络108与应用服务器104通信。网络108 例如可以包括分组交换网络和/或电路交换网络,并且更具体地是可以包括因特网、个域 网(PAN)、局域网(LAN)、广域网(WAN)、宽带LAN(WLAN)、蜂窝式电话网络、无线电网络、卫星 通信网络、公用交换电话网络(PSTN)和/或任何各种其它类型的网络中的一个或多个,所 述其它类型的网络适于能够在各个系统实体之间交换信息。网络108可以适于使用各种有 线或无线通信协议中的任何一种在系统实体之间交换信息。应用服务器104(AS)适于执行用于客户端设备102的各种AS服务118。例如,AS 服务118可以包括从客户端设备102接收多模态页面请求,和响应于所述请求向客户端设 备102提供多模态页面等。在一个实施例中,多模态控制器116与应用服务器104相关联, 并且在相同的第二级域内作为应用服务器104被提供。多模态控制器116适于便于在可视视图和话音视图的数据和焦点之间进行同步,如下面更详细地描述。因为多模态控制器116 和应用服务器104处于相同的第二级域中,所以依照常规的浏览器安全模型,基于由应用 服务器104提供到客户端设备102的、在多模态页面115内或由其引用的机器代码的解释, 多模态控制器116可以是从客户端浏览器112发出的任何HTTP请求的目标。在对应于应 用服务器106的框内包括多模态控制器116并不意在表示在相同的平台上执行多模态控制 器116和应用服务器106 (或AS服务118)。基本上,在一个实施例中,应用服务器106 (或 AS服务118)和多模态控制器116应当依照坚持由客户端浏览器112所利用的安全模型的 方式在物理上通信地耦合。在一个实施例中,AS服务118可以包括接收对于多模态页面和语音对话的请求, 取出所述多模态页面和语音对话,并且把它们发送到请求实体。相比之下,在一个实施例 中,多模态控制器116适于在多模态会话的上下文中便于同步话音视图和可视视图的焦 点。另外,多模态控制器116可以适于把从客户端设备所接收的音频数据转发到话音服务 器,反之亦然。在替换实施例中,可以在AS服务118中实现多模态控制器116的一些或全 部功能。如先前所提及,与在客户端设备102上呈现的多模态页面相关联的机器代码适于 向应用服务器104发出请求(例如,同步和/或异步HTTP请求)。针对应用服务器102的 一些请求可以由AS服务118处理,并且更具体地针对多模态控制器116的其它请求可以由 多模态控制器116处理。多模态控制器116适于控制在客户端设备102上保持的可视视图数据和焦点与在 话音服务器106上保持的话音视图数据和焦点之间的同步。基本上,可视视图焦点和话音 视图焦点的同步包括向客户端设备102和话音服务器106提供信息,其使对应于客户端设 备102上的多模态页面115的机器代码的解释与对应于话音服务器106的语音对话136的 机器代码的解释同步。所述另一方式,可视视图焦点和话音视图焦点的同步包括向客户端 设备102和话音服务器106提供信息,其使客户端设备102上的可视视图的执行状态能够 与话音服务器106上的话音视图的执行状态同步。话音视图数据和可视视图数据的同步包 括向话音服务器提供对应于经由可视模态所进行的用户输入的数据,并且向客户端设备提 供对应于语音识别结果的数据。稍后更详细地描述用于执行此同步的方法的实施例。话音服务器106是模态服务器,其特别适于结合分布式多模态应用会话协调语音 处理相关任务。如先前所提及,在其它实施例中,其它类型的模态服务器可以被结合到系统 中。话音服务器106适于执行VS浏览器/对话解释器132 (下面被称为VS浏览器132)的 一个或多个实例,并且与语音识别器134相对接。VS浏览器132是软件程序,用于使话音服务器106在多模态应用会话的上下文中 能够访问并解释语音对话(例如,语音对话136),结合解释所述语音对话来发送并接收音 频数据,发出异步请求(例如,HTTP请求),并且接收并处理响应(例如,HTTP响应)。在 各个实施例中,VS浏览器106可以包括但不限于定制或可买到的浏览器或其它应用,其适 于解释与提供话音模态相关联的标记(例如,VoiceXML, SALT、X+V和/或各种其它标记语
曰)°如先前所提及,VS浏览器132可以访问并解释语音对话136。如这里所用,可以 解释“语音对话”以便意指与处理音频数据相关联的信息集,其中所述语音对话的一部分对应于在多模态页面115中所表示的用户交互显示元素。依照各个实施例,语音对话可以包 括适于影响由语音识别器134对所接收音频数据的处理和/或在适当时提供音频数据(例 如,语音提示)的机器代码。语音对话可以包括,例如而并非限于,网页、文档、文件、列表或 其它类型的信息集。语音对话还可以包括其它信息和/或元素,诸如文本信息、元数据、机 器代码和脚本。尽管下述实施例包括由话音服务器106访问(例如,下载)的语音对话,不 过应当理解,在其它实施例中,语音对话可以被实现为位于话音服务器106的机器代码,并 且不需要被下载或另外访问。在一个实施例中,语音对话136包括机器代码,其中所述机器代码可以包括编译 代码、标记和/或其它信息,其可以容易地由话音浏览器132解释。在特定实施例中,语音 对话136可以包括标记,其使VS浏览器132访问和/或执行一个或多个嵌入式或引用脚本 (例如,Java脚本代码)。脚本可以被嵌入在语音对话136内,或者VS浏览器132可以访 问来自外部源(例如,服务器)或来自本地存储器(例如,来自话音服务器106上的高速缓 存器)的脚本。所述脚本可以包括这样的脚本,所述脚本适于使VS浏览器132调用语音识 别器134试图根据所接收的音频数据确定语音识别结果,取回或生成音频提示,和/或发出 请求(例如,用于语音对话的HTTP请求或其它类型的请求)等。在一个实施例中,语音对 话136可以包括适于发出请求的标记(例如,VoiceXML、X+V和/或SALT标记)和Java脚 本。在其它实施例中,可以使用其它类型的编程语言、脚本语言和/或标记语言来开发语音 对话136。语音识别器134是可以被VS浏览器132调用的软件应用,并且其适于接收(例 如,压缩、未压缩、编码、未编码或解码格式)的音频数据,使用所述音频数据执行语音识别 算法以便试图确定语音识别结果(例如,识别语音的指示),并且返回所述语音识别结果或 指示没有确定任何结果(例如,指示错误)。如这里所用,术语“音频数据”意指语音或其它 可听声音(统称为“音频”)的数字化表示,其中数字化音频表示可以包括压缩、未压缩、编 码、未编码和/或解码格式的采样语音或其它可听声音。音频数据还可以包括针对包括音 频数据的表或其它数据结构的指针,其中所述表可以由应用服务器102、话音服务器106和 /或客户端设备102访问。在一个实施例中,可以结合各个语音识别资源(例如,语法、η元 语法序列、统计语言模型和/或其它资源)执行语音识别器134,所述语音识别资源可以基 于被解释的语音对话136的特定部分(例如,话音视图的当前焦点)被访问。在一个实施例中,话音服务器106经由AS/VS通信路径122与应用服务器104通 信,并且语音识别器134经由AS/SR通信路径123与应用服务器104通信。在应用服务器104 和话音服务器106之间的通信可以包括来源于话音服务器106并且针对客户端设备102的 音频数据(例如,音频提示)以及由语音识别器134确定的语音识别结果等。在应用服务 器104和语音识别器134之间的通信可以包括由应用服务器104从客户端设备102接收的 音频数据等。话音服务器106还经由MMC/VS通信路径与多模态控制器116通信。可以使 用话音浏览器控制协议(例如,标准协议)执行在多模态控制器116和话音服务器106之 间的通信,这允许多模态控制器116命令话音服务器106下载哪个语音对话、聚焦哪个元素 以及应当用来更新元素的数据。在一个实施例中,多模态控制器116可以基本上把话音浏 览器控制协议桥接到由客户端浏览器116接收的异步HTTP请求,稍后将详细描述该请求。在替换实施例中,语音识别器134和客户端设备102可以直接经由SR/客户端音频数据路径124交换音频数据。可以定义“SR/客户端音频数据路径”以意指通过网络 108 (或一些其它通信介质)的任何一个或多个路径,可以沿着所述路径在与语音识别器 134相关联的IP地址和/或端口和与客户端设备102相关联的IP地址和/或端口之间交 换音频数据。在一个实施例中,可以使用分组数据通信协议经由SR/客户端音频数据路径 124流送音频数据。替换地,可以使用电路交换或按键通话(PTT)通信方法经由SR/客户 端音频路径124交换音频数据。在一个实施例中,使用实时传输协议/实时传输控制协议 (RTP/RTCP)的版本来经由SR/客户端音频数据路径124传送音频数据,不过在其它实施例 中可以实现其它协议(例如,传输控制协议(TCP)或其它)。应用服务器104和话音服务器106彼此不同,这是由于应用服务器104和话音服 务器106执行不同的处理,并且经由AS/VS通信路径122交换影响那些处理的执行的控制 消息。在一个实施例中,应用服务器104和话音服务器106可以在物理上不同的硬件上实 现,所述硬件可以或可以不放在一块。在另一实施例中,应用服务器104和话音服务器106 可以在至少部分共享的硬件上实现,不过在两个服务器之间仍然通过AS/VS通信路径122 交换各个消息,如下面详细描述。如先前所提及,本发明主题的实施例适于同步与分布式多模态应用会话相关联的 可视视图数据和焦点以及话音视图数据和焦点。结合多模态页面(例如,多模态页面115) 的解释,由客户端设备102保持“可视视图”的焦点,并且结合与多模态页面相关联的语音 对话(例如,语音对话136)的解释,由话音服务器106保持“话音视图”的焦点。术语“可 视视图”和“可视视图焦点”可以被定义为对应于在多模态页面内包括的或被访问的机器代 码的显示元素,其中浏览器(例如,客户端浏览器112)当前正在解释或等待解释所述多模 态页面。例如,当前的可视视图焦点可以对应于与被高亮的单个显示元素相关联的机器代 码,在所述显示元素上光标闪烁或者设置了焦点的一些其它指示。术语“话音视图”和“话 音视图焦点”可以被定义为对应于在语音对话内包括的或被访问的机器代码的显示元素, 其中浏览器(例如,VS浏览器132)当前正在执行或等待执行所述语音对话。例如,当前话 音视图焦点可以对应于这样的机器代码,所述机器代码使话音浏览器132等待接收音频数 据作为特定显示元素的输入,所述显示元素正在客户端设备102上呈现。现在将结合图2-6描述用于发起并实施多模态应用会话的方法的实施例。将在特 定类型的分布式多模态应用的例子的上下文中描述这些实施例,以便于解释和理解各个实 施例。示例性应用是地图应用,所述地图应用包括客户端应用,所述客户端应用适于使在多 模态页面内表示的元素通过启用多模态的客户端浏览器的解释而呈现在客户端设备上。在 替换实施例中,客户端浏览器可以适于在没有从客户端应用发起的情况下解释多模态页面 (例如,当用户直接发起客户端浏览器的实例并且使客户端浏览器下载并解释多模态页面 时)。在又一替换实施例中,客户端应用可以执行客户端浏览器任务中的一些或全部,和/ 或客户端应用可以包括可能另外包括在多模态页面内的一些或全部机器代码。因此,可以 在存在或不存在多模态页面、客户端应用或客户端浏览器的情况下执行各个实施例。这里 没有详细地论述这些实施例,不过应当理解它们落入本发明的主题范围内。所述例子将包括采用数据输入表单形式来显示多模态页面的客户端设备,其中所 述数据输入表单包括多个多模态显示元素。每个显示元素包括可填充的数据录入区域(例 如,用于城市、州、街道号、街道地址的数据录入区域),用户可以使用可视模态或话音模态之一或两者来向所述数据录入区域中输入关于目标位置的地址信息。当提交所输入的信息 时,所述系统可以提供用于使客户端设备能够显示包括目标位置的地图的地图信息。应当 理解,也可以结合其它类型的分布式多模态应用(例如搜索和导航应用等)来使用实施例。在给定例子中,多个模态包括可视模态和话音模态。在客户端设备上,可以使用显 示屏幕和用于生成可视显示的相关联硬件和软件来实现可视模态。还使用小键盘和/或一 个或多个其它用户接口输入设备在客户端设备上实现可视模态,所述小键盘和/或一个或 多个其它用户接口输入设备用于使用户能够通过与可视显示和/或其它用户接口输入设 备的交互来作出选择、输入信息和/或进行其它动作(例如,改变焦点)。可以使用麦克风、 扬声器和相关联的硬件和软件来在客户端设备上实现话音模态,所述相关联的硬件和软件 适于接收并数字化人类语音和/或输出音频信息。在给定例子中,用户可以通过观看可视显示并且使用小键盘或其它输入设备把信 息输入到可视显示的区域中、指示选择或者改变可视视图焦点来与用户接口(例如,可视 显示)的可视模态交互。另外,用户可以通过收听音频提示和/或讲话以便提供与可视视 图的焦点被设置到其上的显示元素相关联的信息,来与用户接口的话音模态交互。应当理 解,在替换实施例中,分布式多模态应用可以适于实现与可视模态和话音模态不同的一组 模态。下面将描述的图2依照一个实施例图示了用于发起和实施多模态应用会话的整 体处理。图2并不意在限制本发明主题的范围,而是提供全面的上下文以便理解结合图3、 5和6图示并描述的更详细的处理描述。图2是依照示例性实施例、用于发起并实施多模态应用会话的方法的流程图。该 方法可以开始于框202,其中客户端设备接收应当发起多模态应用会话的指示。在各个实施 例中,可以借助客户端应用(例如,地图应用的客户端侧部分)和/或客户端浏览器的实例 来发起多模态应用会话。例如,客户端设备的用户可以发起适于独立地或结合客户端浏览 器呈现可视显示的客户端应用的实例,所述可视显示包括至少一个多模态显示元素,对于 至少一个多模态显示元素可以使用可视模态或话音模态来输入数据。替换地,用户可以发 起客户端浏览器的实例,并且可以向客户端浏览器指示用户希望浏览器访问或下载多模态 页面,当所述多模态页面被解释时,使所述客户端设备呈现所述可视显示。例如,用户可以 向多模态页面提供用于导航的用户输入。当客户端设备接收到应当发起多模态应用会话的指示时,所述客户端设备在框 204中向应用服务器发送多模态页面请求。在一个实施例中,多模态页面请求是同步HTTP 请求,所述同步HTTP请求包括所请求页面的引用(例如,统一资源定位符或URL)。在框 206中,应用服务器接收请求,取出所请求的多模态页面,并且采用多模态页面响应的形式 (即,对于在框204中由客户端设备所发送的多模态页面请求的响应)来向客户端设备发送 所述多模态页面。在一个实施例中,多模态页面请求的处理由应用服务器内的实体(例如, 图1的AS服务118)执行,其被指定为用于响应于客户端请求而取出并返回多模态(或其 它)页面。在框207中,客户端设备接收多模态页面响应(例如,多模态页面),并且发起在 多模态页面内包括的和/或由其引用的标记和脚本的解释。这包括在框208中确定客户端 浏览器是否启用多模态。例如可以通过评估关于客户端设备和/或客户端浏览器的配置信息来进行此确定。如先前所述,当客户端浏览器能够捕获并传送所检测的用户发言(例如, 用户语音)时,当它配备有Java脚本引擎或其功能等效物以用于解释多模态页面(或其它 适于呈现多模态显示元素的机器代码)时,当它适于支持发出异步请求时以及当它适于与 HTTP服务器(例如,图1的应用服务器104)相交互时,客户端浏览器可以被认为启用多模 态。当确定客户端浏览器没有启用多模态时,那么在框210中客户端设备在“仅可视 模态”模式中操作。在一个实施例中,这包括客户端设备呈现在多模态页面中表示的显示元 素,不过所述客户端设备可能会将其对多模态页面的解释仅限于那些与经由可视模态接收 用户输入相关联的部分(例如,小键盘录入)。基本上,多模态页面的与经由话音模态接收 输入相关的那些部分被客户端浏览器绕过。依照常规技术的进一步处理可以出现在初始的 页面呈现之后(例如,经由可视模态的用户输入的处理、可视模态焦点变化、到其它页面的 导航等)。另外,客户端设备可以执行各种其它处理,诸如与稍后结合框216、218、219、220 和24描述的处理类似的处理——除那些类似处理可能不包括与音频捕获、语音识别、在话 音视图和可视视图之间的数据和焦点同步相关的步骤之外——以及与话音模态相关的其 它处理。因为在“仅可视模态”模式中的操作不是本申请的关注点,所以这里不详细地论述 这种操作。当确定客户端浏览器启用多模态时,那么在框212中通过在客户端设备、应用服 务器(或更具体地说多模态控制器)以及话音服务器/话音浏览器之间的交互来同步多 模态应用会话,如将结合图3非常详细地描述。基本上,多模态应用会话的同步包括客户 端设备从应用服务器请求多模态会话发起,所述应用服务器向所述话音服务器提供对应于 多模态页面的语音对话,所述客户端设备在可视显示上呈现在多模态页面中表示的一个或 多个显示元素,以及所述客户端设备向所述应用服务器发出异步事件请求。在客户端设备 和话音服务器直接(而不是通过应用服务器)交换音频数据的一个实施例中,多模态应用 会话的发起还可以包括在客户端设备和语音识别器之间建立音频数据路径(例如,图1的 SR/客户端音频数据路径124),在多模态应用会话期间将在所述音频数据路径上交换音频 数据。结合图3的描述,稍后更详细地描述多模态会话同步处理。在一个实施例中,由应用 服务器执行的多模态会话同步处理的数个部分可以由与应用服务器相关联的实体(例如, 图1的多模态控制器116)执行,其被指定为用于支持在可视视图数据和焦点与话音视图数 据和焦点之间的同步。如结合图5和6非常详细地描述,在多模态应用会话期间,将在客户端设备和话音 服务器之间交换音频数据,并且将在客户端设备、应用服务器和话音服务器之间交换各个 HTTP请求和响应。各个HTTP请求和响应尤其实现在可视视图数据和焦点与话音视图数据 和焦点之间的同步以使其贯穿多模态会话被保持一致。响应于与话音模态和可视模态相关联的数据输入事件而在各个系统实体之间交 换音频数据和控制信息,所述事件分别被称为“话音模态输入事件”和“可视模态输入事 件”。话音模态输入事件和可视模态输入事件可以影响话音视图数据和焦点和/或可视视 图数据和焦点。当实施多模态应用会话时,话音模态输入事件和可视模态输入事件可以在 不同时间出现。如将结合图5非常详细地描述,当出现话音模态输入事件时,在框214中执 行话音模态输入事件处理过程。另外,如将结合图6非常详细地描述,当出现可视模态输入
15事件时,在框216中执行可视模态输入事件处理过程。尽管框214和216被图示为顺次出 现,不过这些处理也可以并行或依照相反次序出现,并且当实施多模态应用会话时,这两个 处理中的一个或两个可以多次出现。在一个实施例中,由应用服务器执行的话音模态输入 处理过程和可视模态输入处理过程的一部分可以由与应用服务器相关联的实体(例如,图 1的多模态控制器116)执行,其被指定用于支持在可视视图焦点与话音视图焦点之间的同

少ο继续执行用于处理话音模态输入事件和可视模态输入事件的过程,如图2中所图 示,直到把页面数据(例如,由用户对于呈现页面的显示元素所输入的累积数据)提交到应 用服务器,如框218描绘。替换地,当以另外方式(例如,通过用户动作、通信故障、超时期 满或其它事件)终止多模态应用会话时,可以中断用于处理话音模态输入事件和可视模态 输入事件的过程。在框218中,当用户已经指示这种提交(例如,通过选择提交选项或按压提交按 钮)时、当用户已经把数据输入到全部用户交互显示元素中时和/或当用户例如已经把数 据输入到在可视显示上呈现的一系列元素中的最后的用户交互显示元素中时,客户端设备 可以确定页面数据被提交。也可以根据在客户端设备上呈现的特定类型的多模态页面来以 其他方式提交页面数据。例如,尽管这里详细描述了可填充表单的例子,不过替换地多模态 页面可以包括一个或多个启用话音模态的数据输入元素,当检测到用户发言时,可以自动 地对于所述数据输入元素提交数据(例如,用户发言包括数据提交的用户指示)。例如,多 模态页面可以与游戏或图表显示相关联,其中用户可以经由话音命令来修改可视显示的各 方面。当客户端设备确定页面数据被提交时,在框219中,在一个实施例中,所述客户端 设备可以向应用服务器发送提交请求。在一个实施例中,所述提交请求可以包括结合多模 态页面的解释所呈现的一些或全部输入数据的表示。在一个实施例中,如果在当前正被解 释的多模态页面内的标记指示应当加载新的多模态页面,那么提交请求还可以包括到所述 新的多模态页面的引用(例如,URL)。在替换实施例中,作为替代,客户端设备可以在独立 的多模态页面请求中而不是在提交请求中发送多模态页面引用。当收到提交请求时,应用 服务器可以处理输入数据(例如,更新存储值)。多模态应用会话可以涉及对于单个多模态页面或对于一系列多个多模态页面输 入并提交数据。据此,在框220中,应用服务器可以确定客户端设备是否已经请求新的多模 态页面(例如,客户端设备何时已经在提交请求中或在独立的请求中提供了多模态页面引 用)。如果没有,那么在框222中,应用服务器可以结束多模态会话,并且所述处理可以结 束。如果是的话,那么在框224中,应用服务器取出新的多模态页面,并且采用提交响应的 形式向客户端设备发送新的多模态页面。在一个实施例中,取出并提供新的多模态页面可 以由应用服务器内的实体(例如,图1的AS服务118)执行,其被指定用于响应于客户端请 求来取出并返回多模态(或其它)页面。在一个实施例中,在向客户端设备发送新的多模 态页面之后,然后所述方法可以如图2所示进行重复。更具体地是,在框208中,客户端设 备可以接收具有新的多模态页面的多模态页面响应(例如,“提交响应”是“多模态页面响 应”)。因为客户端设备先前确定客户端浏览器是否启用多模态,所以客户端设备可以绕过 该步骤并且在框214中直接发起多模态应用会话。如根据图3的描述可以明显看出,如果已经发起会话那么还可以绕过会话同步处理的某些部分。例如,应用服务器可以绕过发起 与话音服务器的多模态会话,如将结合图3的框304所描述。图3是依照示例性实施例、执行多模态应用会话同步(例如,图2的处理214)的 方法的流程图。在一个实施例中,该方法可以开始于框302,其中客户端设备向应用服务器 发送多模态会话同步请求。所述多模态应用会话同步请求例如可以是同步HTTP请求,所述 同步HTTP请求用于向应用服务器指示客户端设备启用多模态,并且所述应用服务器应当 继续同步多模态会话。在一个实施例中,多模态应用会话同步请求还可以包括对语音对话 的引用(例如,URL),该语音对话对应于在客户端设备上解释的多模态页面。另外,特别是 当语音对话将是与多模态应用会话相关联的第一语音对话时,多模态应用会话同步请求可 以包括关于客户端设备的音频通信信息。音频通信信息可以包括在多模态应用会话期间应 用服务器向客户端设备发送音频数据可以使用的信息(例如,用于描述客户端设备所支持 的音频格式(多个)、比特率(多个)和/或音频类型(多个)的信息,期望音频编解码器 (多个)和/或音频地址信息,诸如用于使音频数据被发送到客户端设备的客户端设备IP 地址和端口号)。在替换实施例中,可以在多模态应用会话发起请求之外的消息中提供音频 fflfn fn 息 ο在框304中,应用服务器接收多模态会话发起请求并且发起与话音服务器的多模 态会话,除非在当前多模态应用会话的上下文中已经完成了这点。这例如可以包括应用服 务器与话音服务器交换音频通信信息,该音频通信信息将用于在多模态应用会话期间在所 述应用服务器和话音服务器之间传递音频数据(例如,由应用服务器和话音服务器支持的 音频格式(多个)、比特率(多个)和/或音频类型(多个),期望音频编解码器(多个) 和/或音频地址信息,诸如用于音频数据交换的应用服务器IP地址、话音服务器IP地址和 端口号)。在替换实施例中,如先前所提及,客户端设备和语音识别器可以直接交换音频数 据。在这种实施例中,多模态应用会话的同步可以包括在客户端设备和语音识别器之间建 立音频数据路径(例如,图ι的SR/客户端音频数据路径124)。尽管这里并未详细描述此 处理,但所述处理可以包括客户端设备和语音识别器经由应用服务器互相交换音频路径信 息,所述音频路径信息包括用于描述由客户端设备和语音识别器支持的音频格式(多个)、 比特率(多个)和/或音频类型(多个)的信息,期望音频编解码器(多个)和/或音频 地址信息,诸如用于音频数据交换的客户端设备IP地址、语音识别器IP地址和端口号)。 其余描述是关于其中客户端设备和语音识别器通过应用服务器交换音频数据的实施例。然 而应当理解,本发明主题的范围包含在此段落中描述的替换实施例。再次参照框304,应用服务器可以根据多模态会话同步请求来确定语音对话的引 用(例如,URL),该语音对话对应于在客户端设备上被解释的多模态页面。在一个实施例 中,应用服务器然后可以取出语音对话并且把它发送到话音服务器。在替换实施例中,应用 服务器可以向话音服务器发送语音对话的引用。然后话音服务器自己可以下载或访问该语 音对话。话音浏览器然后可以发起语音对话的解释。在一个实施例中,这可以包括解释对 应于如下多模态显示元素的语音对话部分,客户端设备最初将其焦点设置在所述多模态显 示元素(例如,当所述客户端设备发起呈现多模态页面时其中被定位光标的显示元素)上。对应于当前被执行的语音对话部分的多模态显示元素指示话音视图的当前焦点。话音浏览 器可以命令语音识别器应当使用哪些语音识别资源(例如,语法、η元语法序列、统计语言 模型或其它资源)来试图识别对应于话音视图的当前焦点的语音。另外,话音服务器可以 向应用服务器通知其已经发起语音对话的解释。在一些情况下,音频提示可以与话音视图 的初始焦点相关联。如果是的话,那么话音服务器可以向应用服务器发送表示音频提示的 音频数据。在框306中,应用服务器可以向客户端设备发送多模态会话同步响应(例如,对 于在框302中客户端设备向应用服务器发送的多模态会话同步请求的响应)。多模态会话 同步响应可以向客户端设备指示客户端设备应当继续解释多模态页面并且呈现在所述多 模态页面内表示的一个或多个多模态显示元素。另外,多模态会话同步响应可以包括音频 通信信息,其中客户端设备在多模态应用会话期间可以使用所述音频通信信息来向应用服 务器发送音频数据(所述音频通信信息例如,用于描述应用服务器所支持的音频格式(多 个)、比特率(多个)和/或音频类型(多个)的信息,期望音频编解码器(多个)和/或音 频地址信息,诸如用于使音频数据被发送到应用服务器的应用服务器IP地址和端口号)。 在替换实施例中,可以在多模态应用会话同步响应之外的消息中提供音频通信信息。如果 话音服务器提供对应于音频提示的音频数据,那么应用服务器还可以把所述音频数据转发 到客户端设备。在框308中,客户端设备接收多模态会话同步响应,并且解释与最初在所述客户 端设备上显示一个或多个多模态显示元素相关联的多模态页面部分。在一个实施例中,这 可以包括客户端设备在与客户端设备相关联的显示设备上呈现多模态显示元素。客户端设 备还可以呈现可视视图的初始焦点的光标或其它指示。例如,客户端设备可以在与多模态 显示元素相关联的数据录入区域内呈现光标。如果应用服务器把音频数据(例如,音频提 示)转发到客户端设备,那么所述客户端设备还可以在与所述客户端设备相关联的扬声器 或其它音频输出设备上输出所述音频数据。图4是依照示例性实施例、在客户端设备400上呈现的多模态页面的例子。在所 图示的例子中,采用四个多模态显示元素401、402、403、404的形式呈现可视标记部分,每 个多模态显示元素包括文本标签(例如,“城市”、“州”、“街道号”和“街道名”)和数据录入 区域。在替换实施例中,特定的多模态显示元素可以与多个输入数据项相关联,其中语音识 别器可以访问多个语音识别资源以试图为多个输入数据项生成识别事件(多个)(例如,多 模态显示元素可以与“街道地址”相关联,并且可以利用街道号和街道名来填充相应的数据 录入区域)。可视视图的初始焦点由数据录入区域401内光标405的位置来指示。如果与 音频提示相关联的音频数据已经被发送到客户端设备400,那么客户端设备400可以在扬 声器408上输出所述音频数据。例如,初始音频提示可以说“请输入或说出城市名称”。再次参照图3,在一个实施例中,在框310中,客户端设备向应用服务器(例如,向 图1的多模态控制器116)发送异步话音事件请求(例如,异步HTTP请求)。由应用服务器 接收话音事件请求,并且在客户端设备和所述应用服务器之间建立TCP连接。在一个实施 例中,话音事件请求在应用服务器保持挂起(例如,TCP连接保持存在)直到出现“话音事 件”,在那时所述应用服务器可以向客户端设备发出话音事件响应。在各个实施例中,话音 事件可以包括由应用服务器从话音服务器接收已经生成语音识别结果和/或在可视视图
18焦点被更新为新的焦点之前话音视图的焦点已经被改变到新焦点的指示。例如,当出现语 音识别事件时,话音视图可以在可视视图的焦点变化之前改变到新的焦点。如结合图5将 要更详细地描述,当出现话音事件时,挂起的话音事件请求便于在可视视图数据和焦点与 话音视图数据和焦点之间的同步。如下面将更详细地描述,客户端设备试图确保在多模态会话期间话音事件请求几 乎全部时间都在应用服务器挂起,以便确保所述应用服务器可以捕捉可能自然出现的任何 话音事件并且把它们返回到客户端设备。在一个实施例中,客户端设备可以不向应用服务 器发送另一异步话音事件请求,直到所述应用服务器已经发出对任何之前发送的话音事件 请求的话音事件响应。据此,在任何给定时间,在应用服务器只有一个话音事件请求(例 如,一个TCP连接)可以保持挂起。在替换实施例中,在全部或相当一部分多模态应用会话 期间,客户端设备可以在不等待每个异步话音事件的响应的情况下向服务器发送多个(例 如,从两个到五个)异步话音事件(例如,在框310和/或框514中),这可能会导致在应用 服务器的多个挂起的话音事件请求。在另一替换实施例中,客户端设备可以定期或间或重 新发出话音事件请求,以便试图避免在应用服务器发出响应之前终止TCP连接的可能。例 如,应用服务器可以终止挂起的话音事件请求,如果它在超过超时时段的时间段保持挂起; 或者由于各种其它原因TCP连接可以被终止。在客户端设备可以使多个话音事件请求变得 在应用服务器挂起的实施例中,所述应用服务器可以管理其可以允许对该客户端设备保持 挂起的话音事件请求的数目,以便管理位于应用服务器上的处理负载。当在框310中客户端设备向应用服务器发送异步话音事件请求(或多个请求) 时,然后用于发起多模态应用会话的方法可以结束。在这一点上,可视视图具有初始焦点并 且话音视图具有初始焦点。可视和话音视图的初始焦点应当被同步以便分别对应于多模态 页面和语音对话的数个部分,其与对于特定的多模态显示元素接收用户输入和执行语音识 别相关联。在这一点上,客户端设备正等待经由可视模态或话音模态的多模态显示元素的 用户输入。如先前结合图2的框216和218所描述,在发起多模态应用会话之后,可能出现至 少两种类型的事件,这可能会影响话音视图和可视视图的焦点。这些事件类型包括话音模 态输入事件和可视模态输入事件。当经由话音模态接收用户输入时出现话音模态输入事 件。例如,各个话音模态输入事件可以包括但不限于语音识别事件和话音视图焦点变化等。 相比之下,当经由可视模态接收用户输入时出现可视模态输入事件。例如,各个可视模态输 入事件可以包括但不限于使用键盘、小键盘或触摸屏录入数据和可视视图焦点变化等。图 5和6分别图示话音模态输入事件处理过程和可视模态输入事件处理过程的实施例。图5是依照示例性实施例、执行话音模态输入事件处理过程(例如,图2的处理 216)的方法的流程图。当客户端设备通过其用户接口接收可以表示用户发言(例如,用户 语音)的音频信号时,所述方法可以在框502中开始。用户语音可以对应于单个显示元素 (例如,所述语音可以是对应于图4的显示元素401的“芝加哥”的发言,)或对应于一个以 上显示元素(例如,所述语音可以是对应于显示元素401和402的“芝加哥,伊利诺斯州”的 发言)。当检测到用户发言时,客户端设备可以数字化并处理音频信号以便生成用于表示用 户发言的上行链路音频数据,并且可以向应用服务器发送所述上行链路音频数据。如这里 所用,“上行链路音频数据”指的是(例如,通过应用服务器)从客户端设备发送到语音识别器的音频数据,并且“下行链路音频数据”指的是(例如,通过应用服务器)从话音服务器 发送到客户端设备的音频数据(例如,话音提示)。在框504中,应用服务器接收上行链路音频数据,并且向语音识别器发送所述上 行链路音频数据。在结合框502和504所描述的实施例中,经由应用服务器将上行链路音 频数据从客户端设备发送到语音识别器。在替换实施例中,如先前所描述,可以直接将上行 链路音频数据从客户端设备发送到语音识别器(例如,经由图1的SR/客户端音频数据路 径124)。在这种实施例中,框502和504的处理可以由其中客户端设备向语音识别器发送 上行链路音频数据的处理来代替。在框506中,语音识别器接收上行链路音频数据并且执行语音识别处理。在一个 实施例中,根据话音视图的当前状态,使用语音识别资源来执行语音识别处理,其中已经由 话音浏览器命令语音识别器使用所述语音识别资源(例如,在图3的框304中,或在图6的 框610、620中)。当语音识别器确定上行链路音频数据对应于可识别的语音时,在框508 中,所述语音识别器可以生成识别结果,并且可以向话音浏览器发送所述识别结果。在框510中,话音浏览器接收并处理识别结果。在一个实施例中,这可以包括转变 可视视图的焦点。换句话说,因为对于对应于作为可视视图的当前焦点的显示元素的上行 链路音频数据生成了识别结果,所以话音浏览器现在可以转变到对应于另一显示元素的新 的可视视图焦点。据此,话音浏览器可以中止其解释与当前可视视图焦点相关联的语音对 话部分,并且可以发起解释与新的可视视图焦点相关联的语音对话部分。在一个实施例中, 话音浏览器可以向应用服务器发送更新信息,所述更新信息可以包括识别结果(例如,用 于显示元素的数据)以及新的可视视图焦点的指示。在框512中,在一个实施例中,应用服务器接收结果/焦点更新信息,并且向客户 端设备发送话音事件响应。话音事件响应是作为对于异步话音事件请求的响应而发送的, 所述异步话音事件请求之前被客户端设备发送到应用服务器,并且当前在应用服务器上挂 起。在一个实施例中,话音事件响应可以包括识别结果以及话音视图的新焦点的指示。在框514中,客户端设备接收话音事件响应。然后客户端设备可以更新可视视图 来反映该结果。例如,客户端设备可以利用用于表示结果的文本来填充作为可视视图的当 前焦点的显示元素。另外,客户端设备可以更新可视视图焦点以使其与话音视图的新焦点 同步。据此,将同步可视视图和话音视图。在一个实施例中,客户端设备向应用服务器发送另一异步话音事件请求(例如, 异步HTTP请求),如先前结合框310所描述(图3)。由应用服务器接收话音事件请求。优 选地是,各个同步和异步HTTP请求将利用连接高速缓存,这将缓解为每个请求拆除并重建 新的TCP连接的需要。然而,在另一实施例中,对于由客户端设备向应用服务器发送的每个 HTTP请求,可以在客户端设备和应用服务器之间建立另一 TCP连接。在一个实施例中,话音 事件请求将在应用服务器保持挂起,直到出现另一话音事件。然后图5的方法可以结束。图6是依照示例性实施例、执行可视模态输入事件处理过程(例如,图2的处理 218)的方法的流程图。在一个实施例中,该方法可以在框602中开始,其中客户端设备通 过其可视模态接收用户输入,所述用户输入可以准许可视视图的焦点变化和/或可视显示 的更新。例如,用户可以使用客户端设备的滚动或指向机构来选择显示元素和/或数据录 入区域,其不同于当前可视视图被聚焦在其上的显示元素和/或数据录入区域。作为另一例子,用户例如可以使用小键盘把文本输入到当前可视视图被聚焦在其上的数据录入区域 中,并且诸如通过按压“回车”键(例如,图4的“回车”键406)或通过提供其它指示来指 示完成了把信息插入到数据区域中。当(在没有输入文本的情况下)客户端设备接收用于准许可视视图焦点变化的用 户输入时,如判定框604的左支所指示,在框606中,客户端设备可以向应用服务器发送焦 点请求(例如,同步HTTP请求)。在一个实施例中,焦点请求可以指示可视视图的新焦点。 在框608中,应用服务器向话音服务器发送可视视图的新焦点的指示。在框610中,话音服务器接收新的可视视图焦点的指示。作为响应,话音浏览器可 以更新话音视图焦点以使其与新的可视视图焦点同步。在一个实施例中,这可以包括话音 浏览器中止解释与当前话音视图焦点相关联的语音对话部分,并且发起解释与作为话音视 图的新焦点的显示元素相关联的语音对话部分。据此,将同步可视视图和话音视图。另外, 话音浏览器可以命令语音识别器使用与新的话音视图焦点相关联的语音识别资源。在框612中,应用服务器可以向客户端设备发送焦点响应(例如,对于在框606中 由客户端设备向应用服务器发送的焦点请求的响应)。在框614中,客户端设备接收焦点响 应并且更新可视视图焦点。在一个实施例中,这可以包括客户端浏览器中止其解释与当前 显示元素相关联的多模态页面部分,并且发起解释与对应于新的可视视图焦点的显示元素 相关联的多模态页面部分。据此,将同步可视视图和话音视图。另外,客户端设备可以更新 可视显示以便反映新的可视视图焦点。例如,客户端设备可以更新可视显示以便把光标包 括在对应于显示元素的数据录入框中,所述显示元素是新的可视视图焦点的主题。然后所 述方法可以结束。返回参照判定框604,当客户端设备接收文本用户输入时,如判定框604的右支所 指示,在框616中,客户端设备可以向应用服务器发送文本数据请求(例如,同步HTTP请 求)。在一个实施例中,文本数据请求可以包括由用户所输入的文本的表示。在框618中, 应用服务器向话音服务器发送文本数据的表示。在框620中,话音浏览器更新(例如,存储)文本数据的表示,并且根据其按照所 接收的文本对于话音对话的解释来确定话音视图的新焦点。作为响应,话音浏览器然后可 以把话音视图更新到新的话音视图焦点。在一个实施例中,这可以包括话音浏览器中止解 释与当前话音视图焦点相关联的语音对话部分,并且发起解释与作为话音视图的新焦点的 显示元素相关联的语音对话部分。另外,话音浏览器可以命令语音识别器使用与新的话音 视图焦点相关联的语音识别资源,并且可以向应用服务器发送新的话音视图焦点的指示。在框622中,应用服务器可以向客户端设备发送文本数据响应(例如,对于在框 616中由客户端设备向应用服务器发送的文本请求的响应)。文本数据响应可以包括新的 话音视图焦点的指示。在框624中,客户端设备接收文本数据响应,并且更新可视视图焦点 以使其与新的话音视图焦点同步。在一个实施例中,这可以包括客户端浏览器中止其解释 与当前显示元素相关联的多模态页面部分,并且发起解释与对应于新的话音视图焦点的显 示元素相关联的多模态页面部分。据此,将同步可视视图和话音视图。另外,客户端设备可 以更新可视显示以便反映新的可视视图焦点。例如,客户端设备可以更新可视显示以便把 光标包括在对应于如下显示元素的数据录入框中,所述显示元素是新的可视视图焦点的主 题。然后所述方法可以结束。
现在已经描述了用于实现分布式多模态应用的方法和装置的各个实施例。以上详 细描述实际上仅仅是示例性的,并且不意在把本发明的主题或应用以及本发明主题的使用 限制为所描述的实施例。此外,并不意在受先前背景技术或详细描述中给出的任何理论限定。实施例包括由客户端设备执行的方法。该方法包括呈现可视显示的步骤,所述可 视显示包括至少一个多模态显示元素,对于所述至少一个多模态显示元素可由客户端设备 通过可视模态和话音模态接收输入数据,其中可视视图焦点被设置为至少一个多模态显示 元素中的第一多模态显示元素。该方法还包括向应用服务器发送第一话音事件请求,其中 第一话音事件请求是异步HTTP请求;经由话音模态接收可以表示用户发言的音频信号;向 语音识别器发送表示所述音频信号的上行链路音频数据;从所述应用服务器接收响应于所 述话音事件请求的话音事件响应;以及响应于接收到所述话音事件响应,向所述应用服务 器发送第二话音事件请求。另一实施例包括由应用服务器执行的方法。该方法包括从客户端设备接收第一 话音事件请求的步骤,所述客户端设备已经呈现了包括至少一个多模态显示元素的可视显 示,对于所述至少一个多模态显示元素可由客户端设备通过可视模态和话音模态接收输入 数据,其中所述第一话音事件请求是HTTP请求。该方法还包括从话音服务器接收语音识 别结果,其中所述语音识别结果表示对由客户端设备向语音识别器发送的上行链路音频数 据执行语音识别处理的结果;响应于第一话音事件请求向客户端设备发送话音事件响应; 以及响应于发送话音事件响应从所述客户端设备接收第二话音事件请求。又一实施例包括一种系统,所述系统包括适于呈现包括至少一个多模态显示元素 的可视显示的客户端设备,对于所述至少一个多模态显示元素可由客户端设备通过可视模 态和话音模态接收输入数据,其中可视视图焦点被设置为至少一个多模态显示元素中的第 一多模态显示元素。客户端设备还适于向应用服务器发送第一话音事件请求,其中所述 第一话音事件请求是异步HTTP请求;经由话音模态接收可以表示用户发言的音频信号;向 语音识别器发送表示所述音频信号的上行链路音频数据;从所述应用服务器接收响应于所 述话音事件请求的话音事件响应;以及,响应于接收所述话音事件响应向所述应用服务器 发送第二话音事件请求。在一个实施例中,所述系统还包括应用服务器,所述应用服务器适 于从话音服务器接收第一话音事件请求;从话音服务器接收语音识别结果,其中所述语 音识别结果表示对由客户端设备向语音识别器发送的上行链路音频数据执行语音识别处 理的结果;响应于第一话音事件请求向客户端设备发送话音事件响应;以及,响应于发送 话音事件响应从所述客户端设备接收第二话音事件请求。在任何权利要求中的文本顺序并不意指必须依照这种顺序依照时间或逻辑次序 来执行处理步骤,除非权利要求的语言明确这样限定。更具体地说,在不脱离本发明主题的 范围的情况下,图2、3、5和6的处理步骤可以依照任何次序互换,和/或可以并行执行。另 外应当理解,在各个不同消息(例如,请求和响应)内的信息可以被组合到单个消息中,和/ 或在特定消息内的信息可以被分为多个消息,其中所述不同的消息在上面被描述为在系统 元件之间交换。此外,可以由系统元件依照不同于上述顺序的顺序来发送消息。此外,诸如 用来描述在不同元素之间关系的词“连接”或“耦合到”并不意指必须在这些元素之间进行 直接的物理连接。例如,在不脱离本发明主题的范围的情况下,可以通过物理、电、逻辑或依照任何其它方式通过一个或多个附加元素将两个元素彼此连接。那些本领域技术人员应当理解,可以使用各种不同的工艺和技术来表示信息和信 号。例如,遍及上述说明书被引用的数据、指令、命令、信息、信号、比特、码元和芯片可以由 电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。那些技术人员应当进一步理解,结合这里所公开实施例描述的各个说明性逻辑 块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地 说明硬件和软件的此互换性,上面就它们的功能已经大体上描述了各个说明性组件、块、模 块、电路和步骤。这种功能被实现为硬件还是软件取决于在整个系统上的特定应用和设计 限制。对每个特定应用技术人员可以依照可变方式来实现所描述的功能,但是这种实现方 式的决定不应当被解释为脱离了本发明主题的范围。可以利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程 门阵列(FPGA)或其它可编程逻辑器件、离散的门或晶体管逻辑、离散的硬件组件或被设计 成用于执行这里所描述功能的任何组合来实现或执行结合这里公开实施例所描述的各个 说明性逻辑块和模块。通用处理器可以是微处理器,但是在替换方式中,处理器可以是任何 常规的处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,诸如 DSP和微处理器、多个微处理器、结合DSP核的一个或多个微处理器或任何其它这种配置的 组合。可以直接用硬件、由处理器执行的一个或多个软件模块或二者的组合来实现结合 这里所公开实施例描述的方法或算法的步骤。软件模块可以位于随机存取存储器、闪速存 储器、只读存储器(ROM)、可擦可编程ROM(EPROM)、电EPR0M、寄存器、硬盘、可移动盘、压缩 光盘ROM(CD-ROM)或在本领域中已知的任何其它形式的存储介质中。示例性的存储介质被 耦合到处理器以致所述处理器可以从所述存储介质中读取信息并且向其中写入信息。在替 换方式中,存储介质可以集成到处理器。处理器和存储介质可以位于ASIC中。ASIC可以位 于用户终端中。在替换方式中,处理器和存储介质可以作为分立组件位于用户终端中。虽然在以上详细描述中已经给出了至少一个示例性实施例,但是应当理解,存在 许许多多的变化。还应当理解,一个或多个示例性实施例仅是例子,并且不意在依照任何方 式限制本发明主题的范围、适用性或配置。确切的讲,上述详细描述将向那些本领域技术人 员提供了用于实现本发明主题的示例性实施例的便捷途径,应当理解,在不脱离如所附权 利要求及其法律等效物阐明的本发明主题的范围的情况下,可以对示例性实施例中描述的 元素的功能和布置作出各种变化。
权利要求
一种由客户端设备执行的方法,所述方法包括以下步骤呈现包括至少一个多模态显示元素的可视显示,对于所述至少一个多模态显示元素可由所述客户端设备通过可视模态和话音模态接收输入数据,其中可视视图焦点被设置为所述至少一个多模态显示元素中的第一多模态显示元素;向应用服务器发送第一话音事件请求,其中所述第一话音事件请求是异步超文本传输协议(HTTP)请求;经由所述话音模态接收能够表示用户发言的音频信号;向语音识别器发送表示所述音频信号的上行链路音频数据;响应于所述话音事件请求,从所述应用服务器接收话音事件响应;以及响应于接收到所述话音事件响应,向所述应用服务器发送第二话音事件请求。
2.如权利要求1所述的方法,其中向所述语音识别器发送所述上行链路音频数据包 括向所述应用服务器发送所述上行链路音频数据以便被转发到所述语音识别器。
3.如权利要求1所述的方法,其中向所述语音识别器发送所述上行链路音频数据包 括向所述语音识别器直接发送所述上行链路音频数据。
4.如权利要求1所述的方法,进一步包括 接收语音识别结果;以及更新所述可视显示以便在所述第一多模态显示元素中显示对应于所述语音识别结果 的文本。
5.如权利要求1所述的方法,进一步包括 接收新的话音视图焦点的指示;以及更新所述可视视图焦点以便使其与所述新的话音视图焦点同步。
6.如权利要求1所述的方法,进一步包括从所述应用服务器请求多模态页面,其中当所述多模态页面被解释时使所述客户端设 备能够呈现所述可视显示;从所述应用服务器接收所述多模态页面; 确定所述客户端设备是否启用多模态;以及 当所述客户端设备启用多模态时,呈现所述可视显示。
7.如权利要求1所述的方法,进一步包括接收下行链路音频数据,其中所述下行链路音频数据包括音频提示;以及 在所述客户端设备的音频输出设备上输出所述音频提示。
8.如权利要求1所述的方法,进一步包括接收用户输入,以把所述可视视图焦点改变为所述至少一个多模态显示元素中的第二 多模态显示元素;基于接收所述用户输入,向所述应用服务器发出焦点请求,该焦点请求指示对应于所 述第二多模态显示元素的新的可视视图焦点; 从所述应用服务器接收焦点响应;以及响应于接收到所述焦点响应,更新所述可视视图焦点和所述可视显示,以便指示所述 第二多模态显示元素作为所述可视视图焦点。
9.如权利要求8所述的方法,其中接收所述用户输入包括接收所述用户已经使用指向或滚动用户接口设备选择了所述第二多模态显示元素的 指示。
10.如权利要求8所述的方法,其中接收所述用户输入包括接收用户已经把文本输入到所述第一多模态显示元素的数据录入区域中的指示,其中 所述焦点请求包括所述文本的表示。
11.一种由应用服务器执行的方法,所述方法包括以下步骤从客户端设备接收第一话音事件请求,所述客户端设备已经呈现包括至少一个多模态 显示元素的可视显示,对于所述至少一个多模态显示元素可由所述客户端设备通过可视模 态和话音模态接收输入数据,其中所述第一话音事件请求是异步超文本传输协议(HTTP) 请求;从话音服务器接收语音识别结果,其中所述语音识别结果表示对由所述客户端设备向 语音识别器发送的上行链路音频数据执行语音识别处理的结果;响应于所述第一话音事件请求,向所述客户端设备发送话音事件响应;以及 响应于发送所述话音事件响应,从所述客户端设备接收第二话音事件请求。
12.如权利要求11所述的方法,进一步包括从所述客户端设备接收所述上行链路音频数据;以及 向所述语音识别器发送所述上行链路音频数据。
13.如权利要求11所述的方法,其中向所述客户端设备发送所述话音事件响应包括 把所述语音识别结果包括在所述话音事件响应中。
14.如权利要求11所述的方法,进一步包括 从所述话音服务器接收新的话音视图焦点的指示;以及 把所述新的话音视图焦点的指示包括在所述话音事件响应中。
15.如权利要求11所述的方法,进一步包括 从所述客户端设备接收新的可视视图焦点的指示;以及 向所述话音服务器发送所述新的可视视图焦点的指示。
16.一种系统,包括 客户端设备,适于呈现包括至少一个多模态显示元素的可视显示,对于所述至少一个多模态显示元素可 由所述客户端设备通过可视模态和话音模态接收输入数据,其中可视视图焦点被设置为所 述至少一个多模态显示元素中的第一多模态显示元素,向应用服务器发送第一话音事件请求,其中所述第一话音事件请求是异步超文本传输 协议(HTTP)请求,经由所述话音模态接收可表示用户发言的音频信号, 向语音识别器发送表示所述音频信号的上行链路音频数据, 响应于所述话音事件请求,从所述应用服务器接收话音事件响应,以及 响应于接收到所述话音事件响应,向所述应用服务器发送第二话音事件请求。
17.如权利要求16所述的系统,进一步包括 所述应用服务器,其中所述应用服务器适于 从所述客户端设备接收所述第一话音事件请求,3从话音服务器接收语音识别结果,其中所述语音识别结果表示对由所述客户端设备向 所述语音识别器发送的所述上行链路音频数据执行语音识别处理的结果,响应于所述第一话音事件请求,向所述客户端设备发送所述话音事件响应,以及响应于发送所述话音事件响应,从所述客户端设备接收所述第二话音事件请求。
18.如权利要求16所述的系统,其中所述客户端设备进一步适于向所述应用服务器发 送所述上行链路音频数据以便被转发到所述语音识别器。
19.如权利要求16所述的系统,其中所述客户端设备进一步适于接收新的话音视图焦 点的指示,以及,更新所述可视视图焦点以便使其与所述新的话音视图焦点同步。
20.如权利要求16所述的系统,其中所述客户端设备进一步适于接收用户输入,以把所述可视视图焦点改变为所述至少一个多模态显示元素中的第二 多模态显示元素;以及,基于接收所述用户输入,向所述应用服务器发出指示对应于所述第 二多模态显示元素的新的可视视图焦点的焦点请求;从所述应用服务器接收焦点响应;以 及响应于接收到所述焦点响应,更新所述可视视图焦点和所述可视显示,以指示所述第二 多模态显示元素作为所述可视视图焦点。
21.如权利要求16所述的系统,其中所述客户端设备是从一组设备中所选择的设备, 所述一组设备包括蜂窝式电话、无线电台、寻呼机、个人数据助理、个人导航设备、移动计算 机系统、汽车计算机系统、飞机计算机系统、计算机、膝上型计算机、笔记本计算机、台式计 算机和在计算机上实现的因特网协议话音(VoIP)电话。
全文摘要
实施例包括用于在与分布式多模态应用相关联的可视视图和话音视图之间同步数据和焦点的方法和装置。实施例包括客户端设备,客户端设备适于呈现包括至少一个多模态显示元素的可视显示,对于至少一个多模态显示元素可通过可视模态和话音模态接收输入数据。当客户端经由话音模态检测到用户发言时,客户端向语音识别器发送表示发言的上行链路音频数据。应用服务器接收由语音识别器生成的语音识别结果,并且向客户端发送话音事件响应。被发送的话音事件响应是对于之前被客户端发送到应用服务器的异步HTTP话音事件请求的响应。然后客户端可以响应于接收到话音事件响应而向应用服务器发送另一话音事件请求。
文档编号H04M3/493GK101911064SQ200880123608
公开日2010年12月8日 申请日期2008年12月16日 优先权日2007年12月31日
发明者乔纳森·R·恩格斯玛, 詹姆斯·C·费尔兰斯, 迈克尔·D·皮尔斯 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1