分布式语音服务转让专利

申请号 : CN200510113305.4

文献号 : CN1764190B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王冠三

申请人 : 微软公司

摘要 :

本发明涉及在客户机和服务器之间建立媒体信道和信令信道。所述媒体信道使用用于通信的选定的编码解码器和协议。通过所述媒体信道和信令信道,在所述客户机上的应用程序可使用在所述服务器上的语音服务。

权利要求 :

1.一种在客户机和服务器之间通信的方法,其特征在于,包括:利用所述客户机来提议第一编码解码器和第一协议;

利用所述服务器来确定第一编码解码器和第一协议是否可为所述服务器接受;

当为所述客户机和服务器两者接受时,接受所提议的编码解码器和所提议的协议;

在web服务环境中在单个步骤中建立一个媒体信道和一个信令信道,所提议的第一编码解码器和所提议的第一协议要被使用于所述媒体信道;并且通过所述媒体信道和所述信令信道在所述客户机和所述服务器之间交换信息。

2.如权利要求1所述的方法,其特征在于,还包括在所提议的第一协议和所提议的第一编码解码器不为服务器接受时,利用所述服务器来向所述客户机提议第二协议和第二编码解码器。

3.如权利要求1所述的方法,其特征在于,建立所述媒体信道包括声明因特网协议地址和与所述因特网协议地址相关的端口。

4.如权利要求1所述的方法,其特征在于,进一步包括提供被用于建立所述媒体信道的包含至少一个编码解码器和至少一个协议的列表。

5.如权利要求1所述的方法,其特征在于,所述交换信息包括在媒体信道上传输语音数据。

6.一种用于提供语音服务的方法,其特征在于,所述方法包括:通过根据已建立的信令协议的信令信道接收信令信息;

根据已建立的编码解码器和协议通过媒体信道接收语音信息,其中所述媒体信道随着超时而过期;以及在web服务环境中处理所述信令信息和所述语音信息,其中所述信令信道和所述媒体信道是在单个步骤中建立的。

7.如权利要求6所述方法,其特征在于,所述方法进一步包括在所述语音信息上执行语音识别。

8.如权利要求6所述方法,其特征在于,所述方法进一步包括提供计算机支持电信应用程序(CSTA)接口。

9.如权利要求6所述方法,其特征在于,所述方法进一步包括解释简单对象访问协议(SOAP)消息。

10.如权利要求6所述方法,其特征在于,所述方法进一步包括处理所述语音信息以识别其中包含的语义信息。

11.如权利要求6所述方法,其特征在于,所述方法进一步包括向与因特网协议(IP)地址相关的特定端口发送信息。

12.如权利要求6所述方法,其特征在于,所述方法进一步包括发送简单对象访问协议(SOAP)消息。

13.一种在计算机网络中处理信息的方法,其特征在于,包括:在web服务环境中通过在客户机和服务器之间的一次交换中建立媒体信道并建立信令信道来在所述客户机和所述服务器之间建立关系;

根据特定协议从所述客户机向所述服务器发送数据,所述数据包括音频数据或文本数据;

如果所述数据是音频数据,将所述数据从音频数据转换为文本数据,如果所述数据是文本数据,将所述数据从文本数据转换为音频数据;并且根据所述特定协议将转换后的数据从所述服务器发送到所述客户机。

14.如权利要求13所述方法,其特征在于,所述特定协议是基于CSTA(计算机支持电信应用程序)的。

说明书 :

分布式语音服务

[0001] 相关申请的交叉引用
[0002] 本申请要求递交于2004年10月22日的美国临时专利申请序列号No.60/621,303的优先权,其内容整体结合在此作为参考。

背景技术

[0003] 本发明涉及定义和处理计算机交互操作的方法和系统。尤其是,本发明涉及在一个系统,诸如一个电信系统,中的设备之间建立通信协议的方法和系统。
[0004] 计算机支持电信应用程序(CSTA)是一个用于全球以及企业通信的广泛适用的标准组。尤其是,CSTA是一个指定了对电信底层结构的可编程访问以及控制的标准。可以开发用于广泛任务种类的软件,范围从建立并接收简单电话呼叫到通过音频和图像管理大型多点协作。
[0005] CSTA标准化 于多个ECMA/ISO(ECMA International Rue du Rh ne 114 CH-1204Geneva,www.ecma-international.org)标准中。核心操作模型和CSTA对象、服务以及事件的语义定义在ECMA-269中。这些CSTA特征以一个抽象的平台式的独立方式定义,这样它们可以适应于多种编程平台。此外,CSTA还伴有多个标准化编程或协议语法,其中,ECMA-323定义了绑定于CSTA的可扩展标记语言(XML),即通常所知的CSTA-XML,以及ECMA-348web服务描述语言(WSDL)绑定。这些语言绑定,被认为是CSTA标准组的一部分,保证了最大化的交互操作性,使CSTA特征可通过任何标准传输协议,包括传输控制协议(TCP)、会话启动协议(SIP)、或是简单对象访问协议(SOAP),开放于运行着不同操作系统的计算机。
[0006] 进来,CSTA表现出了在交互语音服务领域的强有力的适用性。这种适用性是基于语音应用程序语言标签(SALT)的增强语音服务所推进,SALT的进一步描述在SALT 1.0说明书中,可见于www.saltforum.org。通过使用SALT,呼叫中心可以进一步的自动化,包括多种语音相关特征。然而,呼叫控制以及语音控制应用程序的不同造成了促进分布式语音服务的困难。这样,存在着在促进语音服务时建立协议的需求。

发明内容

[0007] 本发明涉及在客户机和服务器之间建立一媒体信道以及一信令信道。媒体信道为通信使用选定的编码解码器和协议。通过媒体信道以及信令信道,一个客户机上的应用程序可以使用服务器上的语音服务。

附图说明

[0008] 图1-4示出了使用本发明的示例性计算设备。
[0009] 图5示出了用于分布式语音服务的示例性体系结构。
[0010] 图6示出了用于实现分布式语音服务的示例性系统。
[0011] 图7示出了用于在SIP环境中建立通道的示例性方法。
[0012] 图8示出了用于在web服务环境中建立通道的示例性方法。

具体实施方式

[0013] 在描述用于分布式语音服务的体系结构以及用于实现其的方法之前,描述可在体系结构中工作的通常计算设备是有用的。现在参照图1,一个数据管理设备(PIM、PDA或是诸如此类)的示例性外形在30示出。然而,可以预期的是本发明使用下述计算设备时同样有用,并且尤其是,这些计算设备含有有限的表面面积用于输入按键或诸如此类。例如,电话和/或数据管理设备也将会得益于本发明。这些设备将含有对比现有移动个人信息管理设备以及其他便携式电子设备增强了的功能,并且这些设备的功能和大小尺寸似乎更鼓励用户在任何时间都携带这些设备。相应地,在此披露的示例性数据管理或示出的PIM设备、电话以及计算机不是意图限制本体系结构的范围。
[0014] 一个数据管理移动设备30的示例性外形在图1中示出。移动设备30包括一个机架32并带有一个用户界面包括一个显示器34,它它使用了接触传感显示屏连同一支铁笔33。铁笔33是用来在指定的相应点按压或接触显示器34以选择一片区域、有选择地移动指针的开始位置、此外或是诸如通过手势或书写提供命令信息。可选地,或此外,一个或多个按键35可被包括在设备30上,用于导航。此外,可提供其他输入机制诸如转动轮、滚筒或诸如此类。然而,需要注明的是,本发明不是意图受限于这些形式的输入机制。例如,其他形式的输入机制可包括诸如通过计算机影像的一个虚拟输入。
[0015] 现在参考图2,块状图示出了包括移动设备30的功能组件。一个中央处理单元(CPU)50实现了软件控制功能。CPU 50连接显示器34从而根据控制软件生成的文本和图像标志显示在显示器34上。扬声器43通常情况下通过数模转换器59连接到CPU 50以提供可听输出。下载或由用户键入移动设备30的数据存储在一个非易失性读/写随机访问存储器54,后者双向连接到CPU 50。
[0016] 随机访问存储器(RAM)54为CPU 50执行的指令提供易失性存储,并存储临时数据,诸如注册表键值。默认的配置选项键值以及其他变量被存储在只读存储器(ROM)58中。ROM 58可同样被用来存储用于设备的控制移动设备30的基本功能以及其他操作系统的核心功能(如,在RAM 54中加载软件组件)的操作系统软件。
[0017] RAM 54也作为一个用于代码的存储器,通过类似PC上用于存储应用程序的硬盘的方式。需要注明的是虽然非易失性存储器被用来存储代码,它可有选择地被存储在不用于代码执行的易失性存储器上。
[0018] 通过一个连接到CPU 50的无线收发器52无线信号可被移动设备传输/接收。一个可选的通信接口60也可被提供用于从计算机(如,台式计算机),或有线网络,如果需要的话,直接下载数据。因此,接口60可包含多种形式的通信设备,例如,红外线链接、调制解调器、网卡、或诸如此类。
[0019] 移动设备30包括一个麦克风29、一个模数(A/D)转换器37、以及一个可选的存储在存储器54上的识别应用程序(语音、DTMF、手写、姿势或计算机影像)。作为示例,回应于可听的信息、来自设备30用户的指令或命令,麦克风29提供语音信号,后者由A/D转换器37数字化。语音识别应用程序可在数据化语音信号上执行标准化和/或特征提取功能以获取中间语音识别结果。
[0020] 使用无线收发器52或通信接口60,语音数据被传输到一个下文所述的并在图5的体系结构中示出的远程语音服务器204。识别结果随后返回给移动设备30以在那里呈现(如,可视和/或可听),并最后传输给一个web服务器202(图5),其中web服务器202和移动设备30运行为客户机/服务器关系。
[0021] 同样的处理可被用于其他形式的输入。例如,手写输入可被结合/或不结合在设备30上的预处理而数字化。类似语音数据,这个形式的输入可被传输到语音服务器204用于识别,其中识别结果被返回到设备30和/或web服务器202中的至少一个。类似有,DTMF数据、姿势数据以及影像数据可被类似处理。
[0022] 根据输入的类型,设备30(以及其他形式的以下讨论的客户机)将包括必要的硬件,诸如用于影像输入的照相机。
[0023] 图3为一则示例性实施例的一个便携式电话80的平面视图。电话80包括一个显示器82和一个键盘84。通常,图2中的块状图应用到图3中的电话,虽然可能需要用于执行其他功能的额外电路。例如,对图2的实施例要求一个作为电话操作而言是必须的收发器;然而,这些电路与本发明不相关。
[0024] 除了上述的便携式或移动计算设备,还可被理解的是本发明可被用于多种其他计算设备例如通用台式机。例如,本发明可允许一个身体障碍的用户当很难操作其他常规输入设备(诸如全字符—数字键盘)时,向计算机或其他计算设备输入或键入文本。
[0025] 本发明同样可操作在多种其他通用或特殊用途计算设备、环境或配置中。
[0026] 适合结合本发明使用的著名计算系统、环境和/或配置的示例包括,但不限于,常规电话(不带任何荧幕)、个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费品电器、射频识别(RFID)设备、网络PC、小型机、大型机、包括任何上述系统或设备的分布式计算环境,以及诸如此类。
[0027] 下面所述的是对图4中所示出的通用功能计算机120的简要描述。然而,计算机120同样是适合的计算环境的一则示例并不是旨在给出对本发明的使用范围或是功能的任何限制。计算机120也不能被解释为含有任何涉及在此所示组件的任一或其组合的依赖或要求。
[0028] 本发明可被描述为计算机可执行指令的通常格式,诸如由一个或多个计算机或其他设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、应用程序、对象、组件、数据结构、以及诸如此类。本发明还可被实现于分布式计算环境,后者中的任务被由通信网络连接在一起的远程处理设备所执行。在一个分布式计算环境中,程序模块可位于本地以及远程计算机存储介质中,包括内存存储器设备。借助附图在下文描述了由应用程序以及模块执行的任务。本领域熟练技术人员可通过写入于任何形式的计算机可读介质的计算机可执行指令实现该描述以及附图。
[0029] 参考图4,计算机120的组件可包括,但不限于,一处理单元140、一系统存储器150、以及将包括系统存储器在内的各种系统组件连接到处理单元140的系统总线141。系统总线141可为多种类型的总线结构,包括存储器总线或存储器控制器、外围设备总线、以及使用任何的多种总线体系结构的局部总线。
[0030] 作为示例,而非限制,这些体系结构包括工业标准体系结构(ISA)总线、通用串行总线(USB)、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围设备组件互连(PCI)总线(也被称为Mezzanine总线)。计算机120通常包括多种计算机可读介质。计算机可读介质可为计算机120可访问的任何可用介质,并包括易失和非易失介质、可移动和不可移动介质。通过示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括通过任何方法或技术实现的,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的,易失和非易失,可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储器设备、或任何其他可被用来存储所需信息并能够由计算机120访问的介质。
[0031] 通信介质通常以一个已调制的数据信号,诸如载波或其他传输机制的形式来体现计算机可读指令、数据结构、程序模块或其他的数据,并包括任何信息传递介质。术语“已调制的数据信号”表示为了在信号内编码信息而设置或改变,其一个或多个特征的信号。通过示例,而非限制,通信介质包括有线介质,诸如有线网络或直线连接、以及无线介质诸如声学的、FR、红外以及其他无线介质。任何上述的组合也被包括在计算机可读介质的范围内。
[0032] 系统存储器150包括易失和/或非易失存储器形式的计算机存储器介质,诸如只读存储器(ROM)151以及随机访问存储器(RAM)152。基本输入/输出系统153(BIOS)一般被存储在ROM 151中,它包括诸如在起动过程中有助于计算机120内基本元件间传递信息的基本例程,RAM 152通常包括可由处理单元140立即访问和/或进行操作的数据和/或程序模块。通过示例,而非限制,图4示出了操作系统154、应用程序155、其他程序模块156、以及程序数据157。
[0033] 计算机120也可包括其他可移动/不可移动的易失/非易失计算机存储介质。
[0034] 仅仅作为示例,图4示出了从不可移动非易失磁性介质读取或写入的硬盘驱动器161、从可移动非易失磁盘172读取或写入的磁盘驱动器171、以及一个从诸如CD-ROM或其他光学介质的可移动非易失光盘176读取或写入的光盘驱动器175。其他可被用于示例性操作环境的可移动/不可移动,易失/非易失计算机存储介质包括,但不限于,磁带盒、闪速存储卡、数字通用光盘、数字录影带、固态ROM、固态ROM、等等。硬盘驱动器161通常通过诸如接口160的不可移动存储器接口连接到系统总线141,磁盘驱动器171以及光盘驱动器
175通过一个诸如接口170的可移动存储器接口连接到系统总线141。
[0035] 以上讨论且示于图4中的驱动器和它们相关的计算机存储介质为来自计算机120的计算机可读指令、数据结构、程序模块以及其他数据提供了存储。在图4中,例如,硬盘驱动器161被示为存储操作系统164、应用程序165、其他程序模块166、以及程序数据167。注意这些组件可与操作系统154、应用程序155、其他程序模块156、以及程序数据157相同或相异。操作系统164、应用程序165、其他程序模块166以及程序数据167这里被给予了不同的标号用于表示在最小限度下,它们是不同的拷贝。
[0036] 用户可以经由一输入设备诸如键盘182、麦克风183、以及诸如鼠标、轨迹球或触摸板的指针设备181,输入命令和信息进入到计算机120中。其他输入设备(没有示出)可包括操纵杆、游戏垫、卫星天线、扫描仪等等。这些及其他输入设备经常经由连接到系统总线用户输入接口180连接到处理单元140,但也可通过其他接口和总线结构进行连接,诸如并行端口、游戏端口或通用串行总线(USB)。一监视器184或其他类型的显示设备也经由诸如视频接口185的接口被连接到系统总线141。除了监视器,计算机也可包括其他外围输出设备诸如扬声器187以及打印机186、它们可被经由输出外围设备接口188连接。
[0037] 使用到一个或多个诸如远程计算机194的远程计算机的逻辑连接,计算机120可操作在一个网络环境下。远程计算机194可为个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并通常包括许多或所有上述涉及计算机120的元件。图4描述的逻辑连接包括局域网(LAN)191和广域网(WAN)193,但也包括其他网络。这些网络化环境在办公室、企业级计算机网络、内部网和因特网上是普通的。
[0038] 当使用在LAN网络环境中时,计算机120经由网络接口或适配器190连接到LAN191。当使用在WAN网络环境中时,计算机120通常包括一个调制解调器192或其他在诸如因特网的WAN 193上建立通信的装置。内置的或外置的调制解调器192可经由用户输入接口180或其他合适的机制连接到系统总线141上。在一个网络化的环境中,所述涉及计算机120的程序模块,或其一部分,可被存储在远程存储器设备中。通过示例,而非限制,图4示出了位于远程计算机194上的远程应用程序195。可以被理解的是所示网络连接是示例性的且可使用其他在计算机之间建立通信连接的装置。
[0039] 图5示出了用于可由本发明实现的分布式语音服务的示例性体系结构200。
[0040] 通常,存储在web服务器202的信息可通过移动设备30(这里也表示其他形式的计算设备,根据对输入形式的要求,包括一个显示屏、一个麦克风、一个照相机、一个接触敏感屏等等)访问,或通过电话80,此时通过音频或通过回应按下的按键由电话80生成的音调来请求信息,并且来自web服务器202的信息仅由音频提供返回给用户。
[0041] 但是更重要的是,体系结构200是统一的,这样不论信息是经由设备30或通过语音识别经由电话80获得的,一个单独语音服务器204可支持各种操作模式。此外,体系结构200利用扩展的众所周知的标记语言(如,HTML、XHTML、cHTML、XML、WML、等等)操作。这样,存储在web服务器202上的信息也可被通过公知的由这些标记语言建立的GUI方法访问。通过利用扩展的众所周知的标记语言,在web服务器202上的创作更容易了,并且最近产生的遗产应用程序也可更容易地被修改以包括语音识别。
[0042] 通常,设备30执行由web服务器202提供的HTML+脚本或其类似。当需要语音识别时,通过示例,语音数据(其可为数字化音频信号或语音特征,后者中的音频信号已如前述由设备30进行了预处理)将连同一个语音识别中使用的语法或语言模型的提示一起被提供给语音服务器204。语音服务器204的实现可采取多种形式,其中一个已经示出,但通常包括一个识别器211。如果有需要或适合地,识别结果被提供返回给设备30用于本地再现。当经由识别以及任何使用到的图形用户接口进行信息编译时,如果有必要,设备30发送该信息给web服务器202用于进一步处理以及获取进一步的HTML脚本。
[0043] 如图5所示,设备30、web服务器202以及语音服务器204经由网络205常规地连接,且地域上分开,网络205在此为诸如因特网的广域网。因此任何这些设备都不需要在物理上邻近彼此放置。尤其是,web服务器202不需要包括语音服务器204。这样,在web服务器202处制作就可以集中在预期的应用程序上而不需要作者去了解语音服务器204的复杂性。此外,语音服务器204可被独立地设计并连接到网络205,并且,不需要对web服务器202进一步修改而进行升级和改进。在一个深入的实施例中,客户机30不需要web服务器202,可直接与语音服务器204通信。可以进一步被理解的是,web服务器202、语音服务器204以及客户机可根据实施机器的容量而组合在一起。例如,如果客户机包括一个诸如个人计算机的通用功能计算机,客户机就可包括语音服务器204。类似地,如果需要,web服务器202和语音服务器204可合并在一个单独的机器内。
[0044] 通过电话80对web服务器202的通路包括电话80到一个有线或无线电话网络208的连接,然后按顺序,将电话80连接到一个第三方网关210。网关210连接电话80到一个电话语音浏览器212。电话语音浏览器212包括提供电话接口的媒体服务器214以及一个语音浏览器216。类似于设备30,电话语音浏览器212从web服务器202接收HTML脚本或诸如此类。然而更重要的是,该HTML脚本形式上类似于提供给设备30的HTML脚本。
这样,web服务器202不需要分别支持设备30和电话80,或甚至单独支持标准GUI客户机。
相反,可使用一种公共的标记语言。此外,类似于设备30,由电话80传输的来自声学信号的语音识别由语音浏览器216提供给语音服务器204,这可通过网络205,或通过一个例如使用TCP/IP的专用线路207。web服务器202,语音服务器204以及电话语音浏览器212可被具体体现在任何适当的计算环境中,例如图4所示出的通用功能台式计算机。
[0045] 然而,需要注意的是如果使用DTMF识别,这种识别形式通常会在媒体服务器214执行,而不是在语音服务器204执行。。换句话说,DTMF语法会由媒体服务器来使用。
[0046] 在上文给出了设备以及体系结构后,进一步基于一个简单的客户机/服务器环境来描述本发明。如图6所示出的,本发明适用于一系统300,它包括一个提供媒体服务(如,语音识别或文本语音合成)的服务器302以及一个执行应用程序特定代码的客户机304。在服务器302和客户机304之间的通信是基于一个服务模型,在其中信息可被交换或打上标签或者包含识别部分,诸如但不限于,XML(扩展标记语言)文档。除了这些信息,服务器
302和/或客户机304可收集并传送音频。在一则实施例中,服务器302可包含由位于华盛顿雷得蒙得(Redmond)的微软公司开发的微软语音服务器,而客户机304可采用任何数量的上述形态,包括但不限于,桌面PC、移动设备,等等。
[0047] 在此需要注明的是虽然服务器302和客户机304基于一个服务模型互相之间通信,使用本发明某些方面的应用程序不需要专门地根据此声明中的一种服务模型来撰写,和/或只要服务器302和客户机304之间执行通信时,就可以根据服务模型请求使用基于过程的应用程序。在一则实施例中,客户机应用程序可被编译为C++,Java,C#或其他命令式编程语言,它不需要一个类似图5所示的基于HTML应用程序的情况中的浏览器。
[0048] CSTA(ECMA-269)版本6中的一个重要方面是基于语音应用程序语言标签(SALT)的增强型话音服务。新加入的特性包括自动语音识别、语音确认、扬声器鉴别、扬声器确认以及可以在系统300上实现的文本一语音合成。一些或所有的特征可在自动呼叫中心中提供。本发明的某些方面提供了CSTA服务的一个子集,用于便于基于网络的语音服务。尤其是,本发明的一些方面示出了ECMA-348和uaCSTA(ECMA-TR/87)如何被分别应用到有助于一个web服务中的分布式语音服务以及基于SIP(会话启动协议)的VoIP(Voice-over IP基于因特网的语音协议)环境。
[0049] 用于计算机支持电信应用程序(CSTA)ECMA-269的服务,以及它们的XML和web服务协议分别由ECMA-323和ECMA-348所定义。最近,ECMA-TR/87(uaCSTA)进一步描述了一系列用于在VoIP环境中使用ECMA-323的SIP变换。
[0050] 所有这些协议原则上提出了全套的CSTA,并且可特定用于语音服务。在ECMA-269的第6版中,CSTA的语音服务部分已经基于SALT导出技术而扩展了。
[0051] 除了现有的语音服务,新的增加包括对于呼叫中心自动化以及包括自动语音识别、语音确认、扬声器鉴别、扬声器确认和文本—语音合成等移动应用程序来说是必须的关键技术。
[0052] 虽然紧密集成的CSTA呼叫控制和语音方案的实现对于应用程序开发商而言是期望的,呼叫控制和语音供应之间的核心能力并不需要是相同的。对于当前的配置以及可预见的将来,CSTA应用程序开发商会需要调用多种供应商来满足他们在这些领域的相应需求。幸运的是,CSTA模型概念,如ECMA-269所述,允许单个的应用程序从多种CSTA服务提供者引出服务。这样的方案是一个CSTA应用程序会同时使用两种CSTA实现,一个用于呼叫控制,另一个用于语音服务。
[0053] 用于语音服务的CSTA轮廓还没有如它在呼叫控制领域中那样精确。本发明的某些方面轮廓了一种用于在使用XML的平台独立装置上提供语音服务的CSTA轮廓。虽然CSTA轮廓就是一个载体,其本性是不明确的,在此示例了两个语音服务轮廓的公共应用程序以更好地推动端对端的互动性:基于小型使用CSTA的SIP环境,以及基于ECMA-348的基于web服务环境。
[0054] 在此提供的描述提供了CSTA语音服务的子集是如何能够被包括在便于基于客户机—服务器的语音处理中的示例。下述ECMA标准作为整体结合在此作为参考:ECNA-269,用于计算机支持电信应用程序(CSTA)的服务,阶段3;ECMA-323,用于计算机支持电信应用程序(CSTA)的SMLP协议,阶段3;以及ECMA-348,用于CSTA的web服务描述语言(WSDL)。此外,这个应用程序描述了CSTA语音服务如何在使用uaCSTA提议的基于SIP的VoIP环境中执行。
[0055] ECMA-TR/87可以被使用为对uaCSTA的一个参考,其的一个副本结合在此作为参考。
[0056] 在此描述的基于客户机—服务器的语音处理能够在一个响应/请求周期内处理非对称媒体类型。例如,在提供语音识别服务时,服务器将音频数据转换为文本数据并将转换后的数据传输返回给客户机。在语音合成的情况中,客户机传输文本数据,服务器回应以转换后的音频数据。传输的数据可被根据一个诸如基于CSTA的协议的特定协议来发送。结果是,SIP和web服务环境可被扩展到包括文本—音频或音频—文本,音频—音频交互操作。
[0057] ECMA-TR/87建立了一个如图6所示的“信令信道”308载体。信令信道308由服务器302和客户机304使用来交换各自相应于呼叫控制所应完成的内容的信息。当服务器302包括一个电话交换机时,对信令信道308的使用是充分的。
[0058] 然而,如果服务器302是一个语音服务器且客户机304在请求语音服务,服务器302也必须知道在何处接收并传输语音信息。例如,服务器302应该知道在何处获取语音识别信息,以及向何处发送合成后的语音。
[0059] 这样,除了建立一个信令信道308,也必须建立一个“媒体信道”310协议。例如,媒体信道310被用来向服务器302传输由客户机304收集的语音数据(音频音频数据)。类似地,在一个文本—语音操作中,当合成后的语音数据被服务器302通过媒体信道310提供返回给客户机304时,客户机304可通过信令信道308发送文本数据。
[0060] 参考图5的体系结构,信令信道308和媒体信道310被建立以用于任何到语音服务器204的通信。然而,需要注明的是对web应用程序服务器202的使用是可选地且应用程序可安置在客户机30上,如图5所示。
[0061] 本发明的一个方面是采取哪些步骤以实现媒体信道310。在一则示例性的实施例中,讨论了在SIP环境下为CSTA建立一个媒体信道310。在一则进一步的实施例中,讨论了在一个基于web服务器的环境下为CSTA采取哪些步骤以实现媒体信道310。
[0062] 需要注明的是语义信息可在服务器302和客户机304之间传输,例如通过使用语音应用程序描述语言(SADL),SADL可为由监听者资源返回的结果(如,由带有语音识别的服务器302返回的结果)所指定XML方案。
[0063] 在SIP环境下的通道建立
[0064] SIP是一个设计为“多话的”协议,因为服务器302和客户机304频繁交换小的信息碎片。在SIP环境下,通过会话描述协议(SDP)完成对媒体信道310的建立。在图7中示出了完成该任务的一个示例性的方法400。
[0065] 在步骤402中,客户机304使用SIP—邀请以服务器302启动了一个会话。
[0066] 也发送了一个SDP描述,声明了一个要被使用的IP(因特网协议)地址和一个要被用于音频音频的IP地址端口。此外,在步骤404,该SDP描述会广播何种编码解码器类型将被用于媒体流,以及一个诸如传输控制协议(TCP)或实时传输协议(RTP)的通信协议。
[0067] 当服务器接收到时,在步骤406服务器可决定是否接受客户机304提出的SDP描述。如果协议和编码解码器被接受了,服务器302回应一个SIP—认可以及它的列出自身IP地址和音频端口的SDP描述。然后,方法400继续到步骤408,在此建立了一个信令信道。
[0068] 可选的是,如果服务器302不支持所建议的编码解码器和协议,服务器302可开始与客户机304商议将使用何种编码解码器和/或协议。换句话说,服务器302会以一个相反的提出不同编码解码器和/或协议的提案来响应客户机304最初的SDP描述。在作出提案之前,方法400继续到步骤410,其中作出判断是否继续识别。例如,在步骤412,当一个特定数量的相反提案被提出后,通信会停止。在步骤414客户机304和服务器302之间可作出额外的相反提案直到达成一致或直到清楚不会达成任何一致。
[0069] SIP/SDP是由因特网工程任务组(IETF)认可的用于在VoIP上建立音频通道的标准。然而,SIP/SDP没有描述建立一个实现CSTA的信令信道的方法。在步骤408,经由ECMA-TR/87建立了信令信道308。当信令信道建立后,应用程序关联被认为是完成了。结果是,在系统300中可实现分布式语音服务。
[0070] 在web服务器环境下的通道建立
[0071] 相对于上述SIP的“多话的”本性,web服务器被设计并通常最优化为用于“粗壮的”通信,这样在服务器302和客户机304之间需要较少的对话交换。
[0072] 结果是,SIP中在多个对话回合中商议的特征通常通过是由用于web服务的公共目录中发布的或在web服务元数据交换中动态获取的服务描述来描述并发现的。web服务环境包括一个UDDI(统一描述发现综合)标准协议。web服务提供者发布相关信息,应用程序开发商可发现、获取并因此选择合适的服务提供者,这样允许应用程序开发商动态地将web服务集成入应用程序中。例如,ECMA-348为CSTA指定了web服务描述语言(WSDL)这样可使用标准web服务协议统一地描述、发现并集成提供CSTA功能的web服务。媒体信道的建立是ECMA-348的一个扩展。
[0073] 图8示出了在web服务环境下建立通道的一个示例性方法420。在本发明中,在步骤422,web服务提供者以服务元数据的形式列出了web服务支持的所有编码解码器和协议。在步骤424,应用程序开发商可利用web服务目录提供者来获取或发现哪个web服务含有它们可使用的编码解码器和协议。这个步骤可执行为搜索每个web服务提供的元数据来找到它要求的所需编码解码器和协议。目录为每个web服务提供了一个URL(通用资源定位器)地址。客户机304随后建立一个到web服务的连接并使用带有所需编码解码器和协议的应用程序来与服务器302通信。当连接建立后,立即建立媒体信道310和它的信令信道308。
[0074] 在web服务环境下的本发明指出了如何通过一个至WSDL的媒体描述扩展来建立在一次交换穿过所有层(应用层和传输层)的连接。在一则实施例中,本发明可结合ECMA-348来应用,ECMA-348已经含有了一个建立CSTA以及它的下层信令传输协议的机制。通过在ECMA-348中加入媒体编码和传输协议扩展,CSTA因此被增强为在单个步骤内建立信令和媒体信道。
[0075] 在另一则实施例中,使用web服务寻址(即WS—寻址)协议的可扩展性来传送媒体描述,作为先前CSTA应用程序关联的一个步骤。WS—寻址(WSA)是一个为寻址web服务终端和消息提供传输中性机制的规范。CSTA交换功能和CSTA应用程序皆为web服务终端。WS—寻址提出了一个称为终点参量(endpointreference)的新规范,它支持对WSDL中元素不能恰好涵盖的服务的动态使用。
[0076] WS—寻址定义了一个XML文档类型(wsa:EndpointReferenceType)以表示一个终点参量。一个XML元素,wsa:EndpointReference,同样被指定为含有该类型。以上两者都存放在XML的名字空间http://schemas.xmlsoap.org/ws/2004/03/addressing中。
[0077] 一个WSA终点参量类型可包括下述:
[0078] [address]::一个确定终点的URI(通用资源定位)。
[0079] [reference properties]:(0..无边界),详细属性,被传送的每个实体或资源含有一个。
[0080] [selected port type]:QName(0..1),定义在WSDL中的用于终点的主端口类型的名称。
[0081] [service and port]:(QName,NCName(0..1))(0..1),定义在WSDL中对应于该终点的服务和端口。
[0082] [policy]:可选的WS—策略元素,描述了终点的行为、要求以及能力。
[0083] 在SIP的情况中,为CSTA语音服务建立一个音频通道是必要的。类似于可以通过SDP在SIP中协商一个音频通道,WSA终点参量可被用于语音服务提供者来声明媒体终点。媒体传输协议以及编码机制属于需要被按顺序指定以有助于语音服务的关键项目。这些项目被声明为参量属性。
[0084] 为了增强耐用性,web服务环境下的媒体信道被模块化为从服务器(CSTA语音资源提供者)至客户机(CSTA应用程序)的一种租用(lease),且该租用随着超时而过期。服务器也可指定一个租用管理器,在其中客户机可取消或更新租用。
[0085] 一个带有XML方案的CSTA媒体终点参量类型包括一个或多个WSA终点参量。例如,一个基于实时传输协议(RTP)在端口6060上使用的G.711协议的CSTA语音服务提供者可如下描述媒体终点:
[0086]
[0087] xmlns:csta=″http://www.ecma international.org/TR/xx″[0088] xmlns:wsa=″http://schemas.xmlsoap.org/ws/2004/03/ad
[0089] dressing″>
[0090] rtp://server.acme.com:6060
[0091] >
[0092]
[0093] G.711
[0094] 12345
[0095] 2004-10-21T21:07:00.000-08:00
[0096] pires>
[0097]
[0098]
[0099] CSTA媒体终点参量属性包括一个编码解码器声明、一个预订确认、以及一个可选的租用过期声明。在uaCSTA情况中,当媒体信道连同信令信道一起建立后,上述媒体终点参量必须在处理在web服务环境下的CSTA应用程序关联完成前被包括在内。
[0100] 借助WS协议扩展性的优点,可使用来建立一个语音会话。媒体终点参量本身可以是CSTAweb服务提供者的终点参量中的一个属性。如下所示,可通过在之后直接附加该媒体终点参量来编写一段简单对象访问协议(SOAP)消息:
[0101]
[0102] xmlns:soap=″http:/www.w3.org/2003/05/soap-envelop″[0103] xmlns:wsa=″http:/schemas.xmlsoap.org/ws/2004/03/addr
[0104] essing″
[0105] xmlns:csta=″http:/www.ecma-international.org/TR/xx″>[0106]
[0107]
[0108] http:/example.client.com
[0109]
[0110] http:/server.acme.com
[0111]
[0112] …
[0113]
[0114]
[0115] http:/www.ecma-international.org/TR/xx/CreateSessio
[0116] n
[0117]
[0118] ...
[0119]
[0120]
[0121] …
[0122]
[0123]
[0124] web服务由诸如WS—策略或WSDL的元数据来描述。当WS-策略描述了服务的通用能力、要求以及特征时,WSDL描述了提取消息操作和具体网络协议以及到该web服务的地址。web服务元数据交换,即WS-MEX或WSX,是一个引导元数据获取的规范。客户机可向一个终点发送一个WS-MEX请求以获取它的元数据。以下为一个使用SOAP的请求的标准化概要:
[0125]
[0126]
[0127]
[0128] http://schemss.xmlsoap.org/ws/2004/09/mex/GetMetada
[0129] ta/Request
[0130]
[0131]
[0132] WS—寻址终点参量
[0133]
[0134] …
[0135]
[0136]
[0137]
[0138] [′]?>
[0139]
[0140]
[0141] ]*
[0142]
[0143]
[0144]
[0145] 如SOAP头所示,WS-MEX使用WS-寻址来指定用于元数据获取的请求。在中目标服务被指定为一个URI,并且在的内容中用WS—寻址终点参量指定了回复终点(reply endpoint)。将要被获取的元数据类型被指定在SOAP主体中的内容中。
[0146] 如果一个终点接受了GetMetadata请求,它必须回复一个GetMetadata响应消息。以下为在SOAP中的响应的标准化概要:
[0147]
[0148]
[0149]
[0150] http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadat
[0151] a/Response
[0152]
[0153] previousmessageid
[0154]
[0155]
[0156]
[0157]
[0158] [
[0159] [Identi fier=′previous identifier′]>
[0160] <!--service specific data section-->
[0161] |
[0162]
[0163] WS-Addressing endpoint reference
[0164]
[0165] |
[0166]
[0167] ]
[0168] ]*
[0169]
[0170]
[0171]
[0172] 在SOAP主体中传送的元数据可以作为的内容被内嵌返回,或是通过使用WS-寻址终点参量或简单URI的参量。
[0173] 上述SOAP消息可含有如下的WSDL绑定:
[0174]
[0175] [0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183] wsa:Action=
[0184] ″http:/schemas.xmlsoap.org/ws/2004/09/mex/GetMetada
[0185] ta/Request″/>
[0186]
[0188] ″http:/schemas.xmlsoap.org/ws/2004/09/mex/GetMetada
[0189] ta/Response″/>
[0190]
[0191] …
[0192]
[0193] CSTA媒体描述是一种CSTA应用程序必须从语音服务提供者获得的元数据类型。WS-MEX在此尤其适合。下面是一个用于获取元数据终点参量的简单SOAP消息:
[0194]
[0195] xmlns:soap=″http:/www.w3.org/2003/05/soap-envelop″
[0196] xmlns:wsa=″http:/schemas.xmlsoap.org/ws/2004/08/addr
[0197] essing″
[0198] xmlns:wsx=″http:/schemas.xmlsoap.org/ws/2004/09/mex″[0199] xmlns:csta=″http:/www.ecma-international.org/TR/XX″>[0200]
[0201]
[0202] http:/schemas.xmlsoap.org/ws/2004/09/mex/GetMetadat
[0203] a/Request
[0204]
[0205]
[0206] uuid:12345edf-53c1-4923-ba23-23459cee433e
[0207]
[0208]
[0209] http:/client.example.com/MyEndpoint
[0210] a:Address>
[0211]
[0212] http:/server.acme.org
[0213]
[0214]
[0215]
[0216]
[0217] http:/www.ecma-international.org/TR/XX/MediaEndpoin
[0218] t
[0219]
[0220]
[0221]
[0222]
[0223] 示例表示了一个位于client.example.com的客户机应用程序向位于server.acme.org的CSTA语音服务提供者请求媒体终点参量。因为指定了一个特定的方言,服务器必须只回应所需类型的元数据。一个SOAP响应消息可以是:
[0224]
[0225]
[0226]
[0227] http:/schemas.xmlsoap.org/ws/2004/09/mex/GetMetadat
[0228] a/Response
[0229]
[0230]
[0231] uuid:12345edf-53c1-4923-ba23-23459cee433e
[0232]
[0233] http:/client.example.com/MyEndpoint
[0234] >
[0235]
[0236]
[0237]
[0238]
[0239] ″http:/www.ecma-international.org/TR/XX/MediaEndpoi
[0240] nt″>
[0241]
[0242] rtp:/server.acme.org:6060
[0243] >
[0244]
[0245] G.711
[0246] 12345
[0247] 2004-10-21T21:00:00.0-22:00
[0248] ires>
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255] 语音应用程序描述是语音服务能够提供的另一个类型的元数据。通过经由增加以及它们相应的URI,可以在同一时间获得多种元数据类型。下面是一个用于获取媒体终点和语音应用程序参量的SOAP主体的示例:
[0256]
[0257]
[0258] http:/www.ecma-international.org/TR/xx/MediaEndpoin
[0259] t
[0260]
[0261]
[0262] http:/www.ecma-international.org/TR/xx/SpeechApplic
[0263] ationDescription
[0264]
[0265]
[0266] The corresponding response in the SOAP body:
[0267]
[0268]
[0269] ″http:/www.emca-international.org/TR/xx/MediaEndpoi
[0270] nt″>
[0271] …
[0272]
[0273]
[0274] ″http:/www.ecma-international.org/TR/xx/SpeechAppli
[0275] ationDescription″>
[0276]
[0277] Listener
[0278]
[0279] uri=″urn:acme.com/address/street number.grxm
[0280] l″
[0281] schema=″urn:acme.com/address/street number.xsd
[0282] ″/>
[0283]
[0284] uri=″urn:acme.com/address/city.grxml″>
[0285]
[0286] schema=″urn:acme.com/address/zip.x
[0287] sd″/>
[0288]
[0289] schema=″urn:acme.com/address/city.
[0290] xsd″/>
[0291]
[0292]
[0293]
[0294]
[0295] 当web服务单向启动,请求以及回复模型,web服务通常希望在其他服务或应用程序发生事件时接收消息。web服务事件、或WS—事件(WSE)是一个促进事件通知的规范。WS—事件定义了一个web服务如何能预订代表其他服务或应用程序的事件,并允许应用程序指定事件消息如何传递。它支持一个大范围的事件拓补,允许分离事件源和最终事件接收器。这些属性适合于大范围的CSTA应用程序,包括呼叫中心到移动计算。提供了对WS-事件的使用是因为CSTA语音服务需要事件通知来工作。
[0296] 虽然已经参照特定实施例描述了本发明,本领域熟练技术人员可以理解的是在可以作出形式和细节上的改变而不背离本发明精神和范围。