首页> 中国专利> 用于提供与多模式应用之间的表达用户交互的方法和设备

用于提供与多模式应用之间的表达用户交互的方法和设备

摘要

公开了用于提供与多模式应用之间的表达用户交互的方法、设备和产品,该多模式应用运行在多模式设备上的多模式浏览器中,该多模式设备支持包括话音模式以及一种或多种非话音模式的多种用户交互模式,该多模式应用通过VoiceXML解释器被有效耦合到语音引擎,所述方法包括:由多模式浏览器通过特定的用户交互模式接收来自用户的用户输入;由多模式浏览器根据用户输入确定对该用户的用户输出;由多模式浏览器根据用户输入确定用户输出的样式,该样式规定了对于至少一种其它用户交互模式的表达输出特性;以及由多模式浏览器根据样式呈现用户输出。

著录项

  • 公开/公告号CN101287043A

    专利类型发明专利

  • 公开/公告日2008-10-15

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200810091646.X

  • 申请日2008-04-11

  • 分类号H04M3/493(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人吴丽丽

  • 地址 美国纽约

  • 入库时间 2023-12-17 20:53:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-20

    未缴年费专利权终止 IPC(主分类):H04M3/493 授权公告日:20110525 终止日期:20170411 申请日:20080411

    专利权的终止

  • 2011-05-25

    授权

    授权

  • 2009-10-21

    专利申请权、专利权的转移(专利申请权的转移) 变更前: 变更后: 登记生效日:20090925 申请日:20080411

    专利申请权、专利权的转移(专利申请权的转移)

  • 2008-12-10

    实质审查的生效

    实质审查的生效

  • 2008-10-15

    公开

    公开

说明书

技术领域

本发明涉及数据处理,或更具体地,涉及用于提供与多模式应用之间的表达用户交互的方法、设备和产品。

背景技术

用户通过键盘或铁笔与运行在小设备上的应用之间的交互变得越来越受限制和麻烦,因为这些设备变得越来越小。具体地,如移动电话和PDA那样的小型手持设备提供许多功能并且包含足够的处理能力来支持通过多模式访问的用户交互,即,通过非话音模式以及话音模式的交互。支持多模式访问的设备将多个用户输入模式或信道组合在同一个交互中,允许用户通过多个输入模式或信道同时与在设备上的应用交互。输入方法包括语音识别、键盘、触摸屏、铁笔、鼠标、手写等等。多模式输入常常使得使用小设备更容易。

多模式应用常常由web服务器所提供的、要在多模式浏览器上显示的多组置标文件构成。“多模式浏览器”作为在本说明书中中使用的术语,通常是指能够接收多模式输入和通过多模式输出与用户交互的web浏览器,其中多模式输入和输出的模式至少包括语音模式。多模式浏览器典型地呈现以XHTML+话音(‘X+V’)编写的web页。X+V提供置标语言,使得用户除了传统的输入装置例如键盘敲击和鼠标指针动作以外能够通过对话与常常运行在服务器上的多模式应用交互。视觉标记告诉多模式浏览器用户接口是什么样子的以及当用户打字、指向或点击时它应如何动作。类似地,话音标记告诉多模式浏览器当用户对它讲话时做什么。对于视觉标记,多模式浏览器使用图形引擎;对于话音标记,多模式浏览器使用语音引擎。X+V通过合并XHTML(可扩展超文本置标语言)和由VoiceXML支持的语音识别词汇表,将讲话式交互加入到标准的web内容中。对于视觉标记,X+V包括XHTML标准。对于话音标记,X+V包括VoiceXML的子集。为了同步VoiceXML元素与相应的视觉接口元素,X+V使用事件。XHTML包括支持语音合成、语音对话、命令和控制以及语音语法的话音模块。话音处理器可以附接到XHTML元素并且对特定的事件作出响应。话音交互特征与XHTML合并,因此可以直接用在XHTML内容内。

除了X+V以外,多模式应用也可以通过语音应用标签(‘SALT’)实施。SALT是由SALT Forum开发的置标语言。X+V和SALT是用于创建使用话音输入/语音识别和话音输出/语音合成的应用的置标语言。SALT应用和X+V应用使用底层的语音识别和合成技术或‘语音引擎’来完成识别和生成人的语音的任务。作为置标语言,X+V和SALT提供基于标记的编程环境,以在应用的用户接口中使用语音引擎。这两种语言都具有语言元素,即标记标签,它们规定语音识别引擎应当收听什么内容以及合成引擎应当“说”什么内容。虽然X+V组合XHTML、VoiceXML和XML事件标准来创建多模式应用,但SALT不提供标准视觉置标语言或事件模型。相反,它是低级别标签组。用于规定可被嵌入到其它环境中的话音交互。除了X+V和SALT以外,多模式应用例如可以以Java语音框架中的Java、以C++、以其它技术以及在其它环境下被实施

如上所述,当前的多模式应用通过各种模态提供用户与多模式设备的交互。例如,多模式应用可以通过使用扬声器和麦克风的话音模式或通过使用图形用户接口的视觉模式提供用户接口。在用户交互的每种模式内,多模式应用可以改变与用户之间的交互的表达方式。例如,在话音模式的用户交互中,多模式应用可以使用强有力的、自信的话音来提示用户输入,而当请求用户表明响应时,使用柔和的、更犹豫的话音。在视觉模式的用户交互中,多模式应用可以在图形用户接口上使用正常文本提示用户输入,并使用粗体、红色文本表示用户需要提供更详细的响应。然而,当前的多模式应用的缺点在于,表达用户交互在多个用户交互模式之间一般不同步。也就是,在一个用户交互模式下提供的输入不影响在其他用户交互模式下用户交互的表达。这样,读者将会意识到,在提供与多模式应用之间的表达用户交互方面还存在改进的空间。

发明内容

公开了用于提供与多模式应用之间的表达用户交互的方法、设备和产品,多模式应用在多模式设备的多模式浏览器上运行,多模式设备支持包括话音模式和一种或多种非话音模式的多种用户交互模式,多模式应用可通过VoiceXML解释器耦合到语音引擎,包括:由多模式浏览器通过特定的用户交互模式接收来自用户的用户输入;由多模式浏览器根据用户输入确定对该用户的用户输出;由多模式浏览器根据用户输入确定用户输出的样式,该样式规定了对于至少一种其它用户交互模式的表达输出特性;以及由多模式浏览器根据该样式呈现用户输出。

通过如附图所示的、对本发明的实施例的以下更具体的说明,将明白本发明的以下和其它的目的、特征和优点,其中相同的附图标记通常代表本发明的示例性实施例的相同部件。

附图说明

图1显示根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的示例性系统的网络图。

图2显示包括在根据本发明的实施例提供与多模式应用之间的表达用户交互时可用作话音服务器的计算机的一个例子的自动计算机器的框图。

图3显示根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的示例性设备的功能性框图。

图4显示包括在根据本发明的实施例提供与多模式应用之间的表达用户交互时可用作多模式设备的计算机的一个例子的自动计算机器的框图。

图5显示根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的示例性方法的流程图。

图6显示根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的另一个示例性方法的流程图。

具体实施方式

从图1开始,参照附图描述根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的示例性方法、设备和产品。图1显示根据本发明的实施例的、用于提供与多模式应用(195)之间的表达用户交互的示例性系统的网络图。表达用户交互一般是指通过交流自身从提供信息的多模式应用到用户的信息交流以及这种信息交流被传达给用户的方式。信息交流被传达给用户的方式可被用来代表特定的情绪、特定的态度,传达亲近度,传达清晰度水平等等。例如,多模式应用可以通过在用扬声器播放消息时增加输出消息的音量或者通过使用粗体、红色字母显示文本而以代表愤怒的方式向用户传达信息。

在本例中,提供与多模式应用之间的表达用户交互是通过在多模式设备(152)上的多模式浏览器(196)中运行的多模式应用(195)实施的。图1的多模式应用(195)由至少一个X+V页(124)组成。图1的多模式设备(152)支持与多模式应用(195)之间的多种交互模式,包括话音模式以及一种或多种非话音模式的用户交互。话音模式在这里被表示为来自多模式设备的话音提示和响应(314)的音频输出以及来自用户(128)的要识别(315)的语音的音频输入。非话音模式由在多模式设备(152)上的诸如键盘和显示屏幕一类的输入/输出设备来表示。多模式应用(195)可通过VoiceXML解释器(192)有效耦合到语音引擎(153)。所述的有效耦合可以用应用编程接口(‘API’)、话音服务模块或VOIP连接来实施,下面将更详细地说明。

在图1的示例性系统中,多模式浏览器(196)为多模式应用(195)提供运行环境。图1的多模式浏览器(196)包括被配置来提供根据本发明的实施例的、与多模式应用(195)之间的表达用户交互的计算机程序指令。图1的多模式浏览器(196)通常通过以下步骤提供根据本发明的实施例的、与多模式应用(195)之间的表达用户交互:通过特定的用户交互模式接收来自用户的用户输入;根据用户输入确定对该用户的用户输出;根据用户输入确定用户输出的样式;以及根据样式呈现用户输出。

用户输出的样式规定了关于与多模式浏览器接收用户输入所用的用户交互模式不同的至少一种其它用户交互模式的表达输出特性。例如,如果多模式浏览器通过使用麦克风的话音模式接收用户输入,则用户输出的样式可以规定关于通过图形用户接口的视觉模式的表达输出特性。同样地,如果多模式浏览器通过使用图形用户接口的视觉模式接收用户输入,则用户输出的样式可以规定对于通过扬声器的话音模式的表达输出特性。对于至少一种其它用户交互模式规定表达输出特性,这样有利地允许多模式浏览器使用与多模式浏览器接收用户输入所用的用户交互模式不同的模式提供与多模式应用之间的表达用户交互。

为了支持多模式浏览器(195)处理多模式应用(195),图1的系统包括VoiceXML解释器(192)。VoiceXML解释器(192)是接收话音对话指令和来自多模式浏览器(196)的其它要处理的数据的计算机程序指令软件模块。由VoiceXML解释器(192)处理的话音对话和其它数据在多模式应用(195)中被规定,典型地以VoiceXML<form>元素的形式。话音对话指令包括一个或多个语法、数据输入元素、事件处理器、样式等等,它们建议VoiceXML解释器(192)如何管理来自用户的话音输入和呈现给用户的话音提示和响应。VoiceXML解释器(192)通过根据VoiceXML表单解释算法(‘FIA’)顺序地处理对话指令而管理这样的对话。

如上所述,VoiceXML解释器(192)处理包括一个或多个语法的话音对话指令。语法把当前可识别的字和字序列告知给语音引擎(153)或VoiceXML解释器(192)。在图1的例子中,语法包括语法规则,这些语法规则建议语音引擎或话音解释器当前可以识别哪些字和字序列。根据本发明的实施例使用的语法可以被表示为语音引擎支持的任何格式,包括例如Java语音语法格式(‘JSGF’)、W3C语音识别语法规范(‘SRGS’)的格式、来自IETF的RFC2234的增扩的Backus-Naur格式(‘ABNF’),可被表示为在W3C的随机语言模型(N-Gam)规范中描述的随机语法的形式,还可被表示为本领域的技术人员可以知道的其它语法格式。语法一般表现为对话元素,例如VoiceXML<menu>或X+V<form>。语法的定义可以在对话中成行地表示。或者语法可以被外部实施在单独的语法文件中并通过带URI的对话来引用。这里是以JSFG表示的语法的例子:

<grammar scope=“dialog”><![CDATA[

    #JSGF V1.0;

    grammar command;

    <command>=[remind me to]call|phone|telephone<name><when>;

    <name>=bob|martha|joe|pete|chris|john|artoush|tom;

    <when>=today|this afternoon|tomorrow|next week;

    ]]>

</grammar>

在本例中,名字为<command>、<name>和<when>的元素是语法的规则。规则是规则名和用于建议语音引擎或VoiceXML解释器当前可以识别哪些字和字序列的规则扩展的组合。在以上的例子中,规则扩展包括结合和解除结合,以及垂直条‘|’是指‘或’。语音引擎或VoiceXML解释器顺序地处理规则,首先<command>,然后<name>,然后<when>。<command>规则接受来识别‘call’或‘phone’或‘telephone’再加上也就是结合从<name>规则和<when>规则返回的任何东西。<name>规则接受‘bob’或‘martha’或‘joe’或‘pete’或‘chris’或‘john’或‘artoush’或‘tom’,以及<when>规则接受‘today(今天)’或‘thisafternoon(今天下午)’或‘tomorrow(明天)’或‘next week(下星期)’。命令语法整体地匹配于像这样的讲话,例如:

·“下星期给bob打电话,”

·“今天下午给martha打电话,”

·“提醒我明天打电话给chris,”以及

·“提醒我今天打电话给pete.”

上面正在运行多模式应用的多模式设备是自动化设备,即,自动化的计算机器或运行在自动化设备上的计算机程序,它能够从用户接受一种以上的输入模式,象键盘、鼠标、铁笔等等,包括语音输入,还提供一种以上的输出模式,诸如图形、语音等等。多模式设备通常能够接受来自用户的语音输入,使语音数字化,并把数字化的语音提供给语音引擎进行识别。多模式设备例如可以被实施为膝上型计算机上的话音使能浏览器、在电话手机上的话音浏览器、在个人计算机上用Java实施的在线游戏设备,以及本领域的技术人员将会认识到的硬件和软件的其它组合方式。因为多模式应用可以用置标语言(X+V,SALT)、面向对象的语言(Java、C++)、程序性语言(C程序设计语言)以及本领域的技术人员可使用的其他种类的计算机语言来实现,所以多模式应用可以指任何软件应用,包括面向服务器的或面向客户的,薄的客户或厚的客户,该软件应用管理一个以上的输入模式和一个以上的输出模式,典型地包括视觉和语音模式。

图1的系统包括几个示例的多模式设备:

·个人计算机(107),它通过无线连接(120)被耦合到数据通信网(100)进行数据通信,

·个人数字助理(‘PDA’)(112),它通过无线连接(114)被耦合到数据通信网(100)进行数据通信,

·移动电话(110),它通过无线连接(116)被耦合到数据通信网(100)进行数据通信,以及

·膝上型计算机(126),它通过无线连接(118)被耦合到数据通信网(100)进行数据通信。

在图1的系统中每个示例的多模式设备(152)都包括麦克风、音频放大器、数字-模拟转换器和多模式应用,该多模式应用能够从用户(128)接受要识别(315)的语音,使语音数字化,以及提供数字化的语音到语音引擎进行识别。语音可以根据行业标准编解码术被数字化,包括但不限于用于分布式语音识别的那些编解码术。用于‘编码/解码’语音的方法被称为‘编解码术’。欧洲电信标准局(‘ETSI’)提供在DSR中使用的、用于编码语音的几种编解码术,包括,例如ETSI ES 201 108DSR前端编解码术、ETSI ES 202 050高级DSR前端编解码术、ETSIES 202 211扩展DSR前端编解码术和ETSI ES 202 212扩展DSR前端编解码术。在标题为“RTP Payload Format for EuropeanTelecommunications Standards Institute(ETSI)European StandardES 201 108 Distributed Speech Recognition Encoding”的RFC3557标准和标题为“RTP Payload Format for European TelecommunicationsStandards Institute(ETSI)European Standard ES 202 050,ES 202211,and ES 202 212 Distributed Speech Recognition Encoding”的互联网草案中,IETF规定了标准的RTP有效载荷格式用于各种编解码术。所以,有用地指出,在本发明中没有关于编解码术、有效载荷格式或分组结构的限制。根据本发明的实施例用于提供与多模式应用之间的表达用户交互的语音可以用任何编解码术来编码,包括,例如:

·AMR(自适应多速率语音编码器)

·ARDOR(自适应速率失真优化声音编码器),

·Dolby Digital(A/52,AC3),

·DTS(DTS相干声学),

·MP1(MPEG音频层1),

·MP2(MPEG音频层2)层2音频编解码术(MPEG-1、MPEG-2和非ISO MPEG-2.5),

·MP3(MPEG音频层3)层3音频编解码术(MPEG-1、MPEG-2和非ISO MPEG-2.5),

·感知音频编码,

·FS-1015(LPC-10),

·FS-1016(CELP),

·G.726(ADPCM),

·G.728(LD-CELP),

·G.729(CS-ACELP),

·GSM

·HILN(MPEG-4参数音频编码),以及

·本领域技术人员可以知道的其它编解码术。

如上所述,根据本发明的实施例的多模式设备能够把语音提供给语音引擎进行识别。图1的语音引擎(153)是一个功能模块,典型地是一个软件模块,但是它也可以包括专门化的硬件,完成识别和生成或‘合成’人类语音的工作。语音引擎(153)通过使用在本说明书中被称为自动语音识别(‘ASR’)引擎的另一个模块来实施语音识别,并且语音引擎通过使用在本说明书中被称为文本到语音(‘TTS’)引擎的另一个模块来实施语音合成。如图1所示,语音引擎(153)可以本地安装在多模式设备(107)内,或语音引擎(153)可以通过数据通信网(100)相对于多模式设备远程地安装在话音服务器(151)中。本身包含它自己的语音引擎的多模式设备被认为是实施‘厚的多模式客户’或‘厚客户’,因为厚的多模式客户设备本身包含为实现语音识别和语音合成所需要的全部功能——通过API调用在多模式设备自身中的语音识别和语音合成模块,而不需要通过网络发送语音识别的请求,也不需要通过网络从远端话音服务器接收合成的语音。不包含它自己的语音引擎的多模式设备被认为是实施‘薄的多模式客户’或简称为‘薄客户’,因为薄的多模式客户设备本身只包含相对薄层的多模式应用软件,它从位于网络上远离薄客户的话音服务器获得语音识别和语音合成服务。为了易于说明,在图1的系统中,多模式设备(152)中的仅一个设备(107)被显示为具有语音引擎(153),但读者将会认识到,任何多模式设备都可能具有根据本发明的实施例的语音引擎。

在本例中的多模式应用(195)把要识别的语音和要语音合成的文本通过VoiceXML解释器(192)提供给语音引擎。如图1所示,VoiceXML解释器(192)可以本地安装在多模式设备(107)内,或VoiceXML解释器(192)可以通过数据通信网(100)相对于多模式设备远程地安装在话音服务器(151)中。在厚客户体系结构中,多模式设备(152)包括它自己的语音引擎(153)和它自己的VoiceXML解释器(192)。VoiceXML解释器(192)把API供给多模式应用(195),在为多模式应用提供语音识别和语音合成时使用。多模式应用(195)通过API把对话指令、VoiceXML<form>元素、语法、输入元素、事件处理器等等提供给VoiceXML解释器,VoiceXML解释器代表执行多模式应用(195)的多模式浏览器(196)管理语音引擎。在厚客户体系结构中,VoiceXML对话由多模式设备上的VoiceXML解释器来解释。在薄客户体系结构中,VoiceXML对话由在数据通信网(100)上位于远离运行多模式应用(195)的多模式设备的话音服务器(151)上的VoiceXML解释器来解释。

VoiceXML解释器(192)把语法、要识别的语音和要语音合成的文本提示和样式提供给语音引擎(153),并且VoiceXML解释器(192)以识别的语音、语义解释结果和用于话音提示的数字化语音的形式将语音引擎(153)输出返回给多模式应用。在薄客户体系结构中,VoiceXML解释器(192)位于远离话音服务器(151)的多模式客户设备中,用于VoiceXML解释器的API仍旧在多模式设备(152)中实施,API被修改成与话音服务器(151)上的VoiceXML解释器之间传送话音对话指令、要识别的语音以及文本和话音提示。为了易于说明,在图1的系统中,多模式设备(152)中的仅一个设备(107)被显示为具有VoiceXML解释器(192),但读者将会认识到,任何多模式设备都可能具有根据本发明的实施例的VoiceXML解释器。图1的系统中的每个示例性多模式设备(152)都可被配置成通过在多模式设备上安装和运行VoiceXML解释器和支持提供根据本发明的实施例的与多模式应用之间的表达用户交互的ASR引擎而提供与多模式应用之间的表达用户交互。

这四个示例性多模式设备(152)的使用仅仅是用于说明,而不是限制本发明。能够接受来自用户的语音、通过VoiceXML解释器提供数字化的语音到ASR引擎以及接收和播放来自VoiceXML解释器的语音提示与响应的任何自动化的计算机器都可被改进为用作根据本发明的实施例的多模式设备。

图1的系统还包括话音服务器(151),它通过有线连接(122)被连接到数据通信网(100)。话音服务器(151)是运行语音引擎(153)的计算机,通过接受对语音识别的请求以及返回代表识别出的语音的文本而为多模式设备提供话音识别服务。话音服务器(151)还提供语音合成,文本到语音(‘TTS’)转换,用于多模式应用中的话音提示和对于用户输入的话音响应(314),所述多模式应用例如是X+V应用、SALT应用或Java话音应用。

图1的系统包括数据通信网(100),它连接多模式设备(152)和话音服务器(151),用于数据通信。用于提供根据本发明的实施例的与多模式应用之间的表达用户交互的数据通信网是由多个计算机组成的数据通信网,这些计算机被用作在分组交换协议下连接进行数据通信的数据通信路由器。这样的数据通信网可以用光连接、有线连接和无线连接来实施。这样的数据通信网络可包括内部网、互联网、局域数据通信网(‘LAN’)和广域数据通信网(‘WAN’)。这样的数据通信网例如可以实施:

·在EthernetTM(以太网)协议或无线EthernetTM(以太网)协议下的链路层,

·在互联网协议(‘IP’)下的数据通信网层,

·在传输控制协议(‘TCP’)或用户数据报协议(‘DCP’)下的传输层,

·在超文本传输协议(‘HTTP’)、会话发起协议(‘SIP’)、实时协议(‘RTP’)、分布多模式同步协议(‘DMSP’)、无线接入协议(‘WAP’)、手持设备传输协议(‘HDTP’)、被称为H.323的ITU协议等下的应用层,以及

·本领域技术人员将会认识到的其它协议。

图1的系统还包括web服务器(147),它通过有线连接(123)被连接到网络(100)从而被连接到多模式设备(152),用于数据通信。web服务器(147)可以是把组成多模式应用的X+V置标文档(125)提供到客户设备的任何服务器。web服务器(147)典型地经由数据通信协议HTTP、HDTP、WAP等等提供这样的置标文档。也就是,虽然在本说明书中术语‘web’通常被使用来描述web服务器,但在多模式设备与web服务器之间的数据通信并不仅仅限于HTTP。在多模式设备中的多模式应用在从web服务器(147)接收作为多模式应用一部分的X+V置标文档后可以通过使用在多模式设备本身中的VoiceXML解释器(192)和语音引擎(153),或通过使用位于远离多模式设备的话音服务器(151)中的VoiceXML解释器(192)和语音引擎(153)来执行语音元素。

组成图1所示的示例性系统的多模式设备(152)、web服务器(147)、话音服务器(151)和数据通信网(100)的安排仅仅用于说明而不是限制。用于根据本发明的各种实施例提供与多模式应用之间的表达用户交互的数据处理系统可包括额外的服务器、路由器、其它设备和对等体系结构,虽然图1上未示出,但本领域的技术人员将会认识到。在这样的数据处理系统中的数据通信网还可以支持除了以上提到的协议以外的许多数据通信协议。本发明的各种实施例还可以在除了图1所示的结构以外的多种硬件平台上实施。

根据本发明的实施例在薄客户体系结构中提供与多模式应用之间的表达用户交互可以通过提供语音识别和语音合成的一个或多个话音服务器、计算机,即自动化的计算机器来实施。为了进一步说明,图2显示包括在根据本发明的实施例提供与多模式应用之间的表达用户交互时用作话音服务器(151)的计算机的一个例子的自动化计算机器的框图。示例性的话音服务器(151)为在经由网络连接到话音服务器(151)的多模式浏览器上运行的多模式应用提供话音服务。示例性的话音服务器(151)在根据本发明的实施例提供与多模式应用之间的表达用户交互的系统中是有用的,包括:由多模式浏览器通过特定的用户交互模式接收来自用户的用户输入;由多模式浏览器根据用户输入确定对该用户的用户输出;由多模式浏览器根据用户输入确定用户输出的样式,该样式规定对于至少一个其它用户交互模式的表达输出特性;以及由多模式浏览器根据样式呈现用户输出。

图2的话音服务器(151)包括至少一个计算机处理器(156)或‘CPU’以及随机访问存储器(168)(RAM)。RAM(168)通过高速存储器总线(166)和总线适配器(158)被连接到处理器(156)和话音服务器(151)的其它部件。

在RAM(168)中存储有话音服务器应用(188),一个能够在被配置来根据本发明的实施例提供与多模式应用之间的表达用户交互的系统中运行话音服务器的计算机程序指令模块。话音服务器应用(188)通过接受对语音识别的请求和返回语音识别结果来为多模式设备提供话音识别服务,所述语音识别结果包括代表识别出的语音的文本、用作对话中的变量值的文本和作为语义解释的脚本的字符串表示的文本。话音服务器应用(188)还包括计算机程序指令,这些指令为对多模式应用中的用户输入的话音提示和话音响应提供文本到语音(‘TTS’)转换,所述多模式应用例如是X+V应用、SALT应用或Java语音应用。话音服务器应用(188)可以被实施为用Java、C++或另一种语言实现的web服务器,它支持根据本发明的实施例提供与多模式应用之间的表达用户交互。

本例中的话音服务器(151)包括语音引擎(153)。语音引擎是一个功能性模块,典型地是一个软件模块,但是它也可以包括完成识别和合成人类语音的任务的专门化硬件。语音引擎(153)包括用于语音识别的自动化语音识别(‘ASR’)引擎(150)和用于语音合成的文本到语音(‘TTS’)引擎(194)。语音引擎(153)还包括由VoiceXML解释器(192)根据对于预测的文本事件的预测文本创建的语法(104)。语音引擎(153)还包括词典(106)和语言特定的声音模型(108)。语言特定的声音模型(108)是数据结构、表或数据库,例如,把语音特征向量与在实际上易于做到的程度上代表在人类语言中所有单词的所有发音的音素相关联。词典(106)是文本形式的单词与代表每个单词的发音的音素的关联关系;词典有效地标识能够由ASR引擎识别的单词。存储在RAM(168)中的还有文本到语音(‘TTS’)引擎(194),一个接受文本作为输入并返回具有数字编码语音形式的相同文本,以向多模式系统的用户提供语音作为提示和响应的计算机程序指令模块。

话音服务器应用(188)在本例中被配置成从位于网络上远离话音服务器的多模式客户处接收来自用户的要识别的数字化语音,并把语音单独地传送到ASR引擎(150)进行识别。ASR引擎(150)是计算机程序指令模块,在本例中也被存储在RAM中。在实行提供与多模式应用之间的表达用户交互时,ASR引擎(150)接收具有至少一个数字化单词的形式的要识别的语音,并使用数字化单词的频率分量得出语音特征向量(“SFV”)。SFV例如可以通过数字化的语音的样本的头十二或十三个傅里叶或频域分量来定义。ASR引擎可以使用SFV根据语音特定的声音模型(108)推断该单词的音素。ASR引擎然后使用该音素在词典(106)中找出单词。

在图2的例子中,话音服务器应用(188)通过VoiceXML解释器(192)把语音单独地传送到ASR引擎(150)用于识别。VoiceXML解释器(192)是从远程运行在多模式设备上的多模式应用接受话音对话(121)的计算机程序指令软件模块。对话(121)包括典型地以VoiceXML<form>元素的形式实施的对话指令。话音对话指令包括一个或多个语法、数据输入元素、事件处理器等等,它们建议VoiceXML解释器(192)如何管理来自用户的话音输入和要被呈现给用户的话音提示和应答。VoiceXML解释器(192)通过根据VoiceXML表单解释算法(‘FIA’)(193)顺序地处理对话指令而管理这样的对话。

在RAM(168)中还存储有操作系统(154)。在根据本发明的实施例的话音服务器中有用的操作系统包括UNIXTM、LinuxTM、MicrosoftTM、IBM的AIXTM、IBM的i5/OSTM和如本领域技术人员知道的其它操作系统。操作系统(154)、话音服务器应用(188)、VoiceXML解释器(192)、包括ASR引擎(150)和TTS引擎(194)的语音引擎(153)在图2的例子中被显示为在RAM(168)中,但这样的许多部件一般仍被存储在非易失性存储器例如硬盘驱动器(170)上。

图2的话音服务器(151)包括总线适配器(158),一种包含用于高速总线、前端总线(162)、视频总线(164)和存储器总线(166)的驱动电子装置以及用于较慢的扩展总线(160)的驱动电子装置的计算机硬件部件。在根据本发明的实施例的话音服务器中有用的总线适配器的例子包括Intel北桥、Intel存储器控制器集线器、Intel南桥和Intel I/O控制器集线器。在根据本发明的实施例的话音服务器中有用的扩展总线的例子可包括外围部件互联(‘PCI’)总线和PCI快速(‘PCIe’)总线。

图2的话音服务器(151)包括通过扩展总线(160)和总线适配器(158)被耦合到处理器(156)和话音服务器(151)的其它部件的硬盘驱动器适配器(172)。硬盘驱动器适配器(172)把硬盘驱动器(170)形式的非易失性数据存储装置连接到话音服务器(151)。在话音服务器中有用的硬盘驱动器适配器包括集成驱动电子装置(‘IDE’)适配器、小型计算机系统接口(‘SCSI’)适配器等等,这是本领域技术人员已知的。另外,非易失性计算机存储器可以被实施为用于话音服务器的光盘驱动器、电可擦除可编程只读存储器(所谓的‘EEPROM’或‘快闪’存储器)、RAM驱动器等等,这是本领域技术人员已知的。

图2的示例性话音服务器(151)包括一个或多个输入输出(‘I/O’)适配器(178)。在话音服务器中的I/O适配器例如通过用于控制到诸如计算机显示屏幕那样的显示装置的输出以及来自诸如键盘和鼠标那样的用户输入装置(181)的用户输入的软件驱动程序和计算机硬件,而实施面向用户的输入/输出。图2的示例性话音服务器包括视频适配器(209),它是被专门设计来图形输出到诸如显示屏幕或计算机监视器那样的显示装置(180)的I/O适配器的例子。视频适配器(209)通过高速视频总线(164)、总线适配器(158)和也是高速总线的前端总线(162)被连接到处理器(156)。

图2的示例性话音服务器(151)包括通信适配器(167),用于与其它计算机(182)之间的数据通信和用于与数据通信网(100)的数据通信。这样的数据通信可以通过RS-232连接,通过诸如通用串行总线(‘USB’)那样的外部总线,通过诸如IP数据通信网那样的数据通信网和本领域技术人员知道的其它方式串行地实现。通信适配器采用硬件级的数据通信,一个计算机通过该通信适配器将数据通信直接或通过数据通信网发送到另一个计算机。对于根据本发明的实施例提供与多模式应用之间的表达用户交互中有用的通信适配器的例子包括用于有线数据通信网通信的调制解调器、用于有线数据通信网通信的以太网(IEEE802.3)适配器和用于无线数据通信网通信的802.11适配器。

为了进一步说明,图3显示根据本发明的实施例的、在薄客户体系结构中用于提供与多模式应用之间的表达用户交互的示例性设备的功能性框图。图3的例子包括通过数据通信网络(100)经由VOIP连接(216)被连接进行数据通信的多模式设备(152)和话音服务器(151)。多模式应用(195)运行在多模式设备(152)的多模式浏览器上,话音服务器应用(188)运行在话音服务器(151)上。多模式应用(195)可以由在多模式浏览器(196)上执行的至少一个X+V页(124)组成。

在图3的例子中,多模式设备(152)支持包括话音模式和一个或多个非话音模式的多个交互模式。图3的示例性多模式设备(152)用声卡(174)支持话音,声卡是专门被设计用于接受来自麦克风(176)的模拟音频信号和把音频模拟信号变换成数字形式供编解码器(183)进一步处理的I/O适配器(152)的例子。图3的示例性多模式设备(152)可以支持键盘输入、鼠标点击、图形用户接口(‘GUI’)等用户交互的非话音模式,本领域的技术人员将会认识到。

图3的多模式浏览器(196)提供用于多模式应用(195)的执行环境。图3的多模式浏览器(196)包括被配置成根据本发明的实施例提供与多模式应用(195)之间的表达用户交互的计算机程序指令。图1的多模式浏览器(196)通常通过以下步骤而运行用于根据本发明的实施例提供与多模式应用(195)之间的表达用户交互:通过特定的用户交互模式接收来自用户的用户输入;根据用户输入确定对该用户的用户输出;根据用户输入确定用户输出的样式,该样式规定了对于至少一个其它用户交互模式的表达输出特性;以及根据该样式呈现用户输出。

除了话音服务器应用(188)以外,在话音服务器(151)上还安装了语音引擎(153),它具有ASR引擎(150)、语法(104)、词典(106)、语言特定的声音模型(108)和TTS引擎(194)以及包括表单解释算法(193)的VoiceXML解释器(192)。VoiceXML解释器(192)解释和/或执行从多模式应用接收并通过话音服务器应用(188)被提供到VoiceXML解释器(192)的VoiceXML对话(121)。VoiceXML解释器(192)的VoiceXML输入可以是从远程运行在多模式设备(152)的多模式浏览器(196)上的、被实施为X+V客户的多模式应用(195)发源的。VoiceXML解释器(192)通过根据VoiceXML表单解释算法(‘FIA’)(193)顺序处理对话指令而管理这样的对话。

VOIP代表‘互联网协议话音’,一种通过基于IP的数据通信网路由语音的通用术语。语音数据流过通用分组交换数据通信网,而不是传统的专用电路交换话音传输线。被用来通过IP数据通信网传送话音信号的协议通常被称为‘IP话音’或‘VOIP’协议。VOIP流量可以被部署在任何IP数据通信网上,包括缺少到互联网其余部分的连接的数据通信网,例如被部署在私有建筑物范围的局域数据通信网或‘LAN’上。

许多协议被用来实施VOIP。两种最流行类型的VOIP用IETF的会话发起协议(‘SIP’)和被称为‘H.323’的ITU的协议来实施。SIP客户使用TCP和UDP端口5060连接到SIP服务器。SIP本身被用来建立和拆除用于语音传输的呼叫。带SIP的VOIP然后使用RTP来传输实际的编码语音。同样地,H.323是来自国际电信联盟的标准分局的保护伞建议,它规定在任何分组数据通信网上提供音频视频通信会话的协议。

图3的设备以类似于上述的图2的系统的运行的方式运行。多模式应用(195)是用户级的、多模式的、客户端的计算机程序,它呈现话音接口给用户(128),提供音频提示和响应(314),以及接受要识别的输入语音(315)。多模式应用(195)提供语音接口,用户通过该语音接口可以通过麦克风提供要识别的讲话(315),以及通过声卡(174)的音频放大器(185)和编码器/解码器(‘编解码器’)(183)使得语音数字化,并把要识别的数字化的语音提供给ASR引擎(150)。多模式应用(195)通过多模式浏览器(196)、API(316)和话音服务模块(130)然后根据VOIP协议把数字化的语音打包在识别请求消息中,并通过网络(100)的VOIP连接(216)把语音发送到话音服务器(151)。

话音服务器应用(188)通过接受对话指令、VoiceXML段并且返回语音识别结果以及话音提示而为多模式设备提供话音识别服务,所述语音识别结果包括代表识别出的语音的文本、用作对话中的变量值的文本和执行语义解释脚本的输出。话音服务器应用(188)包括计算机程序指令,这些程序指令为对多模式应用中的用户输入的话音提示和话音响应提供文本到语音(‘TTS’)变换,提供对于来自运行在多模式设备上的多模式浏览器的HTTP请求的响应。

话音服务器应用(188)接收来自用户的要识别的语音,并通过API调用把语音传送到VoiceXML解释器(192),VoiceXML解释器(192)接着使用ASR引擎(150)进行语音识别。ASR引擎接收要识别的数字化的语音,使用该数字化的语音的频率分量得出SFV,使用该SFV来从语言特定的声音模型(108)推断出该单词的音素,以及使用音素在词典(106)中找出语音。ASR引擎然后比较在词典中发现的单词的语音与在语法(104)中的单词,以确定在语音中的单词或词组是否被ASR引擎识别。

多模式应用(195)通过VoiceXML解释器(192)被有效耦合到语音引擎(153)。在本例中,通过VoiceXML解释器(192)有效耦合到语音引擎(153)是通过话音服务模块(130)经由VOIP连接(216)实施的。话音服务模块是薄的功能层,一种计算机程序指令的模块,根据本发明的实施例,它给出API(316)供应用层程序在把对话(121)和要识别的语音提供给VoiceXML解释器以及在响应中接收话音提示和包括动作识别号的其它响应时使用。VoiceXML解释器(192)又利用语音引擎(153)进行语音识别和生成服务。

在图3的例子中,话音服务模块(130)提供通过VOIP连接的数据通信服务以及在多模式设备(152)与VoiceXML解释器(192)之间的话音服务器应用(188)。API(316)是当VoiceXML解释器被安装在厚客户体系结构中的多模式设备上时由VoiceXML解释器呈现给应用的同一个API。从调用API(316)的应用的角度看来,应用正在直接调用VoiceXML解释器。话音服务模块(130)的数据通信功能对于调用API(316)的应用是透明的。在应用层上,对API(316)的调用可以从多模式浏览器(196)发出,多模式浏览器(196)为多模式应用(195)提供运行环境。

在厚客户体系结构中根据本发明的实施例提供与多模式应用之间的表达用户交互通常用多模式设备,即自动计算机器或计算机来实施。在图1的系统中,例如,所有的多模式设备(152)至少在某种程度上被实施为计算机。为了进一步说明,所以,图4显示包括作为多模式设备在根据本发明的实施例提供与多模式应用之间的表达用户交互时有用的计算机的例子的自动化计算机器的框图。在实施如图4所示的厚客户体系结构的多模式设备中,多模式设备(152)没有连接到包含VoiceXML解释器和语音引擎的远端话音服务器。而是,在根据本发明的实施例提供与多模式应用之间的表达用户交互时对于语音合成和话音识别所需要的所有部件都被安装或被嵌入在多模式设备中。

图4的示例性多模式设备(152)包括类似于话音服务器的并行部件而被构建和运行的几个部件,它们具有相同的附图标记,正如以上参照图2描述的:至少一个计算机处理器(156)、前端总线(162)、RAM(168)、高速存储器总线(166)、总线适配器(158)、视频适配器(209)、视频总线(164)、扩展总线(160)、通信适配器(167)、I/O适配器(178)、盘驱动器适配器(172)、操作系统(154)、VoiceXML解释器(192)、语音引擎(153)等等。如在图2的系统中,在图4的多模式设备中的语音引擎包括ASR引擎(150)、语法(104)、词典(106)、依赖于语言的声音模型(108)和TTS引擎(194)。VoiceXML解释器(192)通过根据VoiceXML表单解释算法(‘FIA’)(193)顺序地处理对话指令而管理对话(121)。

在这种实施例中的语音引擎(153),一种厚客户体系结构常常被实施为在诸如手持设备、移动电话、PDA等等那样的小型设备中的嵌入模块。为了根据本发明的实施例提供与多模式应用之间的表达用户交互而使用的嵌入语音引擎的例子是IBM的Emdeded ViaVoiceEnterprise。图4的示例性多模式设备还包括声卡(174),它是专门设计用于从麦克风接受模拟音频信号和把音频模拟信号变换成数字形式供编解码器(183)进一步处理的I/O适配器的例子。声卡(174)通过扩展总线(160)、总线适配器(158)和前端总线(162)被连接到处理器(156)。

在本例的RAM(168)中还存储有多模式应用(195),一种能够使多模式设备用作支持根据本发明的实施例提供与多模式应用之间的表达用户交互的设备的计算机程序指令模块。多模式应用(195)通过接受来自用户的要识别的语音发声并通过VoiceXML解释器API调用把要识别的讲话发送到ASR引擎(150)而实施语音识别。多模式应用(195)通常通过VoiceXML解释器API调用把要用作对用户的提示的单词发送到TTS引擎(194),从而实施语音合成。作为厚客户体系结构的例子,多模式应用(195)在本例中不通过网络发送要识别的语音到识别用的话音服务器,以及多模式应用(195)在本例中不通过网络从话音服务器接收合成的语音、TTS提示和响应。所有的语法处理、话音识别和文本到语音变换在本例中都在多模式设备(152)中以嵌入的方式执行。

在图4上,多模式浏览器(196)提供用于多模式应用(195)的运行环境。图4的多模式浏览器(196)包括被配置成根据本发明的实施例支持提供与多模式应用(195)之间的表达用户交互的计算机程序指令。图1的多模式浏览器(196)通常通过以下步骤根据本发明的实施例的提供与多模式应用(195)之间的表达用户交互:通过特定的用户交互模式接收来自用户的用户输入;根据用户输入确定对该用户的用户输出;根据用户输入确定用户输出的样式,该样式规定对于至少一个其它用户交互模式的表达输出特性;以及根据样式呈现用户输出。

在图4的例子中的多模式应用(195)是用户级的、多模式的、客户端的计算机程序,它提供语音接口,用户通过该语音接口可以通过麦克风(176)提供要识别的口语语音,以及通过声卡(174)的音频放大器(185)和编码器/解码器(‘编解码器’)(183)使得语音数字化,并把要识别的数字化的语音提供到ASR引擎(150)。多模式应用(195)可被实施为在多模式浏览器(196)或微浏览器中执行的一组或一系列X+V页(124),该浏览器通过VoiceXML解释器API调用把VoiceXML语法和数字化的语音直接传送到嵌入的VoiceXML解释器(192)进行处理。嵌入的VoiceXML解释器(192)又可以通过API调用把对于语音识别的请求直接发布到嵌入的ASR引擎(150)。嵌入的VoiceXML解释器(192)然后把请求发布到动作分类器(132),以便根据由ASR引擎(150)提供的识别结果确定动作识别号。多模式应用(195)也可以通过API调用把语音合成、TTS变换提供到嵌入的TTS引擎(194),以进行话音提示和对用户输入的话音响应。

多模式应用(195)通过VoiceXML解释器(192)被有效耦合到语音引擎(153)。在本例中,通过VoiceXML解释器的有效耦合通过使用VoiceXML解释器API(316)来实施。VoiceXML解释器API(316)是供应用层程序在提供对话指令、要识别的语音和VoiceXML解释器的其它输入以及作为响应接收话音提示和其它响应时所使用的计算机程序指令模块。VoiceXML解释器API给出与由在薄客户体系结构中的话音服务器模块(图3的130)的API给出的相同的应用接口。在应用级,对VoiceXML解释器API的调用可以从多模式浏览器(195)发出,当多模式应用用X+V实施时该多模式浏览器提供对于多模式应用(195)的执行环境。VoiceXML解释器(192)又利用语音引擎(153)进行语音识别和合成服务。

在本例中的多模式应用(195)运行在多模式设备(152)上的多模式浏览器(196)中,该多模式设备(152)包含它自己的VoiceXML解释器(192)和它自己的语音引擎(153)的,而没有连接到包含远端VoiceXML解释器或远端语音引擎的远端话音服务器的网络或VOIP连接,这种多模式应用(195)是所谓的‘厚客户体系结构’的例子,这样称呼是因为用于处理在用户与多模式应用之间的话音模式交互的所有功能--以及用于根据本发明的实施例提供与多模式应用之间的表达用户交互的所有或大多数功能-都在多模式设备自身上被实施。

为了进一步说明,图5显示根据本发明的实施例用于提供与多模式应用之间的表达用户交互的示例性方法的流程图。提供与多模式应用之间的表达用户交互在本例中用多模式应用(195)来实施。多模式应用(195)在支持包括与多模式应用之间的用户交互的话音模式和一种或多种非话音模式的多种交互模式的多模式浏览器(196)中运行。话音模式在本例中可以用通过扬声器的音频输出和通过麦克风的音频输入来实施。非话音模式可以用例如键盘和鼠标那样的用户输入装置被实施。

多模式应用(195)通过VoiceXML解释器被有效耦合到语音引擎。该有效耦合提供从多模式应用(195)到语音引擎的、用于语法、要识别的语音和其它输入的数据通信路径。有效耦合还提供从语音引擎到多模式应用(195)的、用于要识别的语音、语义解释结果和其它结果的数据通信路径。当多模式应用在厚客户体系结构中被实施时,有效耦合可以通过VoiceXML解释器(图4的192)产生。当多模式应用在薄客户体系结构中被实施时,有效耦合可包括话音服务模块(图3的130)、VOIP连接(图3的216)和VoiceXML解释器(图3的192)。

图5的方法包括由多模式浏览器(196)提示(500)用户进行用户输入(508)。图5的用户输入(508)代表由多模式应用(195)从用户接收的信息。在图5的例子中的用户输入(508)被实施为通过图形用户接口(‘GUI’)接收的图形用户输入(510)。然而,在其它实施例中,用户输入(508)可被实施为通过麦克风接收的讲话。多模式浏览器(196)可以通过在GUI上显示提示(502)的可视表示以便视觉地提示用户进行用于输入,或通过扬声器播放提示(502)的话音表示以便听觉地提示用户进行用于输入,借此根据图5的方法提示(500)用户进行用户输入。提示(502)代表在特定的用户交互模式下呈现给用户的信息,例如可视的或话音的,以便向用户索要用户输入(508)。为了进一步说明,考虑示例性的多模式应用的以下程序段:

<html xmlns=″http://www.w3.org/1999/xhtml″

xmlns:vxml=″http://www.w3.org/2001/vxml″

xmlns:ev=″http://www.w3.org/2001/xml-events″

xmlns:xv=″http://www.voicexml.org/2002/xhtml+voice″xml:lang=″en-US″>

<head>

          <vxml:form id=″vforml″>

               <vxml:field name=″question″>

                     <vxml:prompt src=″#pl″/>

                     <grammar>

                           …

                     </vxml:grammar>

                     …

               </vxml:field>

        </vxml:form>

        …

  </head>

  <body ev:event=″load″ev:handler=″#vforml″>

        <form>

             <p id=″pl″>Please rate your experience with our product.</p>

             <input type=″radio″name=″exp″onclick=″next(1)″/>

                     Excellent<BR>

             <input type=″radio″name=″exp″onclick=″next(2)″/>

                     Ok<BR>

             <input type=″radio″name=″exp″onclick=″next(3)″/>

                     Terrible<BR>

            <p id=″p2″/>

      </form>

</body>

</html>

以上的示例性的多模式应用程序段指示多模式浏览器提示用户进行可视地和可听地用户输入。使用HTML<p>元素,示例性的多模式应用指示多模式浏览器在GUI上显示提示“Please rate yourexperience with our product”的可视表示,以便视觉地提示用户进行输入。使用VoiceXML<prompt>元素,示例性的多模式应用还指示多模式浏览器通过扬声器播放提示“Please rate your experience with ourproduct”的音频表示,以便在听觉上提示用户进行输入。

为了生成提示(502)的话音表示,多模式浏览器(196)使用对VoiceXML解释器API的调用,把提示(502)的文本表示传送到语音引擎。语音引擎和VoiceXML解释器把对应于提示(502)的文本表示的合成语音返回到多模式浏览器(196)。从语音引擎返回的合成语音是提示(502)的话音表示,多模式浏览器(196)然后通过多模式设备的扬声器把它播放给用户。

图5的方法包括由多模式浏览器(196)通过特定的用户交互模式接收来自用户的用户输入。特定的用户交互模式可以是用户交互的可视模式,例如使用GUI,或可以是用户交互的话音模式,例如使用扬声器和麦克风。在图5的方法中,多模式浏览器(196)通过图形用户接口接收(506)来自用户的图形用户输入(510)而接收(504)来自用户的用户输入。多模式浏览器(196)可以通过为用户配备GUI部件来访问和操控例如文本输入栏、复选框、单选按钮等等,而根据图5的方法通过GUI接收(506)来自用户的图形用户输入(510)。例如,再次考虑以上的示例性的多模式应用的程序段:

<body ev:event=″load″ev:handler=″#vforml″>

      <form>

            <p id=″pl″>Please rate your experience with our product.</p>

            <input type=″radio″name=″exp″onclick=″next(1)″/>

                   Excellent<BR>

            <input type=″radio″name=″exp″onclick=″next(2)″/>

                   Ok<BR>

            <input type=″radio″name=″exp″onclick=″next(3)″/>

                   Terrible<BR>

            <p id=″p2″/>

      </form>

</body>

以上的示例性多模式程序段指示多模式浏览器在图形用户接口上给用户提供三个单选按钮,以便响应于提示“Please rate yourexperience with our product”接收用户输入。第一个单选按钮被标记为‘Excellent’。  第二个单选按钮被标记为‘Ok’。第三个单选按钮被标记为‘Terrible’。通过用户选择这三个单选按钮之一,多模式浏览器可以接收来自用户的图形用户输入。

图5的方法还包括由多模式浏览器(196)根据用户输入(508)确定(512)对该用户的用户输出(516)。图5的用户输出(516)代表响应于用户的输入被提供给用户的信息。多模式浏览器(196)通过根据图形用户输入(510)确定(514)对用户的用户输出(516)而根据图5的方法确定(512)对用户的用户输出(516)。根据图5的方法根据图形用户输入(510)确定(514)对用户的用户输出(516)可以通过执行根据由用户提供的图形用户输入(510)生成用户输出的ECMScript脚本来实现。为了进一步说明,考虑以上的另一个示例性多模式应用:

<html xmlns=″http://www.w3.org/1999/xhtml″

xmlns:vxml=″http://www.w3.org/2001/vxml″

xmlns:ev=″http://www.w3.org/2001/xml-events″

xmlns:xv=″http://www.voicexml.org/2002/xhtml+voice″xml:lang=″en-US″>

<head>

     <vxml:form id=″vforml″>

         …

 </vxml:form>

 …

 <script type=″text/javascript″>

         …

         function next(choice)

         {

                var paragraph=document.getElementByld(″#p2″);

                var textNode;

                if(choice==1‖choice==2)

                {

                    textNode=

                           document.createTextNode(″Thank you

                           for your business!″);

                    paragraph.style=″emotion:happy″

                }

                if(choice==3)

                {

                          textNode=

                                 document.createTextNode(″I′m sorry.I′ll

                                 get a live operator to talk to you.″;

                          paragraph.style=″emotion:sad;color:red″

                 }

                 paragraph.appendChild(textNode);

                 var e=document.createEvent(″UIEvents″);

                 e.initEvent(″DOMActivate″,″true″,″true″);

                 document.getElementByld(′vform2′).disparchEvent(e);

              }

      </script>

      …

</head>

 <body ev:event=″load″ev:handler=″#vforml″>

       <form>

             <p id=″pl″>Please rate your experience with our product.</p>

             <input type=″radio″name=″exp″onclick=″next(1)″/>

                     Excellent<BR>

             <input type=″radio″name=″exp″onclick=″next(2)″/>

                     Ok<BR>

             <input type=″radio″name=″exp″onclick=″next(3)″/>

                     Terrible<BR>

            <p id=″p2″/>

      </form>

</body>

</html>

以上的示例性多模式应用段指示多模式浏览器当多模式浏览器接收表示用户选择单选按钮之一的图形用户输入时,执行ECMScript脚本,实施函数‘next’。每个单选按钮与被提供到‘next’函数的不同数字参数相关。当用户选择‘Excellent’单选按钮时,多模式浏览器执行参数值为‘1’的‘next’函数,它生成用户输出“Thank you for yourbusiness!”。当用户选择‘Ok’单选按钮时,多模式浏览器执行参数值为‘2’的‘next’函数,它也生成用户输出“Thank you for your business!”。当用户选择‘Terrible’单选按钮时,多模式浏览器执行参数值为‘3’的‘next’函数,它生成用户输出“I’m sorry.I’ll get a live operator to talkto you,”。这样,多模式浏览器可以根据图形用户输入确定对该用户的用户输出。

图5的方法包括由多模式浏览器(196)根据用户输入(508)确定(518)用户输出(516)的样式(522)。图5的样式(522)规定了对于各种用户交互模式的表达的÷输出特性,包括与多模式浏览器(196)用来接收用户输入(508)的模式不同的至少一种其它用户交互模式。例如,如果多模式浏览器(196)通过用户交互的可视模式接收用户输入(508),则样式(522)可以规定连同用户交互可视模式的用户交互话音模式的表达输出特性。同样地,如果多模式浏览器(196)通过用户交互的话音模式接收用户输入(508),则样式(522)可以规定连同用户交互话音模式的用户交互可视模式的表达输出特性。表达输出特性定义了在特定的用户交互模式下用户输出(508)被提供给用户的方式。例如,当用户交互模式是可视时,表达输出特性可以定义在GUI上显示的文本是要通过使用粗体、红色字母来显示,来表示在错误回答时的不满,或在GUI上显示的面部应当呈现为带有微笑、表示满意的输入。当用户交互模式是话音时,表达输出特性可以定义合成语音提示在每个音节的音量增大,表示在错误回答时的不满,或合成语音提示在试图安慰用户时通过使用深沉的男性话音来呈现。

在图5的例子中,样式(522)规定用于用户交互的话音模式的韵律和用于用户交互的可视模式的可视特性。韵律通常是指被实施为合成语音的用户输出的特性。韵律可包括合成语音的音调、节拍、音节长度和重音。在声音方面,韵律描述在音节长度、响度、音调和语音声音的共振峰结构的某些细节方面的改变。关于语音发音器官,韵律描述在如颚和舌那样的发音器官的运动的速度和范围以及气管中的空气压力和喉头肌肉的张力方面的改变。在音韵学方面,韵律由音色、音调、节拍和语句重音描述。

图5的样式(522)被规定的方式将在样式对于其规定表达输出特性的用户交互模式之间改变。当规定对于用户交互的可视模式的表达输出特性时,样式可以通过使用包括诸如HTML的静态置标语言、诸如JavaSript的客户端文本语言、诸如级联样式页(‘CSS’)的呈现定义语言和文档对象模型的动态HTML技术,而被规定。当规定对于用户交互的话音模式的表达输出特性时,样式可以例如通过使用在E.Eide等,“Multilayered Extensions to the Speech Synthesis Markup Languagefor Describing Expressiveness”,Proceedings of the 8th EuropeanConference on Speech Communication and Technology,Geneva,Switzerland,Sep.1-4,2003的文章中描述的语音合成置标语言(‘SSML’)的扩展被规定,该文章在此以引用的方式被包含在本文中。诸如CSS的动态HTML技术和诸如在Eide文章中描述的那样的SSML的扩展有利地允许多模式应用的作者通过使用人的级别的概念,诸如,例如姿态、情绪、接近等等--与诸如字形、彩色、图形等的应用级别概念不同的,或与诸如波形、频率、幅度等的语音合成级别概念不同的。例如,作者可以使用动态HTML技术,把人的级别的‘悲伤’的情绪与诸如字形、彩色、图形、动画等的、用于在GUI上的用户输出的特定的可视属性相对应。同样地,作者可以使用SSML的扩展,把人的级别的‘愤怒’的情绪与诸如增加音量水平的、用于在通过扬声器播放的用户输出中的每个音节的特定的话音属性相对应。

由多模式浏览器(196)根据图5的方法根据用户输入(508)确定(518)用于用户输出(516)的样式(522),包括根据图形用户输入(510)确定(520)用于用户输出(516)的样式(522)。多模式浏览器(196)可以通过在代表多模式应用的文档对象模型中执行把样式(522)指定给用户输出(516)的ECMAScript脚本,而根据图5的方法根据图形用户输入(510)确定(520)用于用户输出(516)的样式(522)。为了进一步说明,再次考虑以上的示例性多模式应用的分段:

<html xmlns=″http://www.w3.org/1999/xhtml″

xmlns:vxml=″http://www.w3.org/2001/vxml″

xmlns:ev=″http://www.w3.org/2001/xml-events″

xmlns:xv=″http://www.voicexml.org/2002/xhtml+voice″xml:lang=″en-US″>

<head>

      <vxml:form id=″vforml”>

             …

      </vxml:form>

      <vxml:form id=″vform2″>

             …

      </vxml:fom>

      <script type=″text/javascript″>

             function next(choice)

             {

                    var paragraph=document.getElementByld(″#p2″);

                    var textNode;

                    if(choice==1‖choice==2)

                    {

                           textNode=

                                  document.createTextNode(″Thank you

                                  for your business!″);

                           paragraph.style=″emotion:happy″

                    }

                    if(choice==3)

                    {

                           textNode=

                                   document.createTextNode(″I′m sorry.I′ll

                                   get a live operator to talk to you.″;

                            paragraph.style=″emotion:sad;color:red″

                     }

                     paragraph.appendChild(textNode);

                     var e=document.createEvent(″UIEvents″);

                     e.initEvent(″DOMActivate″,″true″,″true″);

                     document.getElementByld(′vform2′).dispatchEvent(e);

              }

      </script>

      …

</head>

<body ev:event=″load″ev:handler=″#vforml″>

      <form>

            <p id=″pl″>Please rate your experience with our product.</p>

            <input type=″radio″name=″exp″onclick=″next(1)″/>

                    Excellent<BR>

            <input type=″radio″name=″exp″onclick=″next(2)″/>

                    Ok<BR>

            <input type=″radio″name=″exp″onclick=″next(3)″/>

                    Terrible<BR>

            <p id=″p2″/>

      </form>

</body>

</html>

以上的示例性多模式应用分段指示多模式浏览器当多模式浏览器接收表示用户选择单选按钮之一的图形用户输入时,执行ECMScript脚本,实施函数‘next’。每个单选按钮与被提供给‘next’函数的不同数字参数相关。当用户选择‘Excellent’单选按钮时,多模式浏览器执行参数值为‘1’的‘next’函数,它把样式‘情绪:快乐’指定给用户输出“Thank you for your business!”。当用户选择‘Ok’单选按钮时,多模式浏览器执行参数值为‘2’的‘next’函数,它也把样式‘情绪:快乐’指定给用户输出“Thank you for your business!”。当用户选择‘Terrible’单选按钮时,多模式浏览器执行参数值为‘3’的‘next’函数,它把样式‘情绪:悲伤,颜色:红色’指定给用户输出“I’m sorry.I’ll get a live operator totalk to you,”。这样,多模式浏览器可以根据图形用户输入确定用户输出的样式。样式‘情绪:快乐’和样式‘情绪:悲伤,颜色:红色’影响用户输出的呈现方式将根据被施加到每个样式的表达输出特性通过使用诸如CSS的动态HTML技术和诸如在Eide文章中描述的那样的SSML的扩展而改变。

图5的方法还包括由多模式浏览器(196)根据样式(522)呈现(524)用户输出(516)。多模式浏览器(196)根据图5的方法使用语音引擎通过VoiceXML解释器根据样式(522)把用户输出(516)合成(526)为合成的语音,和播放(530)合成的语音(528)而呈现(524)用户输出(516)。图5的合成语音(528)是代表根据由多模式应用对于用户交互的话音模式规定的样式(522)表达的用户输出(516)的数字化语音。多模式浏览器(196)可以根据图5的方法通过把用户输出(516)连同样式(522)一起传送到语音引擎而把用户输出(516)合成(526)为合成的语音(528),然后又接收合成的语音(528),用于通过多模式设备的扬声器播放。

为了驱动把用户输出(516)合成(526)为合成的语音(528),以上的示例性‘next’函数的结尾包括语句“document.getElimentBjld(‘vform2’).dispatchEvent(e)”。示例性的语句指令多模式浏览器通过使用VoiceXML解释器处理以下的VoiceXML对话:

<vxml:form id=″vform2″>

<vxml:block>

      <vxml:prompt src=″#p2″/>

</vxml:block>

</vxml:form>

以上的示例性对话用由以上的示例性‘next’函数根据由以上的‘next’函数规定的样式生成的用户输出提示用户。

由多模式浏览器(196)根据图5的方法根据样式(522)呈现(524)用户输出还包括根据样式(522)把用户输出(516)显示给用户。多模式浏览器(196)可以根据图5的方法通过根据由多模式应用对于用户交互的可视模式规定的样式(522)在GUI上呈现用户输出(516)而把用户输出(516)显示给用户。

读者将注意到,图5的方法根据由多模式应用在用户交互的可视和话音模式下规定的样式(522)呈现用户输出(516)。为了同步根据在这两种模式下的样式(522)呈现用户输出(516),图5的例子包括韵律事件(534)。图5的韵律事件(534)代表每次语音引擎通过使用如由特定的样式(522)规定的新的韵律合成语音时由语音引擎触发的事件。

图5的方法包括由语音引擎根据用户输出(516)被合成(526)为合成的语音(528)而通过VoiceXML解释器提供韵律事件(534)到多模式浏览器(196)。语音引擎可以通过生成包含由样式(522)规定的韵律的细节的韵律事件(534)和把韵律事件(534)通过VoiceXML解释器传送到多模式浏览器(196),而根据图5的方法把韵律事件(534)通过VoiceXML解释器提供到多模式浏览器(196)。在把韵律事件(534)传送到多模式浏览器(196)之前,VoiceXML解释器可以把韵律事件(534)根据DOM事件规范变换成DOM事件和根据XML事件规范变换成XML事件。例如,考虑以下的用于韵律事件的示例性DOM事件:

  interface ProsodyEvent:Event{

          readonly attribute views::AbstractView view;

          readonly attribute string detail;

          void initProsodyEvent(in DOMString typeArg,

                 in boolean canBubbleArg,

                 in boolean cancelableArg,

                 in views::AbstractView viewArg,

                 in string detailArg);

  };

VoiceXML解释器在从语音引擎接收韵律事件后,可以通过以上的示例性接口把韵律事件变换成DOM事件。通过使用以上的示例性DOM事件接口,多模式浏览器(196)可以访问由语音引擎提供的韵律事件534。‘细节’字符串包含用于韵律的属性数值对,诸如,例如‘情绪=“安静”,’‘态度=“自信”,’和‘亲近度=“靠近”.’如上所述,这些属性数值对以下用户输出的呈现的方式将取决于使用诸如,例如CSS的动态HTML和诸如在Eide文章中描述的那样的扩展的SSML的扩展。

图5的方法还包括由多模式浏览器(196)通过VoiceXML解释器接收来自语音引擎的韵律事件。多模式浏览器(536)通过VoiceXML解释器接收(536)来自语音引擎的韵律事件(534)和通过使用例如上述的示例性接口访问在DOM事件中的韵律事件(534)。

由多模式浏览器(196)根据图5的方法根据样式(522)呈现(524)用户输出(516)包括根据韵律事件(534)呈现(538)用户输出(516)。在图5的方法中,根据韵律事件534呈现(538)用户输出(516)包括根据样式(522)把用户输出(516)显示(540)给用户。正如以上讨论的,多模式浏览器(196)可以根据图5的方法通过根据由多模式应用对于用户交互的可视模式规定的样式(522)在GUI上呈现用户输出(516)而把用户输出显示给用户。在这样的例子中,所以,多模式浏览器(196)不根据样式(522)在图形用户接口上显示用户输出(516),直至多模式浏览器(196)接收韵律事件为止。

多模式浏览器(196)可以根据图5的方法通过执行修改用户输出(516)的可视特性的ECMAScript脚本而根据韵律事件(534)呈现(538)用户输出(516)和根据样式(522)显示(540)用户输出(516)。例如,考虑以下示例性ECMAScript脚本:

<script type=″text/javascript″ev:event=″prosody″>

        function Attribute(name,value){this.name=name;this.value=value;}

   function attributesFromString(input,ouptut)

          {/*Parses the prosody event detail into an array of attribute

          objects*/}

   var attributes=new Array();

   attributesFromString(event.detail,attributes);

   for(i in attributes)

           {

           if attributes[i].name.match(″emotion″)

                    {/*Process value for emotion value*/}

           if attributes[i].name.match(″attitude″)

                    {/*Process value for attitude value*/}

           if attributes[i].name.match(″proximity″)

                    {/*Process value for proximity value*/}

           …

           }

</script>

当多模式浏览器(196)接收被表示为‘prosody’的韵律事件时,以上的示例性ECMAScript脚本执行。读者将从以上的示例性韵律事件接口回想起韵律事件包括‘细节’字段,包含用于韵律的属性数值对,诸如,例如‘情绪=“安静”,’‘态度=“自信”,’和‘亲近度=“靠近”.’在以上的示例性ECMAScript脚本中,‘attributesFromString’函数把韵律事件细节分析成属性目标阵列.以上的示例性ECMAScript脚本提供计算机程序指令,用于处理对于可被包含在韵律事件中的每种类型的韵律属性的数值,诸如,例如‘情绪’,‘态度’和‘亲近度’。所以,当多模式浏览器接收来自语音引擎的、表示语音引擎已通过使用由样式规定的韵律合成语音的韵律事件时,多模式浏览器可以修改用户输出的可视代表与被使用来从用户输出生成合成语音的韵律相对应。这样,韵律事件有利地允许多模式浏览器同步根据在用户交互的可视模式和用户交互的话音模式下的样式(522)呈现用户输出。

如上所述,多模式浏览器可以通过图形用户接口接收图形用户输入而接收来自用户的用户输入。然而,多模式浏览器可以通过接收讲话而接收来自用户的用户输入。所以,为了进一步说明,图6显示包括接收(600)来自用户的讲话(602)的、根据本发明的实施例的、用于提供与多模式应用之间的表达用户交互的另一个示例性方法的流程图。提供与多模式应用之间的表达用户交互,在本例中,是结合多模式应用(195)被实施的。多模式应用(195)在支持包括与多模式应用的用户交互的话音模式和一个或多个非话音模式的多种交互模式的多模式设备的多模式浏览器(196)中运行。话音模式在本例中可以用通过扬声器的音频输出和通过麦克风的音频输入被实施。非话音模式可以由用户输入设备,诸如,例如键盘和鼠标被实施。

多模式应用(195)工作时通过VoiceXML解释器被耦合到语音引擎。工作耦合提供从多模式应用(195)到语音引擎的、用于语法、要识别的语音、和其它输入的数据通信路径。工作耦合还提供从语音引擎到多模式应用(195)的、要识别的语音、语义解释结果和其它结果的数据通信路径。当多模式应用在厚客户结构中被实施时,工作耦合用VoiceXML解释器(图4的192)实施。当多模式应用在薄客户结构中被实施时,工作耦合可包括话音服务模块(图3的130)、VOIP连接(图3的216)、和VoiceXML解释器(图4的192)。

图6的方法类似于图5的方法。也就是,图6的方法包括由多模式浏览器(196)提示(500)用户,用于用户输入(508);由多模式浏览器(196)通过特定的用户交互模式接收(504)来自用户的用户输入(508);由多模式浏览器(196)根据用户输入(508)确定(512)用于用户的用户输出(516);由多模式浏览器(196)根据用户输入(508)确定(518)用于用户输出(516)的样式(522),样式(522)规定对于至少一个其它用户交互模式的表达输出特性;以及由多模式浏览器(196)根据样式(522)呈现(524)用户输出(516)。类似于图5的例子,在图6的例子中多模式浏览器(196)通过使用如上所述的用户交互的可视和话音模式提示(502)可被呈现给用户的提示(502)而提示(500)用户进行用户输入(508)。

图6的方法与图5的方法的不同点在于,由多模式浏览器(196)通过特定的用户交互模式接收(504)来自用户的用户输入(508),包括来自用户的讲话(602)。图6的讲话(602)代表由多模式设备的用户被提供到多模式浏览器(196)的数字化的人的语音。如上所述,多模式浏览器(196)可以通过麦克风从用户获取讲话(602)和通过使用如由本领域技术人员将会看到的任何编解码器以适当的格式编码讲话,用于存储和传输。

根据图6的方法的、由多模式浏览器(196)通过特定的用户交互模式接收(504)来自用户的用户输入508,还包括通过使用语音引擎和语法(104)确定(604)识别结果(606)。图6的识别结果(606)代表根据讲话(602)从语音引擎返回的输出。多模式浏览器(196)可以根据图6的方法通过把在多模式应用(196)中规定的讲话(602)和语法(104)通过VoiceXML解释器传送到用于语音识别的语音引擎而确定(604)使用语音引擎和语法(104)的识别结果(606),和反过来接收来自语音引擎的识别结果(606)作为被存储在ECMAScript数据结构中的数值,诸如,例如应用变量数组‘application.lastresult$’某个其它字段变量数组,用于由多模式应用(195)规定的VoiceXML字段。ECMAScript数据结构代表在多模式应用(195)的X+V页中脚本级的文档对象模型(‘DOM’)中的目标。

在薄客户体系结构中,多模式浏览器196可以根据图6的方法把讲话(602)和语法(104)通过VoiceXML解释器传送到语音引擎进行语音识别,作为由多模式浏览器(196)到话音服务模块(图3的130)的呼叫的一部分,提供话音识别服务。话音服务模块然后又把讲话(602)和语法(104)通过VOIP连接(图3的216)和话音服务器应用(图3的188)传送到VoiceXML解释器(192),它又把讲话(602)和语法(104)传送到语音引擎进行识别。在厚客户体系结构中,多模式浏览器(196)可以根据图6的方法把讲话(602)和语法(104)通过VoiceXML解释器传送到用于语音识别的语音引擎,作为由多模式浏览器(196)通过由VoiceXML解释器(192)给出的API直接对嵌入的VoiceXML解释器(192)的调用的一部分。

如上所述,多模式浏览器(196)反过来接收来自语音引擎的识别结果(606)作为被存储在ECMAScript数据结构中的数值,诸如,例如应用变量数组‘application.lastresult$’某个其它字段变量数组,用于由多模式应用(195)规定的VoiceXML字段。‘application.lastresult$’数组保持有关由用于VoiceXML解释器(192)的语音引擎生成的最后的识别的信息。‘application.lastresult$’是元素的数组,其中每个元素,application.lastresult$[i],代表通过以下的阴影变量的可能的结果:

·application.lastresult$[i].confidence,它规定对于这个识别结果的自信度水平。0.0的数值表示最小自信度,以及1.0的数值表示最大自信度。

·application.lastresult$[i].utterance,它是组成这个识别结果的原始的字串。精确的标记和拼写是平台特定的(例如,“five hundredthirty”或“5 hundred 30”或甚至“530”)。

·application.lastresult$[i].inputmode,它规定用户提供讲话的模式。典型地,甚至是用于讲话的话音。

·application.lastresult$[i].interpretation,它是包含来自ECMAScript后处理脚本的输出的ECMAScript变量,典型地被使用来重新格式被包含在‘发声’阴影变量中的数值。

当多模式浏览器(196)接收在ECMAScript字段变量数组中对于在多模式浏览器(195)中规定的字段的识别结果(606)时,识别结果(606)可被存储在类似于应用变量‘application.lastresult$’的、使用阴影变量的字段变量数组中。例如,字段变量数组可以通过以下的阴影变量代表可能的识别结果:

·name$[i].confidence,

·name$[i].utterance,

·name$[i].inputmode,以及

·name$[i].interpretation,

其中‘name$’是用于在多模式应用(195)中被规定来存储识别结果(606)的结果的、VoiceXML字段的字段识别号的位置保持器。

在图6的方法中,由多模式浏览器(196)根据用户输入(508)确定(512)用于用户的用户输出(516),包括根据识别结果(606)确定对该用户的用户输出516。多模式浏览器196可以根据图6的方法通过执行ECMAScript脚本,根据由语音引擎提供的识别结果(606)生成用户输出,而根据识别结果(606)确定(608)用于用户的用户输出(516)。为了进一步说明,考虑以上的示例性多模式应用的另一个分段:

<html xmlns=″http://www.w3.org/1999/xhtml″

xmlns:vxml=″http://www.w3.org/2001/vxml″

xmlns:ev=″http://www.w3.org/2001/xml-events″

xmlns:xv=″http://www.voicexml.org/2002/xhtml+voice″xml:lang=″en-US″>

<head>

      <vxml:form id=″vforml″>

            <vxml:field name=″user input″>

            <vxml:prompt src=″#pl″/>

            <grammar>

           <![CDATA[

                 #JSGF VI.0;

                grammar questionaire;

                public<questionaire>=

                       ([I had[a|an]<rating>[experience])

                       {$=$rating};

                <rating>=excellent{$=1}|ok{$=2}|terrible{$=3};

                ]]>

         </vxml:grammar>

         <vxml:filled>

               <vxml:assign name=″temp″expr=″nextForm()″/>

        </vxml:filled>

        </vxml:field>

</vxml:form>

<script type=″text/javascript″>

        function nextForm()

       {

               next(application.lastresult$);

       }

       function next(choice)

      {

               var paragraph=document.getElementByld(″#p2″);

               var textNode;

               if(choice==1‖choice==2)

               {

                     textNode=

                           document.createTextNode(″Thank you

                           for your business!″);

                     paragraph.style=″emotion:happy″

               }

               if(choice==3)

                 {

                      textNode=

                            document.createTextNode(″I′m sorry.I′ll

                            get a live operator to talk to you.″;

                      paragraph.style=″emotion:sad;color:red″

                  }

                  paragraph.appendChild(textNode);

                  var e=document.createEvent(″UIEvents″);

                  e.initEvent(″DOMActivate″,″true″,″true″);

                  document.getElementByld(′vform2′).dispatchEvent(e);

               }

       </script>

       …

</head>

</html>

以上的示例性多模式应用分段指令多模式浏览器当多模式浏览器接收对于VoiceXML形式‘vform1’的VoiceXML字段‘user input’的识别结果时执行实施函数‘nextForm’的ECMScript脚本。使用在<rating>语法规则中的语义解释脚本,如果讲话包含单词‘excellent’,则识别结果被指定以‘1’的数值。如果讲话包含单词‘ok’,则识别结果被指定以‘2’的数值。如果讲话包含单词‘terrible’,则识别结果被指定以‘3’的数值。读者将回想起识别结果可被存储在‘application.lastresult$’变量中。

在以上的示例性多模式应用分段中,‘nextForm’函数通过使用由多模式浏览器从语音引擎作为参数接收的识别结果调用’next’函数。当识别结果被指定以‘1’的数值时,则’next’函数生成输出“Thank youfor your business!”。当识别结果被指定以‘2’的数值时,则’next’函数生成用户输出“Thank you for your business!”。当识别结果被指定以‘3’的数值时,则’next’函数生成用户输出“I’m sorry.I’ll get a liveoperator to talk to you,”。这样,多模式浏览器可以根据识别结果确定对该用户的用户输出。

为了进一步了解当多模式浏览器接收对于VoiceXML形式‘vform1’的VoiceXML字段‘user input’的识别结果时,实施‘ nextForm’函数的ECMScript脚本如何被执行,读者将指出,对于‘nextForm’函数的函数调用被包含在VoiceXML<filled>元素中,它又被包含在VoiceXML<field>元素中。以上的示例性<field>元素仅仅在母<field>元素被填充以数值时被执行。例如,以上的示例性<filled>元素仅仅在‘vform1’对话的‘ user input’字段被填充以来自识别结果‘application.lastresult$’的数值时被执行。在执行示例性<filled>元素后,执行‘nextForm’函数。

由多模式浏览器(196)根据图6的方法根据用户输入(508)确定用于用户输出(516)的样式(522),包括根据识别结果(606)确定用于用户输出(516)的样式(522)。多模式浏览器(196)可以根据图6的方法通过在代表多模式应用的文档对象模型(‘DOM’)中执行把样式(522)指定给用户输出(516)的ECMScript脚本而根据识别结果(606)确定用于用户输出(516)的样式(522)。为了进一步说明,考虑以上的示例性多模式应用的另一个分段:

<html xmlns=″http://www.w3.org/1999/xhtml″

xmlns:vxml=″http://www.w3.org/200l/vxml″

xmlns:ev=″http://www.w3.org/2001/xml-events″

xmlns:xv=″http://www.voicexml.org/2002/xhtml+voice″xml:lang=″en-US″>

<head>

      <vxml:form id=″vforml″>

      <vxml:field name=″user input″>

      <vxml:prompt src=″#pl″/>

      <grammar>

      <![CDATA[

            #JSGF VI.0;

            grammar questionaire;

            public<questionaire>=

                  ([I had][a|an]<rating>[experience])

                  {$=$rating};

            <rating>=excellent{$=1}|ok{$=2}|terrible{$=3};

            ]]>

     </vxml:grammar>

     <vxml:filled>

           <vxml:assign name=″temp″expr=″nextForm()″/>

     </vxml:filled>

     </vxml:field>

 </vxml:form>

   …

<script type=″text/javascript″>

function nextForm()

{

next(application.lastresult$);

}

function next(choice)

{

var paragraph=document.getElementByld(″#p2″);

                 var textNode;

                 if(choice==1‖choice==2)

                 {

                   textNode=

                         document.createTextNode(″Thank you

                         for your business!″);

                         paragraph.style=″emotion:happy″

                  }

                  if(choice==3)

                  {

                       textNode=

                             document.createTextNode(″I′m sorry.I′ll

                             get a live operator to talk to you.″;

                       paragraph.style=″emotion:sad;color:red″

                   }

                   paragraph.appendChild(textNode);

                   var e=document.createEvent(″UIEvents″);

                   e.initEvent(″DOMActivate″,″true″,″true″);

                   document.getElementByld(′vform2′).dispatchEvent(e);

              }

      </script>

      …

</head>

</html>

以上的示例性多模式应用分段指令多模式浏览器当多模式浏览器接收对于VoiceXML形式‘vform1’的VoiceXML字段‘user input’的识别结果时执行实施函数‘nextForm’的ECMScript脚本。使用如上所述的、在<rating>语法规则中的语义解释脚本,如果讲话包含单词‘excellent’,则识别结果被指定以‘1’的数值。如果讲话包含单词‘ok’,则识别结果被指定以‘2’的数值。如果讲话包含单词‘terrible’,则识别结果被指定以‘3’的数值。读者将回想起识别结果可被存储在‘application.lastresult$’变量中。

在以上的示例性的多模式应用段中,‘nextForm’函数通过使用由多模式浏览器从语音引擎作为参数接收的识别结果调用‘next’函数。当识别结果被指定以‘1’的数值时,‘next’函数把样式‘情绪:快乐’指定给用户输出“Thank you for your business!”。当识别结果被指定以‘2’的数值时,‘next’函数把样式‘情绪:快乐’指定给用户输出“Thankyou for your business!”。当识别结果被指定以‘3’的数值时,‘next’函数把样式‘情绪:悲伤,颜色:红色’指定给用户输出“I’m sorry.I’ll geta live operator to talk to you,”。这样,多模式浏览器可以根据识别结果确定用户输出的样式。样式‘情绪:快乐’和样式‘情绪:悲伤,颜色:红色’影响用户输出的呈现的方式将根据通过使用例如CSS的动态HTML和诸如在Eide文章中描述的那样的扩展的SSML的扩展施加到每个样式的表达输出特性而变化。

读者将注意到,图6的方法中剩余的步骤以类似于图5的方法运行。如上所述,韵律事件有利地允许多模式浏览器同步在用户交互的可视模式和用户交互的话音模式下根据样式呈现用户输出。

本发明的示例性实施例主要是结合用于提供与多模式应用之间的表达用户交互的完全功能的计算机系统描述的。然而,本领域技术人员将会看到,本发明也可以以被放置在通过任何适当的数据处理系统被使用的信号承载介质上的计算机程序产品被具体实施。这样的信号承载介质可以是传输介质或用于机器可读的信息的可记录的介质,包括磁介质、光介质或其它适当的介质。可记录的介质的例子包括在硬盘驱动器中的磁盘或软磁盘、用于光驱动的紧凑盘、磁带和本领域技术人员知道的其它介质。传输介质的例子包括用于话音通信的电话网和数字数据通信网,例如EthernetsTM和与互联网协议和3W网通信的网络。本领域技术人员将立即看到,具有适当的编程装置的任何计算机系统能够执行以程序产品具体实现的本发明的方法的步骤。

本领域技术人员将立即看到,虽然在本说明书中描述的某些示例性实施例面向被安装在计算机硬件上和在计算机硬件上执行的软件。然而,被实施为固件和硬件的替换实施例也属于本发明的范围。

从以上的说明中将会看到,在本发明的各种实施例中可以作出修改和改变而不背离本发明的真实精神。在说明书中的说明仅仅用来说明本发明,而不是限制的。本发明的范围仅仅由以下的权利要求的语言限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号