会话浏览器和会话系统的制作方法

文档序号:7586625阅读:343来源:国知局
专利名称:会话浏览器和会话系统的制作方法
本申请基于1998年10月2日申请的美国临时专利申请60/102,957号和1999年1月27日申请的美国临时专利申请60/117,595号。
本发明涉及访问信息的系统和方法,更具体地,是涉及一个会话浏览器,该浏览器把对各种信息源的访问统一到一个标准网络协议(诸如HTTP)上从而允许在不需要修改当前网络基础设施的情况下单独(或联合)使用纯GUI(图形用户界面)形态和纯语音接口形态访问相同的交易库和信息服务。
当前,IVR(交互式语音响应)服务被普遍用来对信息和交易进行电话访问。一个IVR系统使用受口语控制的会话并且通常按下述方式工作。一个用户会拨入一个IVR系统并且接着倾听一个提供用于访问某些菜单和特定信息的选择的音频提示。在电话小键盘上为各个选择分配一个号码,或者把各个选择与用户说出的一个字(在允许语音的IVR中)关联起来,并且用户会通过按下适当的的按钮或说出适当的字来作出期望的选择。通常用厂商通过各种变形并且针对不同HW(硬件)平台提供的专用脚本语言来编写常规的IVR应用。这种IVR应用的开发和维护需要合格的职员。常规的IVR应用使用专用(和昂贵的)电话HW,并且各个IVR应用使用不同的SW(软件)层访问传统的数据库服务器。必须为各个应用专门设计这些层次。
此外,IVR系统不被用来处理GUI或其他不同于DTMF和语音的形态。虽然可以在一个常规的模拟连接上混合二进制数据和语音,但在把常规的IVR用作接收器时却不能如此。所以,IVR系统通常不允许合并数据/二进制输入和语音。当前,这样的服务会需要为处理二进制连接配置一个单独的系统(例如以调制解调器的形式)。近期,IP语音(VoIP)和无线电通信(例如GSM)会允许同时传输语音和数据。二进制数据和语音的同时交换需要不止一个同时呼叫(正如以后要解释的,这种方式对于充分处理专门的任务是有用的)或者会需要一个延迟呼叫或回叫来进行数据的异步传输。这种方式通常是不方便的。具体地,数据交换不仅可以发送和接收压缩语音和涉及建立一个语音UI的信息,数据交换也可以是向UI(例如GUI)增加形态所必需的信息。假定服务会使用多个线路提供比如一个语音输入/Web输出(或语音输入/Web和语音输出)形态,其中查询结果和呈现资料也被组织成GUI资料(例如在一个类似Netscape领航员的GUI浏览器上显示的HTML),而服务提供者现在必须为所有IT基础设施和后端增加适当的联网并且同步其后端,IVR和Web服务器。一个简单但非常困难的任务是在涉及GUI或HTML呈现部分的语音呈现资料的行为/演变之间进行协调。
随着移动和家庭计算的快速发展和因特网的流行,网络PC,NC,信息台和其它访问信息服务和交易的用户设备(与IVR电话服务相反)已经变得很普及。当然,因特网和企业内部网的蓬勃发展为访问所有事实上可以通过通常被称为GUI"Web浏览器"、通过代理,服务器和/或代码转换器进行数据转换和交易的浏览器访问的信息源,数据库或交易提供了有力支持。
通常,一个Web浏览器是一个允许用户在WWW(环球网或"Web")上查看并且交互信息的应用程序(或客户端程序)(即,一个使用HTTP(超文本传输协议)向因特网上的服务器发出HTTP请求的客户端程序)。因特网上的HTTP服务器包含用标准HTML(超文本标记语言)编写的"Web页面"。通过Web浏览器的解释,可以从一个分组交换网上的HTTP服务器访问一个因特网Web页面,并且以图形方式把Web页面提供给用户。提供给用户的文本信息包含指向新的信息源的高亮度超链接。接着用户可以通过用鼠标点击选择一个超链接以便下载一个由Web浏览器显示的新Web页面。若干诸如LiveWirc和JDBC(Java数据库连接)的已知标准允许通过因特网访问传统数据库。此外,Web页面可以包含诸如小应用程序(例如Java程序),可以从一个服务器下载并且在浏览器或系统的JVM(Java虚拟机)上执行的可执行代码,其中浏览器被安装在上述系统的顶端。在服务器上运行并且在连接的浏览器上产生变化的小服务程序(例如,Java程序)可以提供其他信息。小应用程序和小服务程序可以包含允许一个Web服务器和应用程序彼此通信的CGI(公共网关接口)功能。另外,其他信息访问方法包含脚本,脚本是在浏览器上解释和执行的预定程序语言。其中包含Java脚本和DHTML(动态HTML)语言。插件是在浏览器外部的程序,插件可以被浏览器下载,可以被浏览器自动识别从而在本地设备上运行,并且可以用浏览器后来提供(通过下载)的参数执行。CGI脚本是服务器端的脚本,该脚本实现业务逻辑并且把处理下一个呈现资料作为其输出。小应用程序和插件可以通过RMI(远程方法调用),套接字连接,RPC(远程过程调用)等等进行通信。另外,复合代码变换方案,XML(扩展标记语言)扩展和脚本语言被用于特定的信息或服务,或者被用于简化交互。
如上所述,因特网Web浏览器和IVR的目的是访问信息。下列例子结合金融应用描述了一个典型方案,该方案表明使用电话通过IVR并且使用PC和Web浏览器通过因特网访问信息的模式是类似的。例如,典型的银行ATM交易允许一个用户帐户在储蓄,支票和信用卡帐户之间进行汇款,并且使用IVR在电话上检查帐户结余。还可以使用一个进行因特网访问的PC和一个Web浏览器进行这些交易。通常,用户通过使用PC可以获得具有文本菜单形式的信息。在使用电话的情况下,通过音频菜单呈现信息。在PC应用程序上点击鼠标被转换成按下电话按钮或说出命令。更具体地说,一个典型的家庭银行IVR应用从一个欢迎消息开始。类似地,银行的因特网主页可以显示一个图画和欢迎文本并且允许用户在一列服务中进行选择,例如a.即时帐户信息;b.汇兑和货币支付;c.存款信息;
d.支票信息;e.股票行情;和f.帮助。
对于IVR应用,可以通过电话向用户播放上述菜单,其中在播放菜单消息后用户应当按下号码或按钮以选择期望的选项a."即时帐户信息,按一;"b."汇兑和货币支付,按二;"c."存款信息,按三;"d."支票信息,按四;"e."股票行情,按五;"f."帮助,按七;"IVR系统可以实现语音识别以代替或补充DTMF按键。假定用户希望得到有关信用卡的信息。为了通过基于因特网的应用获得这个信息,用户会点击一个菜单中的一个特定超文本链接以便显示下一页。在电话应用中,用户会按下适当的电话按键以便发送一个对应的DTMF信号。接着,下一个被播放的菜单可以是a."可用信用额,按一;"b."待结款项,按二;"c."如果您的帐户被连接到支票帐户,您可以支付您的信用卡余额,按三。"用户再次可以通过按下适当的按键进行期望的选择。
接着,可以提示用户提供标识信息。为此,针对因特网应用可以显示一个菜单,该菜单具有一个用于用户帐号的空字段和另一个用于用户社会安全号的空字段。在填写该信息之后,信息被发送到服务器,被加以处理,其重现被加以格式化并且回送到该用户。通过电话的方案是相同的。IVR系统可以重放(通过电话)一个请求用户输入他/她的帐号(通过DTMF或语音)的音频提示,并且通过处理DTMF信令或识别语音从用户接收信息。接着可以提示用户输入他/她的社会安全号并且同理处理答复。当完成处理时,信息被发送到一个服务器,其中帐户信息被访问,被格式化成音频重放,并且通过电话被播放给用户。
如上所示,IVR使用与Web浏览器相同的信息访问模式并且完成相同的功能。当然,除了其接口和形态差异之外,IVR系统和Web浏览器当前被设计和开发成根本不同的系统。然而银行和大公司近期会把其可公开访问的信息源转移到因特网上,同时保留旧的IVR。不幸的是,这样会需要这些机构针对相同类型的信息和交易服务维护不同的系统。在因特网上使用现有基础设施通过IVR提供信息和服务会给银行和公司带来好处。因此,期望得到一个允许用户使用IVR和常规的浏览器在因特网上访问信息并且完成交易的通用系统和方法。
本发明的目的是提供一个不管访问模式如何均把对应用的访问统一到一个标准协议上的系统和方法。具体地,本发明提供了一个利用基于TCP/IP(诸如HTTP(超文本传输协议)或WAP(无线应用协议))的标准网络协议访问信息并执行交易的通用方法与系统,和通过因特网从一个HTTP服务器访问信息的体系结构,使得在不需要修改当前可用网络的当前基础设施的情况下一个纯GUI(图形用户界面)形态和纯语音接口形态可以被用来分别(或联合)访问相同的交易库和信息服务。
在本发明的一个实施例中,假定一个会话浏览器把电话上的命令转换到一个HTTP协议上。会话浏览器的引入允许我们统一因特网和电话(IVR),从而减少费用,扩大这种应用的覆盖范围和灵活性。具体地,针对IVR应用,会话浏览器或(电话浏览器)可以解释从一个用户发出的DTMF信令和/或说出的命令,产生从适当的HTTP服务器访问信息的HTTP请求,解释基于HTML的信息并且通过音频消息把该信息呈现给用户。会话浏览器还可以解码通过HTTP协议从HTTP服务器接收的压缩音频并且向用户播放重构的音频。反之,会话浏览器可以捕捉音频并且把它(压缩或无压缩)发送到服务器以便进行分布式识别和处理。当音频被本地捕捉并且被传送到服务器时,通过一个插件(本地实现)或一个使用音频和多媒体应用编程接口捕捉用户的输入的Java小应用程序或Java程序可以实现这个操作。
对于新建议的IVR体系结构和会话浏览器,内容页面位于通过诸如GUI浏览器的常规模式访问的相同HTTP服务器上,并且内容页面使用共享传统数据库访问SW层次等等的相同信息访问方法。换句话说,IVR现在是具有会话浏览器的HTTP服务器的一个特例。类似于常规GUI浏览器和PC,会话浏览器,将通过使用相同协议(HTTP)的交换分组网络发送信息和查询。
不管访问模式如何,不管是否通过电话或WWW浏览器,本发明将允许一个应用设计师使用一个框架建立应用。应用和客户端之间的所有交互被标准化成HTTP协议,其中根据情况通过html及其扩展呈现信息。WWW服务器上的应用得到正访问该应用的客户端的类型(电话,PC浏览器或其他联网用户设备)并且根据情况可以构造被呈现给客户端的信息。该应用仍然需要客户端访问唯一支持一个标准协议。另外,通过一个易于设计,维护和修改的统一框架呈现应用和内容。
在本发明的另一方面,会话浏览器解释遵守XML规范的会话标记语言(CML)。CML允许缺乏经验的应用开发者快速开发会话式对话。在另一方面,CML可以遵循其他声明语法或方法。为了进一步跟上HTML和全球网,CML和会话浏览器提供了一个简单并且系统的,围绕常规企业应用和常规数据库建立一个会话用户界面的方式。
可以使用标准网络协议从HTTP服务器访问CML文件/文档。CML页面描述了通过会话浏览器被呈现给用户的会话UI。最好通过基于XML应用的标签定义CML页面。基本元素是<页面>,<主体><菜单>和<表格>。页面组合成其他CML元素,并且充当一个CML文档的最高层元素(根据XML的要求)。主体指定浏览器说出的输出。菜单为用户呈现一列选项,每个选项对应一个URL,在用户选择一个选项的情况下URL标识一个要访问的CML元素。表格允许用户提供一或多个信息片段,其中通过一个语法描述各个信息片段的内容。表格元素还指定一个在用户完成表格时要访问的URL。
在另一方面,一个内容提供商可以把会话标记语言规则增加到一个HTML文件中(或被用于HTML的地方)以便完全利用会话浏览器。
在另一个方面,一个会话代码转换器将呈现资料从一种形态转换成一种会话形态(通常为纯语音和/或语音与GUI)。这涉及把一个GUI页面转换成一个CUI(会话用户界面)页面的功能变换和把一个应用,交易或站点的业务逻辑转换成一个可接受的对话的逻辑代码转换。会话代码转换可以把HTML文件转换成被会话浏览器解释的CML文件。代码转换器可以是服务器,浏览器或内容提供商的一个专有应用。
在另一方面,基于HTML/GUI的结构框架可用于捕捉一个GUI站点的对话逻辑或业务逻辑。这个信息可用于映射位置,逻辑或应用。在适当组织对话流程之后,各个元素可以被功能代码转换成一个纯语音内容或一个多态(同步GUI和语音接口)页面。
在另一方面,提供一个会话代理以便根据设备,浏览器和/或引擎的能力,用户或应用的优先顺序,服务器上的负载,网络上的传输量,会话参数(数据文件)的位置修改和/或准备应用,逻辑或站点的内容描述。例如,会话代理可以直接转换诸如公司软件的屏幕映射的专有格式。
通过下列对最优实施例的详细描述可以理解本发明的这些及其他方面,功能和优点,其中需要结合附图阅读该描述。


图1是基于本发明一个最优实施例的一个会话浏览系统的图例;图2是一个实现基于本发明一个实施例的一个会话浏览系统,用于访问信息的系统的模块图;图3是一个实现基于本发明另一个实施例的一个会话浏览系统,用于访问信息的系统的模块图;图4a是图解一个实现基于本发明一个实施例的一个会话浏览系统,用于访问信息的分布式系统的模块图;图4b是图解一个实现基于本发明另一个实施例的一个会话浏览系统,用于访问信息的分布式系统的模块图;图5是一个使用基于本发明一个实施例的会话标记语言的会话信息访问系统的模块图;图6是一个使用基于本发明一个实施例的会话标记语言的分布式会话系统的总体图示;图7是一个使用基于本发明一个实施例的会话标记语言的示例性分布式会话系统的图例;图8是另一个使用基于本发明另一个实施例的会话标记语言的示例性分布式会话系统的图例;图9是另一个使用基于本发明一个实施例的会话标记语言的分布式会话信息访问系统的图例;并且图10是另一个使用基于本发明一个实施例的会话标记语言的示例性分布式会话信息访问系统的图例。
本发明的目标是提供一个会话浏览系统和用于使用一组内部链接的CML页面建立一个会话浏览系统的CML(会话标记语言)。这个会话系统在概念上类似于通过一组使用HTML(超文本标记语言)编写的内部链接页面建立常规GUI浏览器应用。此外,正象HTML提供一组把GUI动作转换成诸如访问其它页面或与一个服务器通信的应用动作的机制那样,会话浏览器和CML被用于把口语输入转换成类似的应用动作。CML页面描述了通过会话浏览器被解释和呈现给用户的会话UI。最好使用基于当前XML(可扩展标记语言)应用(如下面要详细描述的)的标签来定义CML页面。
应当理解,可以通过各种形式的硬件,软件,固件,专用处理器或其组合来实现这里描述的会话系统和方法。具体地,会话浏览器最好被实现成一个包括程序指令的应用,其中程序指令被实际嵌入到一个程序存储设备(例如软磁盘,RAM,ROM,CD ROM和/或闪速存储器)中并且可以被任何包括诸如个人计算机的适当体系结构和诸如PDA和智能电话的普及运算设备的设备或机器执行。
还应当理解,由于最好通过软件实现会话浏览器的某些组成构件和附图中描述的系统构件,根据编程实现本发明的方式,这些构件之间的实际连接可以是不同的。根据这里的指导,本领域的普通技术人员将能够完成本发明的这些和类似的实现或配置。
会话浏览器体系结构现在参照图1,一个模块解了基于本发明一个最优实施例的一个会话浏览器系统。通常,一个会话浏览系统10允许一个用户利用一个诸如HTTP的标准网络协议通过语音输入(唯一或结合诸如DTMF,键盘,鼠标等等的其他形态)访问传统信息服务和交易。另外,应当理解HTTP协议是本发明的最优实施例,但也可以使用其他类似的协议。例如,可以在任何诸如TCP/IP,WAP(无线应用协议),GSM,VoIP等等的协议或任何其他支持IP的协议顶端配置这个协议(因而提供TCP/IP或类似的功能)。更常见的是,如果TCP/IP不可用,我们可以实现另一个提供类似TCP/IP或至少能够完成网络和传送功能的特性的协议(本发明不依赖传输层和网络层)。
在图1中,一个基于本发明的一个实施例的会话浏览系统10包括一个在CVM(会话虚拟机)系统15顶端运行的会话浏览器11(会话式应用)。会话浏览器11包括一个代码转换器模块11,该模块通常根据预定的代码转换规则(如下所述)把诸如HTML或DB2的常规(传统)结构化文档格式转换成中间文档或CML(会话标记语言)文档。CML文档描述了被呈现给用户的传统信息格式的会话UI。更具体地说,CML文档包括元信息,而元信息被一个CML分析器/处理器14处理以便把基于HTML的信息当作合成音频消息呈现给用户。应当理解,可以用本发明实现CML文档的各种实施例。在一个下面详细描述的最优实施例中,通过基于XML(可扩展标记语言)的标签来定义CML文档。然而应当理解,可以使用任何用于实现CML的声明方法。由于其简单,有力和当前流行,XML是目前最优的。
会话浏览器11还包括一个命令/请求处理器12(一个命令和控制接口),该处理器把诸如语音命令,DTMF信号和键盘输入的用户命令(多态)转换成诸如HTTP请求的导航请求。应当理解,在一个纯语音会话浏览器中,语音是唯一的输入。然而,会话浏览器11可以配置成多态输入。
当需要某些会话功能或服务时,会话浏览器11会向CVM15发出请求这种服务的API调用(如下所述)。例如,当解释一个CML文档(通过CML分析器/处理器14)时,会话浏览器11可以挂到一个TTS(文本-语音合成)引擎26上(通过CVM15)以便向用户提供合成语音输出。另外,当输入语音命令或自然语言查询(例如,导航请求)时,会话浏览器11可以挂到一个语音识别引擎24和NLU(自然语言理解)引擎25上以处理这种输入命令,从而允许命令/请求处理器产生适当的HTTP请求。CVM系统15是一个可以在任何常规的OS(操作系统)或RTOS(实时操作系统)的顶端运行的命令解释程序。在IBM文档编号为YO999-111P,与本发明同时申请,标题为"通过会话虚拟机进行会话计算"的专利申请中提供了对CVM系统15的体系结构与操作的详细讨论,该专利申请与本发明有共同转让并且在此对其进行完全的参考引用。
概括地讲,如图1所示,CVM系统15包括一个会话API层16,会话浏览器11通过这个层次可以和一个CVM核心层次17"交谈"以便访问(通过系统调用)某些包含会话引擎23的会话业务和行为。CVM核心17负责根据其登记的会话能力和提供通用并且协调一致的CUI(会话用户界面)的要求分配诸如引擎和参数(本地和/或分布的)的会话资源并且管理和控制应用和设备(本地和/或分布的)上的会话和上下文。CVM系统15通过从一个会话引擎API层次18(诸如SAPI,SRAPI,JSAPI,SVAPI或这种引擎API的扩充)调用本地会话引擎23,例如一个语音识别引擎24,一个NLU(自然语言理解)引擎25,一个TTS(文本-语音)引擎26(和其他诸如NLG(自然语言生成)引擎,发声者识别引擎的引擎)来完成会话服务和功能。另外,可以向位于分布式拓扑上的远程语音引擎发出引擎调用。另外,通过一个传统的驱动程序/API层次22调用一个音频子系统33(提供音频捕捉,压缩,解压缩和重构)和任何其他多态I/O资源(诸如一个键盘28,鼠标29,触摸屏,扩音器/扬声器31和DTMF32)。
CVM系统15还包括一个通过诸如TCP/IP,HTTP,WAP等等的传统协议20提供网络通信的通信堆栈19。通信堆栈19还包括被用于分布式应用的会话协议21(或分布式会话协议)。如前面引用的IBM文档号YO999-111P所描述的,会话协议(或方法)21包含(1)发现"知道会话的"(即用会话协议谈话)的网络设备和应用的协议;(2)登记诸如网络设备之间的会话引擎和参数的会话能力(资源);(3)根据登记的会话能力协商网络配置(诸如主/从,对等);(4)交换诸如一个对话,会话参数,小应用程序,ActiveX构件,过程对象及其他可执行代码的状态,上下文和历史的信息以便协调网络连接设备之间的会话;和(5)发送与接收压缩语音(波形或特征)的语音编码协议。在IBM文档号为Y0999-113P,与本发明同时申请,标题为"提供网络协调会话服务的系统和方法"的专利申请中也公开了这些会话协议21及其在联网设备之间提供会话协调的作用,该专利申请与本发明有共同转让并且在此对其进行完全的参考引用。
应当理解,图1中图解的引擎23和I/O资源27,传统驱动程序/API22和音频子系统33是作为运行会话浏览器11和CVM系统15的基础设备,机器或平台的一部分的构件。还应当理解,会话浏览器11和CVM系统15可以被提供成单独的系统,换句话说,会话浏览器11可以被实现成一个携带其自己的CVM系统15的独立应用(在这样的情况下浏览器和CVM平台会是相同的,即不能区分的的实体)。另外,在没有前面明确描述的CVM系统15的情况下,应当理解会话浏览器11实现了类似于前面针对CVM系统15讨论的功能(例如会话浏览器会向本地和/或分布式的适当引擎发出API调用)。当然,作为浏览器提供的功能和服务的一部分,针对引擎和通信机构的API,服务,功能,行为,访问可以全部被建立到会话浏览器应用11中,并且构成其中的一部分(类似于通过到向Netscape浏览器提供JVM(java虚拟机)或使浏览器实现其自己的JVM的情况)。另外,会话浏览器可以利用并行运行浏览器的基础操作系统和/或应用所提供的类似现有服务。
应当理解,代码转换器13可以是如图1的会话浏览器11的一部分。推而广之并且如下所述,代码转换器13可以位于一个网络中并且可以在另一个机器,会话代理服务器,内容提供商的一个服务器(服务器端)上运行,或者可以分布在网络中的各种机器上。另外,代码转换器可以是代理服务器,浏览器或内容提供商的专有应用。代码转换器应当也能够直接转换类似公司软件屏幕映射的专有格式。代码转换器13包括一个把HTML文档(或其他格式的页面)转换成CML文档的功能性代码转换模块13a。下面将解释用于实现这种转换的各种规则。另外,代码转换器13包括一个访问并解释应用后的逻辑信息以建立一个有意义的对话的逻辑代码转换模块13b。这经常需要关于应用和/或业务逻辑的深度信息。可以传递额外的,能够定义某些这样的意图的XML或元信息。在IBM文档号为Y099-114,和本发明同时申请,标题为"通过通用分层对象进行有效的语音导航的结构框架"的专利申请中描述了另一个可以被用来进行逻辑代码转换的方法,该专利申请与本发明有共同转让并且在此对其进行完全的参考引用。这个申请描述了会话结构框架如何可以被用来编码和发送逻辑代码转换信息。
代码转换器35最好是一个能够把任何交易表格或HTML页面转换成CML页面的普通通用转换器。对于象ATM对话或IVR对话那样并且表格被填满的HTML对话页面(HTML或CGI)或ATM对话(及其他3270类型的屏幕对话)具有有限的信息或提供有限的用户选项的简明对话,可以根据CML页面方便地使代码转换公式化。在不需要代码转换器进行转换的情况下其他复合HTML文档可以被标记成服务器端上的第一个实例中的CML(如下所述)。当然,如下所述,在一个最优实施例中,与在运行时被浏览器或服务器端代码转换器代码转换的普通HTML页面相反,在不需要代码转换器或代码转换代理的情况下,所有被提供给会话浏览器的内容被直接写到CML中。否则,可以使用基本组成和设计规则以简化从HTML到CML的转换。例如,通过在按JSAPI方式用语调和TTS标记信息对其加标记之前用常规TTS滤波器对输入的正文进行滤波可以转换新闻和电子邮件/电子语音邮件。实际上,这些转换规则可以是服务提供商或标准对象的专有规则。这些规则可以包含下列内容1.如果HTML页面包括图像,代码转换器会丢弃图像并且产生必要的元信息以便在用于播放这种信息的图像标签中提供图像名称和增加注解(如果有)。
2.如果HTML页面包括没有可以播放的成份的脚本和/或小应用程序,则代码转换器可以产生传递特殊警告消息的元信息。警告用于几种目的。例如,警告消息可以通知用户HTML页面包含一个脚本或小应用程序。当然,在没有脚本或小应用程序提供的任何语音输出的情况下,用户从不会了解脚本或小应用程序(与立即可以看见一个小应用程序动画的GUI浏览器相反)。
另外,警告信息被用来通知用户他/她可能遗漏小应用程序中包含的,不能被代码转换成有意义的CUI(会话用户界面)功能的某些信息/内容(在用类似Java的常规GUI语言而不是作为CVM库(例如在前面引用的IBM文档号Y0999-111P中描述的)的一部分的会话基础类编写小应用程序的情况下仍然要引用一个CUI构件)。另外,元信息可用于同步多态浏览器的GUI(可视)端和语音端,例如在1999年4月7日申请,标题为"多态命令解释程序"的美国临时专利申请第60/128,081号中所描述的,其中该专利申请与本发明有共同转让并且在此对其进行完全的参考引用。根据该发明,根据设备/浏览器的能力甚至可以把过程构件(类似小应用程序和ActiveX构件)代码转换成纯GUI或纯语音(及其变种)。这样就自动解决了对被用来建立其过程的应用进行代码转换的问题,其中应用开发者或构件(基础类)作者本来已经对上述代码转换进行了编程。
3.对于包括框架的HTML页面,代码转换器可以产生通过其名称或一个索引号呈现框架的元信息。例如,音频重放可以是"在本页面上有4个框架框架1表示..."。在下载全部页面时可以立即启动HTML和CML产生的所有框架连接和功能。这允许框架被用作菜单。可选地,可以提供一个规则使得只呈现主框架,同时剩余框架保持活跃但不被读取。
4.可以使用TTS滤波器对HTML页面进行滤波以产生JSAPI标记(或类似变形)。
5.一个HTML页面中的任何超链接可以被转换成基本形和FSG(有限状态语法)。更具体地说,用户(通过语音命令)可以跟随的超链接及其他命令和输入可以被加到浏览器的一个活跃命令列表中。这涉及在必要时增加词汇和这些字的发音规则(即基本形),以及适当修改语法或NLU框架/上下文以支持这些新命令。
6.可以用针对不同字体的不同语音合成文本。然而,会话浏览器可以选择不改变语音。
7.可以为超链接提供一个音频图标(声音,或不同的语音,或背景音乐)。
8.各个超链接也可以被表示成隐藏菜单,如果用比如一个<!--CML标记-->来指示,该菜单可以带出后续页面。
9.下拉菜单和强制菜单可以被自动转换成具有适当词汇和命令的对话。
10.空白字段可以激活NLU或听写能力。通常,针对普通目的的听写,所使用的语音识别引擎可以是会话浏览器的本地缺省引擎。可选地,对于分布式系统(如下所述),内容提供商在浏览器没有必要的能力或远程语音识别引擎被专门调整到NLU或听写应用的情况下可以提供语音识别引擎的一个建议URL。通过把NLU引擎的适当URL传递成HTML中的一个CML注解标签或者直接提供代替HTML页面的CML页面可以进行具有被装满的NLU表格的NLU对话(如下面进一步详细讨论的)。
11.如果各个菜单均是一个独立构件,基于多个表格并且基于屏幕的交易GUI对话可以被直接转换成连续对话菜单(例如象获得一个地址或订购一个物品那样执行一个完整任务)。
会话浏览器11也可以包含一个"切入"功能,该功能允许用户在给出新命令或输入之前说出一个引起注意的字词或中断TTS呈现的输出流(如下面详细描述的)。通过在一个人讲话时按下按钮可以实现这个功能,其中按下按钮进行交谈,或者按下开始并且/或者停止。
代码转换器产生的CML文档(或如下所述内容提供商直接提供的CML文档)最好包括下列示例性功能和指示以下内容的必要标签的任意组合1.对用户说出或隐藏的活跃链接;2.针对会话参数(例如词汇,语法和基表的数据文件),可以被用来解码用户针对页面提供的可能输入的链接;3.对于分布式系统,针对语音识别URL,发声者识别URL,TTSURL和/或NLU引擎URL等等,可以被用来解码用户输入并且/或者提供向其发送一个指定页面以便产生音频输出的位置的链接;一个本地主机可以被用来运行一个本地(缺省)引擎。所以,如果没有指定URL,使用浏览器缺省引擎。可以根据浏览器,设备用户偏好或服务提供商(ISP或ASP)偏好对此进行设置。这相当于使用浏览器或服务器上的任何相应元信息设置浏览器缺省位置;4.针对播放给用户的音频文件(例如IVR提示)的URL;5.使用户在进入一个指定链接之前确认某些输入的确认请求;6.与一个指定链接相关的DTMF代码和用于组合键输入的DTMF语法;7.描述应当如何向一个用户播放文本的TTS标记(按JSAPI方式);8.运行引导其自己的对话的会话应用的脚本语言和过程代码(诸如Java,Java脚本,ActiveX等等)。当浏览器被建在CVM顶端时(如上所述)可以使用会话编程语言和基础类(即CVM库)。否则,可以由浏览器,基础操作系统或其他可以和浏览器并行使用的应用或服务提供代码和服务。
9.描述浏览器对资源(例如一个脚本,一个图像等等)的最低要求的会话能力标签。例如,不允许音频的脚本不应当被下载或运行在纯语音设备上,除非这种脚本执行一个有意义的任务。另外,在纯语音浏览器上不应当下载图像(虽然图像涉及多态和纯GUI浏览器)。当根据浏览器(即基础引擎)的能力转换呈现资料时,执行转换的实体是一个会话代理;10.针对某些特定处理使用/下载的插件(例如一个用于发声者识别阶段的加密插件或用于一个特定引擎的压缩程序和前端)的URL;和/或11.用于加书签和后续返回到页面的元信息标签(例如,具有其对应基本形,语法等等的关键字组),其中在被调用时,上述标签在可能链接目录中建议要进入的页面。这通常是一个涉及CVM提供的编目方法/元信息服务的功能(如前面引用的IBM文档号Y0999-111P中所讨论的)。
应当理解,一个特定的注解<!--CML代理URL=...-->标签可以被引入到一个HTML页面中以便指定一个常用的会话代理,或者指定代码转换以便执行期望的代码转换功能(会话代理,功能代码转换或逻辑代码转换)。可选地,可以由一个缺省代码转换器(该代码转换器是一个浏览器,服务器或分布式代理的一部分)执行转换。也可以由(代理)代码转换器根据会话浏览器的能力定制CML页面。可以通过不同于把URL标签用作代理的方式来执行这个功能(这意味着浏览器与一个代理服务器相连并且通过该代理发送其HTTP请求)。如果呈现一个CVM,则可以进行一次基础握手以便交换关于可用于浏览器的CVM的引擎的会话能力的元信息,并且接着可以根据该代理自动裁剪页面。另一个替代方案是在这种情况下把浏览器传递到一个适合于引擎能力的不同页面。
另外,<!--CML标签...-->可以把直接CML标签引入到一个HTML或XML页面中,其中会由会话浏览器或会话代理直接处理该标签。下面会更详细地讨论这些CML功能。
在CVM是多态时,对于特定的浏览器/客户端能力(例如只有一个IVR),只对有关的的功能加标签。在最优实施例中,浏览器通常忽略未知标签而不是强制和ML一致。此外,对于通用系统,浏览器应当通过在连接到内容提供商的第一个页面或服务器网关/门户时使用一个cookie机制或填充一个隐藏表格把其能力登记到代理或服务器。cookie可以传送必要的信息以便识别或鉴定一个用户。它还可以传送所有关于浏览器的当前对话状态的上下文信息。其中还可以包含本地上下文,历史和/或优先信息的其余部分,其中在连接到服务器时发送或与服务器共享上述信息。通过cookie或其他登记协议向一个服务器发送对话信息,上下文及其他元信息的能力允许服务器立即参与会话。可以实现不同于cookie机制的其他登记机制。
内容提供商可以把会话标记语言规则增加到一个HTML文件中或替换一个HTML文件以便完全利用会话浏览器。这个语言应当提供标签以指示在前面章节描述的功能(如下所述)。
使用会话浏览器的电话应用现在参照图2,一个模块解了基于本发明一个实施例的,用于提供电话服务的一个会话系统。系统100包括一个可以被客户端设备102通过电话网104(例如PSTN(公用交换电话网))访问的IVR101(或呼叫中心)。IVR101通过网络104被连接到一或多个内容服务器105。在这个实施例中,假定IVR101运行在一个电话公司(telco)的场地内的一台机器上。IVR101可以和一个金融应用的服务提供商关联以便提供ATM电话服务。客户端设备10可以是一个常规电话,一个移动电话,或一个具有电话卡的PC以便通过电话网络103建立到IVR101的通信。网络104可以是因特网,一个企业内部网,一个LAN,专用网络等等。内容服务器105可以是包括与IVR 101 ATM服务相关的内容页面(HTML,CML等等)的HTTP服务器。
IVR101包括一个被图解成运行一个CVM 106a的独立应用的会话浏览器106。应当理解,图2的会话浏览器106和CVM 106a在体系结构和功能方面类似于前面参照图1描述的会话浏览器11和CVM15(因而CVM可以被包含在浏览器或一个基础操作系统内)。IVR系统100还包括一个提供诸如音频捕捉,声学前端(声学处理)和一个音频子系统(例如声卡)的音频功能的音频系统107。IVR101还包括一个DTMF处理器108和会话引擎109(例如语音,NLU,TTS引擎等等)。
当客户端102被连接到IVR101时,诸如语音命令和DTMF信号的输入命令被音频系统107的声学前端接收并且分别被发送到适当的会话引擎109(例如语音引擎)和DTMF处理器108。接着处理过的语音/DTMF命令被当做调用传递到会话浏览器106中的适当功能。会话浏览器106接着产生适当请求(例如HTTP请求)以便通过网络104从一个或多个内容服务器105获得期望信息。内容服务器105检索适当的信息(或完成指定动作)并且接着通过HTML(或其他类似的格式),CML,压缩音频或其组合(根据在内容服务器105上构造信息的方式)发送结果,消息和/或菜单选项(使用TCP/IP或上述的类似协议)。如上所述,对于HTML(及其他结构文档),会话浏览器会代码转换信息(通过一个上述代码转换器13)以产生一个用于处理(通过上述CML分析器/处理器14)的CML文档,因此来自服务器105的CML文档可以被直接处理(不经过代码转换)。会话浏览器106可以挂到必要的会话引擎上(通过CVM 106a)以便建立一个与用户的对话。如下所述,会话引擎可以分布在网络104上。
会话浏览器还可以解码使用一个标准网络协议(诸如HTTP)从内容服务器105发送的压缩音频,并且接着把音频当做电话音频播放给用户(从而允许通过会话浏览器106实现IP电话)。反之,可以通过音频系统107的音频捕捉部分捕捉音频输入并且以压缩或非压缩格式将其发送(通过会话浏览器106)到一个在网络104上的服务器以便进行分布式识别和处理(就象在前面引用的IBM文档号为Y0999-113P的专利申请中描述的那样)。如上所示,通过CVM 106a的通信堆栈进行压缩语音的传输(如Y0999-111P和Y0999-113P中所述)。在没有一个CVM时,其他通信引擎会完成握手,通信和编码/解码。应当理解,这种通信不仅限于HTTP或VoIP,也可以涉及任何TCP/IP和有关协议。例如,WAP,蓝牙,跳跃式通信协议可以被用于本发明。当音频被本地捕捉并且被传送到一个远程服务器时,通过一个插件(本地实现)或一个使用音频和多媒体API捕捉用户输入的Java小应用程序或Java程序可以实现这个操作。另外,通过使用套接字连接,RPC,RMI等等,会话式通信(编码)协议可以被用来发送压缩语音(如IBM文档号为Y0999-111P和Y0999-113P的专利申请中所描述的)。
应当理解,图2中描述的系统只是一个用于提供IVR服务的可能实施例。在另一个实施例中,IVR可以单独用作系统的"声卡",在某种意义上讲,IVR提供从一个用户捕捉输入语音的音频捕捉功能并且接着把捕捉的语音发送到一个具有会话浏览器(类似地,该浏览器从服务器接收音频输出并且发送到IVR以便播放给用户)的Web服务器。在这种情况下,IVR充当会话浏览器的一个声卡或音频子系统。可选地,IVR可以提供会话引擎(语音识别引擎,TTS引擎,发声者识别引擎等等)以及音频捕捉和所有的系统管理,调用平衡,负载均衡功能等等,并且只把会话浏览器用作一个对话驱动器。可选地,IVR也可以只完成音频捕捉和负载均衡/系统管理,同时使会话引擎运行在其他服务器上并且使会话浏览器也运行在其他服务器上。最终,存在通过一组小型网络工作站(通常是NT机器)实现IVR或呼叫中心的可能性,其中每个工作站拥有一个电话卡,而电话卡会拥有与一个或数量非常有限的活跃端口(即活跃调用)相关的音频捕捉,会话引擎和会话浏览器。
在图2所示的实施例中,假定所有的播放提示,合成语音,产生对话,理解DTMF输入或语音输入功能在IVR101的层次上执行。应当理解,在没有一个CVM 106a的情况下,系统集成商或IVR提供商的职责是提供系统的一个具体实现,其中该系统提供类似于CVM所提供的抽象层次(如上所述)。系统的实际实现会确定IVR101的实际体系结构,但这种体系结构会独立于会话浏览器106的功能与操作。
有利的是,会话浏览器106通过在本领域中被称作"空前"连接的方式把IVR101改变到服务端的一个分组交换网络上。另外,对于使用一个会话浏览器的通用IVR体系结构,应当理解,内容页面位于相同的HTTP服务器上并且使用相同的信息访问方法,从而把传统数据库访问SW层次等等共享成用于信息访问的Web服务器。换句话说,一个IVR现在可以被认为是具有会话浏览器的HTTP服务器的一个特例。根据设备,服务器和内容/服务提供商的能力,会话浏览器可以位于客户端,服务器上,也可以位于客户端和服务器之间或分布在网络上。
现在参照图3,一个模块解了基于本发明另一个示例性实施例的,用于提供电话服务的一个会话系统。在这个例子中,会话浏览器106整个位于客户端设备上。现在在客户端设备本地执行由IVR完成的所有处理(如参照图2所述的),并且通过内容服务器105上的HTTP获取HTML文档。内容服务器105可以具有在其上运行的,与IVR应用相关的应用的HTTP服务器。可选地,图3的系统可以简单地被用于浏览WWW。
例如,如图3所示,客户端设备可以是一个PC60(个人计算机),其中PC60具有一个会话浏览器106(和CVM 106a)和通过PC60提供电话服务的常规电话平台61(包括比如一个调制解调器,声板,扩音器和语音邮件系统)。PC60可用于通过调制解调器(通过会话浏览器106)在电话线路102上建立一个到电话公司或任何其他远程访问服务器(RAS)70(例如因特网服务提供商(ISP))的拨号连接以便访问网络40(例如因特网,企业内部网)上的内容服务器105。PC60还可以使用一个专线L并且通过借助IP连接的远程连接访问本地/专用资源或因特网。具有浏览器106的PC60可用于提供对比如WWW的会话浏览。如上所述,会话浏览器106执行语音命令识别并且对以压缩方式通过因特网来自HTTP服务器的语音消息进行转换。会话浏览器106可以访问在PC60或本地客户端上运行的任何允许语音的本地应用62(日历等等)。
客户端设备可以是一个具有本地运行会话浏览器106的适当体系结构和CPU能力的移动电话80(例如一个GSM终端)。移动电话80可以下载用于解释语音(因特网电话)网际协议(或其他诸如WAP的协议)的DSP代码(或任何其他类型的CPU编程语言),用于语音处理的压缩算法和通过Java的派生语言编写的任何其他应用或语音处理程序。应当理解,DSP代码可以是本地的并且可以被预加载到电话上(尤其是在CVM 106a的一个实例出现在设备上的情况下)。此外,更高档次的带屏幕移动电话可以具有更高级的,具有文本能力甚至显示能力的本地运行浏览器。另外,可以为新电话具备高采样率A/D转换器。这样就能够利用倒频谱系数压缩更有效地通过通信线路发送语音并且增加语音识别质量(对于如前面引用的IBM文档号为Y0999-113P所描述的分布式语音识别)。
应当理解,会话浏览器106的功能可以被部分地放在一个本地客户端设备和远程服务器上。例如,可以由客户端设备(例如图2的前端模块107)计算声学特征,对其进行压缩并且以低位速率发送到服务器以便进行处理。另外,可以在本地进行一部分浏览器处理,例如播放规则文本并且得到简单输入,并且可以在服务器端完成某些处理,例如获得街道地址,复杂输入或表格的ASCII输入。还应当理解,浏览器功能可以分布在一个客户端设备,一或多个服务器和一个资源网络上。例如,浏览器可以位于服务器和客户端上,也可以位于二者之间,而会话子系统(例如语音识别引擎,NLU引擎,TTS)位于网络的其他区域上。应当理解,甚至可以在联网设备(服务器,计算机,PDA等等)之间共享浏览功能。并且,CVM是一个通过类似于在引用的IBM文档号为Y0999-111P和Y0999-113P的专利申请中描述的协议的通信协议"管理"这种情况的关键元素。另外,针对特定于领域的应用,内容提供商可以直接提供其自己的TTS,NLU或语音识别引擎。
有利的是,本发明的广泛应用通过允许针对纯会话交互呈现具有HTML格式的信息页面可以保留提供上述信息页面的传统应用(除了用多态设备显示页面或部分页面之外)。现在会参照图4a和4b的说明性现在参照图4a,一个模块解了一个分布式系统,其中在一或多个网络中共享提供会话浏览和IVR服务的资源。应当理解,图4a中的虚线圆圈表示一个指定网络或个人网络(或子网)在一个企业内部网或因特网上的不同位置,每个网络包括通过标准网络协议(例如TCP/IP,HTTP)彼此交互的对应服务器,主机。具有一个GUI终端300和会话浏览器302a的一个PC302可用于提供GUI和会话浏览的组合(应当理解,设备302可以是诸如一个通过PSTN被连接到分布式网络的电话,通过蓝牙被连接到TCP/IP网络的蓝牙设备,通过ISDN,电缆或卫星链路被连接到分布式网络的机顶盒的任何客户端设备(不是PC))。可选地,PC302可以通过IP连接访问一个具有会话浏览器的远程服务器303。类似地,一个用户可以通过电话301(例如普通,蜂窝或智能电话)拨入一个IVR服务器/PC302,通过本地浏览器302a或远程服务器303与会话浏览器303a进行会话浏览或IVR。可选地,如上所述,根据其各自的体系结构和处理能力,电话301,PC/IVR服务器302和远程服务器303可以共享会话浏览器的功能。另外,可以在一或多个分布在一个指定网络或子网上的服务器304之间共享会话浏览器303a。可选地,各个远程服务器304可以支持浏览器304a的一或多个特定功能。根据各自的会话浏览器功能,PC/IVR服务器302或远程服务器303,304均可以通过TCP/IP,HTTP,API(对于使用上述通信协议的CVM实例)挂到(根据需要)分布在网络上的一或多个会话子系统309上。另外,任何需要的会话参数308可以被会话浏览器302a,303a和/或304a或网络上的会话子系统309访问使用。
示例性系统还包含一个具有代码转换器305a的会话代理服务器305,在由于运行浏览器的设备的处理能力不够导致会话浏览器302a,303a,304a不能把HTML文档及其他应用转换成CML的情况下可以通过网络访问该服务器以进行这种转换。另外,会话代理和代码转换器305a可以和一个内容服务提供商关联以便在会话浏览器302a,303a和/或304a缺乏关于执行这种转换的应用的特定专有信息(只有内容提供商知道)的情况下对HTML文档进行转换。如图4a所示,通过内容提供商的Web服务器应用产生HTML文档,其中上述应用使用一个通过SQL或专用API与数据库307交互的常规代码转换器把专有信息转换成HTML表格。应当理解,单元306和305/305a之间的通信可以导致传递XML或元信息以支持会话代码转换/代理任务。另外,可以使用如前面引用的专利申请Y0999-114所述的结构框架。
图4a图解了一个语音门户,该门户是一个CML服务器并且类似于今天的Web门户,在CML服务器中的事务处理允许搜寻HTML、CML页面或Web站点。语音门户可以检索期望的站点和页面。这些CML页面被直接提供给会话浏览器。通过另一个表示语言(例如HTML)检索的页面在被发送到浏览器之前被代码转换。语音和Web门户(即基于HTML或WML(无线标记语言))之间的主要区别是门户下载所请求的页面并且在把它们发送到浏览器之前对其进行适当的代码转换。对于具有代码转换器的客户端设备(或浏览器),可以通过另一个格式(HTML和/或基于HTML的结构框架)把页面发送到浏览器并且在运行时由浏览器把页面代码转换成作为一种中间内部语言的CML。语音门户服务可以通过无偿,由通信公司/无线提供商支付,由有关内容提供商支付(根据点击),基于完成的可盈利交易,基于有关商务的利润率,基于预约的方式把服务放到搜索引擎中,或者是搜索引擎产生的级别较高的服务,或者与自动方案相比,是针对高质量CML页面的服务(手工准备或检查)。
现在参照图4b,一个图例图解了本发明的一个提供结合传统公司软件应用的会话浏览或IVR服务的示例性实施例。图4b的系统类似于上述(图4a)系统,除此之外图4b具体图解了一个指定公司网络上的常规3级(分布式)公司应用的会话浏览。3级应用包含一个含有产生和呈现HTML文档的程序的前端终端/呈现服务器310(级别1),一个中间级业务逻辑服务器311或应用服务器(含有业务应用软件并且为LAN中的工作站的客户端请求服务),和一个包括传统数据库和事务管理(数据控制)应用的后端或第三级312,313。如图所示,通过GUI314,电话(IVR)315和3270类型屏幕对话(3270终端是通常由主机和CISC系统支持的终端,例如可以在ATM上发现的,主要是纯ASCII字符屏幕的常规浅绿色终端)完成常规呈现。由于这种事务处理的业务逻辑通常由简单对话驱动以便每次只向用户提供有限的信息量或选择,通过代理服务器305的代码转换器305a可以容易地把诸如填充表格(HTML或CGI)的简单HTML对话页面或ATM对话(及其他3270类型的屏幕对话)或其他哑终端(CT100,Palm引导屏幕等等)转换成CML。还可以通过如前面引用的IBM文档号Y0999-114P所述的框架传递选项或菜单。另外,代码转换可以容易地被扩展到其他专用API或屏幕映射(例如,通常由被称作屏幕刷的映射程序完成从3270屏幕或其他屏幕到HTML页面的映射)。具体地,由于把屏幕映射代码转换成HTML页面的现有程序和屏幕映射仅限于驱动业务逻辑的简单对话,有关结果HTML页面的转换只是会话代理的小任务。
有利的是,在不需要重新设计当前通过HTML和其它XML/HTTP协议提供的内容的情况下,每个上述示例性系统体系结构均允许使用相同的协议通过纯语音接口(会话浏览器),纯GUI和语音与GUI的组合统一访问相同交易库和信息服务。
使用CML的会话应用下列对示例性实施例的讨论描述了基于网络的,利用基于本发明的CML(会话标记语言)的会话应用。这里使用的术语"会话应用"是指通过话音输入/输出与用户交互的应用。在这里术语"基于网络的会话应用"是指通过网络或在本地可以获得定义口语输出和输入的转换单元,即CML页面的应用。当然,正象利用一组通过HTML标记语言编写的内部链接页面可以建立GUI应用那样,利用一组通过会话标记语言编写的内部链接页面可以建立会话系统。此外,正象HTML提供一组把GUI动作转换成诸如访问其它页面或与一个服务器通信的应用作用的机制那样,同样可以实现CML以便提供把口语输入转换成应用动作的机制。应当以相同的广度理解这里的术语应用,其中一组相关的,包含文字,链接和表格,以及位于处理表格的服务器上的代码(例如小服务程序或CGI脚本)的HTML页面组成一个应用。另外,类似于通过Java或ActiveX构件加载过程(诸如会话基础类或其他对话构件)的方式,可以加载/下载会话小应用程序和基础类以便执行过程性的会话动作(是CVM的一个功能)。
现在参照图5,一个图例图解了示例性的,基于网络的会话系统,该系统包括各种由基于本发明的CML使能的会话应用。图解的系统包括一个客户端设备500,该设备具有一个会话浏览器501。客户端设备500可以是一个桌面PC,一个PDA,一个车载计算机,一个智能电话或一个"哑"电话(术语"哑"电话是指在长电缆的末端充当扩音器并且需要被连接到电话线另一端上的浏览器的设备)。客户端设备500也可以包含一或多个在客户端500上运行并且利用CML与会话浏览器501通信的语音本地应用502。例如,本地应用可以是一个汽车导航应用,其中一个"语音导航应用"与计算机地图软件和一个GPS(全球定位系统)设备交互以便提供会话式的驾驶方向。类似地,当没有基础CVM提供这种的服务时,基础常规OS或其他应用在本地提供的其他应用和服务可用于向浏览器提供服务(诸如歧义消除,上下文访问等等)和对话模块。
利用一个向客户端设备500发送CML页面的标准网络协议(例如,HTTP,TCP/IP),客户端设备500可以访问网络503(例如因特网)上多个服务器系统S1,S2和S3中的任何一个,其中会话浏览器501对CML页面进行处理以便向设备500的用户提供一个会话UI。例如,客户端设备500可以通过一个代码转换代理连接到服务器S1访问现有的HTML信息,如上所述,代码转换代理能够解释HTML,提取相关信息并且产生CML信息。另外,客户端设备500可以连接到一个专用Web服务器应用(S2),例如通过一个CGI应用访问Notes数据(例如Notes电子邮件)的Lotus Domino服务器。具体地,Domino服务器可以被用来生成CML并且利用HTTP发送CML。在另一个例子中,客户端设备500利用一个访问企业传统数据库的CGI应用或Java小服务程序可以连接到一个Web服务器应用(S3),其中Web应用产生并发送CML中的信息。
这导致另一个有趣的应用例子一个基于CML的通用消息系统。具体地,语音门户或语音Web服务提供商以和ISP,ASP(应用服务提供商)与Web门户通过HTML提供常规和目前可用的邮件与消息系统的方式相同的方式可以使用CML提供电子邮件访问,处理和统一消息传输。统一消息传输意味着现在可以通过语音访问不同的消息服务并且通过语音对寻呼,电子邮件,语音邮件和呼叫处理进行编程。由于接口现在通过会话浏览器被内置到CML中,用户可以自动处理他/她的消息。类似地,呼叫转移和处理可以被看作一个通知呼叫者信息与呼叫主题并且提供一个选项菜单的CML接口的组合。用户可以选择动作(转移,存储,接受呼叫)。所有这样的动作均被当做过程调用传递到呼叫处理单元并且相应处理该调用(例如转发或转移到用户)。对于诸如图5的纯语音会话浏览器,语音和音频是提供给用户的唯一输出。当一个用户期望时,从服务提供商下载一个页面(通过CML)。CML被用来描述被呈现给用户的会话UI。通过使用TTS标记信息,会话浏览器会把页面读给用户并且倾听被语言识别器解码的用户命令(尽可能利用CML页面的语音识别部分提供的线索)以便进入链接,填充表格或对浏览器发出命令。对于非嵌入式应用,会话浏览器最好使用一个大词汇量连续语音识别系统(例如,IBM Via Voice)和一个使用JSAPI(Java语音)的"自由文本规则TTS-其中包括如以下参考文献所述的动态语法编译和NL处理K.A.Kishore等人,标题为"使用表格的自由-流程会话管理",1999欧洲语音会议文集,布达佩斯,匈牙利,1999年9月和Davies等人,"用于金融应用的IBM会话式电话系统",1999欧洲语音会议文集,布达佩斯,匈牙利,1999年9月。
有利的是,上述诸如基于服务器的CGI脚本和Java小服务程序的能力和本地插件可以为专用代码提供参与会话应用的机制。应用代码和会话浏览器501之间的接口可以具有请求和标记数据流(HTML或CML)或n层属性值组的URL的形式。注意可以使用其它代替URL的寻址方案(例如套接字和端口)访问本地或分布式服务。
应当理解,通过应用代码可以任意建立上述各个IVR和会话浏览应用,其中应用通过API和远程调用进行通信(即不实现一个会话浏览器和CML)。具体地,这样的应用可以被直接写到一个诸如Java语音API(JSAPI)的语音API中。但对于分布式应用,尚未从网络角度出发设计当前可用的引擎API(SAPI,JSAPI)。因而,直接写在会话引擎API顶端的联网/分布语音应用总会需要重新实现分布式功能。但应当理解,对于写到CVM系统顶端的应用(IBM文档号Y0999-111P),实际上通过会话应用API消除了当前引擎API的这些限制,其中上述会话应用API通过通信堆栈进行通信,而通信堆栈通过CVM命令解释程序提供的服务和行为隐藏了引擎API的大部分复杂度。当然,通过过程性实现可以有效地执行复杂的对话任务。这种过程允许简单使用针对这种复杂任务提供的各种宏。另外,自然会期望过程比诸如XML的解释性声明语言更加有效。但根据使用的上下文(效率的重要性对编程,跨平台可移植性等等)可以使用上述选择(声明性和过程性)。
另一方面,CML和会话浏览器允许以利用已经使用HTML开发的传统应用的方式实现分布式会话系统。与当前可用的语音API不同,CML可以轻易支持联网会话应用。会话浏览器可以解释从多个位置发出的CML流,从而为用户提供了与桌面窗口系统或可视浏览器相同的无缝衔接体验。例如,当完成机票购买时,用户可以临时挂起交易并且与一个不同服务器上的银行应用交互以检查其帐户余额。这涉及上述使一个合适的应用保持并且通过浏览器和可能的服务器端处理发送/恢复一个对话的上下文的概念。并且,CML提供了一个简化会话应用构造的高层工具(类似于HTML简化可视应用构造的方式)。会话标记语言也减少了所需要的语音专业知识。另外,如上所述,使用一个当前可用的语音API在异构平台上建立分布式应用是困难的。通过WWW在异构平台上大规模推广分布式GUI应用显示出CML数据流方案的可行性。
参照图6,一个模块解了使用基于本发明的一个实施例的CML的一个通用分布式会话浏览系统。通常,一个分布式会话浏览系统包括一个信息服务器600,一个呈现服务器601,一个语音服务器602,语音模型603和一个会话浏览器604。信息服务器600代表企业数据库,新闻专线馈送和/或WWW服务器。信息服务器600提供具有"信息格式"的数据,其中这种格式以独立于设备的方式表示专用信息。这种数据格式的例子包含针对数据访问的API(例如Notes DB API,SQL)和专用数据流(新闻专线馈送,用XML内容标签标记的信息)。
呈现服务器601使用信息服务器600定义的一个API或协议从信息服务器600检索信息。呈现服务器601接着把接收的"信息格式"代码转换成"呈现格式"以便呈现给用户。"呈现格式"以特定于设备,独立于应用的方式表示被呈现给用户的信息,根据本发明,这种格式是CML(如下所述)。常规"呈现格式"包含诸如Windows GUI,API的API和诸如HTML,HDML(手持设备标记语言)和WAP(无线应用协议)的数据流。呈现服务器601可以是一个HTML服务器,CGI脚本和Java小服务程序,作为HTML服务器的Domino和Notes客户端,呈现服务器被用来把从信息服务器600接收的信息代码转换成CML。呈现服务器601产生的CML被用来描述通过一个会话浏览器604呈现给用户的会话UI并且提供把口语输入转换成应用动作的机制。
语音服务器602包括负责语音识别和分析的引擎和其它会话引擎。语音服务器602解决了语音特有的问题语音识别处理可能需要不容易发送到客户端的大型专用数据集(即语音模型603)。这意味着在语言模型邻近呈现服务器601(从传输带宽的角度看)的情况下必须完成语音识别处理。一个诸如HTTP,XML,VoIP,WAP协议的标准网络协议和在前面引用的YO9990113P专利申请中描述的会话语音编码协议可以被用来从会话浏览器604向语音服务器602发送音频并返回分析结果,并且还被用来从语音服务器602向会话浏览器604发送诸如或合成语音的音频。
现在参照图7,一个图例图解了使用基于本发明一个实施例的CML的一个示例性分布式会话系统。更具体地讲,示例性实施例图解了一个纯语音客户端设备606,该设备具有一个会话浏览器604和扩音器/扬声器605。客户端设备606表示一个通过无线链路被连接到网络607(例如以太网)的纯语音PDA(个人数字助理)或PVA(个人车辆助理)客户端设备。信息服务器600,呈现服务器601和语音服务器602(具有语音模型603)共同为使用的客户端设备提供一个应用(例如气象信息)。呈现服务器601,语音服务器602和语音模型603周围的虚线指示这些单元被紧密耦合,即语音服务器602具有特定于应用的语音模型603。另外,呈现服务器向其它使用HTML的浏览器608提供一个GUI。应当理解,会话浏览器604可以访问网络607上的其它会话应用现在参照图8,一个图例图解了另一个示例性分布式会话系统,其中客户端设备606是一个语音和GUI客户端。客户端设备606包括一个显示屏幕609,一个扩音器扬声器605和一个使用语音,GUI及其组合向用户提供信息的会话+GUI浏览器604a。在这个实施例中,呈现服务器601根据客户端606的请求可以提供HTML和CML文档。另外,通过嵌入能够被嵌到HTML标记中的CML标记并且扩展标准HTML浏览器(使用提供的浏览器扩展机制)使之在标准浏览器傍边运行会话浏览器以便在GUI接口傍边提供会话接口,可以实现这个系统。在1999年4月7日申请的,标题为"多态命令解释程序"的美国临时专利申请60/128,081号中描述了在GUI和语音UI之间进行集成和协调的系统和方法,该申请与本发明有共同转让并且在此对其加以引用。
现在参照图9,其中示出了另一个使用分布式电话技术的分布式会话系统。在这个示例性实施例中,一个用户可以拨入被连接到一个会话浏览器604的客户端606的电话平台610(例如一个PC),该平台使用户能够通过网络607(例如因特网)选择语音应用。
可选地,一个用户可以通过拨号连接到语音服务器,也可以通过另一个现有连接(LAN,蓝牙,DSL等等)直接连接到语音服务器。在这种情况下,前面提供的会话编码算法可以被用来向浏览器传送数据。注意,客户端"设备"这里基本上是一个被连接到电话平台610上运行的会话浏览器604的电话耳机。
接着,在图10的示例性实施例中,用户会拨入指定电话号码以访问一个应用。该系统是图9的分布式电话系统的简化版本,其中会话浏览器604和应用是相同的。然而,在这个实施例中,会话浏览器604不被连接到网络,但是可以只访问特定应用。这个实施例中的虚线611强调呈现服务器601,语音服务器602(和模型603),会话浏览器604和电话平台610全部参与一个集成服务。该应用在本质上是一个常规电话应用,其中会话浏览器604充当对话引擎。
会话标记语言CML下面描述了一个可以被用于上述会话浏览应用的最优实施例。在一个最优实施例中,CML是可扩展标记语言(XML)的一个应用。XML是由维护HTML标准的相同机构W3C针对HTML风格的标记语言定义的流行Web标准。XML实质上是对HTML的归纳总结,其中从HTML借鉴了许多设计思路。更概括地讲,XML是一个针对结构化文档和数据的声明性通用格式。有利的是,以XML作为CML的基础允许CML更容易地被嵌入到HTML中或与HTML相结合以产生多态应用(例如,语音和GUI)。也允许另一种XML应用,即JSML(Java合成标记语言)被嵌入到CML中并且被用作针对CML的语音合成标记语言。有利的是,XML的标准化和流行产生CML页面的制作工具和产生CML的服务器代码编程工具可能会成为标准,从而提供针对这里描述的会话浏览系统的开放式体系结构。
XML包括描述一个页面或文件的内容的标记符号。XML实体包括具有以下形式的标签对<标签属性1="值1"属性2="值2">任意文本</标签>。
XML的可扩展性的根源是XML应用(以及在这种情况下的CML)的标记符号是无限的和自定义的(即,程序员可以自由地定义他/她自己的标签名称,属性名称和数值设置)。
在本发明的一个实施例中,用JAVA编写CML并且一个会话浏览器使用一个"所听即所说"风格的语音输入进行本地语音识别和分析。在其他实施例中,针对NLU语音输入和分布式客户-服务器语音应用扩展CML,其中通过HTTP从客户端向语音服务器发送数字化话音并且使用CML返回分析结果(如上所述)。并且应当理解,除了使用HTTP或其他常规协议之外,可以通过如前面引用的IBM文档号为Y0999-111P和Y0999-113P的专利申请所述的会话通信协议向语音服务器发送语音。下面会详细地讨论这些实施例。
通常,CML最好被定义成一组标签,其中基本CML元素是<页面>,<主体>,<菜单>和<表格>。通常,一个"页面"元素组成其他CML元素,并且充当一个CML文档的最高层元素。一个<主体>元素指定会话浏览器说出的输出。一个<菜单>元素为用户呈现一列选项,每个选项对应一个诸如URL的目标,在用户选择一个选项的情况下URL标识一个要访问的CML元素。一个<表格>元素允许用户提供一或多个信息片段,其中通过一个语法可以描述各个信息片段的内容。<表格>元素还可以指定一个在用户完成表格填写时要访问的URL。短语"访问一个元素"(或"访问一个CML元素")是指一个通常由会话浏览器在响应一个说话用户的输入时采取的动作(虽然也可以响应其它类型的用户输入或其它类型的异步事件)。访问一个CML元素会导致会话浏览器根据所访问的CML元素的类型和内容产生一个口语输出。例如,读取一个<主体>元素,列出一个<菜单>元素的选项等等。根据下面章节内针对各个元素的描述,并且根据对话的章节中更完全的讨论,访问一个元素还可以影响口语响应集合,其中浏览器会从用户接受上述响应。
下列内容更详细地描述了包括基于一个最优实施例的一个CML文档或文件的标签(元素)和属性。
页面元素一个<页面>元素是包括一或多个相关套接的CML页面或单元(一个单元是一个<主体>,<菜单>,或<表格>元素)的最高层CML文档元素,并且最好按以下方式构造<页面ttl="秒">(主体,菜单,和/或表格单元)或套接页面</页面>
属性ttl("存在时间")规定可以在一个高速缓冲存储器中存储CML页面的秒数,其中0值防止高速缓冲该页面。一个<页面>元素本来不会在会话浏览器应用和用户之间促成(没有口语输出或输入)会话,而是充当一个组合其他CML元素(例如主体,主体和表格单元)的容器。一个<页面>元素也可以包含套接页面。以后会解释<页面>元素作为一个(套接)容器的功能。访问一个<页面>元素等于访问该页面中的第一个单元。套接页面还可以包含会话对话对象或基础类。可以通过过程或某些等价CML页面实现这个要求。当重新加载一个页面时,提供一个cookie或适当的协议/服务/API以便重新加载前面的上下文。
菜单元素一个<菜单>元素提供一个针对CML的功能,该功能类似于超文本链接的功能,并且由于为用户提供一组选项,所以菜单被当作HTML。通常,在用户选择该选项的情况下,一个<菜单>元素规定在访问该实体时要说出的一个介绍性消息和一个提示菜单,以及一个对应的可能响应集合,并且针对每个选项规定一个要访问的URL<菜单>
介绍性消息文本<选项目标="URL1"提示文本1</选项>
<选项目标="URL2">提示文本2</选项>
</菜单>
当访问一个<菜单>元素时,说出其标题文本(介绍性文本),并且接着说出所包含的任何<选项>元素的提示文本。当加载<菜单>时可以激活一个匹配该<菜单>的标题文本的语法,并且在此之后激活其它部分。当用户说出一个匹配某个<菜单>元素的标题文本的字或短语时,则访问这个<菜单>元素。
在用户选择该选项的情况下每个<选项>具有一个被会话浏览器访问的目标URL<选项目标="目标">提示文本</选项>
一个目标可以是任何有效的URL(包含相对的URL和指定HTTP,文件,FTP,和本地协议(有关本地协议的描述参见下文)的URL或一个URL加一个索引(使用标准的URL#索引语法)。)。可以使用任何其他的地址,方案,和协议。索引(即一个URL中在#之后的部分)是一个命名文档内的单元的字符串,该文档具有一个名称属性,该属性的值为上述索引字符串。一个没有索引的URL被认为是指向文档内部的第一个单元。针对包含文档的URL分解一个相对URL。
此外,一个"目标"可以是另一个诸如套接字地址的地址(IP地址和端口ID)。在这种情况下,可以实现其他的IP协议,例如在前面引用的IBM文档号为Y0999-111P和Y0999-113P的专利申请中描述的会话协议。在使用一个特定的非常规协议的情况下,一个附加参数可用于激活以下通信<选项目标="目标"协议="协议标识符"></选项>
这提供了一个传递上下文和元信息的机制。也提供了一个向CVM服务传递系统调用或者在没有CVM的情况下向被实现成基础OS顶端或浏览器平台内部的应用的等价服务传递调用的途径。如果浏览器支持该协议,则该标识符足够激活适当的通信。这种处理尤其适用于建立在CVM顶端的会话浏览器(如前面和IBM文档号Y0999-111P中所述的)。在其它情况下,规约标识符还可以指向一个用于下载的URL(插件或小应用程序)以便启动通信。还可以直接指向一个位于支持会话浏览器的客户端平台上的本地可执行程序。典型的例子是需要分布式识别的"选项"(例如,当在一个远程网络服务器上进行识别时)(如IBM文档号Y0999-113P所述)。其他例子包含下载实现对话的过程性功能(或本地功能)的选项。这些会话过程也被建立在CVM的顶端。应当理解,这些概念对于所有"目标"均是有效的,并且不仅仅对于"选项"而言。
当访问所包含的<菜单>时,说出一个<选项>元素的"提示文本"。当加载包含的<菜单>时激活匹配一个<选项>元素的提示文本的一个语法,并且在此之后激活其它部分。当用户说出一个匹配某个<选项>元素的提示文本的字或短语时,则访问指定目标。例如,通过说出一个引起注意的字或短语("计算机","到达"或"选择")并且后跟选项中一或多个重要的的字,用户可以选择其中的一个选项。下列例子会说明菜单元素<菜单>
请从主菜单中选择。
<选项目标="文件电子邮件">电子邮件.</选项>
<选项目标="文件新闻">新闻.</选项>
<选项目标="文件导航">导航.</选项>
<选项目标="文件填表">食物订购.</选项>
<选项目标="文件气象">气象信息.</选项>
<选项目标="文件讲座">讲座.</选项>
</菜单>
主菜单可以充当当用户开始与一个会话浏览器会话时首先听到的最高层菜单。更具体地说,当会话浏览器访问这个菜单时,该菜单产生口语输出"请从主菜单选择"并且后跟一列选项"电子邮件.新闻.导航.食物订购.气象信息.讲座."一旦会话浏览器已经加载这个菜单,用户可以通过说出一个命令激活(选择)任何选项(在对话的剩余时间内)。允许的命令取决于使用的输入技术。在一个实现"所听如所说"方案的实施例中,允许的命令可以包括后跟提示文本的字词子序列的引人注意的短语,例如"到电子邮件"和"选择新闻"。
在用户说出一个选择之后,会话浏览器会访问由与指定选择相关的目标属性规定的目标地址(例如,URL,套接字地址)(例如,取出一个目标URL的内容并且解释成一个CML实体,而且该实体被访问)。注意,在上述例子菜单中,所有目标URL均相对于包含页面的URL,在这种情况下该URL是一个指向demo\main文件的文件URL-例如,目标"文件新闻"被解释成一个在与包含主菜单的文件相同的目录中的,被称作"新闻"的文件。
概括地讲,用户可以说出一个匹配某个<菜单>元素的标题文本的短语以便访问这个<菜单>元素。用户可以说出一个匹配某个<选项>元素的文本的短语以便访问该元素指定的目标。如果一个用户的短语包括一个引人注意的短语,其后面跟有文本中的一或多个字并且其顺序与在文本中的顺序相同(但不必连续),则该用户的上述短语与一个<菜单>或<选项>元素的文本匹配。一个引人注意的短语是诸如"到达"的,指示要执行的命令的短语。
主体元素一个<主体>元素指定某些在实体被访问时被转换成说出的输出的文本<主体名称="名称"下一个="目标">文本</主体>当一个<主体>元素被访问时,其文本被说出,并且接着访问由下一个参数指定的目标。具有JSML标记的CML<主体>实体提供一个针对语音的功能,该功能类似于一个具有为GUI准备的面向呈现的标记(诸如标题,目录等等)的HTML主体实体的功能。对于信息检索应用(诸如电子邮件和新闻),一个<主体>元素通常会包含用户寻找的信息。最好使用Java合成标记语言(JSML)标记主体元素以便获得精确和有效的文本-语音合成<主体>使用<EMP>JSML标记的,被说出的文本</EMP></主体>
<主体>元素的"下一个"属性的值是一个目标地址(例如,在主体已经对用户说话之后要被访问的地址)。下列例子会描述<主体>元素的功能,操作和JSML标记与"下一个"属性的使用。
<主体下一个="#菜单1">
<JSML>
欢迎使用IBM ViaVoice<EMP>语音浏览器</EMP>>。这个讲座会教您掌握可以用来控制您的语音浏览器的口语命令。
</JSML><主体>
使用JSML对主体进行格式化以便把重音放在术语"语音浏览器"上。在这种情况下"下一个"属性是一个引导浏览器访问当前页面上具有名称"菜单1"的元素的相对URL(或目标地址)。
如上所述,在CML的一个实施例中,<主体>和<菜单>元素提供口语呈现并且使用口语菜单进行静态信息导航。就象HTML那样,这个功能级别足够用于可以被组织成一组内部链接CML页面的静态信息。但是如果用户可以为应用提供从大集合中得到的信息,例如搜索字,美元数量,日期,股票名称等等,可以有更丰富的应用群。这种可能输入集合对于菜单而言显得过大,因而需要有另一种在客户端上收集输入的机制。此外,一个机制可以被用来计算呈现服务器上的"运行时"应用响应而不是被存储成菜单和主体元素。通过在服务器上运行的CGI(公共网关接口)程序和小服务程序或任何其他后端逻辑可以实现这个操作。在一个复杂逻辑被隐藏在交易或服务器应用程序后面的情况下,这种服务器端运行时响应修改是继续处理的唯一方法(当然除非使用在前面引用的IBM文档号Y0999-114中描述的会话框架方法发送关于逻辑的信息,或者把信息发送到客户端结构框架以消除对话的各个部分的歧义)。也可以使用一个<表格>元素在CML中收集这种用户输入。
表格元素一个<表格>元素从用户收集一或多个信息片段或字段。一个<表格>元素通常被用来收集诸如名称,地址,电话号码,和实际不会被呈现为菜单中的一列选项的任何其他类型信息的信息,并且具有以下通用形式<表格动作="URL">
介绍性消息文本<字段名称="名称1"规则="JSGF">提示文本1</字段>
<字段名称="名称2"规则="JSGF">提示文本2</字段>
</表格>
一个动作是一个在<表格>中使用的目标URL。与HTML中的方式相同,表格的<字段>的值被当做属性值对附加到动作上。一个表格集中一组足够保证能够回到呈现服务器(可以依次向一个信息服务器发送一个请求)的用户输入以便获得一个应用响应。当访问一个<表格>元素时,说出其标题文本(介绍性文本),并且接着逐个向用户提示包含的所有<字段>元素的值。当加载 <表格>时,激活一个匹配该<表格>元素的标题文本的语法,并且在此之后激活其它部分。<字段>标签具有以下通用形式<字段名称="名称2"规则="规则名称"数值="数值">提示文本</字段>。如果尚未提供一个数值(通过用户或<字段>标签的数值参数)并且提示文本非空,则通过说出指定提示文本向用户提示一个字段的值。填充一个字段的可接受的响应取决于所使用的输入技术。对于"所听即所说"方案,可接受的响应包含一个由提示文本的字构成并且后跟一个短语的子序列,其中上述短语与一个提供该字段的可能数值集合的指定语法(最好具有Java语音语法格式(JSGF))匹配。与语法匹配的响应部分变成字段的值。如下所述,这个方案可以被扩展到NLU输入。如果用户的响应填充了一个字段,则向用户接着提示下一个未填充字段,等等。
当已经指定所有字段值时,使用一个HTTP GET方法访问动作目标(即,结果被发送到呈现服务器),并且返回一个包含接着要访问的实体的CML页面。应当理解,在被提示时或者在仍可看见表格的任意位置上,通过说出一部分提示并且后跟字段的一个合法值(即,通过说出提示文本并且后跟一个匹配规则参数规定的规则名称的短语,其中"规则名称"是完全合格的JSGF规则名称),用户可以填充任意字段的值。
下列例子会图解一个表格元素的功能和操作。
<表格动作="HTTP//localhost8080/servlet/mcservlet/">
请完成那订购表格。
<字段名称="三明治"规则="语法检查.三明治">三明治是?</字段>
<字段名称="饮料"规则="语法检查.饮料">饮料是?</字段>
<表格>
当访问上述表格时,会话浏览器输出介绍"请完成订购表格。"用户接着被提示"三明治是?"。用户接着可以根据以下操作回答"三明治是鸡肉三明治"或"三明治是汉堡包"在JSGF语法"语法检查"中发现指定JSGF规则"<语法检查.三明治>",其中读出语法语法检查;
公共<三明治>=汉堡包鸡肉三明治;公共<饮料>=百事可乐;注意,用户也可以通过在被提示数值之前说出"三明治是三明治"或"饮料是饮料"之前来填充这个或任意字段,只要三明治表格仍然处于活跃状态。在这种情况下,浏览器选择一个字段值并且接着逐个向用户提示未填充的字段。这是一个被称为"混合主动"的对话功能。由于用户已经激活一个产生食物订购表格的菜单选择,这意味着用户可以通过说出"三明治是三明治"来取得主动,系统也可以通过向用户提示三明治来取得主动。
CML表格类似于HTML表格,并且在一个实施例中,CML使用一个类似于HTML的机制向服务器发送字段值当用户完成表格并且指定各个字段的数值时,浏览器把各个字段的名称=数值对附加到指定表格动作URL上,并且通过HTTP从服务器请求结果URL。表格动作URL最好引用一个诸如CGI脚本或Java小服务程序的专用功能的名称,其中服务器会处理名称=数值对并且返回一个应答。
就象对完成的表格的应答会是一个通过显示器被呈现给用户的HTML页面的图形Web浏览器那样,对于会话浏览器,应答会是一个通过语音(通过访问指定主体,菜单或表格实体)被呈现给用户的CML页面。在两种情况下,新页面会影响对后续输入动作的解释。
对话要点口语对话应用设计中的一个考虑是允许用户容易地确定他/她在"会话"中的任一点上可以说什么的能力。理想情况下,应用会从用户接受任何合理的口语输入(NLU),有时这是难以实现的。取而代之,一个应用可以把目标定成接受有限的输入集合。然而这种设计为用户带来必须学习和记住一个包括他/她的自然口语的任意子集的"语言"的繁重任务。
CML浏览器通过实现各种方案可以较好地缓和这个问题。一个方案是"所听即所说"方案,其中(如上所述)可接受的口语输入总是回应被提供给用户的口语提示。每当访问一个CML元素时,就改变浏览器会接受的用户输入集合。例如,在用户访问一个<菜单>或<表格>之后,浏览器会接受该菜单或表格的回声。按照"所听即所说"方案,接受的输入通常是菜单或表格提示的回声,或者是提示简读。
例如,如果用户听到"从主菜单选择电子邮件,股票行情",用户可以说"到主菜单";"到股票行情";和/或"到电子邮件"。另外,如果用户听到"您有2个消息来自Bill;Smith关于高尔夫球开球时间的新消息1;来自Jane Jones关于项目会议的消息2",用户可以说"到新消息";"到新消息1";"到消息2";"到Bill的消息";"到关于开球时间的消息";和/或"到关于项目的消息"。此外,如果用户听到"股票行情。股票代号是?",用户可以说"到股票行情";"到行情";"股票代号是IBM";"代号是IBM"和/或"股票是IBM"。
如上所述,使用一个包含某些标题文本("从主菜单选择")的<菜单>元素和一些包含某些提示文本("电子邮件","股票行情")的<选项>元素可以通过CML实现上述前两个例子。使用一个包含某些标题文本("股票行情")的<表格>元素和一个包含某些提示文本("股票代号是?")的<字段>元素可以实现最后一个例子。因此,<菜单>或<表格>的标题文本和<选项>或<字段>的提示文本定义了用户可以说出的内容。
可以使用实现对话的其他选项。例如,可以把答案预载到某些表格上。即,通过基于答案或用户选择的过程或脚本可以对某些脚本元素预先编制程序(即,变量是提示的字段)。当然,这个脚本可以使用/指向一个由其他本地或分布式事件和过程分配的变量(例如日期,查询呈现服务器产生的结果等等)。这意味着要捕捉事件,增加逻辑操作,循环和重定向(例如到达)语句。对于使用多个表格的情况,需要捕捉事件的能力。这种CVM上下文中的事件可以捕捉同样来自小应用程序及其他会话过程或脚本的事件。以类似于Java脚本或ECMA脚本的方式可以实现脚本。脚本可以被嵌入到表格<脚本>...</脚本>内。这意味着表格,菜单等等也可以抛弃和捕捉事件。这允许有适当的编程能力。脚本可以被嵌入到一个CML页面内部的任何地方。通过<对象>...</对象>标签可以实现过程,对话构件,会话基础类及其他服务。
在另一方面,一个"说你所听"方案允许用户受会话(而不是如上所述的浏览器)的控制。更具体地说,在一个会话式对话期间,每个以前访问的<菜单>或已经听到的<表格>仍然处于活跃状态。举例来说,假定用户已经听到选择"电子邮件"和"新闻"的主菜单。对于"说你所听"方案,用户可以通过说出"选择电子邮件"立即选择电子邮件应用,也可以在听到主菜单之后的任何时候通过说出"到新闻"来选择新闻应用,并且不必返回到主菜单。如果用户忘记了在主菜单上作出的选择,则用户可以通过说出"到主菜单"回朔到主菜单。这个原则适用于用户听到的所有菜单和表格。
另一个方案是"说你要听",其中菜单和表格在被访问之前变成活跃的并且在整个浏览器对话期间保持活跃。更具体地说,一个菜单或表格在第一次被浏览器加载时就变成活跃的,加载可以发生在菜单或表格被访问之前,例如在一个包含若干菜单和表格的页面被加载的情况下。通常情况下,即使在该页面上只有一个菜单或表格被访问(根据URL的规定),该页面的所有菜单或表格仍然会变成活跃的。在下面例子中说明了这种情况<页面>
<主体文本="#新2菜单">
来自Steve的关于增加工资的新消息2。
Bruce,我们已经决定今年给你增加250%工资。
不要全花在一个地方。
Steve</主体>
<菜单名称="新2菜单">
从消息菜单中选择<选项目标="#新3">下一个消息.</选项>
<选项目标="#新2向前">前一个消息.</选项>
</菜单>
</页面>
在上述例子中,假定用户请求听消息2。会话浏览器会访问URL以得到该页面(即会取出该页面并且访问该页面上的第一个单元),在这种情况下该页面是消息的主体。在完成消息之后,<主体>元素的"下一个"属性导致会话浏览器访问"新2菜单",该菜单会为用户提供几个消息处理选择。然而用户在选择一个选项之前不必等待听取菜单。取而代之,由于菜单在页面第一次被加载时就变成活跃的,用户可以在任何时候中断消息以便说出"到下一个消息"。有利的是,这个功能对经常使用的应用是有用的,其中用户学习预测还没有被呈现的菜单和表格。应当理解,当使用会话基础类在CVM上建立会话浏览器时,使用在前面引用的IBM文档号Y099-114中描述的框架可以实现"说你要听"方案。可选地,通过CML可以实现对话对象或对话构件。
应当理解,"说你所听"和"说你要听"机制促成了一个被称为"混合主动"的对话功能。这意味着在某些情况下-例如在浏览器向用户提示一组菜单项时-计算机在会话中采取主动,而某些时候-例如在用户忽略提示并且选择一个过去听过的菜单项,或者中断计算机并且选择一个仍未呈现的菜单项时-用户可以采取主动。因而,通过被浏览器访问和/或加载并且不仅仅包含最近被访问的元素的整个CML元素集合来定义浏览器可接受的的口语响应集合。然而,由于不再涉及到的菜单或表格是活跃的,这种处理有时会导致不期望的结果。因此,基于本发明的CML提供了一个限制菜单和表格的活跃范围的机制。
范围范围是一个允许CML应用设计师控制与一个具体的<菜单>或<表格>相关的口语输入处于活跃状态的持续时间的特性。通过一个可以和一个<菜单>或<表格>元素相关的范围属性规定"范围"特性<菜单名称="名称"范围="范围">标题文本,选项</菜单>
<表格名称="名称"动作="目标"范围="范围">标题文本,字段</表格>
示例性"范围"属性值如下所示局部只有在菜单或表格自身是浏览器最近访问的元素的情况下该菜单或表格才是活跃的。
页面只有在浏览器最近访问的元素位于直接包含菜单或表格的页面上(或该页面的子页)的情况下该菜单或表格才是活跃的。
全局这是一个缺省值,其中在从浏览器第一次加载菜单或表格开始的浏览器对话的全部持续时间内该菜单或表格均是活跃的(即使表格或菜单自身仍未被访问)。
特定于应用是指所有页面均属于站点或应用(例如通过元信息标签)。
在许多情况下,如果一个菜单或表格在浏览器第一次看见菜单或表格时就立即变成活跃状态并且在其后保持活跃状态,则为用户提供了最大的灵活性。例如,如上所述,使主菜单或主题菜单在整个对话期间保持活跃以便一个用户在不必首先通过菜单"迷宫"回溯的情况下可以直接跳到菜单提供的选项,这种处理是有利的。然而在某些情况下,这种处理会降低语音识别精确度并且产生不期望的结果。考虑下列例子。
<页面名称="新2">
<主体下一个="#新2菜单">
来自Steve的关于增加工资的新消息2。
Bruce,我们已经决定今年给你增加250%工资。
不要全花在一个地方。
Steve</主体>
<菜单名称="新2菜单"范围="页面">
从消息菜单中选择。
<选项目标="#新3">下一个消息.</选项>
<选项目标="#新2向前">前一个消息.</选项>
</菜单>
与各个消息相关的菜单允许用户说"到下一个消息"。然而在用户放下电子邮件消息去干另一个事情之后这个选择可能没有什么意义,并且在因语音识别错误而激活时会非常令人惊奇。所以,在这个例子中,消息菜单被指定一个"页面"范围,这意味着只在浏览器最近访问的元素位于包含该消息菜单的页面之中时该消息菜单才是活跃的。在这种情况下,这意味着"到下一个消息"只在最近的浏览器动作造成访问电子邮件项目的主体时才是活跃的。
在嵌入的CML(如下所述)中提供了对范围的附加使用和使用范围的行为。另一个可以被用于CML的范围标签是"多个"。下面提供了有关多个表格(不在CML表格中)的使用的讨论Kishore等人,标题为"使用表格的自由-流程会话管理",1999欧洲语音会议文集,布达佩斯,匈牙利,1999年9月和Davies等人,"用于金融应用的IBM会话式电话系统",1999欧洲语音会议文集,布达佩斯,匈牙利,1999年9月。注意,根据上述讨论,多个表格可以同时在一个页面上被激活,以此取代使多个页面活跃的方式。这些页面可以被明确嵌套在文档中,也可以被地址索引(被加载)。类似地,某些这样的表格可以被当作过程构件。
通常,如上所述,在一个NL形态下,通过激活多个表格来实现NL对话。表格被同时填充,直到一个表格的所有强制字段均被填充。当被填充时,执行对应的动作或查询。当多个表格被填充时,增加歧义消除对话(例如通过激活一个新的表格)。通常通过一个指示加载这些不同表格的页面加载多个范围表格<菜单名称=主nl范围=全局>
介绍性对话<表格名称=表格1范围=多个>...</表格>
<表格名称=表格2范围=多个>...</表格>
<表格名称=表格3范围=多个>...</表格>
</菜单>
当有任何隐含一个动作的输入时,在完成该动作后会加载一个新页面<菜单名称=主nl范围=全局>(我们"更新"全局菜单)<表格名称=表格1范围=多个上下文=保持>...</表格>
<表格名称=表格2范围=多个上下文=复位>...</表格>
<表格名称=表格3范围=无效上下文=复位></表格>
<表格名称=新表格范围=多个上下文=复位>...</表格>
</菜单>
可选地,可以通过以下方式加载所有这些表格<表格名称...范围...加载=目标></表格>
当提供一个加载参数时,从目标下载表格的内容并且将其放在<表格></表格>标签之间。相同概念可以被用于语言的任何其他元素。通常,更新菜单,增加新表格并且可以撤销某些表格(撤销范围)。
上述例子中的"上下文"标签指示如何处理以往的会话历史。在上述两个例子中,具有一个"保持"上下文的表格会保持通过前面的对话步骤填写到表格中的数值(用户以前的输入)。"复位"标签是指把数值重新设置成缺省值。还应注意可以通过一个持续时间标签定义范围范围=5秒或范围=1分钟或范围=一个范围的名称。范围被定义成<范围名称=范围1状态=活跃></范围>
当没有定义时,一个范围是非活跃的。当被定义时,范围可以是活跃或非活跃的。当范围被激活和撤销时,在该名称指定的范围内的元素被激活。
应当理解,通过一个过程性对象可以实现这里使用的表格<表格名称=表格3范围=多个上下文=复位加载=目标></表格>
其中目标页面包含小应用程序,过程,服务等等,例如<对话对象>
<小应用程序...>
</小应用程序>
</对话对象>
并且,一个对话对象可以是一个小应用程序(Java),一个脚本(由浏览器解释),一个会话对象(使用会话基础类被写到CVM顶端的会话对话),插件或小服务程序活动,或任何其他过程性实现或服务提供商。
在这种情况下,可以并行加载多个对象。这通常是在CVM顶端实现浏览器的情况,其中CVM能够登记这些不同对象及其上下文并且能够根据一个关于用户输入的函数确定活跃的对话。
最后这一项说明在CML和一个浏览器被加上适当的会话管理能力的情况下,CML可用于通过独立于基础NL技术的方式设计NL对话。这个方案完全支持基于表格,过程(决策网络)和语法的NL对话管理程序。
也可以具有重载标签(即修改与一个标签相关的动作)。通常,通过允许描述标签的新含义和重载定义的范围的XML或其他机制可以实现这个处理。
浏览器功能迄今为止我们针对口语输出和口语输入并且根据标记语言讨论了CML并且描述了浏览器的行为。下列讨论是针对会话浏览器的功能,这些功能不是CML特有的,而是浏览器实现的特征。
最初,会话浏览器最好实现一些内部命令(从根本上类似于可视浏览器的菜单和工具条上表现的内部功能)。下面是这种命令的例子安静;不说话这些命令会导致浏览器停止当前的口语输出并且等待用户的进一步指令。这个功能被称为"切入"并且适于所有的口语输入,使得一个用户可以在任何时候中断浏览器。所以,用户可以通过说出"请安静"来中断浏览器,而在这样的情况下浏览器停止当前输出并且等待进一步指令。为了使浏览器重复中断的输出,用户可以说"请重复"。用户也可以通过一个诸如菜单项选择的口语命令在任一点中断浏览器。
再说一遍;重复这些命令会导致浏览器重复最近访问的元素(菜单,表格,或主体)。
返回这个命令会导致浏览器返回到历史记录中一个以前访问的元素。
前进这个命令会导致浏览器前进到历史记录中下一个访问的元素。(只在"返回"命令被执行某些次之后才有意义)。
到开始处([[[go]to]the]beginning)这个命令会导致浏览器到达第一个被访问的元素上述示例性命令中的方括号指示任选字。任何这样的命令可以位于"请"之前或之后。可以为浏览器定义其它的标准命令,也可以被用户添加。
在这些各种类型的口语输入之间不可避免地会出现歧义。通过维护一个最近使用(MRU)单元队列在单元(表格和菜单)级别上消除歧义。更具体地说,如果匹配到一个被单元允许的口语短语(后跟标题文本或选择提示的引人注意的短语,后跟有效字段值的字段提示),则确定一个口语输入与一个单元相对应。浏览器试图按顺序确定每个口语输入与MRU中各个单元的对应。在一个实施例中,可以通过下述操作维护MRU队列1.当一个口语输入被确定与队列中的一个单元对应时,该单元被移到队列头部。
2.接着,如果该口语输入导致一个目标被访问,则包含该目标的页面内的所有单元均被移到队列头部。
3.最终,对应于被访问目标的单元被移到队列头部。
应当理解,对于一个建立在CVM顶端的浏览器,如国际商业机器公司文档号Y0999-111P中讨论的,CVM会在怀疑有任何歧义的情况下进行适当的歧义判决并且与用户进行对话。在根本上,一旦产生一个CML规格,实际上就会规定处理对话的方式。如果需要改写规格,或者如果需要引入其他行为,可以通过针对基础CVM,OS或平台(如果可用)的快速调用来加以实现。
插件本发明提供了一个机制,该机制提供了一个类似插件或小应用程序的能力。一个指定一个<选项>目标或一个<表格>动作的URL通过使用本地协议并且按照下面几个示例性表格中的一个可以调用本地插件代码本地服务/功能;或本地服务/功能?参数l=值l,参数2=值2,...
第一个表格被用于没有参数的<选项>目标和参数由浏览器根据所包含的<字段>的值来提供的<表格>动作。第二个表格被用于通过URL提供参数的<选项>目标。
在使用Java实现的浏览器的一个最优实施例中,通过以下方式实现一个本地URL,即在一个本地列表中查找把将其映射成一个类名称的服务,在这个类没有实例时则初始化该类的一个对象,并且接着把功能解释成一个被调用的方法的名称。服务列表最好位于会话浏览器的文件服务中,其中文件自身包含一个对其格式的描述。这包含所有可用服务及其他对象(过程性或非过程性)的登记。
通过本地URL调用的插件代码返回一个包含URL表示的CML文档的字符串。访问一个本地URL导致以和访问任何其他URL相同的方式解释返回的文档。应当理解,也可以使用小应用程序(下载或本地),会话对象和小服务程序/CGI以及分布式应用(具有套接字连接和RPC协议)充当一个本地应用也可以实现这些功能。
通过使用浏览器提供的一个API启动一个线程并且使浏览器异步访问指定的URL(包含本地URL),服务可以接着与浏览器进行异步交互(例如,异步通知用户重要事件)。浏览器API允许本地插件代码促成浏览器访问一个指定的URL,就好象用户已经说出导致浏览器访问该URL的某些话那样。这个功能可用于根据本地事件提供异步用户通知。本地插件会扩展类CML,服务,由此本地插件继承了一个访问上述CML,服务的方法,并且调用该方法会导致浏览器访问具有指定参数的指定URL公共类服务{public void visit(URL url,Dictionaryparameters)throws IOException;}。
针对嵌入会话浏览器应用的考虑登记机制在一个嵌入会话浏览器的功能可能因资源(存储器,CPU能力等等)不足而受到限制的情况下,可以使用一个cookie机制,该机制允许浏览器向一个服务器传送一个有关其能力的描述。例如Speech_Reco=1;Speaker_Reco=0;TTS=1;Dialog_Manager=0,NLU=0;Speech_Reco.Vocabulary_Size=500;Speech Reco.FSG=1等等。在接收到cookie时,服务器端可以检查其内容并且接着相应修改CML页面。例如,如果cookie指示词汇大小为50,则可以用非常有限的词汇产生CML菜单(例如为每个项目选择一个号码以代替实际的链接)。
除了使用cookie之外,在另一个实施例中,可以使用如前面引用的国际商业机器公司文档号为YO999-111P和YO999-113P的专利申请所述的登记会话协议。在这样一个实施例中,交换描述引擎的特征和属性以及应用的要求的对象。握手会确定应用的会话职责。并且在这种情况下,初步握手可以使用HTTP或其他诸如RPC,RMI等等的协议。这点对于可以直接与服务器对话以检查其一个针对本地浏览器能力的可能修改行为的对话对象而言尤其重要。还应注意,象在常规浏览器中那样,这些cookies(或过程性协议)可以执行其他任务,例如根据用户偏好,这些偏好或整个对话历史的持续时间定制呈现或服务。换句话说,如果用户选择一个选项,则通过使cookies具有在连接时上载的一个站点的以往历史记录来保证上下文历史在设备上的延续。当通过一个CVM或过程性对象执行处理时,通过过程性协议发送信息。当被存储在服务器上时,ID cookies也被用来保证设备上的延续性。当从不同设备连接时,cookies(或过程性协议)可以被存储在服务器或呈现服务器上。使用诸如用户ID,主叫方ID,发声者识别或语音生物统计的传统方法也可以识别用户。必须传递(通过一个cookie或通过会话协议)任何其他的元信息(持续时间,用户偏爱,应用优先顺序和使用历史,上下文等等)。
所以,如果会话引擎不能产生基本形,标签可以提供一个基本形。可以使用各种方案1)在确定浏览器能力后,向浏览器发送一个不同的CML页面;2)一个代码转换器根据登记的能力可以动态修改一个被发送到浏览器的CML页面;或3)可以修改一个CML页面以便发送语音并且在一个网络服务器(如IBM文档号YO999-113P中所述)上执行复杂功能。
动态释放会话浏览器可以使用CML的动态活动。这是另一个允许修改针对嵌入式应用的会话浏览器的行为的解决方案。具体地,除了完全遵循"所听即所说"模式之外,会话浏览器可以只在本地激活标记,除非CML明确限制。此外,在到达支持活跃词汇的最大数量时,语音浏览器可以逐渐和分层次地释放最旧的,但不是浏览器命令解释程序命令或全局命令的命令(由CML通过一个全局标签<全局></全局>或优先级标签定义;这等价于一个范围标签的概念)。一个顶级菜单保持活跃,直到一个菜单项下面的命令首先被释放等等。释放的命令被高速缓冲在串联的命令高速缓冲存储器中。当得到一个命令的可能性(或对识别输入的其他置信度测量)过低或命令被用户拒绝时,从最近使用的命令高速缓冲存储器中重新解码出语音,直接获得一个可接受的识别。最近,已经开始投入力量开发适用于识别语音的置信度测量。例如,在NIST和DARPA于1996年4月29日-5月1日在MITAGS,MD组织的"LVCSR Hub5工作会议"中,建议了为每个字附上置信级的不同方案。其中一个方法使用了通过字相关特性(发声训练量,最小和平均三音出现率,语言模拟中的事件,音素/辅音(lefemes)数量,持续时间,声学评分(更快匹配和更细匹配)语音非-语音),句相关特性(信噪比,发声速率估测每秒内字、辅音或元音的数量,语言模型提供的句子相似度,语言模型中的三字母组出现率),上下文中的字特性(语言模型中的三字母组出现率)以及发话人特征分析特性(重音,方言,性别,年龄,发声速率,一致性,音频质量,信噪比,等等。)训练出的决策树。根据决策树的每个叶上的训练数据计算一个误差概率。在Breiman等人,"分级和回归树",Chapman&Hal,1993中描述了建立这种决策树的算法。在进行识别时,在识别期间测量所有或某些这样的特性并且针对每个字,决策树前进到一个提供某个置信级的叶子。在C.Neti,S.Roukos和E.Eide,标题为"作为语音识别中堆栈搜索参考的,基于字的置信度测量",ICASSP97,慕尼黑,德国,1997年4月这一参考文献中,描述了一个完全依赖一个IBM堆栈解码器返回的评分的方法(使用记录-相似度-实际平均增量记录-相信度,详细匹配,快速匹配)。在LVCSR会议录中,提供了另一个使用预测值通过线性回归估测置信级的方法。使用的预测值是字延迟,语言模型评分,每个框架的平均声学评分(最优评分)和与顶端选择具有相同的字的NBEST列表分数。本实施例提供了这两个方案(通过决策树和线性预测值测量置信级)的组合以便系统地提取不仅限于语音识别的任何翻译过程中的置信级。
可以实现一个"回绕"或"重新加载"命令以便向用户回读在一个页面上遇到的所有命令。它遵循与动态释放相同的原则。更具体地说,浏览器提供一个完整的语音导航接口以便允许通过上述表格和菜单进行导航。也可以通过一个诸如IBM ViaVoice VoiceCenter的命令和控制接口(对窗口执行命令和控制)来加以实现。
基于能力的框架与框架结构类似,CML开发者可以提供多个基于不同能力(HTML中的cfr<框架>和</框架>标签)水平的对话。
具有最低要求的表格当然只有具有有限的可能输入集合(有限词汇和FSG,选定的菜单)的表格(或菜单或其他构件)才能被用于嵌入引擎。为了保持具有表格能力,浏览器提供至少两个其他形态i)根据预定语法(在服务器上编辑)和词汇表进行表格填充释放除<全局<命令之外的其它命令,ii)小应用程序捕捉音频,计算特征并且发送到由一个URL指示的服务器,iii)小应用程序向该服务器发送或从其接收原始音频。由服务器或浏览器选择表格填充方法。这要求每个加载的语法/词汇表必须包含一个有关引擎要求的描述(ii和iii需要如YO999-113P中描述的服务器/通信能力)。
会需要一个粗略确定一个指定FSG,代码转换方案以及多页面或框架方案的引擎最低要求的工具。
多态浏览器对于多态浏览,可以在相同页面上提供HTML和CML,或者分别发送并且加以同步。标签区分将在可视浏览器(<GUI>)上展示的内容和将在多态浏览器(<M-M>)与语音浏览器(<语音>)上展示的内容。一个GUI浏览器显示每项内容,而一个多态浏览器可以有选择地显示某些项目。在下面例子中说明了这种情况<GUI>
</GUI>
<Speech+GUI+M-M>
</Speech+GUI+M-M>
<GUI+M-M>
<img=...>
</GUI+M-M>
<Speech>
<GUI>
</GUI><M-M>
</M-M>
<M-M+Speech>
</M-M+Speech>
换句话说,CML和HTML被保留。增加了某些动态HTML特性,功能和组合规则。
附加提供动态ML的标签(综合HTML和CML)例如当TTS读出文本时,该项目变色或一个局部背景变色。通过语音等等选择改变颜色的链接。通过语音选择识别的文本(可以选择和修改要改变的颜色)。
概括地讲,会话浏览器的引入允许统一因特网和电话(IVR),从而减少费用,扩大这种应用的覆盖范围和灵活性。体系结构使用相同的访问协议和信息结构(HTML,XML,CML和/或其他诸如WML的ML)。本发明可以被用于许多不同的业务解决方案。主要优点是易于实现,高度灵活,平台独立,使用现有基础设施,集中配置和管理,提供高安全性,低成本维护,和易于扩充/伸缩,所有这些优点均适用于任何因特网解决方案。有利的是,应用提供商只需要支持一个HW平台,因而便于维护。内容提供商可以管理相同WWW服务器的各种应用以便为大量的不同客户端(纯语音,纯GUI和语音/GUI的组合)提供服务,因而便于维护。此外,因特网技术允许自动更新网络上的所有服务器。也可以从可以通过因特网访问的任何地方集中管理访问权限。可以保持高度安全。当前体系结构可以被扩展到除普通电话之外的其他客户端,例如GSM终端。从维护一个诸如个人银行的服务所需的投资的角度看,这是非常吸引人的。
另外,当只使用HTTP协议时,浏览器(会话/GUI)和WWW服务器之间的网络传输被最小化,网络被用于成批发送完整的重放。例如,当输入帐号和社会安全号时,只有浏览器/会话浏览器活跃,而网络是空闲的。浏览器有足够的智能在查询服务器之前发现许多错误。通过CVM服务或下载的小应用程序可以进行纠错和本地歧义消除。在两种情况下使用相同的协议,即HTTP协议向WWW服务器发送信息。总是使用相同协议回送重放信息并且由浏览器负责通过正确的表格传送给用户。建议的体系结构允许这些应用的设计师使用小应用程序,小程序(Java或其他会话过程,尤其是在使用CVM编写浏览器的情况下),这些程序在浏览器中被用来预处理输入和输出信息。其中还进一步增加了应用的灵活性,此外还减少了网络的负载。对于会话浏览器,我们可以容易地设想到,会发送一个常规"文本到语音"小应用程序,因而所需带宽会相同或小于图形方式。具体地,可以合成另一种语言的提示并且识别其他语言的输入。
当然,本发明为当前电话应用,通常是IVR应用提供了这些优点。电话号码最好被用于计费。因特网的延迟不会为IVR带来任何问题。不管怎样,可以使用类似Qos(服务质量)和RSVP(资源保留协议)的服务减少延迟。通过因特网连接到其他服务器(IVR)的能力进一步扩充了能力。服务器可以位于一个计算机网络上的任何地方,其中可以在该网络上的任何地方访问所需的语音识别系统。具有TCP/IP协议的分组交换技术的资源利用率比普通电话连接更好。可以根据使用的信道的质量进行计费。交换分组网络比较便宜并且传递较小的数据,因而需要较低的带宽。这样会以更低的费用提供服务。这个概念为任何人提供了建立一个服务器并且把信息放在网上的机会。
虽然这里已经针对附图描述了说明性的实施例,但应当理解,本系统和方法不仅限于这些详细的实施例,并且本领域的技术人员在不偏离本发明的范围和宗旨的前提下可以进行各种其他的改变和修改。所有这样的改变和修改确立被指定包含在如所附权利要求书所定义的本发明的范围内。
权利要求
1.一个会话浏览系统,其中包括一个会话浏览器,其中包括一个把输入命令转换成导航请求的命令和控制接口,上述输入命令包括语音命令;和一个分析并解释CML文件的CML(会话标记语言)处理器,CML文件包括表示一个被提供给用户的会话用户界面的元信息;一个对输入命令进行解码以由命令和控制接口解释并且对CML处理器提供的元信息进行解码以产生合成音频输出的会话引擎;和一个向内容服务器发送导航请求并且根据导航请求从内容服务器接收CML文件的通信堆栈。
2.如权利要求1所述的会话浏览系统,其中输入命令包括多态输入。
3.如权利要求1所述的会话浏览系统,其中还包括一个(CVM)会话虚拟机,其中会话浏览器在CVM的顶端运行并且通过CVM向会话引擎请求会话服务。
4.如权利要求3所述的会话浏览系统,其中会话浏览系统在一个客户端设备中运行,并且通信堆栈包括在内容服务器上登记客户端设备的会话能力的会话协议。
5.如权利要求3所述的会话浏览系统,其中会话浏览器,CVM和会话引擎中的一个被分布在一个网络上。
6.如权利要求1所述的会话浏览系统,其中通信堆栈实现标准网络协议以便发送导航请求和接收CML文件。
7.如权利要求6所述的会话浏览系统,其中标准网络协议包括TCP/IP(传输控制协议/网际协议),HTTP(超文本传输协议),WAP(无线应用协议),VoIP(互联网语音协议)及其组合中的一种。
8.如权利要求1所述的会话浏览系统,其中还包括一个把内容服务器的传统信息格式转换成CML文件的代码转换器。
9.如权利要求8所述的会话浏览系统,其中代码转换器访问并解释一个应用的逻辑信息以便通过会话浏览器产生一个与用户之间的对话。
10.如权利要求8所述的会话浏览系统,其中代码转换器运行在会话浏览器,会话代理服务器,内容服务器中的一个上,或者分布在它们中间。
11.如权利要求8所述的会话浏览系统,其中代码转换器根据运行会话浏览系统的机器的会话能力产生一个定制CML文件。
12.如权利要求1所述的会话浏览系统,其中CML文件包括以下单元中的一个(1)一个组合其他CML单元的页面单元;(2)一个指定会话浏览器的口语输出的主体单元(3)一个包括被说给一个用户的介绍性文本和一列选项的菜单单元,其中各个选项具有提示文本并且与一个目标地址相关,在选择对应选项的情况下上述地址指定一个CML单元;(4)一个输入至少一个信息项和一个目标地址以便发送至少一个信息项的表格单元;和(5)上述单元的组合。
13.如权利要求12所述的会话浏览系统,其中一个目标地址包括一个URL(统一资源定位符)和一个套接字地址中的一个。
14.一个提供会话浏览的方法,其中包括的步骤有接收一个输入命令,该输入命令包括一个语音命令;用多个会话引擎中的至少一个解码输入命令;根据解码的输入命令产生一个检索CML(会话标记语言)的导航请求,CML文件包括表示一个被提供给用户的会话用户界面的元信息;使用一个标准网络协议发送导航请求并且访问所请求CML文件;和分析和解释包括CML文件的元信息以便提供CML文件的信息内容的一个音频呈现。
15.如权利要求14所述的方法,其中还包括的步骤有在一个从其访问到CML文件的实体上登记会话能力;和根据登记的能力定制CML文件。
16.如权利要求14所述的方法,其中还包括的步骤有为访问一个包括传统信息格式的文件产生一个导航请求;和把传统信息格式转换成一个CML文件。
17.如权利要求16所述的方法,其中由一个与内容服务器相关的代码转换代理执行转换步骤,上述文件是从该内容服务器访问到的。
18.如权利要求14所述的方法,其中还包括访问并解释一个与CML文件相关的应用的逻辑信息以便产生一个对话的步骤。
19.一个实际包含一个指令程序的机器可读程序存储设备,上述指令程序可以被机器用来执行提供会话浏览的方法步骤,该方法步骤包括接收一个输入命令,该输入命令包括一个语音命令;用多个会话引擎中的至少一个解码输入命令;根据解码的输入命令产生一个检索CML(会话标记语言)的导航请求,CML文件包括表示一个被提供给用户的会话用户界面的元信息;使用一个标准网络协议发送导航请求并且访问所请求CML文件;和分析和解释包括CML文件的元信息以便提供CML文件的信息内容的一个音频呈现。
20.如权利要求19所述的程序存储设备,其中还包括执行以下步骤的指令在一个从其访问到CML文件的实体上登记会话能力,使得该实体可以根据登记的能力定制CML文件。
21.如权利要求19所述的程序存储设备,其中还包括执行以下步骤的指令为访问一个包括传统信息格式的文件产生一个导航请求;和把传统信息格式转换成一个CML文件。
22.如权利要求19所述的程序存储设备,其中还包括执行访问并解释一个与CML文件相关的应用的逻辑信息以便产生一个对话的步骤的指令。
全文摘要
一个会话浏览系统(10),该系统包括一个会话浏览器(11),该浏览器具有一个把语音命令或来自I/O资源(27)的多态输入转换成导航请求的命令和控制接口(12),一个分析并解释一个CML(会话标记语言)文件的处理器(14),而CML文件包括表示一个会话用户界面的元信息,该界面被提供给一个用户。系统(10)包括会话引擎(23),该引擎对输入命令进行解码以便被命令和控制接口解释,并且对CML处理器提供的元信息进行解码以便产生合成音频输出。浏览器(11)通过从一个系统平台(15)发出系统调用访问那引擎(23)。系统包含一个通信堆栈(19),通信堆栈(19)向一个内容服务器发送导航请求并且根据导航请求从内容服务器接收CML文件。一个会话代码转换器(13)把呈现资料从一种形态变换成一种会话形态。代码转换器(13)包含一个把GUI页面变换成CUI(会话用户界面)页面的功能代码转换器(13a)和一个把应用,交易或站点的业务逻辑变换成可接受的对话的逻辑代码转换器(13b)。会话代码转换可以把HTML文件转换成由会话浏览器(11)解释的CML文件。
文档编号H04M3/44GK1342290SQ9981160
公开日2002年3月27日 申请日期1999年10月1日 优先权日1998年10月2日
发明者庞纳尼·格帕尔克里施南, 布鲁斯·D·卢卡斯, 斯蒂芬尼·H·梅斯, 戴维·纳哈莫, 简·塞蒂维 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1