专利名称:用于并行多模通信的系统和方法
技术领域:
本发明总的来说涉及通信系统和方法,更具体的,涉及多模通信的系统和方法。
背景技术:
涉及例如手持装置、移动电话、膝上型电脑、PDA、互联网设备、非移动装置以及其他适当装置等通信装置的新兴技术领域是,用于获得信息和服务的多模交互应用。典型地,驻留在通信装置上的是至少一个用户代理程序,例如浏览器或其他任何用作用户接口的适当软件。用户代理程序可响应提取请求(由用户经用户代理程序输入或来自另一装置或软件应用),接收提取的信息,经内部或外部连接在内容服务器中导航,并呈现信息给用户。用户代理程序可以是图形浏览器,语音浏览器或如本领域普通技术人员可识别的任何其他适当的用户代理程序。此种用户代理程序可包括(但不限于)J2ME应用程序、NetscapeTM、Internet ExplorerTM、java应用程序、WAP浏览器、即时消息传递、多媒体接口、Windows CETM或任何其他适当的软件实现。
多模技术允许用户通过一种模式经用户代理程序获取例如语音、数据、视频、音频或其他信息等信息,以及例如电子邮件、天气更新、银行交易和新闻或其他信息等服务,并通过另一种不同模式接收信息。更具体地,用户可以一种或多种模式提交信息提取请求,例如对麦克风说出提取请求,然后用户可以用相同模式(即语音)接收提取的信息,或用不同模式接收提取的信息,例如通过图形浏览器,它在显示屏幕上以可视方式呈现返回的信息。在该通信装置内,用户代理程序以和标准Web浏览器或其他驻留在连接到网络或其他终端装置上的装置中的适当软件程序相似的方式运行。
同样的,建议可允许用户使用一个或多个用户输入和输出接口的多模通信系统,从而在通信期间促进多种模式的通信。用户代理程序可位于不同装置上,例如,网络元件,诸如语音网关可能包括语音浏览器;例如手持装置可包括图形浏览器,诸如WAP浏览器;或其他适当的基于文本的用户代理程序。因此,由于多模性能,用户可以以一种模式输入,而以不同模式接收返回的信息。
已经建议试图提供两种不同模式用户输入的系统,例如以语音模式输入某些信息而通过触觉或图形接口输入其他信息。一种建议提议使用串行异步方法,该方法需要例如用户首先输入语音,然后在语音输入完成之后发送短消息。此种系统中的用户在同一通信期间可能必须手动切换模式。因此,这一建议很麻烦。
另一建议的系统使用单个用户代理程序,并在现有HTML页面中标示语言标签,从而用户可以例如使用语音定位到Web页,而非打出搜索词,然后该相同的HTML页面允许用户输入文本信息。例如,用户可以说出词“城市”,并打入地址,以从内容服务器获得可视地图信息。然而,此种建议的方法通常强制将具有不同模式的多模式输入输入到一个装置上的相同的用户代理程序(通过相同浏览器输入)内。因此,通常在相同HTML形式中输入语音和文本信息,并通过相同用户代理程序处理语音和文本信息。然而该建议需要使用运行在单个装置上的单个用户代理程序。
因此,对于较简单的装置,例如具有有限处理能力和存储容量的移动装置,复杂的浏览器会降低装置性能。同样,这样的系统不能促进通过不同用户代理程序的并行多模信息输入。此外,期望在多个装置上提供并行多模输入,从而允许在不同应用程序或不同装置中的分布式处理。
另一个建议提议使用多模网关和多模代理,其中多模代理提取内容并输出该内容到通信装置中的用户代理程序(例如浏览器)和例如在网络元件中的语音浏览器,从而该系统允许某装置的语音和文本输出。然而,此方法看来不允许用户在不同模式中通过不同应用程序的并行信息输入,因为该建议也是单个用户代理方案,要求输出不同模式的提取信息到单个用户代理程序或浏览器。
因此,需要一种改进的并行多模通信设备和方法。
在附图中为示范目的而非限制目的显示本发明,其中相同参考标记表示相同元件,其中图1是显示根据本发明一个实施例的多模通信系统的例子的框图;图2是显示根据本发明一个实施例的用于多模通信的方法的例子的流程图;图3是显示根据本发明一个实施例的用于多模通信的方法的例子的流程图;图4是显示根据本发明一个实施例的用于混合接收的并行多模输入信息的方法的例子的流程图;图5是显示根据本发明实施例的多模网络元件的例子的框图;图6是显示根据本发明一个实施例的用于保持多模通信连续性的方法的例子的流程图;图7是显示图6所示的流程图一部分的流程图;以及图8是显示根据本发明一个实施例的并行多模通信状态存储器内容的例子的框图。
具体实施例方式
简要的,多模网络元件通过一个或多个装置上不同的用户代理程序促进并行多模通信会话。例如,以语音模式通信的用户代理程序,例如包括语音引擎和呼叫/会话终端的语音网关内的语音浏览器,和另一运行在不同模式的用户代理程序,例如移动装置上的图形浏览器同步。在通信期间,多个用户代理程序可操作的和内容服务器相连,从而允许并行多模交互。
多模网络元件,例如,获得用于相互之间运行在不同模式的多个用户代理程序的模式特有指令,例如通过获得和不同模式相关的不同的标记语言形式,例如和文本模式相关的HTML形式以及和语音模式相关的语音XML形式。多模网络元件在通信期间根据获得的模式特有指令,为用户同步来自多个用户代理程序的输出。例如,语音浏览器被同步输出音频到一个装置上,而图形浏览器被同步并行输出显示到相同或不同装置的屏幕上,从而允许用户通过一个或多个用户代理程序输入。在用户通过多个运行在不同模式的用户代理程序输入输入信息的情况中,一种方法和设备响应并行不同多模信息的请求,混合(fuse)或链接接收到的并行多模输入信息,该信息由用户输入并从多个用户代理程序发送。这样,通过不同的用户代理程序促进了并行多模输入,从而在并行多模会话期间可以使用多个装置或其他装置,或采用多种用户代理程序的一个装置。由多模网络元件指定不同的代理,从而和各个设定在不同模式的不同用户代理程序通信。
图1显示根据本发明一个实施例的多模通信系统10的例子。在此例子中,多模通信系统10包括通信装置12,多模混合服务器14,语音网关16以及内容源,例如Web服务器18。通信装置12可以是例如互联网设备,PDA,蜂窝电话,有线置顶盒,电信息通信单元,膝上型计算机,台式计算机或任何其他移动或非移动装置。根据期望的通信类型,通信装置12还可操作地和无线局域或广域网络20、WAP/数据网关22、短消息服务中心(SMSC/寻呼网络)24或任何其他适当的网络通信。类似地,多模混合服务器14可和任何适当装置、网络元件或包括互联网、内部网、多媒体服务器(MMS)26、即时消息传递服务器(IMS)28或任何其他适当网络的网络通信。因此,通信装置12经通信链路21、23和25与适当的网络进行有效通信。类似地,多模混合服务器14也适于经如27所指的通用通信链路链接到不同网络。在此例子中,语音网关16包含通用语音网关功能,该通用语音网关功能包括(但不限于)语音识别引擎、手写体识别引擎、面部识别引擎、通话控制、用户规定算法以及如所期望的操作和维护控制器。在此例子中,通信装置12包括用户代理程序30,例如WAP浏览器形式的视觉浏览器(例如图形浏览器)、手势识别、触觉识别或任何其他适当的浏览器,还包括例如电话电路,该电话电路包括麦克风和扬声器,如电话电路32所示。还可以使用其它适当结构。
语音网关16包括其他用户代理程序34,例如语音浏览器,以适于由电话电路32的扬声器输出的形式输出音频信息。然而,应当认识到,扬声器可位于不是通信装置12的不同装置上,例如寻呼机或其他PDA,从而输出音频到一个装置,而在另一装置上提供经用户代理程序30的视觉浏览器。还应当认识到,虽然用户代理程序34出现在语音网关16内,通信装置12(如语音浏览器36所示)或其他适当装置也可包含用户代理程序34。为了如在此所述的提供并行多模通信,多个用户代理程序,即用户代理程序30和用户代理程序34,在给定会话中以相互不同的模式操作。因此,用户通过签约公开的服务并在模式首选数据库36内预置模式首选项,能预先规定各用户代理程序的模式,数据库36可通过Web服务器18或任何其他服务器(包括MFS14)访问。同样,如果期望,用户可以在会话期间选择或改变给定的用户代理程序的模式,如本领域中已知的。
并行多模同步协调器42可包括在通信期间临时存储用于多个用户代理程序之一的模式特有指令的缓冲存储器,补偿和用于其他用户代理程序的模式特有指令相关的通信延迟。因此,例如,如果需要,同步协调器42可以考虑系统延迟或其他延迟,等待并输出模式特有指令到代理,从而将它们并行呈现在不同用户代理程序上。
同样,如果期望,用户代理程序30可提供输入接口,以使用户屏蔽某些多模式。例如,如果某个装置或用户代理程序允许多模式操作,用户可以指示在特定期间屏蔽某个模式。例如,如果该用户的输出模式是语音,但用户所处环境嘈杂,例如用户可以关闭到其语音浏览器的输出。从用户接收的多模屏蔽数据可由多模混合服务器14存储在例如存储器602(参见图5)中,指示在给定会话期间屏蔽哪些模式。同步协调器42然后避免获得那些被标识为屏蔽的模式的模式特有指令。
信息提取器46从多模应用程序54获得用于多个用户代理程序30和34的模式特有指令69。模式特有指令68和70被发送到用户代理程序30和34。在此实施例中,多模应用程序54包括识别模式特有指令的数据,这些指令和不同的用户代理程序,并因此和如下所述不同的模式相关。并行多模同步协调器42可操作的连接到信息提取器46,用于接收模式特有指令。并行多模同步协调器42还可操作的连接到多个代理38a-38n,从而指定给定会话所需的代理。
在不同的用户代理程序30和34在不同装置上时,本方法包括通过发送第一基于模式的标记语言形式到一个装置来发送并行多模输入信息68,70请求,并发送基于第二模式标记语言的形式到一个或多个其他装置,来请求在同一通信中来自不同装置的不同模式的用户并行信息输入。这些基于标记语言的形式作为模式特有指令68,70而获得。
多模会话控制器40用于利用装置上的会话控制算法来检测输入会话、应答会话、修改会话参数、终止会话及交换会话和媒体信息。如果期望,多模会话控制器40可以是会话的主会话端接点,或如果例如用户希望建立和例如语音网关的另一网关的会话,它可以是次会话端接点,语音网关反过来会建立和多模会话控制器40的会话。
同步协调器发送输出同步消息47和49到各个代理38a和38n,以有效同步它们到各个多个用户代理程序的输出,该同步消息包括并行多模输入信息请求。代理38a和38n发送包含接收的多模输入信息72和74的输入同步消息51和53到并行同步协调器42。
并行多模同步协调器42使用代理或当用户代理程序有此性能时使用用户代理程序来发送并接收同步消息47,49,51和53。当代理38a和38n接收来自不同用户代理程序的已接收多模输入信息72和74时,这些代理发送包含已接收多模输入信息72和74的输入同步消息51和53到同步协调器42。同步协调器42前传接收的信息到多模混合引擎44。同样,如果用户代理程序34发送同步消息给多模同步协调器42,多模同步协调器42会发送该同步消息到会话中的另一用户代理程序30。并行多模同步协调器42还执行消息转换、同步消息滤波,从而使同步系统更加有效。并行多模同步协调器42可以维护在给定会话中正使用的当前用户代理程序列表,从而当需要同步时,跟踪那些需要被通知的用户代理程序。
多模混合服务器14包括多个多模代理38a-38n、多模会话控制器40、并行多模同步协调器42、多模混合引擎44、信息(例如模式特有指令)提取器46以及语音XML解释器50。至少多模会话控制器40、并行多模同步协调器42、多模混合引擎44、信息提取器46以及多模标记语言(例如语音XML)解释器50可用运行一个或多个处理装置的软件模块实现。这样,当由一个或多个处理装置读取时,包含可执行指令的存储器使该一个或多个处理装置执行在此描述的关于各软件模块的功能。多模混合服务器14因此包括这些处理装置,上述装置可能包括(但不限于)数字信号处理器、微计算机、微处理器、状态机或任何其他适当的处理装置。存储器可以是ROM、RAM、分布式存储器、闪存任何其他可存储状态或其他数据的适当存储器,当由处理装置执行时,这些存储器可使一个或多个处理装置如在此所述的运行。可选地,软件模块的功能适于在硬件或如所期望的,在任何硬件、软件和固件的适当组合中实现。
多模标记语言解释器50可以是状态机,或其他适当硬件、软件、固件或任何它们的合适组合,此外还执行多模应用程序54提供的标记语言。
图2显示执行多模通信的,在此例子中由多模混合服务器14执行的方法。然而,应当认识到,在此描述的任何步骤都可以任何适当顺序或由任何适当装置或多个装置执行。对于当前的多模会话,用户代理程序30(例如WAP浏览器)发送请求52到Web服务器18,请求来自可由Web服务器18访问的并行多模应用程序54的内容。这可以通过例如输入URL或点击图标或使用任何其他通用机制实现。同样如虚线52所示,每个用户代理程序30和34都发送用户模式信息到标记解释器50。用作内容服务器的Web服务器18从模式首选数据库36中获得通信装置12的多模首选项55,之前通过到并行多模服务的用户预先处理来填充该数据库。Web服务器18然后通过可能包含来自数据库36的用户首选项的通知56通知多模混合服务器14,指明例如在并行多模通信中正在使用哪些用户代理程序,以及每个用户代理程序都设定在什么模式。在此例子中,用户代理程序30被设定在文本模式,用户代理程序34被设定在语音模式。然后并行多模同步协调器42在会话期间确定,多个多模代理38a-38n中的哪些被用于各用户代理程序30和34。这样,并行多模同步协调器42将多模代理38a指定为文本代理,和设定为文本模式的用户代理程序30通信。类似的,并行多模同步协调器42将多模代理38n指定为传送用于运行在语音模式的用户代理程序34的语音信息的多模代理。如Web页面提取器46所示的信息提取器,从和并行多模应用程序54相连的Web服务器18获得模式特定指令,例如标记语言形式或其他的数据。
例如,在多模应用程序54请求用户输入语音模式和文本模式的信息时,信息提取器46获得经请求66输出到用户代理程序30的相关HTML标记语言形式和输出到用户代理程序34的相关语音XML形式。然后,由用户代理程序呈现这些模式特定指令(例如输出到屏幕或通过扬声器)作为输出。并行多模同步协调器42在会话期间根据模式特有指令同步来自多个用户代理程序30和34的输出。例如,并行多模同步协调器42会在适当时间发送代表不同模式的适当的标记语言形式到各个用户代理程序30和34,从而当在通信装置12上呈现语音时,它会和经用户代理程序30输出到屏幕上的文本同时呈现。例如,多模应用程序54以可听指令形式经用户代理程序34给用户提供关于期望经文本浏览器输入什么信息的指令,同时等待来自用户代理程序30的文本输入。例如,多模应用程序54可能需要“请在您期望离开时间之后输入您的期望目的城市”的语音输出,同时经用户代理程序30呈现输出到通信装置显示器上的字段,该字段指定“C”用于城市,“D”用于目的地。在此例子中,多模应用程序不需要用户的并行多模输入,仅需要通过一种模式,即文本模式的输入。另一模式被用于提供用户指令。
可选的,在多模应用程序54请求用户经多个用户代理程序输入输入信息时,多模混合引擎14混合会话期间并行输入到不同多模用户代理程序的用户输入。例如,当用户说出“从这里到那里的方向”而同时在可视地图上点击两个位置时,语音浏览器或用户代理程序34用“这里”填充开始位置字段,用“那里”填充目的位置字段作为已接收输入信息74,同时图形浏览器,即用户代理程序30,用地图上的第一点击点的地理位置(例如纬度/经度)填充开始位置字段,用地图上的第二点击点的地理位置(例如纬度/经度)填充目的位置字段。多模混合引擎44获得此信息,并混合用户输入的、来自多个运行在不同模式的用户代理程序的输入信息,并确定词“这里”对应第一点击点的地理位置,词“那里”对应第二点击点的地理位置(例如纬度/经度)。这样,多模混合引擎44具有用户命令的整套信息。多模混合引擎44可能希望将混合信息60回发到用户代理程序30和34,从而它们具有和并行多模通信相关的完整信息。此时,用户代理程序30能将此信息提交到内容服务器18以获得期望信息。
如方框200所示,对于会话,本方法包括获得用于多个运行在彼此不同的模式中的用户代理程序的模式特有指令68,70,例如通过获得各个多个用户代理程序的对各模式特有的不同类型的标记语言。如方框202所示,本方法包括在会话期间,根据模式特有指令同步输出,例如用户代理程序,以促进用户的同时多模操作。这样,同步了标记语言形式的呈现,从而来自多个用户代理程序的输出经多个用户代理程序以不同模式同时呈现。如方框203所示,并行多模同步协调器42确定用于不同用户代理程序30和34的模式特有指令68,70组是否请求用户经不同用户代理程序的不同模式的信息并行输入。如果否,如方框205所示,并行多模同步协调器42前传仅来自一个用户代理程序的任何接收的输入信息到目的服务器或Web服务器18。
然而,如方框204所示,如果用于不同用户代理程序30和34的模式特有指令68,70组请求以不同模式并行输入的用户输入,本方法包括混合用户输入的、用户代理程序30和34发送回的已接收并行多模输入信息,以产生和运行在不同模式的不同用户代理程序相关的混合多模响应60。如方框206所示,本方法包括前传混合的多模响应60到在标记语言解释器50内执行的当前应用程序61。当前执行的应用程序61(参见图5)是来自应用程序54的,作为解释器50一部分执行的标记语言。
参考图1和3,将说明多模通信系统10的更详细的操作。如方框300所示,通信装置12经用户代理程序30发送Web内容或其他信息的请求52。如方框302所示,内容服务器18从模式首选数据库36获得识别用户的多模首选项数据55,以获得用于会话的装置首选项和模式首选项。如方框304所示,本方法包括内容服务器通知多模混合服务器14,对于给定的并行不同多模通信会话,在哪个装置上以何种模式正运行哪个用户代理应用程序。
如前面提到的和方框306所示,建立并行多模同步协调器42,根据来自模式首选数据库36的模式首选项信息55确定用于各个不同模式的各个代理。如方框308所示,本方法包括,如果期望,经多模会话控制器40接收用于各个用户代理程序的用户模式指定。例如,用户可以改变期望模式,使之与存储在模式首选数据库36内的预设模式首选项55不同。这可以通过通用会话消息传递实现。如果用户改变了特定用户代理程序的期望模式,例如如果期望的用户代理程序在不同的装置上,可能需要不同的模式特有指令,例如不同的标记语言形式。如果用户模式指定改变,信息提取器46根据为用户代理应用程序选定的模式提取并请求适当的模式特有指令。
如方框310所示,然后信息提取器46为各个用户代理程序并因此为各个模式,从内容服务器18提取显示为提取请求66的模式特有指令。因此,多模混合服务器14经信息提取器46获得代表模式的标记语言,从而各用户代理程序30和34可以根据标记语言以不同模式输出信息。然而,应当认识到,多模混合服务器14还可获得任何适当的模式特有指令,而不仅仅是基于标记语言的信息。
当从内容服务器18为各用户代理程序提取模式特有指令并且没有和模式特有指令68,70相关的CMMT时,发送接收的模式特有指令69到代码转换器608(参见图5)。代码转换器608将接收的模式特有指令代码转换为解释器50可理解的基本标记语言形式,并用识别用于不同模式610的模式特有指令的数据来创建基本标记语言形式。因此,代码转换器代码转换模式特有指令,以包括识别用于另一个运行在不同模式的用户代理程序的模式特有指令的数据。例如,如果解释器50使用例如语音XML的基本标记语言,并且如果来自应用程序54的一组模式特有指令是语音XML,而其余的则是HTML,代码转换器606将CMMT嵌入语音XML形式,识别可以获得HTML形式的URL,或识别真正的HTML形式自身。此外,如果基本标记语言中没有模式特有指令,将一组模式特有指令翻译到基本标记语言中,然后通过CMMT查询其他组模式特有指令。
可选的,多模应用程序54可以提供必需的CMMT信息以促进并行多模会话期间多个用户代理程序的输出同步。用于各用户代理程序的模式特有指令的一个例子在下面显示为标记语言形式。标记语言形式由多模应用程序54提供,并由多模混合服务器14使用以提供并行多模通信会话。多模语音XML解释器50假定多模应用程序54使用语音XML作为基本语言。为促进多个用户代理程序对于用户的输出同步,首先写多模应用程序54,以包括或编入并行多模标签(CMMT),例如语音XML形式内的扩展名或到HTML形式的索引。CMMT识别模式,并指向或包含诸如要由用户代理程序中之一以所识别的模式输出的真实的HTML形式的信息。CMMT还用作多模同步数据,它的出现意味着需要同步不同用户代理程序的不同模式特有指令。
例如,如果语音XML是多模应用程序54的基本语言,CMMT可能表示文本模式。在此例子中,CMMT可包含URL,该URL包含用户代理程序要输出的HTML文本,或包含作为CMMT一部分的HTML。CMMT可具有标记语言属性扩展名的特性。多模语音XML解释器50使用信息提取器46提取模式特有指令,并分析(在此例子中是执行)提取的来自多模应用程序的模式特有指令以检测CMMT。一旦检测到,多模语音XML解释器50解释CMMT,并如果需要获得其他模式特有指令,例如用于文本模式的HTML。
例如,CMMT可能指示从哪里获得用于图形浏览器的文本信息。下面是显示用于并行多模路线应用程序的语音XML形式的模式特有指令的例子,该语音XML形式用于要求语音浏览器输出语音“从哪里来”以及“到哪里去”,同时图形浏览器显示“从城市”和“到城市”的并行多模应用程序。接收的由用户通过不同浏览器输入的并行多模信息通过指定字段“从城市”和“到城市”被期待。
表1<vxml version=″2.0″><form>
<block>
<cmmt mode=″html″src=″./itinerary.html″/>indicates the non-voice mode ishtml(text)and that the source info is located at url itinerary.html</block>
<field name=″from_city″>expected-text piece of info.trying to collect throughgraphical browser<grammar src=″./city.xml″/>for voice need to list possible responses for speechrecog engineWhere from?is the prompt that is spoken by voice browser</field>
<field name=″to_city″>text expecting<grammar src=″./city.xml″/>
Where to?Voice spoken by voice browser</field></form></vxml>
因此,以上的标记语言形式用代表用于至少一个用户代理程序的模式特有指令的基本标记语言书写,CMMT是扩展名,指定用于另一个运行在不同模式的用户代理程序的模式特有指令。
如方框311所示,如果用户改变首选项,本方法包括重新设定代理以和该改变一致。如方框312所示,多模混合服务器14确定是否到达监听点。如果到达,进入如方框314所示的下一个状态。如果是,处理完成;如果否,本方法包括同步用于不同用户代理程序的模式特有指令。多模语音XML解释器50输出,在此例子中,用于用户代理程序30的HTML和用于用户代理程序34的语音XML到并行多模同步协调器42,用于多个用户代理程序的输出同步。这可以通过例如基于如上所述的监听点的出现而实现。这些在方框316中示出。
如方框318所示,本方法包括,例如由并行多模同步协调器42,发送同步模式特有指令68和70到对应的代理38a和38n,请求在相同会话期间由用户以不同模式的用户输入信息。同步请求68和70被发送到各用户代理程序30和34。例如,对应和不同用户代理程序相关的多个输入模式的并行不同模式输入信息的请求显示为包含模式特有指令68和70的同步请求。这些例如可以是同步标记语言形式。
一旦用户代理程序30和34并行实施模式特有指令,本方法包括确定在一段超时时间周期内是否接收到用户输入,如方框320所示,或是否发生另一事件。例如,多模混合引擎44可等待一段时间,以确定用户输入的多模输入信息是否从多个用户代理程序适当接收以用于混合。该等待时间根据各用户代理程序的模式设定可以是不同的时间周期。例如,如果期望用户并行输入语音和文本信息,但多模混合引擎在一段时间内不接收该用于混合的信息,它将假定发生错误。此外,多模混合引擎44还允许返回语音信息比返回文本信息花费更多时间,因为经语音网关16可能需要更长时间处理语音信息。
在此例子中,要求用户经用户代理程序30输入文本,同时对麦克风讲话,以提供语音信息到用户代理程序34。如从用户代理程序30和34接收的已接收并行多模输入信息72和74经适当的通信链路被传递到各个代理。应当注意到,以PCM格式或任何其他适当格式传送如76所指的在用户代理程序34和装置12的麦克风及扬声器之间的通信,在此例子中,不是以可由用户代理程序输出的模式特有指令格式。
如果用户通过文本浏览器和语音浏览器同时输入信息,从而多模混合引擎44接收从多个用户代理程序发送的并行多模输入信息,多模混合引擎44如方框322所示将从用户接收的输入信息72和74混合。
图4显示多模混合引擎44操作的一个例子。为说明起见,对于某个事件,“没有输入”意思是用户未经此模式输入。“不匹配”表示输入了一些东西,但它不是期望值。结果是用户成功输入后的一组时隙(或字段)名称以及对应值对。例如,成功输入可以是“城市=芝加哥”以及“州=伊利诺伊”以及“街道”=“第一街”以及例如0%到100%的可信度加权因子。如上所述,多模混合引擎44是否混合信息取决于接收或期望接收时隙名称(例如可变的)和值对之间的时间量,或取决于接收其他事件。本方法假定给接收信息分配可信度级别。例如,根据模式和信息到达时间加权同步协调器可信度。例如,在同一会话期间(例如说出街道名称并打字输入)可通过不同模式输入同一时隙数据的情况下,假定打字输入的数据比说出的数据更准确。同步协调器基于接收时间和各个接收结果的可信度值组合接收的从多个用户代理程序之一发送来的多模输入信息,该发送是响应并行不同模式信息的请求。
如方框400所示,本方法包括确定是否存在来自非语音模式的事件或结果。如果是,如方框402所示,本方法包括确定是否存在来自除“没有输入”和“不匹配”事件之外的任何模式的任何事件。如果是,本方法包括返回接收的第一个这样的事件到解释器50,如方框404所示。然而,如果不存在来自用户代理程序的除“没有输入”和“不匹配”之外的事件,该处理包括,如方框406所示,对于发送用于多模混合引擎的两个或更多结果的任何模式,本方法包括按照接收的时间顺序组合该模式的结果。当用户对同一时隙输入重复输入时这可能是有用的。对于给定时隙名称的后面的值会覆盖先前的值。多模混合引擎根据构成模式的各个结果的可信度加权调整模式的结果可信度加权。对于各个模式,最后结果是对每个时隙名称的一个答案。本方法包括,如方框408所示,取得来自方框406的任何结果,并将其组合到用于所有模式的一个组合结果中。本方法包括从最低可信结果开始,进行到最高可信结果。混合结果中的每个时隙名称接收属于最可信输入结果的具有该时隙定义的时隙值。
如方框410所示,本方法包括确定现在是否有组合结果。换句话说,用户代理程序是否发送用于多模混合引擎44的结果。如果是,本方法包括如方框412所示,返回组合的结果到内容服务器18。如果没有,如方框414所示,意味着没有或存在更多“没有输入”或“不匹配”事件。本方法包括确定是否存在任何“不匹配”事件。如果有,本方法包括返回如方框416所示的没有匹配事件。然而,如果没有“不匹配”事件,本方法包括返回“没有输入”事件到解释器50,如方框418所示。
回到方框400,如果没有来自非语音模式的事件或结果,本方法包括确定语音模式是否返回结果,即用户代理程序34是否产生已接收信息74。这在方框420中显示。如果是,如方框422所示,本方法包括返回语音响应已接收输入信息到多模应用程序54。然而,如果语音浏览器(例如用户代理程序)不输出信息,本方法包括确定语音模式是否返回时间,如方框424所示。如果是,则如方框426所示,报告73该事件给多模应用程序54。如果没有产生语音模式事件,本方法包括返回“没有输入”事件,如方框428所示。
下面的表2显示应用到假定数据的图4方法的例子。
表2VoiceModeCollectedData街道名称=密歇根时间印记=0可信度级别=.85号码=112
时间印记=0可信度级别=.99TextModeCollectedData街道名称=密歇根时间印记=0可信度级别=1.0街道名称=LaSalle时间印记=1可信度级别=1.0例如,在方框400,如果没有接收到来自非语音模式的结果,本方法进行到方框402。在方框402,没有接收到任何事件,本方法进行到方框406。在方框406,混合引擎将TextModeCollectedData压缩到每个时隙的一个响应。Voice Mode Collected Data保持不动。
VoiceModeCollectedData街道名称=密歇根时间印记=0可信度级别=.85号码=112时间印记=0可信度级别=.99全部可信度=.85语音模式保持不动。但是分配作为.85的全部可信度值.85是结果组中的最低可信度。
TextModeCollectedData街道名称=密歇根时间印记=0可信度级别=1.0街道名称=LaSalle时间印记=1
可信度级别=1.0文本模式从收集的数据中删去密歇根,因为在后面的时间印记中用LaSalle填满该时隙。最终结果像这样。被分配作为1.0的全部可信度值1.0是结果组中的最低可信度级别。
TextModeCollectedData街道名称=LaSalle时间印记=1可信度级别=1.0全部可信度=1.0后面的是发送到方框408的数据。
VoiceModeCollectedData街道名称=密歇根时间印记=0可信度级别=.85号码=112时间印记=0可信度级别=.99全部可信度=.85TextModeCollectedData街道名称=LaSalle时间印记=1可信度级别=1.0全部可信度=1.0在方框408,两种模式被有效混合到单个返回结果中。
首先,取得最低可信度级别的全部结果并将其放入最终结果结构中。
最终结果街道名称=密歇根可信度级别=.85号码=112可信度级别=.99然后,最终结果内的下一最低结果的任何元素都被替换。
最终结果街道名称=LaSalle可信度级别=1.0号码=112可信度级别=.99该最终结果来自两种模式的混合,并被发送到解释器,解释器会决定下面做什么(从web提取更多信息或决定需要从用户获得更多信息,并根据当前状态重新提示它们。)图5显示多模混合服务器14的另一实施例,它包括并行多模会话持续控制器600以及连接到并行多模会话持续控制器600的并行多模会话状态存储器602。并行多模模式会话持续控制器600可以是运行在适当处理装置上的软件模块,或可以是任何适当硬件、软件、固件或它们的适当组合。并行多模会话持续控制器600在无会话条件中根据每个用户,以数据库形式或其他适当数据结构维护并行多模会话状态信息604。并行多模会话状态信息604是会话过程中配置用于不同并行多模通信的多个用户代理程序的状态信息。并行多模会话持续控制器600响应访问并行多模会话状态信息604,重新建立先前结束的并行多模会话。多模会话控制器40通知并行多模会话持续控制器600用户何时加入会话。多模会话控制器40还和并行多模同步协调器通信,以和任何离线装置提供同步,或和任何必须重新建立并行多模会话的用户代理程序同步。
并行多模会话持续控制器600存储(例如)代理ID数据906,例如指示在先前并行多模通信会话期间用于给定模式的代理的URL。如果期望,并行多模会话状态存储器602还包括指示在先前并行多模通信会话期间用户输入填充了哪个字段或时隙以及任何这样的字段或时隙的内容。此外,并行多模会话状态存储器602可包括用于并行多模通信会话的当前对话状态606。某些状态包括解释器50在执行应用程序中的执行状态。由用户填充的字段内的信息可能是以混合输入信息60的形式。
如所示的,Web服务器18可提供用于各模式类型的模式特有指令。在此例子中,以HTML形式提供文本,以语音XML形式提供语音,还以WML形式提供语音。并行多模同步协调器42输出适当的形式到适当的代理。如所示的,语音XML形式通过指定用于语音浏览器的代理38a输出,而HTML形式输出到用于图形浏览器的代理38n。
如果会话异常中断,而用户稍后想回到相同的对话状态,则会话持续维护非常有用。对于具有不同延迟特性、造成不同模式中输入和输出之间的延迟时间并需要暂时存储信息以补偿该时间延迟的的情况,模式使用传送机制也非常有用。
如图6-7所示,并行多模会话持续控制器600维护在给定会话中对于给定用户的多个用户代理程序的多模会话状态信息,其中在会话期间,用户代理程序被配置用于不同的并行模式通信。这在方框700中显示。如方框702所示,本方法包括响应访问多模会话状态信息604,重新建立先前的并行多模会话。如方框704所示,更具体的,在并行多模会话期间,并行多模会话持续控制器600在存储器602内存储每个用户的多模会话状态信息604。如方框706所示,并行多模会话持续控制器600从会话控制器检测用户加入会话,并在存储器内搜索该用户ID,以确定该用户是否参与先前的并行多模会话。从而,如方框708所示,本方法包括根据用户加入会话的检测,访问存储器602内存储的多模会话状态信息604。
如方框710所示,本方法包括确定该会话是否在存储器604内存在。如果没有,则将该会话指定为新的会话,并创建新的项,以在存储器602内填充用于记录新会话的必要数据。这在方框712中显示。如方框714所示,如果会话存在,例如在存储器602中出现该会话ID,本方法包括查询存储器602,用户是否具有正运行的现有应用程序,如果是,用户是否希望重新建立和该应用程序的通信。如果用户期望,本方法包括从存储器602中检索上次提取的信息的URL。这显示在方框716中(图7)。如方框718所示,将对适当代理38a-38n给出如在方框716中检索的适当URL。如方框720所示,本方法包括根据存储在存储器602内的存储用户代理状态信息606,经代理发送请求到适当的用户代理程序。
图8是显示并行多模会话状态存储器602的内容的一个例子的框图。如图所示,用户ID900指定了特定用户,会话ID902在用户具有存储在存储器602内的多个会话的事件中,和该用户ID相关。此外,用户代理程序ID904表示,例如运行该特定用户代理程序的装置的装置ID。程序ID可以是用户程序识别符、URL或其他地址。代理ID数据906表示在先前并行多模通信期间使用的多模代理。这样,用户可以终止某个会话,稍后从用户停止的地方继续。
除此之外,维护装置ID904允许系统维护在并行多模会话期间采用的那些装置的识别符,以促进在并行多模通信期间用户的装置切换。
因此,通过不同模式经分布在一个或多个装置(或如果它们包含在相同装置中)上的各个用户代理程序输入的多个输入以统一和内聚方式混合。同样,也提供了同步用户代理程序的呈现和用户通过这些用户代理程序的信息输入的机制。此外,公开的多模混合服务器可连接到现有装置和网关,以提供并行多模通信会话。
应当理解,对于本领域普通技术人员,本发明不同方面的其他改变和修改是显而易见的,且本发明并不限于描述的特定实施例。例如,应当认识到,虽然用某些步骤描述了本方法,这些步骤可以如所期望的按照任何适当顺序执行。因此期望本发明覆盖落入在此公开和声明的根本原理的精神和范围内的任何和所有的修改、改变或等同。
权利要求
1.一种用于多模通信的方法,其包括获得用于多个用户代理程序的模式特有指令,这些用户代理程序相互之间运行在不同模式;以及在会话期间,根据所述模式特有指令同步来自所述多个用户代理程序的输出。
2.如权利要求1的方法,其中,同步所述多个用户代理程序的输出的步骤包括发送多个用户代理程序使用的代表不同模式的标记语言的至少一部分,从而各用户代理程序根据该至少部分标记语言以不同模式输出信息。
3.如权利要求2的方法,其中,所述多个用户代理程序之一包括图形浏览器,并且所述多个用户代理程序的另一个包括语音浏览器,所述多个用户代理程序的输出包括以不同模式经多个用户代理程序并行输入的用户输入。
4.如权利要求2的方法,其中,所述发送多个用户代理程序使用的代表不同模式的标记语言的至少一部分的步骤包括发送和不同模式相关的标记语言形式到不同装置,其中每个装置都运行多个用户代理程序之一。
5.如权利要求2的方法,其中,所述发送多个用户代理程序使用的代表不同模式的标记语言的至少一部分的步骤包括发送和不同模式相关的标记语言形式到相同装置,该装置运行不同模式的多个用户代理程序。
6.如权利要求1的方法,包括步骤在会话期间确定和各多个用户代理程序通信的代理。
7.如权利要求2的方法,其中,所述获得用于多个用户代理程序的模式特有指令的步骤包括和为多个用户代理程序的每一个提供不同标记语言格式的应用程序通信,其中不同的标记语言格式代表不同模式。
8.如权利要求1的方法,其中,所述获得用于多个运行在不同模式的用户代理程序的模式特有指令的步骤包括提取以基本标记语言书写的标记语言形式,该基本标记语言代表用于至少一个用户代理程序的模式特有指令,并且该标记语言形式包含识别用于另一运行在不同模式的用户代理程序的模式特有指令的数据。
9.如权利要求1的方法,其中,所述根据模式特有指令同步来自多个用户代理程序的输出包括分析来自多模应用程序的提取的模式特有指令,以检测并行多模标签(CMMT),并且如果检测到,根据CMMT获得用于至少一个用户代理程序的模式特有指令。
10.一种多模网络元件,其包括信息提取器,用于在相同会话期间,可操作地获得用于多个相互之间运行在不同模式的用户代理程序的模式特有指令;以及并行多模同步协调器,可操作地连接到信息提取器,并用于在会话期间根据模式特有指令同步来自多个用户代理程序的输出。
11.如权利要求10的多模网络元件,其中,所述并行多模同步协调器在会话期间确定和所述多个用户代理程序每一个通信的代理。
12.一种用于多模通信的方法,其包括发送对应多种输入模式的并行多模输入信息的请求,该多种输入模式和在相同会话期间运行的多个用户代理程序相关;以及混合从所述多个用户代理程序发送的、已接收并行多模输入信息,所述多个用户代理程序发送的发送是响应并行不同多模信息的请求。
13.如权利要求12的方法,包括步骤在发送并行多模输入信息请求之前,确定和每一个应用程序相关的不同模式的代理,该每一个应用程序和给定会话的不同模式相关;以及使用为各个不同模式确定的代理,同步到多个用户代理程序的并行不同多模输入信息的请求。
14.如权利要求12的方法,包括等待一段时间,以确定是否适当接收用于混合的并行多模输入信息。
15.如权利要求14的方法,包括根据各用户代理程序的模式,等待一段不同的时间。
16.如权利要求12的方法,其中,所述发送对应多种输入模式的并行多模输入信息的请求包括发送用于多个相互之间运行在不同模式的用户代理程序的模式特有指令,从而请求不同模式的并行信息输入。
17.如权利要求12的方法,其中,所述发送对应多种输入模式的并行多模输入信息的请求的步骤包括发送第一基于模式的标记语言到装置,以及发送第二基于模式标记语言的形式到一个或多个装置,以请求不同模式的并行信息输入。
18.如权利要求12的方法,包括步骤根据接收时间以及各个接收结果的可信度值,组合发送自多个用户代理程序的已接收多模输入信息,该发送是响应并行不同多模信息的请求。
19.如权利要求12的方法,包括对模式特有指令进行代码转换,以包括识别用于运行在不同模式的另一用户代理程序的模式特有指令的数据。
20.一种多模网络元件,包括多个代理,每个都发送对应多个输入模式的并行多模输入信息请求,该输入模式和在相同会话期间运行的多个用户代理程序相关;以及多模混合引擎,可操作地响应自多个用户代理程序发送的、已接收并行多模输入信息,该多个用户代理程序发送是响应并行不同多模信息的请求,且所述多模混合引擎可操作地用于混合自多个用户代理程序发送的不同多模输入信息,以在相同会话期间提供来自不同用户代理程序的并行多模通信。
21.如权利要求20的多模网络元件,其中,所述并行不同多模信息请求包括用于多个相互之间运行在不同模式的用户代理程序的模式特有指令,以请求不同模式的并行信息输入,并且所述多模网络元件包括信息提取器,可操作地用于在相同会话期间,获得用于多个相互之间运行在不同模式的用户代理程序的模式特有指令;以及并行多模同步协调器,可操作地连接到信息提取器和多个代理,且可操作地用于在会话期间同步自多个用户代理程序输出的、已接收并行多模输入信息。
22.如权利要求21的多模网络元件,包括并行多模会话持续控制器,可操作地连接到多个用户代理程序,在没有会话条件下以各个用户为基础,维护多个用户代理程序的并行多模会话状态信息,从而响应访问并行多模会话状态信息,重新建立并行多模会话,这些用户代理程序被配置用于会话期间的不同并行模式通信;以及存储器,可操作地连接到所述并行多模会话持续控制器,包含并行多模会话状态信息。
23.如权利要求20的多模网络元件,包括标记语言解释器和可操作的连接到标记语言解释器的代码转换器,其中代码转换器代码转换模式特有指令,以包括识别用于运行在不同模式的另一用户代理程序的模式特有指令的数据。
全文摘要
多模网络元件(14)通过一个或多个装置(12,16)上的不同用户代理程序(30,34)促进并行多模通信会话。例如,以语音模式通信的用户代理程序,例如包括语音引擎和/呼叫会话终端的语音网关(16)中的语音浏览器(34),和运行在不同模式的另一用户代理程序同步,例如在移动装置(12)上的图形浏览器(30)。多个用户代理程序(30,34)在会话期间可操作的和内容服务器(18)连接,从而允许并行多模交互。
文档编号G06F9/46GK1639707SQ03804775
公开日2005年7月13日 申请日期2003年2月6日 优先权日2002年2月27日
发明者格列格·约翰逊, 瑟那卡·巴拉苏里亚, 詹姆士·费尔兰斯, 杰罗姆·扬克, 拉伊努·皮尔斯, 大卫·丘卡, 迪拉尼·加拉格达拉 申请人:摩托罗拉公司