CN100397340C - 以对话为目的的应用抽象 - Google Patents

以对话为目的的应用抽象 Download PDF

Info

Publication number
CN100397340C
CN100397340C CNB021529426A CN02152942A CN100397340C CN 100397340 C CN100397340 C CN 100397340C CN B021529426 A CNB021529426 A CN B021529426A CN 02152942 A CN02152942 A CN 02152942A CN 100397340 C CN100397340 C CN 100397340C
Authority
CN
China
Prior art keywords
control
client
dialogue
answer
grammer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB021529426A
Other languages
English (en)
Other versions
CN1417679A (zh
Inventor
F·M·加兰尼斯
H·W·洪
J·D·雅各比
R·J·勒库切
S·F·泊特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1417679A publication Critical patent/CN1417679A/zh
Application granted granted Critical
Publication of CN100397340C publication Critical patent/CN100397340C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

提供多个控制,用于网络服务器产生客户端标记,这些包括包括识别和/或音频提示。这些控制包括多个对话元素,如询问、回答、确认、命令或陈述。一个模块通过利用在控制中携带的信息形成对话。

Description

以对话为目的的应用抽象
技术领域
本发明一般涉及执行特殊应用的编码计算机。更具体地,本发明涉及多个控制,用于限定执行识别和/或听觉提示的应用,诸如产生由识别和/或听觉提示启动的客户端标记的服务器。
背景技术
在人们的日常生活中,诸如个人数字助理(PDA)、装置和便携式电话的小型计算装置的使用不断增加。随着现在微处理器可用于运行这些装置的处理能力的提高,这些装置的功能性也提高了,且在某些情况下合并了。例如,现在,许多便携式电话可以被用于访问和浏览互联网,并可以被用于存储诸如地址、电话号码等的个人信息。
从这些计算装置被用于浏览互联网或被用在其它服务器/客户机结构中来看,就有必要将信息输入计算装置。遗憾的是,由于要将这些装置保持得尽量小以便容易携带,由于该计算装置外壳上可用的表面面积受限,通常不可能用所有字母作为分开按钮的常规键盘。
对于这一问题,人们的兴趣增加了,并采取用语音或话音经诸如互联网的广域网存取信息。例如,诸如通过使用VoiceXML(语音扩展标记语言)的语音入口已经发展到允许只用电话就访问互联网内容。该结构中,文本服务器(例如,网络服务器)处理经VoiceXML解释器来自客户机的请求。网络服务器可以回应产生VoiceXML文本,用VoiceXML解释器处理这些文本并出声地反应给用户。通过语音识别的语音命令,用户可以浏览网页。
通常,有“话音启动”信息或网络内容这两种技术。在第一种技术中,现有通常可以用有显示器的装置来看的视觉标记语言页被翻译和反应为听觉的。然而,因为对视觉相互作用有意义的页通常没有足够的信息来自动产生可感知的听觉对话,所以这种方法的效果总是很差。另外,语音相互作用易于出错,尤其是经过诸如电话的有噪声的信道时。不使用视觉或其它形式的持久反馈,用户就会很难经网络服务器应用程序来导航。因此这种方法要求诸如帮助信息的机制,这些机制也被出声地反映给用户以便帮助他们经网站导航。这些机制通常称为“语音对话”,当用户响应听觉的问题而提供不正确的信息或不提供信息时,它们也会出错。由于这些机制不是共同基于网页的视觉内容,不自动产生这些机制,因而应用程序开发者通常要求大量的开发时间。
话音启动网络内容的第二种方法包括以新的语言编写特殊的语音页。该种方法的优势是话音启动页包含听觉对话所需的所有机制,如修复和导航帮助。然而,显著的缺点是应用程序页就必须适于包括视觉内容页中的应用逻辑。换句话说,视觉内容页的应用逻辑必须以话音启动语言重写。甚至在用从相同标准产生视觉和听觉页的工具使该过程自动化时,视觉和话音启动页的保持通常难以同步。另外,该方法不易于允许多模态应用,例如,在网页上同时提供视觉和话音相互作用时。由于视觉页和话音启动页无关,所以不易于输入和输出逻辑相互一致工作。
到此为止,由于当前用作接口的组织和格式,话音相互作用也很麻烦。通常,话音接口与应用程序的商业逻辑联系过紧,这制约了其它应用程序中话音接口单元(element)的再利用,或者话音接口被过分简单的对话模式(例如,格式和字段)限制过死。
因此,目前需要改善用于在应用中提供话音识别的的结构和方法,如服务器/客户机结构,如互联网。尤其是,需要针对上述一个、几个或全部缺点的方法、系统或程序设计工具,以在应用中提供产生话音启动识别和/或话音启动提示。
发明内容
提供对网络服务器的控制,以产生包括识别和/或听觉提示的客户端标记。这些控制包含诸如问题、回答、确认、命令或陈述的对话元素。一个模块用这些控制携带的信息形成对话。
每个控制在对话中起一个作用。例如,陈述控制被用来产生用于客户机装置的标记以将信息呈现给用户,同时询问控制产生用于客户机装置的标记以便问问题。回答控制产生用于客户机装置的标记以便用于识别的语法与涉及所问的问题的输入字段关联。如果识别结果是否正确不清楚的话,确认控制可以被激活,产生标记以确认识别结果。命令控制产生允许用户提供命令的标记,否则产生对特定问题的预期回答,这样,允许用户经例如网络服务器应用程序导航。每个控制包括表示相关控制是否可以被激活的属性。比如在客户端执行的模块产生对话来征求或提供信息作为激活控制的功能。
附图说明
图1是计算装置操作环境的第一实施例的平面图;
图2是图1的计算装置的框图;
图3是通用计算机的框图;
图4是用于客户机/服务器系统的结构的框图;
图5是用于获得信用卡信息的显示;
图6是可以在具有显示和语音识别能力的客户端执行的标记语言示例页;
图7是说明用于提供客户端标记中的识别和听觉提示的第一种方法框图;
图8是说明用于提供客户端标记中的识别和听觉提示的第二种方法框图;
图9是说明用于提供客户端标记中的识别和听觉提示的第三种方法框图;
图10是说明伴随控制的框图;
图11是说明伴随控制的详细框图。
具体实施方式
在描述基于网络的识别结构和用于实现它的方法之前,描述该结构中起作用的普通计算装置会很有用。现在参考图1,30说明了数据管理装置(PIM,PDA等)的示例形式。然而,要知道本发明也可以利用下面的讨论的其它计算装置来实现,尤其是,那些对于输入按钮等表面面积有限的计算装置。例如,电话和/或数据管理装置也可以从本发明受益。与已有便携式个人计算机信息管理装置和其它便携式电子装置相比,这种装置实用性更强,这种装置的功能和小尺寸会更促使用户随时携带。因此,本文中描述的结构的范围不会被本文中所公开说明的示例数据管理或PIM装置、电话或计算机所限制。
数据管理移动装置30的示例形式如图1所示。移动装置30包括外壳32和用户接口,用户接口包括显示器34,它结合输入笔33使用触摸式显示屏。输入笔33用于在制定坐标按压或接触显示器34以便选择区域,从而选择性地移动光标的开始位置,或者例如经手势或手写提供命令信息。或者(或另外),可以在装置30上包括一个或多个按钮35用于导航。另外,也可以提供诸如转轮、滚子等的其它输入机制。然而,应当注意,本发明不会被这些形式的输入机制所限制。例如,其它形式的输入可以包括视觉输入,例如经计算机视觉。
现在参考图2,框图说明了包含移动装置30的功能成分。中央处理单元(CPU)50实现软件控制功能,CPU50与显示器34连接以便根据出现在显示器34上控制软件产生的文本和图标。通常可以用数-模转换器59将扬声器43连接到CPU50以便提供听觉输出。用户下载或输入到移动装置30中的数据被存储在非易失性读/写随机存取存储器54中,非易失性读/写随机存取存储器54双向连接到CPU50。随机存取存储器(RAM)54提供用于由CPU50执行的指令的易失性存储和用于临时数据的存储,诸如登记数据。配置选择和其它变量的缺省值被存储在只读存储器(ROM)58中。ROM58也可以被用于存储操作系统软件,操作系统软件用于控制移动装置30的基本功能和其它操作系统核芯函数(例如将软件成分安装到RAM54中)。
RAM54也起用于代码存储的作用,其方式类似于PC上用于存储应用程序的硬驱的功能。应当注意,虽然非易失性存储器被用于存储代码,但是,它也可被存储在不用于执行这些代码的易失性存储器中。
可以用移动装置经无线收发信机52发射/接收无线信号,无线收发信机52与CPU50连接。也可以按需要提供选择通信接口60来直接从计算机(例如台式计算机)或从有线网络下载数据。因此,接口60可以包含多种形式的通信装置,例如红外链路、调制解调器、网卡等。
移动装置30包括麦克风29、模-数(A/D)转换器37和存储在存储54中的选择识别程序(话音,DTMF,手写,手势或计算机视觉)。用实例的方式,响应听觉信息,来自装置30、麦克风29的指令或命令提供话音信号,话音信号被A/D转换器37数字化。话音识别程序可以执行对数字化的话音信号执行标准化和/或特征提取以获得中间话音识别结果。利用无线收发信机52或通信接口60,话音数据可以被发射到下面要讨论的远端识别服务器204,如图5的结构所示。然后将识别结果回复到移动装置30以反映(例如视觉和/或听觉)在上面,最后发射到网络服务器202(图5),其中,网络服务器202和移动装置30以客户机/服务器关系操作。类似的处理可以被用于其它形式的输入。例如,可以经或不经装置30上的预处理而将手写输入数字化。象话音数据那样,可以将该形式的输入发射到识别服务器204用于识别,其中,将识别结果回复到装置30和/或网络服务器202中的至少一个。类似地,DTMF数据、手势数据和视觉数据可以进行类似地处理。按输入形式,装置30(和下面要讨论的其它形式客户机)应包括必要的硬件,如用于视觉输入的照相机。
除了上述便携式或移动计算装置,要知道,可以用诸如普通台式计算机的其它计算装置来利用本发明。例如,当诸如全字母数字键盘的常规输入装置难以操作时,本发明会允许具有物理能力的用户向计算机或其它装置输入或送入文本。
本发明也可以用多种其它通用计算机或专用计算系统环境或结构来操作。适用于本发明的周知计算系统、环境和/或结构的实例包括(但不限于):无线或蜂窝电话、常规电话(无屏幕)、个人计算机、服务器计算机、手持或手提式装置、多处理器系统、基于微处理器的系统、电视机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、包括任何上述系统或装置的分布式计算环境等。
下文是对图3所示通用计算机120的简要描述。然而,计算机120也只是适当的计算环境的一个实例而不是限制本发明的使用范围或功能。计算机120也不应被看作是与本文中所述的任何成分或其组合有关的从属性或要求。
可以在计算机可执行指令的普通前后关系下描述本发明,计算机可执行指令如计算机可执行的程序模块。通常,程序模块包括执行特殊任务或实现特殊抽象数据类型的例程、程序、对象、成分、数据结构等。也可以在经通信网络链接的远端处理装置执行任务的分布计算环境下实践本发明。在分布计算环境中,程序模块可以位于包括存储器存储装置的本地和远端计算机存储媒体中。下面结合附图描述程序和模块所执行的任务。本领域的技术人员可以将描述和图作为处理器可执行指令来实现,处理器可执行指令可以被写在任何形式的计算机可读媒体上。
参考图3,计算机120的部件包括(但不限于):处理单元140、系统存储器150和将包括系统存储器的多个系统部件连接到处理单元140的系统总线141。系统总线141可以是以下几种类型总线中的任何一种,包括:存储器总线或存储器控制器、外设总线和利用多种总线结构中任何一种的局域总线。用实例的方式而不是限制本发明,这种结构包括工业标准结构(ISA)总线、通用串行总线(USB)、微通道体系结构(MCA)总线、增强型工业标准结构(EISA)总线、视频电子标准协会(VESA)总线和外设部件互连(PCI)总线,它也称为中层总线。计算机120通常包括多个计算机可读介质。计算机可读介质可以是能用计算机120访问的任何一种介质,包括易失性和非易失性的介质、可移动或不可移动媒体。用实例的方式而不是限制本发明,计算机可读介质可以包含计算机存储介质和通信介质。计算机存储媒体包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,信息诸如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质包括(但不限于):RAM、ROM、EEPROM、闪存存储器或其它存储器技术、CD-ROM、数字多用途光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储装置或可以用于存储预期信息和可被计算机120访问的任何其它介质。
通信媒体通常体现为计算机可读指令、数据结构、程序模块或在诸如载波或其它传送机制的调制后数据信号中的其它数据,并包括任何信息传送媒体。术语“调制后数据信号”的意思是为了编码信号中的信息而设定或改变了一个或多个信号特性的信号。用实例的方式而不是限制本发明,通信媒体包括诸如有线网络或直接线连接的有线介质、诸如声、FR、红外的无线介质和其它无线介质。上述任何一种的组合也可以包括在计算机可读介质的范围内。
系统存储器150包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)151和随机存取存储器(RAM)152。包含基本例程的基本输入/输出系统153(BIOS)通常存储在ROM151中,基本例程有助于例如在起动时在计算机120的元件之间传送信息。RAM152通常包含用处理单元140立即访问和/或即时操作的数据和/或程序模块。用实例的方式而不是限制本发明,图3说明了操作系统54、应用程序155、其它程序模块156和程序数据157。
计算机120也可包括其它可移动/不可移动易失性/非易失性计算机存储介质。只用实例方式,图3说明了:从不可移动、非易失性磁性介质读取或向其写入的硬盘驱动器161,从可移动、非易失性磁盘172读取或向其写入的磁盘驱动器172,和从诸如CD-ROM或其它光学介质的可移动、非易失性光盘176读取或向其写入的光盘驱动器175。其它可以在示例操作环境下使用的可移动/不可移动、易失性/非易失性计算机存储介质包括(但不限于):盒式磁带、闪存存储卡、数字多用途光盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器161通常经诸如接口160的不可移动存储接口与系统总线141连接,磁盘驱动器171和光盘驱动器175通常用诸如接口170的可移动存储接口与系统总线141连接。
图3中说明的上述驱动器和与它们相关的计算机存储媒体提供计算机可读指令、数据结构、程序模块和由于计算机120的其它数据。图3中,例如,硬盘驱动器161被示为存储操作系统164、应用程序165、其它程序模块166和程序数据167。注意,这些部件可以与操作系统154、应用程序155、其它程序模块156和程序数据157相同或不同。这里,操作系统164、应用程序165、其它程序模块166和程序数据167被给予不同的数字以便说明它们至少是不同的拷贝。
用户可以经诸如键盘182、麦克风183和定点设备181(如鼠标,跟踪球或触摸垫)的输入装置向计算机120输入命令和信息。其它输入装置(没画)可以包括:游戏操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪等。这些和其它输入装置常经与系统总线连接的用户输入接口180连接到处理单元140,但是,可以用诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构来连接。监视器185或其它类型的显示装置也经诸如视频接口185的接口与系统总线141连接。除了监视器,计算机也可以包括其它外设输出装置,如扬声器187和打印机186,它们可经输出外部接口188来连接。
计算机120可以在利用与诸如远端计算机194的一个或多个远端计算机逻辑连接的网络环境下操作。远端计算机194可以是个人计算机、手持装置、服务器、路由器、网络PC、对等装置或其它公共网络节点,且通常包括与计算机120有关的上述多个和所有元件。图3中描绘的逻辑连接包括局域网(LAN)191和广域网(WAN)193,但是也可以包括其它网络。这种网络环境在办公室里、企业计算机网络、内部网络和互联网中很常见。
当用在LAN网络环境中时,计算机120经网络接口或适配器190与LAN191连接。当用在WAN网络环境中时,计算机120通常包括调制解调器192或用于经诸如互联网的WAN193建立通信的其它装置。内置或外置的调制解调器192可以经用户输入接口180或其它适当机制与系统总线141连接。在网络环境中,所描绘的关于计算机120的程序模块或其多个部分可以存储在远端存储器存储装置中。用实例的方式而不是限制本发明,图3说明了位于远端计算机194上的远端应用程序195。要注意,所示的网络连接是示例性的,可以使用在多个计算机之间建立通信链接的其它装置。
示例结构
图4说明了可以使用本发明的用于基于网络的识别的结构200。通常,可以通过移动装置30(本文中也表示根据所要求的输入形式具有显示屏幕、麦克风、照相机、触摸感知面板等其它形式的计算装置)、或通过电话80访问存储在网络服务器202中的信息,其中,响应按键听觉地或通过电话80产生的音调请求信息,且其中,只将来自网络服务器202的信息听觉地供回给用户。
本示例实施例中,结构200被统一为通过利用话音识别的装置30还是电话80获得信息,单个识别服务器204可以支持两种操作模式中的任何一种。另外,结构200用周知的标记语言(例如,HTML,XHTML,cHTML,XML,WML等)的扩展来操作。因此,也可以用这些标记语言中周知的GUI方法来访问存储网络服务器202上的信息。用周知的标记语言的扩展,易于在网络服务器202上编写,现有的法定应用易于被修改成包括语音或其它形式的识别。
通常,装置30执行网络服务器202提供的HTML+脚本等。当要求语音识别时,用实例的方式,将话音数据提供给具有语法或语言模型指示的识别服务器204以在话音识别期间使用,该话音数据可以被数据化成音频信号或话音特征,其中音频信号已经被装置30进行了上述预处理。可以采取多种形式实现识别服务器204,说明了其中之一,但是通常包括识别器211。如果是预期的或适当的话就将识别结果供回给装置30用于局部反映。通过识别和可能用到的图形用户界面汇编之后,装置30将所有信息发送到网络服务器202用于处理和接收其它HTML脚本,如果需要的话。
如图4所述,装置30、网络服务器202和识别服务器204公共连接,且可通过网络205在诸如互联网的广域网中分别寻址。因而这些装置不必在物理上都相互接近。尤其是,网络服务器202不必包括识别服务器204。以这种方式,在网络服务器202的编写可以集中在应用上,编写者不用知道识别服务器204的复杂结构。相反,识别服务器204可以被独立设计和连接到网络205,因而,不要求再对网络服务器202进行改变来更新和改善识别服务器204。如下所述,网络服务器202也可以包括可以动态产生客户端标记和脚本的编写机制。在另一实施例中,可以根据实现机器的性能将网络服务器202、识别服务器204和客户机30组合起来。例如,如果客户机包含通用计算机,例如个人计算机,客户机可以包括识别服务器204。类似地,按需要,网络服务器202和识别服务器204可以被包括在一个机器中。
通过电话80对网络服务器202的访问包括将电话80连接到有线或无线电话网络208,再将电话80连接到第三方网关210。网关210将电话80连接到电话语音浏览器212。电话语音浏览器212包括媒体服务器214,媒体服务器214提供电话接口和语音浏览器216。象装置30那样,电话语音浏览器212从网络服务器202接收HTML脚本等。在一个实施例中,HTML脚本是类似于被提供给装置30的HTML脚本的形式。以这种方式,网络服务器202不需分别支持装置30和电话80,或者分别支持标准GUI客户机。甚至可以使用普通标记语言。另外,象装置30那样,例如,用TCP/IP,来自电话80发送的听觉信号的语音识别被通过网络205或专用线路207从语音浏览器216提供给识别服务器204。网络服务器202、识别服务器204和电话语音浏览器212可以体现在任何适当的计算环境中,如图3所示的普通目的台式计算机。
然而,应当注意,如果利用DTMF识别,通常在媒体服务器214而不是在识别服务器204执行这种形式的识别。换句话说,DTMF语法要用媒体服务器214来使用。
再看图4,网络服务器202可以包括服务器端插件编写工具或模块209(例如,微软公司的ASP、ASP+、ASP.Net,JSP,Javabeans等)。服务器端插件209可以动态产生客户端标记、甚至用于访问网络服务器202的客户机类型的特殊形式标记。随着客户机/服务器关系的建立,客户机信息可以被提供给网络服务器202,或者网络服务器202可以包括模块或例程来检测客户机装置的性能。以这种方式,服务器端插件209可以产生用于每个语音识别场景的客户端标记,即,只通过电话80或用于装置30的多模态语音。用恒定客户端模型,用于多个不同的客户机的应用编写显然更容易了。
除了动态产生客户端标记之外,可以将下述高级对话模块作为存储在存储器211中的服务器端控制来实现,供开发者在应用编写时使用。通常,高级对话模块211会根据开发者指定的参数在纯语音和多模态场景中都动态产生客户端标记和脚本。高级对话模块211可以包括多个参数以产生客户端标记来符合开发者的需要。
示例客户端扩展
描述本发明所注重的客户端脚本的动态产生之前,先讨论对基于网络的识别用使用的标记语言的示例形式的扩展是会有帮助的。
如上所述,诸如HTML、XHTML、cHTML、XML、WML或其它SGML-派生标记的标记语言被扩展为包括多个控制和/或在客户机/服务器结构中提供识别的对象,这些标记语言用于网络服务器202和客户机装置30之间的相互作用。通常,多个控制和/或多个对象可以包括一个或多个下述功能:用于识别器构成的识别器控制和/或对象,识别器执行和/或后处理;用于合成器构成和即时播放的合成器控制和/或对象;用于指定输入语法源的语法控制和/或对象;和/或用于处理识别结果的捆绑控制和/或对象。扩展被设计成轻权标记层,它向现有标记语言添加听觉、视觉、手写等接口能力。这样,扩展可以仍独立于:它们所在的高级页,例如HTML;低级格式,扩展用它来参考语言资源,例如文本-话音和语法格式;和被用在识别服务器204中的识别和话音合成平台的单独性质。虽然下面讨论了话音识别,但是,要知道,下文要描述的技术、标签(tag)和服务器控制可以被类似地应用在手写识别、手势识别和图像识别中。
在示例实施例中,扩展(也就是“标签”)是一小组具有相关属性和DOM对象性质的XML元素、事件和方法,可以结合源标记文档使用这些方法来将识别和/或听觉提示接口、DTMF或调入控制应用于源页(source page)。扩展的格式和语义于源文档的本质无关,所以扩展可以被等效地用在HTML、SHTML、cHTML、XML、WML或其它任何SGML-派生标记中。扩展遵循文档对象模型,其中提供了可以被分级的新的功能对象或元素。在附录中详细讨论了每个元素,但是,通常元素可以包括属性、性质、方法、事件和/或其它“子”元素。
这时,也应当注意,可以根据执行浏览的装置的性能用两种不同的“模式”解释扩展。第一模式,即“对象模式”下,可以使用完全性能。由应用进行的扩展的纲领性操纵被装置上的浏览器启动的任何机制所执行,这些机制例如XHTML浏览器中的Jscript解释器、或WML浏览器中的WMLScript解释器。因此,只需要定义一小组扩展的核芯特性和方法,这些被任何纲领性(programmatic)机制所操纵的性质和方法位于装置或客户端。对象模式提供了事件和脚本,并可提供更强的功能以经话音相互作用给予对话编写者更精细的客户端控制。如本文中所用的那样,支持完全事件和脚本的浏览器被称为“上级浏览器”。这种形式的浏览器支持扩展的所有属性、性质、方法和事件。上级浏览器常见于具有更强处理能力的装置中。
也可以在“声明性(declarative)模式”下执行扩展。如本文中所用的那样,以宣言模式操作的浏览器被称为“下级浏览器”,且不支持完全事件和脚本能力。相反,这一形式的浏览器支持给定扩展的声明性方面(即核芯元素和属性),但是不支持所有DOM(文档对象模式)对象性质、方法和事件。该模式利用专用的声明性语法,还可以结合诸如SMIL(同步多媒体集成语言)2.0的声明性多媒体同步和同位机制(同步标记语言)来使用。下级浏览器常见于处理能力有限的装置中。
这时,应讨论一种特殊的进入模式。尤其是,使用话音识别时结合至少一个显示器且在另一实施例中还结合定位设备是很有用的,定位设备能协调多种输入模式,例如指示数据进入的区域。具体地说,这一数据进入模式下,用户通常能协调定位设备和话音输入的作用,所以,例如用户在选择区域和提供与该区域有关的相应信息时是受控制的。例如,图5说明了信用卡提交图形用户界面(GUI),用户可以先决定在区域252中输入信用卡号再在区域254中输入到期日。类似地,用户可以回到区域252并修改错误的输入,如果需要的话。当与话音识别结合时,提供了一种简易和自然的导航形式。如本文中所用的那样,这一同时使用屏幕显示和识别的输入形式被称为“多模态”,屏幕显示允许定位设备在屏幕上自由形式的作用,例如选择。
参考图6,说明HTML标记语言代码。HTML代码包括主体部分270和脚本部分272。在每个区域250、252和254中的信息输入分别由代码部分280、282或284来控制或执行。先参考代码部分280,例如用装置30的输入笔在区域250上选择时,启动了事件“onClick”,它在脚本部分272中调入或执行“谈话”。该作用激活了用于话音识别的语法,该话音识别与区域250中的通常预期数据类型有关。这一包括一种以上输入技术(例如语音和笔点/滚子)类型的相互作用称为“多模态”。
现在再返回语法,该语法是诸如上下文无关语法、N-语法或混合语法的合成语法,但不限于这些。(当然,当利用相应形式的识别时会使用DTMF语法、手写语法、手势语法和图像语法。如本文中所用的那样,“语法”包括:用于执行识别的信息;在另一实施例中还包括相应于预期输入的信息,例如,在特殊区域中)。控制290(本文中识别为“reco”)包括多个元素,说明了它们中的两个,即语法元素“语法”和“联编”元素。通常,象从网络服务器202下载到客户机的代码那样,可以在网络服务器202产生语法并被下载到客户机和/或传给用于话音处理的远端服务器。然后,语法可以被局部存储在高速缓存中。结果,将语法提供给识别服务器204,在识别中使用。语法元素被用于指定语法,内联或用属性来参考。
一从相应于所识别的话音的识别服务器204收到识别结果,就提供手写、手势、图像等语法的reco控制290来接收相应结果和使它与相应区域关联,该区域可包括显示器34上反映的文本。在所说明的实施例中,一用被发回到客户机的结果完成话音识别,就使reco对象无效并将所识别的文本与相应区域关联。部分282和284的操作类似,其中为每个区域252和254调入唯一的reco对象和语法,并随着收到所识别的文本使每个区域252和254相关联。对应于卡号区域252的接收,功能“handle”对应卡类型检查卡号的长度。
客户端标记的产生
如上所述,当从客户机装置30发出请求时,服务器端插件209输出客户端标记。简言之,服务器端插件209允许网站,从而允许定义和构建应用和应用所提供的服务。服务器端插件209中的指令由编译代码构成。当网络请求到达网络服务器202时运行该代码。然后,服务器端插件209输出新的客户端标记页,该页被发送到客户机装置30。众所周知,该过程常被称为反映。服务器端插件209对“控制”进行操作,该“控制”抽象和压缩了标记语言,从而抽象和压缩了客户端标记页代码。这种抽象和压缩标记语言并在网络服务器202上操作的的控制包括或相当于“服务器插件”或“服务器端插件”等几例。
已知,已有技术的服务器端插件可以为视觉反映和与客户机装置30的相互作用产生客户端标记。本说明书提供了3个不同种方法,用于扩展服务器端插件209以包括识别和听觉提示扩展,如上面讨论的示例客户端扩展,它们也分为本发明的几个方面。图7示意性说明了第一种方法,当前的视觉服务器端控制(包括用于视觉显示的参数,诸如反映的位置、字体、前景颜色、背景颜色等)被扩展为包括用于识别的参数和属性以及用于相关识别的听觉提示。用实例方式的话音识别和相关听觉提示,属性通常与听觉提示参数有关,如提示是否包含用于文本-话音转换的内联文本、预记录听觉文件(例如wave文件)的播放、用于听觉反映的数据(用于文本-话音转换或预记录听觉文件的文本)的位置等。对于识别,参数或属性可以包括识别期间要用的语法位置、信用度阈值等。由于服务器端插件209产生客户端标记,所以,用于对服务器端插件209的控制的参数和属性与用于识别和/或听觉提示的客户端标记中提供的扩展有关。
图7中300A所指示的控制是在网站应用开发或编写工具中周知的控制,编写工具诸如ASP、ASP+、ASP.Net、JSP、Javabeans等。这种控制一般形成在库中并被控制302用来执行特殊视觉任务。库300A包括用于产生预期客户机标记、事件处理程序等的方法。视觉控制302的实例包括“标签”控制,它在视觉显示器上提供所选择的文本标签,诸如图5中的标签“信用卡提交”304。较高级视觉控制302的实例是“文本框”,它允许在诸如图5中250所示的数据区域中输入数据。现有视觉控制302也是周知的。在对将服务器端插件模块控制扩展成包括识别和/或听觉提示的第一种方法中,除了一组与视觉反映有关的属性外,每个视觉控制302应再包括与识别或听觉提示有关的参数或属性。在“标签”控制的情况下(否则就在视觉显示器上提供被选择的文本),其它属性可以包括要反映听觉数据或是利用文本-话音转换和该数据文件的位置。库300B与库300A类似,还包括用于执行识别和/或听觉提示的标记信息。每个视觉控制302被编码成将该信息适当提供给控制300B以执行关于识别或听觉提示的特殊任务。
作为另一实施例,在视觉显示器上产生且允许客户机装置30的用户输入信息的“文本框”控制也应包括:适当的识别或听觉提示参数或属性,诸如识别要用的语法。应当注意,识别或听觉提示是可选的,如果不希望识别或听觉提示就无须使用。
通常,如果在级302的控制包括关于视觉方面的参数,该控制就访问和使用库300。类似地,如果该控制包括关于识别和/或听觉提示的参数,该控制就访问和使用库300B。应当注意,已经分别说明了库300A和300B以便强调库300B中的附加信息,以及可以实现具有库300A和300B的信息的单个库。
这种方法中,每个当前或已有技术视觉控制302被扩展成包括适当识别/听觉提示属性。可以在库中形成控制302。服务器端插件209访问访问库找标记信息。执行控制用所提供的参数产生了客户端标记页或其部分。
图8所示的第二种方法中,提供了新的视觉识别/听觉提示控制304以便控制304成为与视觉控制302有关的子类,其中,在控制304提供识别/听觉提示功能或标记信息。换句话说,为识别/听觉提示提供新的一组控制304,它包括适当的参数和属性以在客户机装置30上执行预期识别或与识别任务有关的听觉提示。控制304将现有视觉控制302用于经显示器反映或获得视觉信息的范围。例如,级304的控制“话音标签”在级302使用“标签”控制以提供听觉反映和/或视觉文本反映。类似地,,“话音文本框”控制应使语法和相关控制资源和处理与输入区域关联。象第一种方法那样,用于控制304的属性包括:用于识别的语法位于何处,用于文本-话音转换的内联文本,或者直接反映或要经文本-话音转换的文本文件来反映的预记录音频数据文件的位置。第二种方法的优势在于具有视觉控制302的识别控制304通过参数或属性来相互作用,这样,只要控制304和302之间的参数或属性接口技术仍然适当,改变视觉控制302就可以不要求在识别控制304中有任何改变。然而,随着又一视觉控制302的产生,级304的相应识别/听觉提示控制也可能要被写入。
图9说明第三种方法。通常,第三种方法的控制306与视觉控制302是分开的,但是,如下所述其中有选择性关联。以这种方式,控制306不直接建立在视觉控制302之上,但是还提供识别/听觉提示启动而不必重写视觉控制302。控制306象控制302那样,使用库300。本实施例中,库300包括视觉和识别/听觉提示标记信息,它同样是图7的库300A和库300B的组合。
第三种方法有显著的优势。第一,视觉控制302不必在内容上有所改变。第二,控制306可以形成一致的单个模块且不需根据话音启动控制302的本质而改变。第三,话音启动的过程,即,在设计时控制306与视觉控制302的明显关联完全在开发者的控制之下,由于它是明显的选择性的关联。这也就使视觉控制的标记语言有可能经诸如控制306产生的标记语言提供的识别、或者经诸如键盘的常规输入装置从多个源接收输入值。简言之,控制306可以被添加到服务器端插件209的视觉编写页的现有应用编写页上。控制306为客户机装置30的用户提供新形式的相互作用(即,识别和/或听觉提示),同时重利用视觉控制的应用逻辑和视觉输入/输出能力。从控制302可以与可以编码应用逻辑的视觉控制302相关联来看,控制306在下文中可称为“伴随控制306”,视觉控制302被称为“基本控制302”。应当注意,为了区分控制302和306而提供了这些参考名称而不是要限制它们。例如,伴随控制306可以被用于开发或编写网站,该网站不包括诸如纯语音网站的视觉反映。在这种情况下,可以在伴随控制逻辑中体现某种应用逻辑。
图10进一步说明了示例组的伴随控制306。这组伴随控制306可以被分组为输出控制308和输入控制310。输出控制308提供“提示”客户端标记,它通常包括预记录音频文件的播放、或用于文本-话音转换的文本、包括在标记中直接或经URL参考的数据。虽然可以用参数定义单个输出控制以管理所有的听觉提示,这样就要考虑本发明的另一方面,在示例性实例中,人物对话中的听觉提示形式或类型被形成为分别的控制。尤其是输出控制308可以包括“问题”控制308A、“确认”控制308B和“陈述”控制308C,这些将在下文详细讨论。类似地,输入控制310也可以形成或遵循人物对话并包括“回答”控制310A和“命令”控制310B。下面讨论输入控制310,但是,通常输入控制310将命令和来自客户机装置30的用户的预期和可能输入关联起来。
虽然关于用作伴随控制306详细讨论了询问控制308A、确认控制308B、陈述控制308C、回答控制310A、命令控制310B、也有这些控制的普通结构的其它控制、参数和事件处理程序,但是要知道这些控制、普通结构、参数和事件处理程序可以适于在上述关于图7和8讨论的其它两个种方法中提供识别和/或听觉提示。例如,参数“ClientToSpeechEnable”包括一个示例机制以形成伴随控制和视觉控制之间的关联,当在图7和8的种方法中体现时可以不需要该参数。
多模态应用中,输出控制308中的至少一个或输入控制310中的一个与基本或视觉控制302关联。在所说明的实施例中,在“问题/回答”(下文也称为“QA”)控制320的控制下配置和组织输出控制308和输入控制310。在网络服务器202上执行QA控制320,这意味着用服务器端标记体系在网络服务器上的应用开发网页上定义它,但不把它作为不同形式的标记输出到客户机装置30。虽然在QA控制表现为由所有输出控制308和输入控制310形成的图10说明了这一点,但是,要知道,这些仅仅是包括在可用于QA控制的选择中的一种或多种选择。
这时,按应用场景解释控制308和310的使用会有帮助。参考图11,在纯语音应用中,QA控制320可以包含单个询问控制308A和回答控制310A。询问控制308A包含一个或多个提示对象或控制322,同时,回答控制310A可以通过用于输入数据的识别和该输入的相关处理的语法对象或控制324来定义语法。线326表示QA控制320与相应基本控制302的关联,如果会用到的话。在客户机装置30的用户可以触摸视觉文本框(例如TapEvent)的多模态场景中,例如,对于包含文本框的基本控制(文本框具有形成了指示的视觉文本,指示客户机装置的用户应向相应区域输入些什么),相应QA控制320可以或不可以有诸如音频重放或文本-话音转换的相应提示,但是,应当有相应于用于识别的预期值的语法、和处理输入的事件处理程序328,或者处理诸如未检测到话音、未识别话音或超时取消事件的其它识别器事件(如下述“事件”)。
通常,通过输出控制308和输入控制310和附加逻辑QA控制可以执行下述过程中的一个或多个:提供输出听觉提示,收集输入数据,执行输入结果的信用证实,允许附加类型的输入诸如“帮助”命令、或允许客户机装置的用户导航网站的其它选择区域的命令,允许确认输入数据和控制网站的对话流,这里仅举几例。简言之,QA控制320包含所有与指定题目有关的控制。以这种方式,通过用对于题目的控制产生对话,以便通知获得信息、确认有效性或修复对话或改变交流题目。
在包含本发明另一方面的开发方法中,应用开发者可以用视觉控制302定义应用的视觉布局。然后,应用开发者可以用伴随控制306(体现为QA控制320或输出控制308和输入控制310)来定义应用的讲话接口。如图10和11所示,然后每个伴随控制306被链接或与相应基本或视觉控制302关联以提供识别和听觉提示。当然,如果需要的话,应用开发者可以通过在视觉控制302和伴随控制306之间转换来定义或编码应用,直到完全定义或编码应用,在视觉控制302和伴随控制306之间形成链接。
这时,提供对每个输出控制308和输入控制310的简短说明会有帮助。在附录B中提供的详细描述。
询问,回答和命令
通常,如上所述,QA控制320中的询问控制308A保持与基本控制302有关的提示和语法资源,并使联编(使识别结果和客户端标记页的输入区域关联)和处理逻辑相关。询问控制308A和回答控制310A的存在与否确定了是否在激活时启动了话音输出或识别输出。命令控制310B和用户初始回答被回答控制310A和命令控制310B的范围性质的指定所激活。
在简单的纯语音应用中,QA控制320通常保持一个询问控制或对象308A和一个回答控制或对象310A。虽然在下面的实例中没显示,但是,命令控制310B也可以被指定,例如帮助、重复、取消等,以使用户能输入不与特殊询问的回答直接相关的输入。
用于纯语音对话的通常的“常规”QA控制如下:
<Speech:QA
     id=″QA_WhichOne″
     ControlsToSpeechEnable=″textBox1″
     runat=″server″>
     <Question>
               <prompt>Which one do you want?
</prompt>
          </Question>
          <Answer>
               <grammar src=″whichOne.gram″/>
          </Answer>
     </Speech:QA>
(本文中提供的实例被写为ASP.Net框架,这只是例子而不是限制本发明)
该实例中,QA控制可以用它的“id”来识别,同时,通过参数“ControlsToSpeechEnable”获得QA控制与预期基本或视觉控制的关联,它用各自的标识符识别一个或多个基本控制。如果需要的话,可以使用其它周知的控制来形成关联。例如,通过上述第一和第二种方法可以得到直接、隐含的关联,或者,可以产生分别的表格用于保持关联。参数“runat”指示网络服务器应在网络服务器202执行该代码以产生正确的标记。
QA控制也可以只保持陈述控制308C,这种情况下,它只是提示控制而无活动语法(active grammar)(例如用于欢迎提示)。类似地,QA控制可以保持多模态控制,作为来自GUI的事件的结果,其回答控制310A直接激活它的语法或用于用户初始的范围机制(在下面讨论)。
也应当注意,QA空制320也可以保持多个输出控制308和输入控制310,诸如多个询问控制308A和多个回答控制310A。这允许编写者描述关于相同QA控制中的相同输入的相互作用流。它对于更复杂的纯语音对话尤其有用。所以,可以在与表示对话输入的视觉控制有关的QA控制包裹(wrapper)中指定可能包括多种询问和回答(例如,提问、确认、给予帮助等)的小对话。图11说明了一个复杂的QA控制。
上文表示了QA控制的主要特点。从下面的功能观点描述每个特点。
回答控制
回答控制310A将语法概念、联编和其它识别处理抽取到一个对象或控制中。回答控制310A可以被用于指定一组与问题有关的可能语法以及联编声明和相关脚本。对多模态应用的回答控制,如“Tap-and-Talk”被GUI浏览事件激活或失效。下面的实例说明了回答控制310A被用在多模态应用中以便在文本框“txtDepCity”的“mouseDown”事件中选择离开城市,并将其值写入基本文本框控制:
<Speech:QA
     controlsToSpeechEnable=″txtDepCity″
runat=″server″>
   <Answer       id=″AnsDepCity″
            StartEvent=″onMouseDown″
            StopEvent=″onMouseUp″
            />
       <grammar src=″/grammars/depCities.gram″/>
       <bind value=″//sml/DepCity″
  targetElement=″txtCity″/>
     </Answer>
  </Speech:QA>
纯语音应用中的标准回答控制310A被下述询问控制308A直接激活。
回答控制还包括一种机制用来使收到的结果与基本控制相关联。本文中,联编将多个值放在基本控制中;然而,在另一实施例中,关联机制可以允许基本控制看到或访问被识别的结果。
询问控制
询问控制308A将提示标签(附录A)的概念抽取到包含可能提供选择的对象和要响应问题的回答控制310A中。每个询问控制308A都能指定在其执行中激活了哪个回答控制310A。它许可适当的响应语法被塞进回答控制310A中,它反映了相关询问控制308A。
下面的询问控制308A可以被用在纯语音应用中以请求离开城市:
<Speech:QA id=″QADepCity″
      controlsToSpeechEnable=″txtDepCity″
      runat=″server″>
   <Question id=″Ql″Answers=″AnsDepCity″>
      <prompt>
           Please give me the departure city.
      </prompt>
   </Question>
   <Answer id=″AnsDepCity″.../>
</Speech:QA>
在下面的实例中,可以根据询问控制308A的内部条件调入不同的提示。在询问控制308A内的提示上指定条件测试的能力意味着在询问控制308A的相同功能单元中可以容许用词改变。
<Speech:QA     id=″QADepCity″
          controlsToSpeechEnable=″txtDepCity″
          runat=″server″>
     <Question id=″Ql″Answers=″AnsDepCity″>
          <prompt count=″1″>
               Now I need to get the departure city.
               Where would you liketo fly from?
          </prompt>
          <prompt count=″2″>
               Which departure city?
           </prompt>
      </Question>
      <Answer id=″AnsDepCity″.../>
 </Speech:QA>
条件QA控制
下面的实例说明了如何根据应用已知的信息来确定是否要激活QA控制。实例是调查应用的一部分。调查就是从员工们收集他们用来工作的传送模式。
调查部分首先要问用户是否搭公共汽车来上班。如果回答是:
——是,下面的问题就问用户上周搭了几天公共汽车。
——否,就绕过“搭公共汽车天数”的问题。
<asp:Label  id=″lblDisplay1″
              text=″Do you ride the bus to work?″
              runat=″server″/>
<asp:DropDownList  id=″lstRodeBusYN″runat=″server″>
          <asp:ListItem
selected=″true″>No</asp:ListItem>
            <asp:ListItem>Yes</asp:ListItem>
</asp:DropDownList>
<Speech:QA id=″QA_RideBus
          ControlsToSpeechEnable=″lstRodeBusYN″
          runat=″server″>
     <SDN:Question id=″Q_RideBus″>
          <prompt bargeIn=″False″>
          Do you ride the bus to work?
          </prompt>
     </SDN:Question>
     <SDN:Answer  id=″A_RideBus″
                      autobind=″False″
                      StartEvent=″onMouseDown″
                      StopEvent=″onMouseUp″
                      runat=″server″
    onClientReco
Figure C0215294200241
ProcessRldeBusAnswer″
         <grammar  src=″...″/><--!″yes/no″
grammar-->
     </SDN:Answer>
</Speech:QA>
<asp:Label  id=″lblDisplay2″
           enabled=″False″
           text=″How many days last week did you ride
      the bus to work?″
           runat=″server″/>
    <asp:DropDownList  id=″lstDaysRodeBus″enabled=″False″
    runat=″server″>
                <asp:ListItem selected=″true″
    >0</asp:ListItem>
              <asp:ListItem>1</asp:ListItem>
              <asp:ListItem>2</asp:ListItem>
              <asp:ListItem>3</asp:ListItem>
              <asp:ListItem>4</asp:ListItem>
              <asp:ListItem>5</asp:ListItem>
              <asp:ListItem>6</asp:ListItem>
              <asp:ListItem>7</asp:ListItem>
            </asp:DropDownList>
    <Speech:QA  id=″QA_DaysRodeBus″
                ControlsToSpeechEnable=″lstDaysRodeBus″
                ClientTest=″RideBusCheck″
                runat=″server″>
          <Question id=″Q_DaysRodeBus″>
          <prompt bargeIn=″False″>
               How many days last week did you ride the bus
     to work?
               </prompt>
          </SDN:Question>
          <SDN:Answer  id=″A_DaysRodeBus″
                           autobind=″False″
                           StartEvent=″onMouseDown″
                           StopEvent=″onMouseUp″
                           runat=″server″
          onClientReco=″ProcessDaysRodeBusAnswer″
               <grammar src=″...″/><--!″numbers″
      grammar-->
           </SDN:Answer>
      </Speech:QA>
 <script  language=″jscript″>
      function ProcessRideBusAnswer(){
       <--!using SML attribute of the Event object,
determine yes or no answer-->
       <--!then select the appropriate item in the
dropdown listbox                    -->
       <--!and enable the next label and dropdown
listbox if answer is  ″yes″  -->
       if <--!Answer is″yes″-->{
          lstRodeBusYN.selectedIndex=2
          lblDisplay2.enabled=″true″
          lstDaysRodeBus.enabled=″true″}
    }
    function RideBusCheck(){
         if lstRodeBusYN.selectedIndex=″1″<--!this
is no  -->
            then return″False″
        endif
     }
     function ProcessDaysRodeBusAnswer(){
          <--!case statement to select proper
dropdown item  -->
     }
</script>
在上面的实例中,根据布尔参数“ClientTest”执行QA控制“QA_DaysRodeBus”,在本实施例中,根据函数RideBusChech()设定该参数。如果函数返回伪条件(false condition),就不激活QA控制,而如果返回真条件,就激活QA控制。使用激活机制允许在所产生的客户端标记页中增大灵活性、改善对话流。如附录B中所述,许多控制和对象包括激活机制。
命令控制
命令控制310B是纯语音对话中常见的用户说法,纯语音对话通常几乎没有关于所问的问题的语义输入,而有搜索助理或效果导航,例如帮助、取消、重复等。QA控制306中的命令控制310B不仅可被用于指定关于识别的语法和相关处理(不象回答控制310A那样没有结果到输入区域的联编),而且指定上下文的“范围”和类型。这允许在客户端标记上编写整体和上下文敏感行为。
从上文描述,本领域的技术人员可以了解,可以用类似于视觉控制302中的树状结构来组织控制306。由于每个控制306也与所选择的视觉控制302关联,所以控制306的组织可以与控制302的结构关联。
QA控制302可以被用于话音启动自动控制(文本框、标签等)和容器控制(形式、面板等)。这提供了一种规定行为范围和获得子对话控制的模块化的方法。例如,该范围允许客户机装置的用户导航其它客户端标记没有完成对话的其它部分。
在一个实施例中,“范围”被确定为基本控制树的节点。下面是“帮助”命令的实例,它是在“Pnl1”容器控制的水平上,包含两个文本框:
        <asp:panel id=″Pnl1″...>
           <asp:textbox id=″tb1″.../>
           <asp:textbox id=″tb2″.../>
      </asp:panel>
原    <Speech:QA...>
         <Command
           id=″HelpCmd1″
           scope=″Pnl1″
           type=″help″
           onClientReco=″GlobalGiveHelp()″>
           <Grammar src=″grammars/help.gram″/>
         </Command>
      </Speech:QA>
     <script>
           function GlobalGiveHelp(){
                ...
           }
     </script>
如所说明的那样,在关于“Pnl1”的每个QA控制及其内容中“帮助”语法是激活的。每次识别到“帮助”时就执行GlobalGiveHelp子例程。为了克服它并实现上下文敏感行为,可以将相同类型的命令放到所要求级别的上下文范围中:
<Speech:QA...>
   <Command
     id=″HelpCmd2″
     scope=″Tb2″
     type=″help″
      onClientReco=″SpecialGiveHelp()″>
      <Grammar src=″grammars/help.gram″/>
    </Command>
</Speech:QA>
<script>
      function SpecialGiveHelp(){
           ...
      }
</script>
确认控制
QA控制320也可以包括用于简化公共确认子对话的编写的方法。下面的QA控制以先提问再确认值的常规子对话为例:
<Speech:QA
     id=″qaDepCity″
     controlsToSpeechEnable=″txtDepCity″
     runat=″server″>
     <!--asking for a value-->
     <Question id=″AskDepCity″
               type=″ask″
               Answers=″AnsDepCity″>
          <prompt>Which city?</prompt>
     </Question>
     <Answer   id=″AnsDepCity″
               confirmThreshold=″60″>
          <grammar src=″grammars/depCity.gram″/>
     </Answer>
     <!--confirming the value-->
     <Confirm  id=″ConfirmDepCity″
               Answers=″AnsConfDepCity″>
          <prompt>
               Did you say<value
          targetElement=″txtDepCity/Text″>?
          </prompt>
         </Confirm>
         <Answer   id=″AnsConfDepCity″>
              <grammar
         src=″grammars/YesNoDepCity.gram″/>
         </Answer>
    </Speech:QA>
该实例中,用户响应“哪个城市?”与AnsDepCity语法匹配但其信用度不超出confirmationThreshold值,该用户响应引发确认控制308。编写者可以使用的更灵活的确认方法包括利用多个询问控制和多个回答控制的机制。
在另一实施例中,关于确认控制的附加输入控制包括认可控制、否定控制和校正控制。这些控制都可以别相应确认控制激活(以类似于其它控制的方式)并分别包括认可、否认或校正结果的语法。例如,用户可能会说“不”来否认、说“是”或“是+当前值”来认可(例如“你想去西雅图吗?”“是,去西雅图”)、说“不”+新的值来校正(例如,“你想去西雅图吗?”“不,去匹兹堡”)。
陈述控制
陈述控制允许当不要求来自客户机装置30的用户的响应时,应用开发者提供关于客户端标记执行的输出。可以是例如在开始执行客户端标记页时播放“欢迎”提示。
可以在陈述控制中提供属性以便区分要提供给客户机装置的用户的不同类型信息。例如,可以提供属性以便指示警告消息或帮助消息。这些类型信息有不同的内在性质,如不同的语音。如果需要的话,可以提供不同形式的陈述控制,即,帮助控制、警告控制等。无论是作为分别控制还是陈述控制的属性来提供,不同类型的陈述在所产生的对话中起不同的作用,但是,它们共享向客户机装置的用户提供信息而不期望回答的基本作用。
事件
图11所示的事件管理程序设在QA控制320、输出控制308和输入控制310中,它们用于客户机装置30用户的有效/无效、用于识别服务器204的操作等,附录B中指明了其它事件。例如,QA控制320详细说明了话音检测器检测到用户在含糊说、但不能识别词和没检测到话音的静音的情况。这些事件参考编写者定义的客户端脚本函数。在上文说明的多模态应用中,可以将在文本框中放入错误消息的一个简单的含糊处理程序写为下面这样:
<Speech:QA
              controlsToSpeechEnable=″txtDepCity
         ″    onClientNoReco=″OnMumble()″
         runat=″seryer″>
    <Answer id=″AnsDepCity″
         StartEvent=″onMouseDown″
         StopEvent=″onMouseUp″
         >
          <grammar src=″/grammars/depCities.gram″/>
          <bind value=″//sml/DepCity″
     targetElement=″txtCity″/>
        </Answer>
     </Speech:QA>
     <script>
          function OnMumble(){
               txtDepCity.value=″...recognition
error...″;
           }
      </script>
控制执行算法
在一个实施例中,向客户机装置提供客户端脚本或模块(本文中称为“RunSpeech”)。该脚本的目的是经逻辑执行对话流,在客户机装置30上执行时、即激活关于控制的脚本以便按其中包含的值来执行时的脚本中详细说明了该逻辑。该脚本允许在页面请求之间的多次对话往来,因而,对于诸如经电话浏览器216的纯语音对话控制尤其有用。在客户机装置30上以环路方式执行客户端脚本RunSpeech,直到发送完成的形式或从客户机装置30请求新的页。
应当注意,在一个实施例中,多个控制可以按在客户机上执行时的值相互激活(例如,询问控制激活所选择回答控制)。然而,在另一实施例中,多个控制可以相互“激活”以便产生适当的标记,这种情况下可以实现服务器端处理。
通常,在一个实施例中,算法通过输入话音和识别用户输入产生对话往来。算法的整个逻辑如下用于纯语音场景:
1.发现下一激活输出伴随控制;
2.如果是陈述,就播放陈述并回到1;如果是问题或确认就到3;
3.收集预期的回答;
4.收集命令;
5.播放输出控制并听到它以便输入;
6.激活识别回答或命令对象,或者,如果没有识别到什么,就发布事件;
7.回到1。
在多模态情况下,逻辑被简化为下面的算法:
1.等候引发事件——即,用户在控制上轻敲;
2.收集预期回答;
3.听到它以便输入;
4.激活所识别的回答对象,或者,如果没识别到什么,就丢弃(throw)事件。
5.回到1。
算法相对简单是因为:如上所述,控制包含关于何时可以激活它们的内置信息。算法也利用对话中控制的作用。例如,立即播放陈述,同时一旦已经收集到了预期回答就播放询问和确认。
在另一实施例中,可以提供隐含确认从而系统确认一条信息并同时提问。例如,系统可以确认飞机到达城市并以一种说法来要求旅行日期:“你想什么时候去西雅图?”(即,问“什么时候”和隐含确认“目的地:西雅图”)。如果用户给出了日期,那么,由于如果城市是错的,用户就会立即有疑问,所以认为是暗示认可了该城市。该场景下,显然用户要获得的知识是极其重要的:他们要问问题、或者他们要校正值、或者他们要求帮助吗?通过利用在对话中用户输入的作用,系统可以直到何时暗示认可值。
总之,因对话中控制的作用和与其它控制的关系产生对话,其中,算法执行控制并因而管理对话。每个控制包含基于其类型的信息,执行算法用该类型根据它在客户机对话中是否起有用的用途来选择(即,使执行有效)给定控制。例如,只有在有值来进行确认和系统没有使值继续进行的足够信用度时确认控制才有效。在另一实现中,这些内置信息中的大多数可以被忽略或被应用开发者改编。
下面的表格总结了多个控制、它们在对话中相应作用和与其它控制的关系。
  控制   对话的作用   与其它控制的关系
  陈述   输出:呈现信息给用户   (无)
  询问   输出:问问题   选择预期回答作为响应
  确认   输出:确认从用户获得的值   选择电势输入控制作为响应,通常是认可、否认,校正
  控制   对话中的作用   与其它控制的关系
  回答   输入:为问题提供回答   用问题确认进行选择
  命令   输入:设法修复对话或改变交流题目   其范围到其它控制
  认可   输入:响应确认来确认值   用确认进行选择
  否认   输入:响应确认来否认值   用确认进行选择
  校正   输入:响应确认来校正值   用确认进行选择
  QA   (包裹:包含关于指定题目的所有控制)
通过说明简单的人/机对话来解释这些控制的使用。下面的对话中,每个对话打开一部分系统或根据反映其在对话中目的的控制(用括号来表示)赋予用户特征。
1.系统(陈述):“欢迎来到旅行订购服务”。
2.系统(询问):“您想去哪?”
3.用户(回答):“旧金山”。
4.系统(确认):“您是想说西雅图吗?”
5.用户(否认):“不”。
6.系统(问题):“您想去哪?”
7.用户(回答):“旧金山”。
8.系统(确认):“您想去西雅图吗?”
9.用户(校正):“我说的是旧金山”。
10.系统(确认):“您说的是旧金山吗?”
11.用户(校正):“是”。
12.系统(问题):“您想什么时候出发?”
13.用户(命令):“帮助”。
顺序1是系统部分上的陈述。由于陈述控制在响应中不激活回答控制,系统就不期望输入。系统在顺序2继续激活询问控制。它再激活一组可能的回答控制,包括持有通过服务可以使用的城市的语法的控制,包括许可用户在顺序3中提供的城市“旧金山”、“西雅图”等。
用户的顺序3被系统所误认。虽然系统认为它有了一个来自用于城市的回答控制的值,但是该值的信用度低(当然如此,由于它已经误认了)。刚收到的回答控制中的该低信用度值对于RunSpeech是足以出发系统部分上的确认控制的信息,象在顺序4中产生的那样。确认控制再激活否认控制、校正控制和认可控制,并使它们各自的语法可被用来识别用户的下一轮。用户顺序5、9和11说明了对这些控制的实例响应。用户的轮5简单地否认“否”。这会从系统除去该值,所以RunSpeech的下一作用是再问问题以重新获得该值(顺序6)。
顺序7和8象用3和4那样返给我们确认控制。
用户顺序9是校正控制,它被再次激活作为对确认控制的可能响应。校正控制不仅否认正进行确认的值,而且提供新的值。所以用户顺序9被系统识别为具有新值的正确控制,该值这次被正确地识别为“旧金山”。
新值中的系统信用度低,然而,在顺序10产生又一确认控制。这再在响应中激活认可、否认和校正控制,用户顺序11(“是”)与认可控制语法匹配。认可控制的识别的效果是在它试图获得的值用打下系统信任的“基础”,所以现在RunSpeech能选择其它空值来获得它。在顺序12中,输出新的询问控制,它要求日期值。这时的用户响应(顺序13)是命令:“帮助”。通常以整体风格激活命令控制,即,在系统部分上的独立的不同的询问控制和确认控制。以这种方式,用户能随时要求帮助,象他在顺序13中所做的那样。命令控制也可以被根据谈论哪部分基本控制结构来规定它们的激活范围的机制更灵敏地启动。
再看算法,,在一个示例性实施例实施例中,客户端脚本RunSpeech检查每个基本控制中的值和QA控制的属性、以及当前页上的QA控制的任何选择测试,并选择用于执行的一个QA控制。例如,在所选择的QA控制中,选择一个问题和它的相应提示用于输出,然后关于对相应问题的常规回答活动语法。也可以并行激活附加语法,允许被表示为可允许的其它命令(或其它回答)。假设已经进行了识别且完成了对输入数据的任何进一步处理,客户端脚本RunSpeech再次开始以便确定下面应执行那个QA控制。附录B中提供了示例性实现和RunSpeech算法。
应当注意,控制和RunSpeech算法或模块的使用不限于上述客户机/服务器应用,还可适于用其它应用抽象来使用。例如,可以想像只在客户机装置30上运行的诸如VoiceXML的应用包括:其它元素和控制,诸如作为上述VonceXML的一部分提供且以相同方式操作的问题和回答。这种情况下,上述RunSpeech算法机制可以被浏览器缺省执行而不需额外脚本。类似地,诸如有限状态机的其它平台可以适于包括本文中描述的多个控制和RunSpeech算法或模块。
同步
如上所述,伴随控制306与基本控制302(页上现有的控制)相关联。因而伴随控制306可以重利用基本控制302的商业逻辑和呈现能力。这用两种方式来进行:在基本控制302中存储多个值和通知基本控制改变302。
伴随控制306经所谓的联编机制使它们的值与基本控制302同步或关联。联编将从识别器收到的多个值放入基本控制302,例如将文本放入文本框,本文中以回答控制为例。由于基本控制302响应视觉呈现,它将视觉反馈提供给多模态场景中的用户。
多个伴随控制306也提供通知基本控制302它们已经过识别器收到输入的机制。这允许基本控制302采取措施,如调用商业逻辑。(由于通知伴随控制306的委托的量达到它们写入基本控制302的值,所以实现提供了一种以精细控制来控制通知的机制。该控制是由RejectThreshold和ConfirmThreshold性质在回答控制上提供的,回答控制指定了数字声音信用值,在该值以下系统会分别拒绝或试着确认一个值)。
虽然已经参考最佳实施例描述了本发明,但是,在不背离本发明的精神和范围的情况下,本领域的技术人员会知道可以进行形式或细节上的改变。
附录A
1.介绍
下面的标签是一组允许文档使用话音作为输入或输出媒体的标记元素。标签被设计成自主式XML,它可以被嵌入到任何SGML派生标记语言中,如HTML、XHTML、cHTML、SMIL、WML等。本文中使用的标签类似于SAPI5.0,已知它们是可以从Redmond,Washington的微软公司得到的方法。标签、元素、事件、属性、性质、返回值等只是示例性的,用于话音和DTMF识别,类似的标签可以被提供用于其它形式的识别。
本文中讨论的主要元素是:
<prompt...>用于话音合成构成和提示播放
<reco...>用于识别器构成和识别执行和后处理
<grammar...>用于指定输入语法资源
<dtmf...>用于DTMF的构成和控制
2.识别
识别元素用于指定可能的用户输入和用于处理输入结果的方法。因而,它的主要元素是<grammar>和<bind>,它包含用于构成识别器性质的资源。
识别元素被经起动和停止方法在上级浏览器中、或用SMIL命令在SMIL-启动浏览器中可编程地激活。由于它们呈现在页上,被认为在下级浏览器(即,非脚本支持浏览器)中是声明性地有效。为了许可并行激活多个语法,可以同时认为多个识别元素有效。
识别也可以采取特殊模式——“自动”、“单个”或“多个”——来区分它们启动的识别场景的种类和识别平台的行为。
2.1识别内容
识别元素包含一种或几种语法和任选的一组联编元素,这些联编元素审查识别结果和将相关部分复制到包含页中的值。
在上级浏览器中,识别支持各个语法规则中的纲领性激活和失效。也要注意,语法中的所有顶级规则对于识别上下文都是缺省激活的。
2.1.1<grammar>元素
语法元素被用于通过内联或利用src属性参考来指定语法。通常指定至少一种语法(内联或参考)。内联语法可以是基于文本的语法格式,同时参考语法可以是基于文本的或二进制类型的。可以指定多个语法元素。如果指定了一种以上的语法元素,将加入语法中的规则作为相同语法中的额外规则。可以重写具有相同名称的任何规则。
属性:
·src:如果指定内联语法时可选。要包括语法的URI。注意,语法中的所有顶级规则对于识别上下文来说都是缺省激活的。
·lang ID:可选。指示应使用哪种语言话音引擎的字符串。字符串格式遵循xml:lang定义。例如,langID=“en-us”表示US英语。该属性只在不在语法URI中指定语言ID(longID)时是有效的。如果未指定,就缺省为US英语。
如果在多个地方指定语言ID,那么,语言ID就遵循优先次序,从最低范围-远端语法(即,在语法文件中指定语言id)后面是语法元素,语法元素后面是识别元素。
      <grammar src=″FromCity.xml″/>
           or
      <grammar>
          <rule  toplevel=″active″>
              <p>from</p>
原文65        <ruleref name=″cities″/>
          </rule>
          <rule name=″cities″>
              <l>
              <p>Cambridge</p>
              <p>Seattle</p>
              <p>London</p>
             </l>
         </rule>
     </grammar>
如果同时指定了src参考语法和内联语法,就将内联规则添加到参考规则,并重写具有相同名称的任何规则。
2.1.2<bind>元素
联编元素被用于将多个值从识别结果联编为页。
联编元素消耗的识别结果可以是包含用于指定识别结果的语义标记语言(SML)的XML文档。其内容包括语义值、所说的实际词和信用分。SML也可以包括代替识别选择(象在N-最佳识别结果中那样)。下面说明用于说法“我喜欢从西雅图旅行到波士顿”的示例SML文档:
    <sml confidence=″40″>
         <travel text=″I′d like to travel from
    Seattle to Boston″>
              <origin_city confidence=″45″>Seattle
</origin_city>
              <dest_city   confidence=″35″>Boston
</dest_city>
          </travel>
     </sml>
由于假设内-语法识别产生XML文档——以语义标记语言或SML——,用XPath询问来参考从SML文档联编的值。由于多个值要与其联编的页中的元素被唯一识别(它们可能是形式控制),直接参考这些目标元素。
属性
·targetElement:要求。要被分配来自SML的value内容的元素(如W3C SMIL 2.0中那样)
·targetAttribute:可选。要被分配来自SML的value内容的目标元素属性(如SMIL2.0中的attributeName属性那样)。如果没指定,缺省为“值”。
·test:可选。指示条件的XML Pattern(如在W3C XML DOM标准中那样)字符串,在该条件下分配识别结果。缺省条件为真。
·value:要求。XPATH(如W3C XML DOM标准中那样)字符串,它指定来自要分配目标元素的识别结果文档的值。
实例:
所以假设上述SML返回,下面的识别元素就用联编将origin_city和dest_city中的值传送到目标页元素文本框起源(txtBoxOrigin)和文本框目标(txtBoxDest):
<input name=″txtBoxOrigin″type=″text″/>
<input name=″txtBoxDest″type=″text″/>
<reco id=″travel″>
    <grammar src=″./city.xml″/>
    <bind      targetElement=″txtBoxOrigin″
          value=″//origin_city″/>
    <bind      targetElement=″txtBoxDest″
          value=″//dest_city″/>
</reco>
该联编是有条件的,如下述实例中那样,对dest_city的信用属性进行测试作为联编操作的前提条件:
<bind targetElement=”txtBoxDest”
value=”//dest_city”
test=”/sml/dest_city[@confidence $gt$ 40]”
/>
联编元素是在下级或上级浏览器上词识别结果的简单的声明性方法。对于更复杂的处理,上级浏览器支持的识别DOM对象实现了识别中(onReco)事件处理程序,以便许可纲领性脚本分析和识别返回的后处理。
2.2属性和性质
下面的属性被所有浏览器所支持,性质被所有上级浏览器所支持。
2.2.1属性
下面的Reco属性用于配置对话轮中语音识别程序。
·initialTimeout:可选。开始识别和检测话音之间的几毫秒时间。该值被送到识别平台,如果超时的话,从识别平台提供onSilence事件(见2.4.2)。如果不指定,话音平台就使用缺省值。
·babbleTimeout:可选。识别器必须在检测话音后返回结果的几毫秒时间段。对于自动和单个模式下的recos,它加到话音检测和停止调入之间的时期。对于“多个”模式中的recos,该超时加到话音检测和每个识别返回之间的时期——即,每次返回结果和其它事件后重开始的时期。如果超时,识别器仍用状态代码13处理音频——例如在超长说法的情况下——,丢弃onNoReco事件(见2.4.4)。然而,如果因为其它原因超时,就更可能发生识别器错误,丢弃onTimeout事件。如果不指定,话音平台就缺省为内值。
·maxTimeout:可选。识别开始和将结果返回给浏览器之间的几毫秒时间段。如果超时,浏览器就丢弃onTimeout事件——这适合于分布环境中的网络或识别器故障。对于“多个”模式下的recos,随着串音超时,返回每个识别或其它事件后该时期重开始。注意,最大超时属性应大于或等于初始超时和串音超时的和。如果不指定,该值就是浏览器缺省的。
·endSilence:可选。对于自动模式下的recos,说法结束后的几毫秒时期,在返回识别结果后它必须没有话音。除了自动以外对于其它模式的recos忽略。如果没指定,就缺省为平台内值。
·reject:可选。识别拒绝预置,在该值以下平台会丢弃“no reco”事件。。如果未指定,话音平台就使用缺省值。信用分的范围是0到100(帧数)。拒绝值也在0到100之间。
·server:可选。话音平台的URI(当标签解释器和识别平台没协同定位时使用)。样本值可以是server=protocol://yourspeechplatform。应用作者也能通过向URI字符串添加询问字符串来提供话音平台具体设定,例如protocol://yourspeechplatform?bargeinEnergyThreshold=0.5。
·lang ID:可选。指示语言话音引擎应使用的字符串。该字符串格式遵循xml:lang定义。例如,langID=“en-us”表示US英语。该属性只在不在语法元素中指定语言ID时是有效的。(见2.1.1)
·mode:可选。指定所要遵循的识别模式的字符串。如果未指定,缺省为“自动”模式。
2.2.2性质
下面的性质包含识别过程所返回的结果(被上级浏览器所支持)。
·recoResult只读。识别的结果,保持在包含语义标记语言(SML)的XMLDOM节点中,如2.1.2所述。在没有识别的情况下,性质回零。
·text只读。一个保持所识别的字的文本的字符串(即,识别结果内SML识别返回中最高级元素的文本属性的简写内容)。
·status:只读。识别平台返回的状态代码。设在识别器事件接收上的可能值对于成功识别是0,或失败值-1到-4(如在开始方法(部分2.3.1)和激活方法(部分2.3.4)上的排除可能中定义的那样),和状态-11到-15。
2.3对象方法
识别激活和语法激活可以用识别DOM对象中的下述方法来控制。用这些方法,上级浏览器可以起动和停止识别对象,取消过程中的识别,和激活和使语法顶级规则失效(只对于上级浏览器)。
2.3.1起动
起动方法用对于识别上下文尚未明显失效的顶级规则作为活动语法来起动识别过程。
语法:
Object.Start()
返回值:
无。
排除:
该方法设定非零状态和在失败时激发(fire)onNoReco事件。可能的失败包括无语法(识别状态=-1),没能加载语法,这可以是许多原因,如没能编译语法,不存在URI(识别状态=-2)或话音平台错误(识别状态=-3)。
2.3.2停止
停止方法是结束识别过程的调入。识别对象停止记录音频,识别器返回关于收到的音频的识别结果直到停止记录时。释放识别所使用的所有识别资源,使其语法失效。(注意,该方法不需明显用于自动模式中的常规识别,由于识别器自身回在识别整个语句后将识别对象停止在末端检测上)如果还没起动识别,调入就无效。
语法:
Object.Stop()
返回值:
无。
排除:
无。
2.3.3取消
取消方法停止向识别器的音频供应,使语法失效和释放识别器并放弃识别结果。浏览器会因取消的识别而放弃识别结果。如果识别器还没起动,调入就无效。
语法:
Object.Cancel()
返回值:
无。
排除:
无。
2.3.4激活
激活方法激活上下文无关语法(CFG)中的顶级规则。必须在识别起动之前调入识别,这是由于在“起动的”识别过程期间没有效果。注意,尚未明显失效的用于识别上下文的所有语法顶级规则已经被看作是激活的。
语法:
Object.Activate()
参数:
○strName:要求。要被激活的规则名。
返回值:
无。
排除:
无。
2.3.5失效
该方法使语法中的顶级规则无效。如果规则不存在,该方法就无效。
语法:
Object.Deactivate(strName);
参数:
○strName:要求。要被失效的规则名。一个空串使所有规则无效。
返回值:
无。
排除:
无。
2.4识别事件
识别DOM对象支持下面的事件,这些事件的处理程序必须被指定为识别元素的属性。
2.4.1onReco
该事件在识别器已经识别了浏览器可用的识别结果时被激发。对于自动模式中的识别,该事件自动停止识别过程并清除资源(clear resource)(见2.3.2)。识别中通常被用于识别结果的纲领性分析或将结果处理成页。
语法:
  内联HTML <Reco onReco=”handler”>
  事件性质 Object.onReco=handlerObject.onReco=GetRef(“handler”);
事件对象信息:
  上推(bubble)   无
  调用   用户说了些什么
  缺省作用   返回识别结果对象
事件性质:
虽然事件处理程序不直接接收性质,但是,处理程序可以询问用于数据的事件对象(见下面实例中使用的事件对象)。
实例
下面的XHTML段落用识别中调入脚本分析识别成果并将这些值分配给适当区域。
    <input name=″txtBoxOrigin″type=″text″/>
    <input name=″txtBoxDest″type=″text ″/>
    <reco onReco=″processCityRecognition()″/>
         <grammar src=″/grammars/cities.xml″/>
    </reco>
    <script><![CDATA[
         function processCityRecognition(){
                smlResult=event.srcElement.recoResult;
                 origNode=
  smlResult.selectSingleNode(″//origin_city″);
                 if(origNode!=null)
  txtBoxOrigin.value=origNode.text ;
                 destNode=
  smlResult.selectSingleNode(″//dest_city″);
                 if(destNode!=null)txtBoxDest.value
  =destNode.text;
            }
       ]]></script>
2.4.2onSilence
onSilence管理在识别上的初始超时属性中指定的时期前识别平台没有检测到话音的事件(见2.2.1)。该事件取消了对于自动识别模式的自动识别处理。
语法:
  内联HTML   <reco onSilence=”handler”...>
  事件性质(在ECMA脚本中)   Object.onSilence=handlerObject.onSilence=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   识别器没在初始超时属性中指定的期间内检测到话音
  缺省作用   设定状态=-11
事件性质:
虽然事件处理程序不直接接收性质,但是,处理程序可以询问用于数据的事件对象。
2.4.3onTimeout
onTimeout管理通常反映来自话音平台的错误的两个类型的事件。
·它管理标签解释器丢弃的事件,标签解释器在识别完成之前发出最大时间属性中指定的时期(见2.2.1)到期的信号。该事件通常反映会出现在分布结构中的问题。
·它也管理(ii)当识别开始、但处理已经停止且在被含糊超时指定的时期内不识别时话音识别平台丢弃的事件(见2.2.1)。
该事件自动取消识别过程。
语法:
  内联HTML   <reco onTimeout=”handler”...>
  事件性质(在ECMA脚本中)   Object.onTimeout=handlerObject.onTimeout=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   在该时期由最大时间实行设定时被浏览器丢弃,在识别停止之前到期
  缺省作用   将识别状态设定为-12。
事件性质:
虽然事件处理程序不直接接收性质,但是,处理程序可以询问用于数据的事件的对象。
2.4.4onNoReco
onNoReco是用于在话音识别平台不能返回有效识别结果时所丢弃的事件的处理程序。它可能发生的不同情况由状态代码来区分。事件自动停止识别过程。
语法:
  内联HTML   <reco onNoReco=”handler”...>
  事件性质   Object.onNoReco=handlerObject.onNoReco=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   识别器检测声音但不能解释说法
  缺省作用   设定状态性质和返回零识别结果。如下设定状态代码:状态-13:检测到了声音但没有能被解释的话音;状态-14:检测和解释了一些话音但因不充分信用而被拒绝(对于阈值设定,见2.2.1中的拒绝属性)。状态-15:检测和解释了话音,但在话音检测和含糊超时属性中指定的持续时间之间不能返回完全识别(见2.2.1)
事件属性:
虽然事件处理程序不直接接收性质,但是,处理程序可以询问用于数据的事件对象。
3.提示
提示元素用于指定系统输出。它的内容可以是下面的一个或几个:
·内联或参考文本,它们可以用作诗法或其它话音输出信息来标记;
·从包含文档在反映时间检索到变量值;
·链接到音频文件。
提示元素可以被下级浏览器声明性地解释(或SMIL命令激活),或在上级浏览器上用对象方法解释。
3.1提示内容
提示元素包含用于系统输出的资源,作为文本或对音频文件的参考,或者二者都有。
简单提示需要只简化输出所要求的文本,例如:
<prompt id=“Welcome”>
Thank you for calling ACME weather report.
</prompt>
该简单文本也可以包含其它任何一种下述标记。
3.1.1话音合成标记
任何格式的话音合成标记语言都可以被用在提示元素中。(该格式可以被3.2.1中描述的‘tts’属性所指定)下面的实例显示了具有强调其中的某些词的指定的文本:
<prompt id=“giveBalance”>
You have<emph>five dollars</emph>left in your account.
</prompt>
3.1.2动态内容
可能在输出提示之前需要在客户机上计算提示的动态内容。为了确认特殊值,例如,该值需要在变量中被解除参考。该值元素可以用于这一目的。
值元素
值:可选。在文档中检索元素的值。
属性:
·TargetElement:可选。必须指定href或目标元素。该元素的id包含要被检索的值。
·targetAttribute:可选。要从其检索值的元素的属性。
·href:可选。音频段的URI。如果href和目标元素同时呈现,href就重写目标元素。
目标元素属性被用于参考包含文档中的元素。被目标元素指定了id的元素内容被插入文本中,用于合成。如果在该元素属性中保持预期内容,目标属性的属性可以被用于在目标元素上指定所需属性。这对于解除例如HTML格式控制中的值的参考是有用的。在下面的说明中,“文本框起源”和“文本框目标”元素的“值”属性在输出提示前被插入文本中
<prompt id=“Confirm”>
Do you want to travel from
<value targetElement=“txtBoxOrigin”
targetAttribute=“value”/>
to
<value targetElement=“txtBoxDest”
targetAttribute=“value”/>
</prompt>
3.1.3音频文件
值元素也可以被用于参考用于播放的预记录文件来代替或在合成后的提示中。下面的实例在提示最后发出警报声:
<prompt>
After the beep,please record your message.
<value href=“/wav/beep.wav”/>
</prompt>
3.1.4所参考的提示
src属性可以被用空元素来使用以便经URI参考外部内容来代替指定内容内联,诸如在:
<prompt id=“Welcome”
src=“/ACMEWeatherPrompts#Welcome”/>
src属性的目标可以保持上述为内联提示指定的任何内容或所有内容。
3.2属性和性质
提示元素保持下面的属性(下级浏览器)和性质(下级和上级浏览器)。
3.2.1属性
·tts:可选。用于文本-话音合成的标记语言类型。缺省为“SAPI 5”。
·src:如指定内联提示就是可选的。所参考的提示的URI(见3.1.4)。
·bargein:可选。整数。从开始提示到重放时的几毫秒时期可以被听者打断。缺省为无限,即,不允许bargein。这应用于任何一种平台支持的闯入(barge-in)。可以用这种方式构成关键字或基于能量的闯入次数,这取决于在起动识别时起动的是二者中的哪一个。
·prefetch:可选。表示加载页时是否应立即合成提示和在浏览器存储的布尔标志。缺省为伪。
3.2.2性质
上级浏览器支持提示DOM对象中的下述性质。
·书签:只读。记录所遇到的最末合成书签的文本的字符串对象。
·状态:只读。话音平台返回的状态代码。
3.3提示方法
提示播放可以用提示DOM对象中的下述方法来控制。以这种方式,上级浏览器可以起动和停止提示对象,在过程中中止和重新开始提示以及改变所合成的话音的速度和音量。
3.3.1起动
提示的起动重放。除非给定自变量,该方法播放对象的内容。只在给定时间认为单个提示对象是“起动的”,所以,如果连续调入起动,就依次播放所有重放。
语法:
Object.Start([strText]);
参数:
○strText:要被发送到合成器的文本。如果存在的话,该自变量就重写对象的内容。
返回值:
无。
排除:
设定状态=-1且,如果服务器已经释放了音频缓冲就激发onComplete事件。
3.3.2暂停
暂停重放而不刷新音频缓冲。如果重播被暂停或停止,该方法就无效。
语法:
Object.Pause()
返回值:
无。
排除:
无。
3.3.3重新开始
重新开始重放而不刷新音频缓冲。如果还没中止重放,该方法就无效。
语法:
Object.Resume();
返回值:
无。
排除:
在重新开始失败时丢弃排除。
3.3.4停止
如果还没就绪就停止重放它并刷新音频缓冲器。如果已经停止了重放,该方法就简单地刷新音频缓冲。
语法:
Object.Stop();
返回值:
无。
排除:
无。
3.3.5改变
改变重放的速度和/或音量。可以在重放期间调入改变。
语法:
Object.Change(speed,volume)
参数:
○speed:要求。要改变的因子。Speed=2.0的意思是使当前速率加倍。Speed=0.5的意思是使当前速率减半。Speed=0的意思是恢复缺省值。
○volume:要求。要改变的因子。Volume=2.0的意思是使当前音量加倍。Volume=0.5的意思是使当前音量减半。Volume=0的意思是回复缺省值。
返回值:
无。
排除:
无。
3.3.6提示控制实例
下面的实例显示了可以如何用上述方法控制提示来对不支持关键字闯入机制的平台进行编写。
<html>
<title>Prompt control</title>
<head>
  <script>
     <!--
          function checkKWBargein(){
            news.change(1.0,0.5);//turn down the
     volume while verifying
            if(keyword.text  ==″″){//result is below
     threshold
                news.change(1.0,2.0);//restore the
     volume
                keyword.Start();//restart the
     recognition
            }else {
               news.Stop();//keyword detected!Stop
     the prompt
               //Do whatever that is necessary
            }
          }
  //
    </script>
  <script for=″window″event=″onload″>
     <!--
          news.Start();keyword.Start();
   </script>
    </head>
Figure C0215294200481
body>
  <prompt id=″news″bargein=″0″>
  Stocks  turned  in  another  lackluster  performance
 Wednesday  as  investors  received  little  incentive  to
 make  any  big  moves  ahead  of  next  week′s  Federal
 Reserve  meeting.The  tech-heavy  Nasdaq  Composite Index
 dropped  42.51  points  to  close  at  2156.26.The  Dow
 Jones  Industrial  Average fell  17.05 points  to 10866.46
 after an  early-afternoon  rally failed.
 <!--
</prompt>
   <reco    id=″keyword″
         reject=″70″
         onReco=″checkKWBargein()″>
         <grammar
   src=http://denali/news bargein grammar.xml  />
    </reco>
 </body>
 </html>
3.4提示事件
提示DOM对象支持下面的事件,可以将这些事件的处理程序指定为提示元素的属性。
3.4.1onBookmark
在遇到合成书签时激发。该事件不中止重放。
语法:
  内联HTML   <recoonBookmark=”handler”...>
  事件性质   Object.onBookmark=handlerObject.onBookmark=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   遇到所反映的字符串中的书签。
  缺省作用   返回书签字符串。
事件属性:
虽然事件处理程序不直接接收属性,但是,该处理程序可以询问用于数据的事件对象。
3.4.2onBargein
当检测到用户的闯入事件时激发。(注意确定是什么构成了闯入事件,例如能量检测湖哦关键字识别,直到平台)该事件处理程序的指定不自动打开闯入。
语法:
  内联HTML   <reco onBargein=”handler”...>
  事件性质   Object.onBargein=handlerObject.onBargein=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   遇到闯入事件。
  缺省作用   无。
事件性质:
虽然事件处理程序不直接接收性质,但是,该处理程序可以询问用于数据的事件对象。
3.4.3onComplete:
当提示重放到达终点或遇到排除时(如上定义的那样)激发。
语法:
  内联HTML   <reco onComplete=”handler”...>
  事件性质   Object.onComplete=handlerObject.onComplete=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   提示重放完成。
  缺省作用   如果重放完成正常,设定状态=0,否则如上指定设定状态。
事件性质:
虽然,事件处理程序不直接接收性质,但是,该处理程序可以询问用于数据的事件对象。
3.4.4使用书签和事件
下面的实例显示了:按照提示输出期间发生的闯入,书签事件可以被如何用来确定用户响应的语义——校正离开城市或提供目的城市。该onBargein处理程序调入一个脚本,该脚本设定了可对于在提示中遇到的最末书签变化的整体“标志”,并且该“标志”的值被用在识别后处理函数(‘heard’)以设定正确的值。
      <script><![CDATA[
           var mark;
           function interrupt(){
                mark=event.srcElement.bookmark;
           }
           function ProcessCityConfirm(){
                confirm.stop();//flush the audio
  buffer
                if  (mark==″mark_origin_city″)
                      txtBoxOrigin.value=
  event.srcElement.text;
                 else
                      txtBoxDest.value=
  event.srcElement.text;
            }
       ]]></script>
       <body>
       <input name=″txtBoxOrigin″value=″Seattle″
 type=″text″/>
       <input name=″txtBoxDest″type=″text″/>
       ...
      <prompt id=″confirm″onBargein=″interrupt()″
 bargein=″0″>
             From<bookmark mark=″mark_origin_city″/>
             <value targetElement=″orgin″
 targetAttribute=″value″/>,
/>the    please  say<bookmark mark=″mark_dest_city″
         destination city you want to travel  to.
    </prompt>
    <reco onReco=″Process CityConfirm()″>
         <grammar src=″/grm/1033/cities.xml″/>
    </reco>
    ...
    </body>
4.DTMF
产生DTMF识别对象。该对象可以用内联标记语言语法或在脚本中举例说明。当被激活时,DTMF可以使提示对象激发闯入事件。应当注意,下面相对于DTMF识别讨论的标签和事件以及在部分5中讨论的调入控制与语音浏览器216和媒体服务器214之间的相互作用有关。
4.1内容
·dtmfgrammar:用于内联语法。
·bind:象适当的区域分配DTMF转换结果。
属性:
·targetElement:要求。要被分配部分识别结果的元素(u W3C SMIL 2.0中相同)。
·targetAttribute:要被分配识别结果的目标元素的属性(与SMIL2.0中相同)。缺省为“值”。
·test:用于分配的条件。缺省为真。
实例1:将键映射到文本。
     <input type=″text″name=″city″/>
     <DTMF id=″city_choice″timeout=″2000″
numDigits=″1″>
           <dtmfgrammar>
                <key value=″1″>Seattle</key>
                <key value=″2″>Boston</key>
           </dtmfgrammar>
           <bind targetElement=″city″
 targetAttribute=″value″/>
      </DTMF>
当激活“city_choice”时,如果用户按下了1,就将“西雅图”分配到输入区域,如果按下2,就分配“波士顿”,否则什么也不分配。
实例2:可以如何用多个区域来使用DTMF。
     <input  type=″text″  name=″area_code″/>
     <input  type=″text″  name=″phone_number″/>
     <DTMF  id=″areacode″  numDigits=″3″
onReco=″extension.Activate()″>
            <bind targetEl ement=″area_code″/>
     </DTMF>
     <DTMF  id=″extension″  numDigits=″7″>
           <bind  targetElement=″phone_number″/>
     </DTMF>
实例说明了如何允许用户输入多个区域。
实例3:当用户起动DTMF时如何同时允许话音和DTMF输入以及停用话音。
     <input type=″text″name=″credit_card_number″/>
     <prompt onBookmark=″dtmf.Start();speech.Start()″
            bargein=″0″>
          Please say<bookmark name=″starting″/>
          or enter your credit card number now
     </prompt>
     <DTMF id=″dtmf″escape=″#″length=″16″
interdigitTimeout=″2000″
          onkeypress=″speech.Stop()″>
          <bind targetElement=″credit_card_number″/>
</DTMF>
<reco id=″speech″>
     <grammar src=″/grm/1033/digits.xml″/>
     <bind targetElement=″credit_card_number″/>
</reco>
4.2属性和性质
4.2.1属性
·dtmfgrammar:要求。DTMF语法的URI。
4.2.2性质
·DTMFgrammar读-写
一种将DTMF呈现给字符串转换矩阵的SML DOM节点对象(也称为DTMF语法)。缺省语法为
<dtmfgrammar>
<key value=“0”>0</key>
<key value=“1”>1></key>
...
<key value=“0”>0</key>
<key value=“9”>9</key>
<key value=“*”>*</key>
<key value=“#”>#</key>
</dtmfgrammar>
·flush
写-读,指示是否在激活之前在下层电话接口卡上自动刷新DTMF缓冲的布尔标志。缺省为伪以便启动提前键入。
·escape
读-写。结束DTMF读取会话的换码键。换码键是一个键。
·numDigits
读-写。结束DTMF读取会话的击键数。如果同时指定换码和长度,DTMF会话就在满足条件时结束。
·dtmfResult
只读字符串,存储用户已经输入的DTMF键。如果键入换码,它就包括在结果中。
·text
只读字符串,存储空白分隔符号串,根据DTMF语法转换每个符号。
·initialTimeout
读-写。用于接收第一DTMF击键的几毫秒超时期。如果未指定,缺省为电话平台的内部设定。
·interdigitTimeout
读-写。用于相邻DTMF击键的几毫秒超时期。如果未指定,缺省为电话平台的内部设定。
4.3对象方法
4.3.1起动
启动DTMF中断和起动DTMF读取会话。
语法:
Object.Start()
返回值:
无。
排除:
无。
4.3.2停止
使DTMF失效。然而,用户输入的击键仍留在缓存中。
语法:
Object.Stop()
返回值:
无。
排除:
无。
4.3.3刷新
刷新DTMF缓存。不能在DTMF会话期间调入刷新。
语法:
Object.Flush()
返回值:
无。
排除:
无。
4.4事件
4.4.1onkeypress
当按下DTMF键时激发。这重写了从HTML控制继承的缺省事件。当用户点击换码键时,onRec事件激发,而不是onKeypress。
语法:
  内联HTML <reco onKeypress=”handler”...>
  事件性质 Object.onKeypress=handlerObject.onKeypress=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   按下按键式电话的键座。
  缺省作用   返回被按下的键。
事件性质:
虽然事件处理程序不直接接收性质,但是,该处理程序可以询问用于数据的事件。
4.4.2onReco
当结束DTMF会话时激发。该事件使当前DTMF对象自动失效。
语法:
  内联HTML   <reco onReco=”handler”...>
  事件性质   Object.onReco=handlerObject.onReco=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   用户按下换码键或满足指定值的击键数。
  缺省作用   返回被按下的键。
事件性质:
虽然事件处理程序不直接接收性质,但是,处理程序可以询问用于数据的事件对象。
4.4.3onTimeout
当在超时前没接收到阶段完成事件(phrase finish event)时激发。该事件自动停止识别过程。
语法:
  内联HTML <reco onTimeout=”handler”...>
  事件性质 Object.onTimeout=handlerObject.onTimeout=GetRef(“handler”);
事件对象信息:
  上推   无
  调用   在指定的超时内没检测到DTMF击键。
  缺省作用   无。
事件性质:
虽然事件处理程序不直接接收性质,但是,该处理程序可以询问用于数据的事件对象。
5.调入控制对象
表示电话语音浏览器的电话接口(调入、终端和连接)。该对象在GUI浏览器中象窗口对象一样的性质。同样,电话对象的寿命与浏览器实例自身相同。用于电话的语音浏览器举电话对象为例,用于每个调入。用户不以对象为例或处置它。
此时,通过该对象仅暴露与第一方呼叫控制有关的特征。
5.1性质
·address
只读。XML DOM节点对象。具体实现。它是调入者的地址。对于PSTN,可以是ANI和ALI的组合。对于VoIP,它是调入者的IP地址。
·ringsBeforeAnswer
回答来电前的响铃数。缺省为无限,意味着开发者必须专门使用下面的Answer()方法来回答电话调入。当调入中心用ACD等候来电调入时,该数字可以被设为0。
5.2方法
注:这里所有的方法都是同步的。
5.2.1转移
转移该调入。对于盲目转移,系统可以终止原始调入,并且一旦转移完成就释放系统资源。
语法:
telephone.Transfer(strText);
参数:
○strText:要求。计划接收器的地址。
返回值:
无。
排除:
当调入转移失败时丢弃排除。当对方忙时,就没有数字、传真或回答机器回答。
5.2.2Bridge
第三方转移。在调入被转移后,浏览器可以释放为该调入分配的资源。直到应用恢复用strUID返回所转移的调入时的会话状态。下层电话平台可以将返回调入指路到不同的浏览器。调入可以只在接收者终止调入时返回。
语法:
telephone.Bridge(strText,strUID[imaxtime]);
参数:
○strText:要求。计划接收器的地址。
○strUID:要求。会话ID唯一识别当前调入。当所转移的调入被指回时,srtUID会出现在地址属性。
○imaxTime:可选。所转移调入的几秒最大持续时间。如果未指定,缺省平台内值。
返回值:
无。
排除:
无。
5.2.3回答
回答电话呼叫。
语法:
telephone.Answer();
返回值:
无。
排除:
当没有连接时丢弃排除。在这种情况下不会激发onAnswer事件。
5.2.4挂机
终止电话呼叫。如果当前过程中没有呼叫呼叫就没有效果。
语法:
telephone.Hangup();
返回值:
无。
排除:
无。
5.2.5连接
起动第一方输出电话。
语法:
telephone.Connection(strText,[iTimeout]);
参数:
○strText:要求。计划接收器的地址。
○iTimeout:可选。放弃尝试前的几毫秒时间。如果未指定,缺省为平台内值。
返回值:
无。
排除:
当不能完成呼叫时丢弃排除,包括遇到占线信号或到达FAX或回答机器(注:硬件可以支持该特点)。
5.2.6记录
将用户音频记录到文件。
语法:
telephone.Record(url,endSilence,[maxTimeout],[initialTimeout]);
参数:
○url:要求。所记录的结果的url。
○endSilence:要求。检测静音后停止记录的几毫秒时间。
○maxTimeout:可选。用于记录的几秒最大时间。缺省具体平台。
○initialTimeout:可选。开始记录时所允许的静音最大时间(几毫秒)。
返回值:
无。
排除:
当不能向url写入记录时丢弃排除。
5.3事件处理程序
使用电话语音浏览器的应用开发者可以实现下面的事件处理程序。
5.3.1onIncoming()
当语音浏览器接收来电呼叫时调入它。所有的开发者都可以使用该处理程序来读取呼叫者地址和调用在回答电话呼叫前所定制的特点。
5.3.2onAnswer()
当语音浏览器回答来电调入时调入它。
5.3.3onHangup()
当用户挂机时呼叫它。该事件不在程序调入挂机或转移方法时自动激发。
5.4实例
该实例显示了有线连接到呼叫呼叫控制事件的脚本以操纵电话会话。
<HTML>
<HEAD>
  <TITLE>Logon Page</TITLE>
 </HEAD>
   <SCRIPT>
    var focus;
    function RunSpeech(){
         if  (logon.user.value==″″){
                focus=″user″;
                p_uid.Start();g_login.Start();
    dtmf.Start();return ;
         }
         if  (logon.pass.value  ==″″){
                focus=″pin″;
                p_pin.Start();g_login.Start();
    dtmf.Start();return;
         }
         p_thank.Start();logon.submit();
    }
    function login_reco(){
         res=event.srcElement.recoResult;
         pNode=res.selectSingleNode(″//uid″);
         if  (pNode  !=null)
                logon.user.value=pNode.xml;
         pNode=res.selectSingleNode(″//password″);
         if  (pNode  !=null)
                logon.pass.value=pNode.xml;
    }
    function dtmf_reco(){
         res =event.srcElement.dtmfResult;
         if  (focus==″user″)
                logon.user.value=res;
         else
                logon.pin.value=res;
    }
  </SCRIPT>
  <SCRIPT for=″callControl″event=″onIncoming″>
     <!--
          //read address,prepare customized stuff  if
     any
          callControl.Answer();
     //
    </SCRIPT>
  <SCRIPT for=″callControl″event=″onOffhook″>
     <!--
          p_main.Start();g_login.Start();dtmf.Start();
     focus=″user″;
     //
   </SCRIPT>
  <SCRIPT for=″window″event=″onload″>
     <!--
          if  (logon.user.value  !=″″){
                 p_retry.Start();
                 logon.user.value=″″;
                 logon.pass.value=″″;
                 checkFields();
          }
     //
    </SCRIPT>
<BODY>
  <reco  id=″g_login″
         onReco=″login_reco();runSpeech()″
         timeout=″5000″
         onTimeout=″p_miss.Start();RunSpeech()″>
         <grammar
   src=http://kokaneel/etradedemo/speechonly/login.xml/>
         </reco>
  <dtmf  id=″dtmf″
         escape=″#″
         onkeypress=″g_login.Stop();″
         onReco=″dtmf_reco();RunSpeech()″
         interdigitTimeout=″5000″
         onTimeout=″dtmf.Flush();
         p_miss.Start();RunSpeech()″/>
   <prompt  id=″p_main″>Please sayyour user ID and pin
    number</prompt>
   <prompt  id=″p_uid″>Please just  say your user I
    D</prompt>
 <prompt  id=″p_pin″>Please just say your pin
  number</prompt>
 <prompt  id=″p_miss″>Sorry,I missed that</prompt>
 <prompt  id=″p_thank″>Thank you.Please wait while I
  verify your identity</prompt>
 <prompt  id=″p_retry″>Sorry,your user ID and pin
  number  do not match</prompt>
 <H2>Login</H2>
form id=″logon″>
       UID:<input name=″user″type=″text″
       onChange=″runSpeech()″/>
       PIN:<input name=″pass″type=″password″
       onChange=″RunSpeech()″/>
</form>
</BODY>
</HTML>
6.控制对话流
6.1用HTML和脚本来实现对话流
该实例显示了如何实现简单的数据流,数据流搜索用于输入框的值和提供用于输入的上下文敏感性帮助。它使用HTML输入机制上的题目属性(用在视觉浏览器中作为“工具提示”机制)以帮助帮助提示的内容。
 <html>
 <title>Context Sensitive Help</title>
 <head>
 <script>var focus;
 function RunSpeech(){
 if(trade.stock.value==””){
 focus=”trade.stock”;
            p_stock.Start();
            return;
   }
   if  (trade.op.value==″″){
         focus=″trade.op″;
         p_op.Start();
         return;
   }
   //..repeat above for all  fields
   trade.submit();
}
function handle(){
     res  =event.srcElement.recoResult;
              if(res.text==″help″){
                  text=″Please just say″;
                  text+=document.all[focus].title;
                  p_help.Start(text);
              }else{
                  //proceed with value assignments
                  }
              }
    </script>
    </head>
<body>
    <prompt id=″p_help″onComplete=″checkFileds()″/>
    <prompt id=″p_stock″
    onComplete=″g_stock.Start()″>Please  say the stock
    name</prompt>
    <prompt id=″p_op″onComplete=″g_op.Start()″>Do you
    want to buy or sell</prompt>
    <prompt id=″p_quantity″
    onComplete=″g_quantity.Start()″>How many
    shares?</prompt>
    <prompt id=″p_price″
    onComplete=″g_price.Start()″>What′s  the price</prompt>
    <reco id=″g_stock″onReco=″handle();checkFields()″>
         <grammar src=″./g_stock.xml″/>
    </reco>
    <reco id=″g_op″onReco=″handle();checkFields()″/>
         <grammar src=″./g_op.xml″/>
    </reco>
    <reco id=″g_quantity″onReco=″handle();checkFields()″
    />
        <grammar src=″./g_quant.xml″/>
    </reco>
    <reco id=″g_price″onReco=″handle();checkFields()″/>
         <grammar src=″./g_quant.xml″/>
    </reco>
    <form id=″trade″>
         <input  name=″stock″title=″stock name″/>
         <select name=″op″title=″buy or sell″>
              <option value=″buy″/>
              <option value=″sell″/>
              </select>
         <input name=″quantity″title=″number of  shares″
    />
         <input name=″price″title=″price″/>
    </form>
    </body>
    </html>
6.2用SMIL
下面的实例显示了利用SMIL机制的提示和识别元素的激活。
 <html xmlns:t=”urn:schemas-microsoft-com:time″
       xmlns:sp=″urn:schemas-microsoft-
 com:speech″>
 <head>
 <style>
   .time  {behavior:url(#default#time2);}
 </style>
 </head>
 <body>
 <input name=″txtBoxOrigin″type=″text″/>
 <input name=″txtBoxDest″  type=″text″  />
<sp:prompt  class=”time″  t:begin=″0″>
  Please say the origin and destination cities
</sp:prompt>
<t:par t:begin=″time.end″
t:repeatCount=″indefinitely″
  <sp:reco class=″time″ >
    <grammar src=″./city.xml″  />
    <bind targetElement=”txtBoxOrigin″
     value=″//origin_city″/>
    <bind targetElement=″txtBoxDest″
     test=″/sml/dest_city[@confidence
Figure C0215294200641
gt
Figure C0215294200642
40]″
     value=″//dest_city″/>
  </sp:reco>
</t:par>
</body>
</html>
附录B
1.QA话音控制
QA控制将话音功能添加到它所附加的基本控制。其对象模型是附录A中示例标签的内容模型的抽象。
1.1QA控制
<Speech:QA
     id=″...″
     controlsToSpeechEnable=″...″
     speechIndex=″...″
     ClientTest=″...″
     runat=″server″>
     <Question...>
     <Statement...>
     ...
     <Answer...>
     <Confirm...>
     ...
     <Command...>
     ...
</Speech:QA>
1.1.1核芯特性
字符串ControlToSpeechEnalbe
ControlToSpeechEnalbe指定对话音使能的主要控制的ID表。ID的公共定义的。
1.1.2激活机制
SpeechIndex指定QA控制的订购信息——用RunSpeech来使用它。注:如果一个以上的QA控制有相同的SpeechIndex,RunSpeech会以源命令(source order)执行它们。在一些QA控制具有指定的SpeechIndex和一些QA控制没有指定的SpeechIndex的情况下,RunSpeech用SpeechIndex先命令QA控制,然后用源命令来命令QA控制。
字符串ClientTest
ClientTest指定了客户端脚本函数,它返回布尔值以确定QA控制何时可以被RunSpeech选择。因而该系统策略可以通过用它作为条件来进行改变,以比SpeechIndex更灵敏地激活QA控制或使其失效。如果未指定,QA控制可被认为是激活的。
1.1.3询问、陈述、回答、确认和命令
Question[]Question
QA控制包含问题对象或控制阵列,它们由对话编写者来定义。每个询问控制通常涉及系统的一个函数,例如要求一个值等。每个询问控制可以用ClientTest属性指定一个激活函数,所以激活QA控制可以在不同的环境中问关于其基本控制的多种问题。例如,用于主要问题A_Main的激活条件可以是相应基本控制没有值,用于Q_GiveHelp的激活条件可以是用户刚请求帮助。每个问题可以从QA控制中指定回答控制,这些回答控制在输出询问控制时被激活。
Statement[]Statement
QA控制包含一个陈述对象或控制的阵列。陈述被用于向听者提供信息,如欢迎提示。
Answer[]Answer
QA控制包含一个回答对象或控制的阵列。回答控制被QA控制中的询问控制直接激活。使用多个回答时,它们通常将回答反映给系统函数,例如,A_Main可以响应A_Main提供一个值,A_Confirm可以向确认提供是/否+校正。
Confirm[]Confirm
QA控制可以包含确认对象或控制。该对象是提供给对话编写者的机制,它简化了普通确认子对话的编写。
Command[]Command
命令阵列保持一组命令控制。命令控制可以被认为是没有询问控制的回答控制,它的识别行为可以被规定在控制树的下部范围。
1.2询问控制
询问控制被用于关于给定的基本控制的话音输出。它包含一组用于呈现信息或问问题的提示、和回答控制的id列表,该列表可以回答问题。如果指定了多个回答控制,就在激活问题时并行载入这些语法。如果在询问控制中不指定回答控制就丢弃排除。
<Question
     id=″...″
     ClientTest=″...″
     Answers=″...″
     Count=″...″
     initialTimeout=″...″
     babbleTimeout=″...″
     maxTimeout=″...″
     Modal=″...″
     PromptFunction=″...″
     OnClientNoReco=″...″>
        <prompt.../>
     ...
</Question>
字符串ClientTest
ClientTest指定返回布尔值的客户端脚本函数,布尔值确定在什么环境下认为QA控制中询问控制激活(QA控制对于要被评价的问题必须是激活的)。对于给定QA控制,选择具有真条件的第一询问控制用于输出。例如,该函数可以被用于确定是否要输出确定要求值(“您想去哪个城市?”)或试图确认它(“您是说伦敦吗?”)的问题。如果未指定,就认为问题条件为真。
Prompt[]Prompt
提示阵列指定了下面要讨论的提示对象的列表。提示也能指定选择条件(经客户函数),且在RunSpeech执行期间,只选择具有真条件的第一提示用于播放。
String Answer
回答是用ID的参考阵列以便控制对问题的可能回答。该行为是要响应询问控制所问的提示激活来自每个有效回答控制的语法。
Integer initialTimeout
在识别起动和检测话音之间的几毫秒时间。如果超时,该值就被送到识别平台,从识别平台丢弃onSilenct事件。如果未指定,话音平台就使用缺省值。
Integer babbleTimeout
识别服务器或其它识别器必须在检测话音后返回结果的几毫秒时间段。对于“tap-and-talk”场景中的识别,它应用于话音检测和可以使用的识别结果之间的时期。对于指令场景中的识别,该超时应用于话音检测和每个识别返回之间的时期——即,每次返回结果或其它事件后重新开始的时期。如果超时,onClientNoReco事件被丢弃但可以有不同的状态代码。如果已经可以检测到任何一种识别平台错误且经过了babbleTimeout时期,那么,onClientNoReco就被丢弃但状态代码为-3。或者,如果识别器仍处理音频——例如在超长说法的情况下或者如果用户已经在超时中继续下笔——丢弃onClientNoReco,状态代码为-15。如果未指定babbleTimeout,话音平台就缺省为内值。
Integer maxTimeout
识别起动和将结果返回被客户装置浏览器之间的几毫秒时期。如果超时,浏览器就丢弃onMaxTimeout事件——它适于内部环境中的网络或识别器故障。对于指令场景中的识别,象babbleTimeout那样,在返回每个识别或其它事件后重新开始该时期。注意,maxTimeout属性应大于或等于intialTimeout和babbleTimeout之和。如果未指定,该值就是浏览器缺省值。
bool modal
当将模态设为真时,不激活除了对问题的一组立即回答之外的回答(即,不考虑没规定范围的回答)。缺省为伪。例如,该属性允许应用开发者使客户装置的用户回答特殊问题。
字符串PromptFunction(prompt)
PromptFunction指定一旦已经选择了问题但播放提示之前调入的客户端函数。它为开发者执行对可能要求的提示的最后修改提供了机会。PromptFunction用目标提示的ID作为所要求的参数。
字符串onClientNoReco
onClientNoReco指定客户端函数的名称在收到NoReco(mumble)时调入。
1.2.1提示对象
提示对象包含关于如何播放提示的信息。所定义的所有性质是写/读性质。
<prompt
id=“...”
count=“...”
ClientTest=“...”
Source=“...”
bargeIn=“...”
onClientBargein=“...”
onClientComplete=“...”
onClientBookmark=“...”
</prompt>
int count
Count指示用于提示选择的整数。当在提示上指定的计数值与其询问控制的计数值匹配时,就选择提示用于重放。合法值是0-100。
<Question id=Q_ASk”>
<prompt count=“1”>Hello</prompt>
<prompt count=“2”>Hello again</prompt>
</Question>
该实例中,当Q_Ask.count等于1,播放第一提示,如果等于2(即,以前已经输出问题),然后播放第二提示。
字符串ClientTest
ClientTest指定了返回布尔值的客户端脚本函数,该函数确定在什么环境下选择激活询问控制中的提示用于输出。对于给定询问控制,选择具有真条件的第一提示。例如,该函数可以被用于实现提示渐细,例如(如果是第一次用户返回真的函数“您想离开哪个城市?”或用于老手的“哪个城市?”)如果未指定,就认为提示的条件为真。
字符串InlinePrompt
提示性质包含要播放的提示的文本。它被定义为提示元素的内容。它还可以包含标记,象在TTS反映信息中那样,或者<value>元素。如同页的所有部分,它也可以被指定为<script>标签中的脚本代码,用于提示输出的动态反映。
字符串Source
Source指定URL,从该URL检索要播放的提示的文本。如果指定了内联提示,就忽略该性质。
Bool BargeIn
BargeIn被用于指定是否在提示上允许闯入(其中,当播放提示时,客户装置的用户开始讲话)。缺省为真。
字符串onClientBargein
onClientBargein指定闯入事件所调用的客户端脚本函数。
字符串onClientComplete
onClientComplete指定当完成提示的播放时调用的客户端脚本函数。
字符串onClientBookmark
onClientBookmark在遇到书签时访问要调入的客户端函数的名称。
1.2.2提示选择
在RunSpeech执行时,QA控制以下面的方式选择其提示:
ClientTest和每个提示的计数属性被依次评价。播放具有ClientTest和counttrue的第一提示。错过的计数被认为是真。错过ClientTest被认为是真。
1.3陈述控制
当不要求活动语法时,陈述控制被用于信息给出系统输出。它在纯语音对话中是公用的。如果playOnce属性为真,陈述就在每页只播放依次。
<Statement
id=“...”
playOnce=“...”
ClientTest=“...”
PromptFunction=“...”
<prompt.../>
</Statement>
bool playOnce
playOnce属性指定每页是否可激活1次以上的陈述控制。playOnce是具有TRUE缺省(如果未指定)的布尔属性,即,只执行1次陈述控制。例如,playOnce属性可以被用在其目的是输出电子邮件消息到终端用户的陈述控制。设定playOnce=“False”会给对话编写者提供启动读取电子邮件消息的页上的“repeat”功能的能力。
字符串ClientTest
ClientTest指定返回布尔值的客户端脚本函数,它确定在哪种环境下选择陈述控制用于输出。RunSpeech会激活ClientTest等于真的第一陈述。如果未指定,ClientTest条件就被认为是真。
字符串PromptFuncdtion
PromptFunction指定一旦选择了陈述控制但在播放提示前要调入的客户端函数。它给了编写者对所要求的提示最后修改的机会。
Prompt[]Prompt
提示阵列指定了提示对象的列表。提示也能指定选择条件(经客户函数),在RunSpeech执行期间,只选择具有真条件的第一提示用于重放。
<Speech:QA
id=“QA_Welcome”
ControlsToSpeechEnable=“Label1”
Runat=“server”
<Statement id=“WelcomePrompt”>
<prompt bargeIn=“False”>Welcome</prompt>
</Statement>
</Speech:QA>
1.4确认控制
确认控制是询问控制的特殊类型。它们会保持所有其它询问控制的性质和对象,但是,它们的激活不同。RunSpeech算法会检查在ControlsToSpeechEnable的回答控制的confirmThreshold中发现的信用分。如果信用分太低,就激活确认控制。如果回答控制的信用分低于confirmThreshold,那么,就进行联编但是不调入onClientReco方法。对话编写者可以为每个QA控制指定一个以上的确认控制。RunSpeech会根据ClientTest指定的函数确定要激活哪个确认控制。
<Answer ConfirmationThreshold=.../>
<Confirm>
...all attributes and objects of Question...
</Confirm>
1.5回答控制
回答控制被用于指定话音输入资源和特点。它包含一组关于基本控制的语法。注意,可以独立于问题使用回答,例如在多模态应用且没有提示时、或者额外回答可以启动用户主动(initiative)的电话应用中。回答控制可以被询问控制、引发事件或明显的范围直接激活。如果在回答控制中不指定语法对象,就丢弃排除。
<Answer
     id=″...″
     scope=″...″
     StartEvent=″...″
     StopEvent=″...″
     ClientTest=″...″
     onCl ientReco=″...″
     onCl ientDTMF=″...″
     autobind=″...″
     server=″...″
     ConfirmThreshold=″...″
     RejectThreshold=″...″>
     <grammar.../>
     <grammar.../>
     ...
     <dtmf.../>
     <dtmf.../>
     ...
     <bind.../>
     <bind.../>
     ...
</Answer>
字符串Scope
Scope在页上保持任何被命名元素的id。Scope被用在回答控制中用于给用户主动可用性(混合的任务主动:即,服务跳跃离题(service jump digression))语法。如果在回答控制中指定了范围,那么,就在激活相应于上下文控制子树中的基本控制的QA控制的任何时候激活Scope。
字符串StartEvent
StartEvent指定了来自要激活回答控制的基本控制的事件名称(起动Reco对象)。它通常被用在多模态应用中,例如onMouseDown,用于tap-and-talk。
字符串StopEvent
StopEvent指定来自号使回答控制失效的基本控制的事件名称(停止Reco对象)。它通常被用在多模态应用中,例如onMouseUp,用于tap-and-talk。
字符串ClientTest
ClientTest指定返回布尔值的客户端脚本函数,它确定在哪种环境下另外会被范围或询问控制选择的询问控制是激活的。例如,该测试被用在询问控制激活‘correction’回答控制时‘correction’回答控制使自己失效的确认期间,但是,不希望是混合主动(只有认可/否认回答控制是激活的)。或者许可服务跳跃的被规定范围的回答控制可以通过指定一个测试来确定更灵活的激活方法,该测试的真或伪取决于对话的另一部分。如果未指定,回答控制的条件被认为是真。
Grammar[]Grammars
Grammars访问语法对象列表。
DTMF[]DTMFs
DTMFs保持DTMF对象阵列。
Bind[]Binds
Binds保持需要将回答控制语法结果(dtmf或讲话)映射到控制值中的联编对象列表。所有为回答指定的联编都在识别相关输出时执行。如果没有指定联编,识别返回的SML输出就被联编到在QA控制的ControlsToSpeechEnable中指定的控制。
字符串onClientReco
onClientReco指定了在可以使用讲话识别结果时要调入的客户端函数名称。
字符串onClientDTMF
onClientDTMF保持在可以使用DTMF识别结果时要调入的客户端函数名称。
boolean autobind
autobind的值确定是否为来自回答控制的识别返回实现系统缺省联编。如果未指定,缺省为真。将autobind设定为伪是让系统不执行自动联编的指令。
字符串server
server属性是指定要执行识别的服务器的URI的可选属性。该属性重写了整体话音服务器属性的URI。
integer ConfirmThreshold
保持表示信用水平的值,在该水平以下在QA控制中识别回答后确认控制问题会被自动立即引发。合法值是0-100。
注意,同时指定联编陈述和onClientReco脚本时,得到的标签的语义是在onClientReco中指定脚本前实现的联编。
integer RejectThreshold
RejectThreshold指定了考虑返回所识别的说法的最低信用分。如果整个信用低于该水平,NoReco事件就被丢弃。合法值是0-100。
1.5.1语法
语法对象包含关于选择和语法内容的信息以及用于处理结果的方法。所有被定义的性质都是读/写性质。
<Grammar
ClientTest=“...”
Source=“...”
>
...grammar rules...
</Grammar>
字符串ClientTest
ClientTest性质参考客户端布尔函数,它确定在哪种条件下语法是激活的。如果在回答控制中指定了多个语法(例如,实现系统混合主动策略,或减小进行差的对话时可能回答的混乱),只选择具有真ClientTest函数的第一语法用于RunSpeech执行期间的激活。如果,未指定该性质,就假设为真。
字符串Source
Source访问要加载的语法的URI,如果被指定的话。
字符串InlineGrammar
InlineGrammar访问语法的文本,如果内联指定的话。如果该性质不空,Source属性就被忽略。
1.5.2联编
用于联编的对象模型紧密遵循其对端客户端标签。联编可以被同时指定给讲话语法和在单个回答控制中返回的DTMF识别。
<bind
Value=“...”
TargetElement=“...”
TargetAttribute=“...”
Test=“...”
/>
字符串Value
Value指定要被联编到目标元素的文本。它被指定为从识别输出的SML上的XPath。
字符串TargetElement
TargetElement指定要应用联编陈述的基本控制的id。如果未指定,就假设它是相关QA控制的ControsToSpeechEnable。
字符串TargetAttribute
TargetAttribute指定TargetElement控制上的属性,在TargetElement中联编值。如果未指定,就假设目标元素的文本性质。
字符串Test
Test属性指定在联编机制上必须评价为真的条件。它被指定为从识别输出的SML受到XML模式。
1.5.2.1自动联编
识别上返回到话音启动的基本控制的缺省行为是要将确定性质联编到该基本控制。这对于对话控制以便检验来自各轮(甚至各页)的基本控制的识别结果是有用的。回答控制将根据接收识别结果执行下面的作用:
1.将SML输出树联编到基本控制的SML属性中;
2.将说法的文本联编到基本控制的SpokenText属性中;
3.将识别器返回的信用分联编到基本控制的Confidence属性中。
除非在回答控制上指定autobind=“False”属性,回答控制将在基本控制上执行下面的作用:
1.将SML输出树联编到SML属性中;
2.将说法的文本联编到SpokenText属性中;
3.将识别器返回的信用分联编到基本控制的Confidence属性中。
属性中已有的任何值将会被重写。自动联编发生在所有编写者指定联编命令前,因此就是在所有onClientReco脚本前(它也可以联编到这些属性)。
1.5.3DTMF
DTMF可以被回答控制用在电话应用中。DTMF对象主要应用于相同回答的不同模态语法(键区输入语法而非话音输入语法)。DTMF内容模型与客户端输出标签DTMF元素的内容模型很匹配。用DTMF对象的targetAttribute属性指定用于DTMF返回的联编机制。
<DTMF
firstTimeout=“...”
interDigitTimeout=“...”
numDigits=“...”
flush=“...”
escape=“...”
targetAttribute=“...”
ClientTest=“...”>
</DTMF>
integer firstTimeout
在激活和出现超时事件前的第一键入之间的几毫秒数。
Integer interDigitTimeout
等候出现超时事件之前的按键之间的几毫秒数。
Int numDigits
DTMF识别期间许可的最大键输入数。
bool flush
陈述是否在识别开始前刷新电话服务器DTMF缓冲的标志。设定刷新为伪许可DTMF键输入被存储在识别/页调入之间,它许可用户‘type-ahead’。
字符串escape
保持将被用于结束DTMF识别的键的串值(例如‘#’)。
字符串targetAttribute
TargetAttribute指定了要联编值的基本控制上的性质。如果未指定,就假设它是基本控制的Text性质。
字符串ClientTest
ClientTest性质参考客户端布尔函数,该函数确定在哪种条件下DTMF语法是激活的。如果在DTMF对象中指定了多个语法,就只选择具有真ClientTest函数的第一语法用于在RunSpeech执行期间激活。如果未指定该性质,就假设为真。
1.5.4DTMF语法
DTMF语法将键映射到与该键有关的输出值。下面的例子显示了如何将“1”和“2”键映射到文本输出值。
<dtmfgrammar>
<key value=“1”>Seattle</key>
<key value=“2”>Boston<</key>
</dtmfgrammar>
1.6命令控制
命令控制是可以在任何QA控制中定义的回答控制的特殊变量。命令控制由用户输入形成,这些命令控制不是对将来问题的回答(例如,帮助、重复、取消)且不需将识别结果联编到基本控制中。如果QA控制指定了激活范围,命令语法对于范围中的每个QA控制就是激活的。因此,命令不需被问题或事件直接激活,它的语法被独立于回答控制建立过程并行激活。在范围较低的QA控制的相同类型命令控制可以用上下文敏感行为来重写高级命令(甚至是不同/扩展后的语法,如果需要的话)。
<Command
id=“...”
scope=“...”
type=“...”
RejectThreshold=“...”
onClientReco=“...”>
<Grammar...>
<dtmf...>
</Command>
字符串Scope
Scope保持基本控制的id。Scope被用在命令控制中用于给命令语法的可用性规定范围。如果为命令控制指定了范围,就会在激活相应于上下文控制的子树中基本控制的QA控制的任何时候激活命令的语法。
字符串type
Type指定了命令的类型(例如‘帮助’、‘取消’等)以便允许在范围树的低级重写相同类型的命令。在该属性中任何串值都是可能的,所以是由编写者来保证类型的正确使用。
Integer RejectThreshold
RejectThreshold指定了识别引发命令所需的最低识别信用水平(可能在要求高于普通信用的信用时用到,例如在执行‘取消’命令的结果前)。合法值是0-100。
字符串onClientReco
onCommand指定了在命令控制的语法的识别上执行的客户端脚本函数。
Grammar Grammar
将听到命令的grammar对象。
DTMF[]DTMF
将激活命令的dtmf对象。
2.起始和对话流的类型
用上述控制,可以开发多种形式的起始,下面提供了一些实例。
2.1混合主动对话
混合起始对话提供了以问一个问题来认可对多个控制的输入的能力。例如,对问题“您的旅行计划是什么?”的回答可以提供用于初始城市对话框控制、目的城市对话框控制和日程控制的值(“在9月30日从普牙卢普飞到雅基马”)。
编码混合起始对话的固定方法是手写混合起始语法和相关联编陈述,并将它应用于单个控制。
下面的实例显示了用于关于旅行的简单混合起始语音相互作用的单页。第一QA控制指定了混合主动语法和联编以及要求两项的相关提示。第二和第三QA控制不是混合主动,所以用缺省直接联编到它们各自的基本控制(所以不要求联编陈述)。RunSpeech算法将根据属性“SpeechIndex”和它们的基本控制是否保持有效值来选择QA控制。
<%@Page language=“c#”AutoEventWireup=“false”
inherits=“SDN.Page”%>
<body>
<Form id=″WebForml″method=post runat=″server″>
<ASP:Label  id=″Label 1″runat=″server″>Departure
city</ASP:Label>
<ASP:TextBox id=″TextBox1″runat=″server″/>
<br>
<ASP:Label  id=″Label2″runat=″server″>Arrival
city</ASP:Label>
<ASP:TextBox id=″TextBox2″textchanged=″TextChanged″
runat=″server″/>
<!-speech information-->
<Speech:QA id=″QAmixed″controlsToSpeechEnable=″TextBox1″
speechIndex=″1″runat=″server″>
     <Question id=″Q1″Answers=″A1″>
          <prompt>″Please say the cities you want to fly
from and to″</prompt>
     </Question>
     <Answer  id=″A1″>
          <grammar src=″...″/>
          <bind targetElement=″TextBox1″
value=″/sml/path1″/>
            <bind targetElement=″TextBox2″
value=″/sml/path2″/>
     </Answer>
</Speech:QA>
<Speech:QA id=″QA1″controlsToSpeechEnable=″TextBox1″
speechIndex=″2″runat=″server″>
     <Question id=″Q1″Answers=″A1″>
          <prompt>″What′s the departure city?″</prompt>
     </Question>
     <Answer id=″A1″>
          <grammar src=″...″/>
     </Answer>
</Speech:QA>
<Speech:QA id=″QA2″controlsToSpeechEnable=″TextBox2″
speechIndex=″3″runat=″server″>
<Question id=“Q1”Answer=“A1”>
<prompt>“What’s the arrival city”</prompt>
</Question>
<Answer if=“A1”>
<grammar src=“...”/>
</Answer>
</Speech:QA>
</Form>
</body>
</html>
2.2复杂混合起始
应用开发者可以对具有不同主动水平的相同询问控制指定几个回答。指定要在问问题时选择一个问题的条件,这取决于它们要求的起始起始设定。下面提供了一个实例:
    <Speech:QA
         id=″QA_Panel2″
         ControlsToSpeechEnable=″Panel2″
         runat=″server″>
         <Question                 answers=″systemInitiative,
mixedInitiative″.../>
          <Answer     id=″systemInitiative″
                      ClientTest=″systemInitiativeCond″
                      onClientReco=″SimpleUpdate″>
                      <grammar src=″systemInitiative.gram″/>
          </Answer>
          <Answer     id=″mixedInitiative″
                      ClientTest=″mixedInitiativeCond″
                      onClientReco=″MixedUpdate″>
                      <grammar src=″mixedInitiative.gram″/>
          </Answer>
     </Speech:QA>
应用开发者可以在一个QA控制中指定几个询问控制。一些询问控制可以允许混合起始起始风格的回答,同时恰询问控制更直接。通过在这些询问控制上编写条件应用开发者可以按对话状态在问题之间选择。
在下面的实例中,混合起始问题同时提问两个文本框的值(例如‘您的旅行计划时什么?’)和调入混合起始回答(例如‘从伦敦到西雅图’)。如果失败了,那么就分别提问每个文本框的值(例如‘您从哪出发?’和‘您要去哪?’)但是,根据条件,仍然可以激活混合起始语法,这样,允许用户提供两个值。
    <Speech:QA
         id=″QA_Panel2″
         ControlsToSpeechEnable=″TextBox1,TextBox2″
         runat=″server″>
        <Question
             ClientTest=″AllEmpty()″
             answers=″AnsAll″
             .../>
        <Question
             ClientTest=″TextBox1IsEmpty()″
             answers=″AnsAll,AnsTextBox1″.../>
        <Question
             ClientTest=″TextBox2IsEmpty()″
             answers=″AnsAll,AnsTextBox2″.../>
      <Answer
           id=″AnsTextBox1″
           onClientReco=″SimpleUpdate″>
           <grammar src=″AnsTextBox1.gram″/>
      </Answer>
      <Answer
           id=″AnsTextBox2″
           onClientReco=″SimpleUpdate″>
           <grammar  src=″AnsTextBox2.gram″/>
          </Answer>
   <Answer
   id=“AnsAll”
   ClientTest=“IsMixedInitAllwed()”
   onClientReco=“MixedUpdate”
   >
   <grammar src=“AnsAll.gram”/>
   </Answer>
   </Speech:QA>
2.3用户起始
与命令控制类似,标准QA控制可以指定与其语法的激括。类似于命令控制,该QA控制将激活来自相关回答控制的语法,无论何时在该语法中激活另一QA控制。注意,它的询问控制只会被问到QA控制是否自激活。
<Speech:QA
id=“QA_Panel2”
ControlsToSpeechEnable=“Panel2”
Runat=“server”>
<Question.../>
<Answer id=“AnswerPanel2”
scope=“Panel2”
onClientReco=“UpdatePanel2()”>
<grammar src=“src=“Panel2.gram”/>
</Answer>
</Speech:QA>
这对于对话是有用的,这些对话允许‘服务跳跃’——关于不与即将到来的询问控制直接相关的对话的一些部分的用户响应。
2.4短超时确认
应用开发者可以如常编写确认,但是,设定一个短超时。在超时处理程序中,提供代码认可当前值作为准确值。
<Speech:QA
id=“QA_Panel2”
ControlsTospeechEnable=“”Panel2”
Runat=“server”>
<Confirm timeout=“20”
onClientTimeout=“AcceptConfirmtion”.../>
<Answer  id=“CorrectPanel2”
onClientReco=“UpdatePanel2()”>
<grammar src=“Panel2.gram”/>
</Answer>
</Speech:QA>
2.5动态提示建立和编辑
在选择询问控制之后但在选取和播放提示之前调入promptFunction脚本。它让应用开发者在最后一刻建立或修改提示。在下面的实例中,它被用于根据用户经验水平来改变提示。
<script language=javascript>
     function GetPrompt(){
          if(experiencedUser==true )
               Prompt1.Text=″What service do you
     want?″;
           else
               Promptl.Text=″Please choose between e-
               mail,
                             calendar and news″;
         return;
     }
</script>
<Speech:QA
     id=″QA_Panel2″
     ControlsToSpeechEnable=″Panel2″
     runat=″server″>
     <Question PromptFunction=″GetPrompt″...>
          <Prompt id=″Prompt1″/>
     </Question>
  <Answer.../>
</Speech:QA>
2.6利用语义关系
识别和语义关系的使用可以通过研究onReco事件处理程序中识别器结果来进行。
<script language=“javascript”>
function Reco(){
/*
应用开发者可以访问用识别器或识别服务器返回的SML。如果识别了语义关系(象体育新闻),各个元素的信用就可以增加或采取其它适当作用。
*/
}
</script>
<Speech:QA
id=“QA-Panel2”
ControlToSpeechEnable=“Panel2”
Runat=“server”>
<Question.../>
<Answer onClientReco=“Reco”>
<grammar src=“Panel2.gram”/>
</Answer>
</Speech:QA>
3.RunSpeech的实现和应用
需要一个机制来为纯语音客户提供适当反映话音启动页所需的信息。这种机制必须提供对话逻辑的执行和用户提示的维持状态以及应用开发者指定的语法激活
对于多模态客户不需要这种机制。在多模态的情况下,客户装置的用户可以看到包含话音启动控制的页。客户装置的用户可以用多模态范例向任何预期命令中的视觉话音启动控制中提供话音输入。
纯语音客户用来反映话音启动页的机制是RunSpeech脚本或算法。RunSpeech脚本依赖于QA控制的SpeechIndex属性和下面要讨论的SpeechGroup控制。
3.1SpeechControl
在运行期,系统分析控制脚本或具有服务器控制的网页并产生服务器控制的树状结构。通常,树的根是Page控制。如果控制脚本使用该定制或用户控制,该定制或用户控制的子树就被扩展。树的每个节点有一个ID且易于在扩展时在树中有名称冲突。为了解决可能的名称冲突,该系统包括NamingContainer概念。树中的任何节点可以实现NamingContainer,其子位于该名称空间中。
QA控制可以出现在服务器控制树中。为了容易地解决SpeechIndex和管理客户端反映,提供SpeechGroup控制。应用开发者隐瞒了Speechgroup控制。
产生一个Speechgroup控制并逻辑地连接到在其子树中包含QA控制的每个NamingContainer节。QA和SpeechGroup控制被认为时其直接NamingContainer的SpeechGroup的成员。该顶级SpeechGroup控制被连接到页对象。该成员关系逻辑地构成了QA控制和SpeechGroup控制的一个树——逻辑话音树。
对于简单的话音启动页或脚本(即,不包含其它NamingContainer的页),只产生根SpeechGroup控制并在将该页发送到纯语音客户之前把它放在页的服务器控制树中。SpeechGroup控制维护关于在该页上QA控制的数量和反映级(rendering order)的信息。
对于包含一个或多个QA控制和一个或多个NamingContainer的组合的页,产生多个SpeechGroup控制:用于页的一个SpeechGroup控制(如上所述)或用于每个NamingContainer的SpeechGroup控制。对于包含多个NamingContainer的页,页水平(page level)的SpeechGroup控制维护如上所述的QA控制信息以及复合控制的数量和反映级。与每个NamingContainer有关的SpeechGroup控制保持每个组合中的QA数量和反映级。
SpeechGroup控制的主要工作是保持QA控制的列表和每页上的SpeechGroup和包含复合控制的QA控制列。当产生客户端标记脚本(例如HTML)时,每个SpeechGroup在客户端写出QACollection对象。QACollection有QA控制和QACollection的列表。它相应于逻辑服务器端话音树。RunSpeech脚本将在纯语音对话处理期间询问用于下一QA控制的页水平QACollection对象以便调用。
位于每页上的页水平的SpeechGroup控制也响应:
·确定请求客户是纯语音客户;和
·产生公用脚本和支持用于每页上的所有QA控制的结构。
当第一SpeechGroup控制反映时,它询问用于浏览器字符串的System.Web.UI.Page.Request.Browser性质。然后,该性质被送到用于页上的每个QA控制的RenderSpeechHTML和RenderSpeechScript法。然后QA控制反映适当的客户(多模态或纯语音)。
3.2SpeechGroup控制的产生
在服务器端页加载期间,onLoad事件被发送到页上的每个控制。接收onLoad事件的第一QA控制产生页水平的SpeechGroup控制。以下面的方式产生SpeechGroup控制:(假设页包含复合控制)
每个QA控制从运行时期代码接收onLoad事件。onLoad用于QA:
■得到QA的NamingContainer N1
■在N1的子中搜索SpeechGroup
○如果已经存在,就用该SpeechGroup登记该QA控制。onLoad返回。
○如果没发现:
■产生新的SpeechGroup G1,将它插入N1的子中
■如果N1不是页,就发现N1的NamingContainer N2
■在N2的子中搜索SpeechGroup,如果存在,就说G2,将G1加到G2。如果不存在,就产生新的一个G2,将它插入N2的子中。
■依次递推直到NamingContainer是页(顶级)为止。
在服务器端页反映期间,反映事件被发送到话音启动页。当页水平的SpeechGroup控制接收Render事件时,它产生客户端脚本以包括RunSpeech.js并将它插入页中,该页最后被发送到客户装置。它也调入所有它的直接子以便反映话音相关HTML和脚本。如果子是SpeechGroup,该子就再调入它的子。以这种方式,服务器反映随着服务器端逻辑话音树发生。
当SpeechGroup反映时,它让自己的子(可以时QA或SpeechGroup)以它们的SpeechIndex的顺序反映话音HTML和脚本。但是,SpeechGroup是被隐藏的且本质上没有SpeechIndex。实际上,SpeechContainer会用相同的SpeechIndex作为它的NamingContainer,即它所连接的NamingContainer。NamingContainer经常是UserControl或其它视觉控制,编写者可以对它设定SpeechIndex。
3.3RunSpeech
RunSpeech的目的是许可经在脚本中指定的逻辑或客户机上的逻辑的对话流。在一个实施例中,在外部脚本文件中指定RunSpeech,用SpeechGroup控制的服务器端反映产生的单线加载RunSpeech,例如:
<script language=“javascript”
src=“/scripts/RunSpeech.js”/>
RunSpeech.js脚本文件应暴露一种用于在客户机上验证(validating)的方法,这里脚本已经正确加载和有正确的版本id等。由作为内联函数的页等级(pageclass)激活验证脚本,在尝试加载该文件后执行内联函数。
链接到外部脚本在功能上相当于指定它内联,且它还更有效(由于浏览器能隐藏该文件)和清楚(由于页不与类函数混淆)。
3.4事件
3.4.1事件连接(event wiring)
tap-and-talk多模态可以通过使语法激活与onMouseDown事件协作来启动。页根据多个控制之间的关系(如QA控制中的ControlsToSpeechEnable性质中指定的那样)产生这样做的连接脚本。
例如,假设asp:TextBox和其伴随QA控制添加语法,<input>和<reco>元素被每个控制的反映方法输出。要添加语法激活命令的连接机制被页产生的客户端脚本执行,它在用于激活事件的任何现有处理程序之前改变要添加激活命令的基本控制:
<!--Control output-->
<input id=″TextBox1″type=″text″.../>
<reco id=″Reco1″.../>
     <grammar src=″...″/>
</reco>
<!--Page output-->
<script>
     TextBox1.onMouseDown=
″Recol.Start();″+TextBox1.onMouseDown;
</script>
通过缺省,经onmousedown和onmouseup事件接通中心系统,但是,StartEvent和StopEvent都可以由网页编写者来设定。
文本框输出保持独立于该修改,如果存在其它处理程序就如常处理该事件。
3.4.2页等级性质
页也包含可以在运行时期用于脚本的下列性质。
SML——于控制的ID的名/值对,它与识别返回的SML关联。
SpokenText——用于控制的ID的名/值对,它与识别器返回的信用关联。
4.RunSpeech算法
RunSpeech算法被用于驱动驱动客户装置上的对话流。它可以包括系统提示和对话管理(通常用于纯语音对话),和/或话音输入的处理(纯语音和多模态对话)。它被指定为来自每个相关话音启动页的URI参考的脚本文件(相当于内联嵌入脚本)。
以下面的方式进行用于纯语音浏览器的页的浏览:
RunSpeech模块或函数工作如下(响应变为“complete”的document.onreadystate调入RunSpeech)。
(1)以话音索引排序发现第一激活QA控制(确定QA控制是否如下是激活的)。
(2)如果没有激活的QA控制,就发送该页。
(3)否则,运行QA控制。
QA控制被认为是激活的条件是如果且仅如果且仅如果:
(1)QA控制的ClientTest不存在或返回真,和
(2)QA控制包含激活询问控制或陈述控制(以源次序测试),和
(3)a.QA控制只包含陈述控制,或
b.QA控制的ControlToSpeechEnable所参考的控制中的至少一个有空或缺省值。
询问控制被认为是激活的条件如果且仅如果:
(1)询问控制的ClientTest不存在或返回真,和
(2)询问控制包含激活提示对象。
提示对象被认为是激活的条件是如果且仅如果:
(1)提示对象的ClientTest不存在或返回真,和
(2)提示对象的计数不存在或小于或等于本源询问控制的计数。
QA控制运行如下:
(1)确定哪个询问控制或陈述控制是激活的并累积其计数。
(2)如果陈述控制是激活的,就播放提示并退出。
(3)如果询问控制是激活的,就播放提示并起动用于每个激活的回答控制和命令控制的多个Reco。
回答控制被认为是激活的条件是如果且仅如果:
(1)回答控制的ClientTest不存在或返回真,和
(2)a.在激活的询问控制的回答字符串中参考回答控制,或
b.回答控制在Scope中。
命令控制被认为是激活的条件是如果且仅如果:
(1)它在Scope中,和
(2)在范围树中没有更低的同类型命令控制。
RunSpeech依赖于事件以继续驱动对话——如上所述,它会在运行单个QA控制后停止。事件处理程序因Prompt.onComplete、Reco.onReco、Reco.onSilence、Reco.onMaxTimeout和Reco.onNoReco而被包括在内。依次描述Prompt.onComplete、Reco.onReco、Reco.onSilence、Reco.onMaxTimeout和Reco.onNoReco中的每一个。
RunSpeechOnComplete工作如下:
(1)如果激活的Prompt对象有指定的onClientComplete函数,就调入它。
(2)如果激活的Prompt对象被包含在陈述控制中、或在没有激活的回答控制的询问控制中,就调入RunSpeech。
RunSpeechOnReco工作如下:
(1)一些缺省联编发生-SML树被联编到SML属性且文本被联编到ControlsToSpeechEnable中的每个控制的SpokenTest属性。
(2)如果识别结果的信用值低于激活的回答控制的ConfidenceThreshold,就运行Confirmation逻辑。
(3)否则,如果激活的回答控制有指定的onClientReco函数,就调入它,然后调入RunSpeech。
RunSpeechOnReco负责产生和设定ControlsToSpeechEnable的SML、SpokenText和Confidence性质。然后SML、SpokenText和Confidence性质可在运行时期用于脚本。
RunSpeechOnSilence、RunSpeechOnMaxTimeout和RunSpeechOnNoReco都以相同方式工作:
(1)调入适当的OnClientXXX函数,如果指定的话。
(2)调入RunSpeech。
最后,Confirmation逻辑工作如下:
(1)如果激活的回答控制的本源QA控制包含任何确认控制,就发现第一激活确认控制(确认控制的激活以与询问控制的激活完全相同的方式来确定)。
(2)如果没发现激活的确认控制,就调入RunSpeech
(3)另外,运行QA控制,用所选择的确认控制作为激活的询问控制。
对于多重模态浏览器,只执行语法加载和事件调度步骤。

Claims (26)

1.一种计算机可实现的方法,用于在客户端/服务器系统的客户端上执行识别和/或音频提示,该方法包括:
用第一组控制定义对话,该第一组控制包括至少一个询问控制,用于产生问题的音频提示;和回答控制,使用用于识别的语法,每个控制有指示相关控制是否可用于激活的属性;
根据所述定义对话,动态产生客户端标记;和
在客户端创建一个对话,作为执行与被激活的控制相关的所述客户端标记的函数。
2.根据权利要求1的计算机可实现方法,其中,创建对话包括经询问控制激活回答控制。
3.根据权利要求2的计算机可实现方法,其中,该第一组控制包括命令控制,用于产生关于语法的代码,用于在标记中阅览,帮助任务,并重复音频提示。
4.根据权利要求3的计算机可实现方法,其中,该第一组控制包括确认控制,用于产生关于确认所识别的结果正确的代码。
5.根据权利要求4的计算机可实现方法,其中,创建对话包括:激活确认控制作为信用水平或收到的结果的函数。
6.根据权利要求2的计算机可实现方法,其中,所述回答控制包括与信用水平相关的属性。
7.根据权利要求4的计算机可实现方法,其中,创建对话包括激活一个认可控制以认可所识别的结果作为确认控制的函数。
8.根据权利要求4的计算机可实现方法,其中,创建对话包括激活一个否定控制以否认所识别的结果作为确认控制的函数。
9.根据权利要求4的计算机可实现方法,其中,创建对话包括激活一个校正控制以校正所识别的结果作为确认控制的函数。
10.根据权利要求2的计算机可实现方法,其中,所述回答控制包括一种将所接收的结果与该第一组控制中的一种控制相关联的机制。
11.根据权利要求10的计算机可实现方法,其中,所述机制包括联编识别值。
12.根据权利要求11的计算机可实现方法,其中,所述机制包括发布与联编操作相关的事件。
13.根据权利要求1的计算机可实现方法,其中,还包括第二组控制,用于产生关于在客户端上的视觉反映的标记,其中,所述第一组控制中的每一个都与第二组控制中的至少一个关联。
14.一种用于在客户端/服务器系统中的客户端上执行识别和/或音频提示的计算机系统,所述计算机系统包括:
服务器,具有用第一组控制定义的对话,该第一组控制包括至少一个询问控制,用于产生问题的音频提示;和回答控制,使用用于识别的语法,每个控制有指示相关控制是否可用于激活的属性;以及用于根据所述定义对话,动态产生客户端标记的装置;以及
客户端,用于接收所述客户端标记以便为用户在客户端创建一个对话,作为执行与被激活的控制相关的所述客户端标记的函数。
15.根据权利要求14的计算机系统,其中,所述对话包括通过询问控制激活回答控制。
16.根据权利要求15的计算机系统,其中,所述对话包括命令控制,用于产生关于语法的代码,用于在标记中阅览,帮助任务,并重复音频提示。
17.根据权利要求16的计算机系统,其中,所述对话包括确认控制,用于产生关于确认所识别的结果正确的代码。
18.根据权利要求17的计算机系统,其中,所述对话包括激活确认控制作为信用水平或收到的结果的函数。
19.根据权利要求15的计算机系统,其中,所述回答控制包括与信用水平相关的属性。
20.根据权利要求17的计算机系统,其中,所述对话包括激活一个认可控制以认可所识别的结果作为确认控制的函数。
21.根据权利要求17的计算机系统,其中,所述对话包括激活一个否定控制以否认所识别的结果作为确认控制的函数。
22.根据权利要求17的计算机系统,其中,所述对话包括激活一个校正控制以校正所识别的结果作为确认控制的函数。
23.根据权利要求15的计算机系统,其中,所述回答控制包括一种将所接收的结果与该第一组控制中的一种控制相关联的机制。
24.根据权利要求23的计算机系统,其中,所述机制包括联编识别值。
25.根据权利要求24的计算机系统,其中,所述机制包括发布与联编操作相关的事件。
26.根据权利要求14的计算机系统,其中,还包括第二组控制,用于产生关于在客户端上的视觉反映的标记,其中,所述第一组控制中的每一个都与第二组控制中的至少一个关联。
CNB021529426A 2001-10-21 2002-10-21 以对话为目的的应用抽象 Expired - Lifetime CN100397340C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/087,608 2001-10-21
US10/087,608 US7711570B2 (en) 2001-10-21 2001-10-21 Application abstraction with dialog purpose

Publications (2)

Publication Number Publication Date
CN1417679A CN1417679A (zh) 2003-05-14
CN100397340C true CN100397340C (zh) 2008-06-25

Family

ID=22206200

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021529426A Expired - Lifetime CN100397340C (zh) 2001-10-21 2002-10-21 以对话为目的的应用抽象

Country Status (4)

Country Link
US (2) US7711570B2 (zh)
EP (1) EP1304614A3 (zh)
JP (2) JP2003216574A (zh)
CN (1) CN100397340C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646529B (zh) * 2017-07-25 2019-01-01 雲拓科技有限公司 主動聊天裝置
TWI657433B (zh) * 2017-11-01 2019-04-21 財團法人資訊工業策進會 語音互動裝置及應用其之語音互動方法

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711570B2 (en) * 2001-10-21 2010-05-04 Microsoft Corporation Application abstraction with dialog purpose
US8229753B2 (en) * 2001-10-21 2012-07-24 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting
GB2388209C (en) 2001-12-20 2005-08-23 Canon Kk Control apparatus
US7177816B2 (en) 2002-07-05 2007-02-13 At&T Corp. System and method of handling problematic input during context-sensitive help for multi-modal dialog systems
US7177815B2 (en) * 2002-07-05 2007-02-13 At&T Corp. System and method of context-sensitive help for multi-modal dialog systems
US7653544B2 (en) * 2003-08-08 2010-01-26 Audioeye, Inc. Method and apparatus for website navigation by the visually impaired
US7275217B2 (en) * 2002-09-09 2007-09-25 Vijay Anand Saraswat System and method for multi-modal browsing with integrated update feature
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US8494859B2 (en) * 2002-10-15 2013-07-23 Gh, Llc Universal processing system and methods for production of outputs accessible by people with disabilities
US7003464B2 (en) * 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
US7421393B1 (en) 2004-03-01 2008-09-02 At&T Corp. System for developing a dialog manager using modular spoken-dialog components
DE602004010804T2 (de) * 2003-06-02 2008-12-04 International Business Machines Corp. Sprachantwortsystem, Sprachantwortverfahren, Sprach-Server, Sprachdateiverarbeitungsverfahren, Programm und Aufzeichnungsmedium
US7389236B2 (en) * 2003-09-29 2008-06-17 Sap Aktiengesellschaft Navigation and data entry for open interaction elements
US20050080628A1 (en) * 2003-10-10 2005-04-14 Metaphor Solutions, Inc. System, method, and programming language for developing and running dialogs between a user and a virtual agent
US7409690B2 (en) * 2003-12-19 2008-08-05 International Business Machines Corporation Application module for managing interactions of distributed modality components
US8160883B2 (en) * 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US20050171780A1 (en) * 2004-02-03 2005-08-04 Microsoft Corporation Speech-related object model and interface in managed code system
US7412393B1 (en) * 2004-03-01 2008-08-12 At&T Corp. Method for developing a dialog manager using modular spoken-dialog components
EP1599007B1 (en) * 2004-05-18 2007-09-12 Alcatel Lucent Method and server for providing a multi-modal dialog
US7043435B2 (en) * 2004-09-16 2006-05-09 Sbc Knowledgfe Ventures, L.P. System and method for optimizing prompts for speech-enabled applications
US8311822B2 (en) * 2004-11-02 2012-11-13 Nuance Communications, Inc. Method and system of enabling intelligent and lightweight speech to text transcription through distributed environment
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7600232B2 (en) * 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US7751431B2 (en) * 2004-12-30 2010-07-06 Motorola, Inc. Method and apparatus for distributed speech applications
US20060149553A1 (en) * 2005-01-05 2006-07-06 At&T Corp. System and method for using a library to interactively design natural language spoken dialog systems
US8478589B2 (en) 2005-01-05 2013-07-02 At&T Intellectual Property Ii, L.P. Library of existing spoken dialog data for use in generating new natural language spoken dialog systems
US8185399B2 (en) 2005-01-05 2012-05-22 At&T Intellectual Property Ii, L.P. System and method of providing an automated data-collection in spoken dialog systems
EP1679867A1 (en) * 2005-01-06 2006-07-12 Orange SA Customisation of VoiceXML Application
US7865362B2 (en) * 2005-02-04 2011-01-04 Vocollect, Inc. Method and system for considering information about an expected response when performing speech recognition
US7805300B2 (en) * 2005-03-21 2010-09-28 At&T Intellectual Property Ii, L.P. Apparatus and method for analysis of language model changes
US8467506B2 (en) * 2005-04-21 2013-06-18 The Invention Science Fund I, Llc Systems and methods for structured voice interaction facilitated by data channel
US20060253272A1 (en) * 2005-05-06 2006-11-09 International Business Machines Corporation Voice prompts for use in speech-to-speech translation system
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7797636B2 (en) * 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US8683334B2 (en) 2005-08-19 2014-03-25 Intervoice Limited Partnership System and method for sharing access to service provider controls and subscriber profile data across multiple applications in a user interactive system
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US8229745B2 (en) * 2005-10-21 2012-07-24 Nuance Communications, Inc. Creating a mixed-initiative grammar from directed dialog grammars
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US9070363B2 (en) * 2007-10-26 2015-06-30 Facebook, Inc. Speech translation with back-channeling cues
US8972268B2 (en) * 2008-04-15 2015-03-03 Facebook, Inc. Enhanced speech-to-speech translation system and methods for adding a new word
US8103509B2 (en) * 2006-12-05 2012-01-24 Mobile Voice Control, LLC Wireless server based text to speech email
US7921214B2 (en) 2006-12-19 2011-04-05 International Business Machines Corporation Switching between modalities in a speech application environment extended for interactive text exchanges
US8000969B2 (en) * 2006-12-19 2011-08-16 Nuance Communications, Inc. Inferring switching conditions for switching between modalities in a speech application environment extended for interactive text exchanges
US8027839B2 (en) * 2006-12-19 2011-09-27 Nuance Communications, Inc. Using an automated speech application environment to automatically provide text exchange services
US8713542B2 (en) * 2007-02-27 2014-04-29 Nuance Communications, Inc. Pausing a VoiceXML dialog of a multimodal application
US8725512B2 (en) * 2007-03-13 2014-05-13 Nuance Communications, Inc. Method and system having hypothesis type variable thresholds
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US8788620B2 (en) * 2007-04-04 2014-07-22 International Business Machines Corporation Web service support for a multimodal client processing a multimodal application
US8862475B2 (en) * 2007-04-12 2014-10-14 Nuance Communications, Inc. Speech-enabled content navigation and control of a distributed multimodal browser
US8620652B2 (en) * 2007-05-17 2013-12-31 Microsoft Corporation Speech recognition macro runtime
US8196092B2 (en) * 2007-06-14 2012-06-05 Verizon Patent And Licensing Inc. XSL dialog modules
US8050928B2 (en) * 2007-11-26 2011-11-01 General Motors Llc Speech to DTMF generation
US9177551B2 (en) * 2008-01-22 2015-11-03 At&T Intellectual Property I, L.P. System and method of providing speech processing in user interface
US9047869B2 (en) * 2008-04-07 2015-06-02 Nuance Communications, Inc. Free form input field support for automated voice enablement of a web page
US8831950B2 (en) * 2008-04-07 2014-09-09 Nuance Communications, Inc. Automated voice enablement of a web page
US8543404B2 (en) * 2008-04-07 2013-09-24 Nuance Communications, Inc. Proactive completion of input fields for automated voice enablement of a web page
CA2665055C (en) * 2008-05-23 2018-03-06 Accenture Global Services Gmbh Treatment processing of a plurality of streaming voice signals for determination of responsive action thereto
CA2665014C (en) * 2008-05-23 2020-05-26 Accenture Global Services Gmbh Recognition processing of a plurality of streaming voice signals for determination of responsive action thereto
CA2665009C (en) * 2008-05-23 2018-11-27 Accenture Global Services Gmbh System for handling a plurality of streaming voice signals for determination of responsive action thereto
US8463053B1 (en) 2008-08-08 2013-06-11 The Research Foundation Of State University Of New York Enhanced max margin learning on multimodal data mining in a multimedia database
US8806357B2 (en) 2008-08-29 2014-08-12 Sap Ag Plug-ins for editing templates in a business management system
US9122669B2 (en) 2008-08-29 2015-09-01 Sap Se Flat schema integrated document oriented templates
US8380508B2 (en) * 2009-06-05 2013-02-19 Microsoft Corporation Local and remote feedback loop for speech synthesis
CN101923853B (zh) * 2009-06-12 2013-01-23 华为技术有限公司 说话人识别方法、设备和系统
JP5380543B2 (ja) * 2009-09-25 2014-01-08 株式会社東芝 音声対話装置およびプログラム
US8996384B2 (en) * 2009-10-30 2015-03-31 Vocollect, Inc. Transforming components of a web page to voice prompts
US20110184740A1 (en) * 2010-01-26 2011-07-28 Google Inc. Integration of Embedded and Network Speech Recognizers
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US8521513B2 (en) * 2010-03-12 2013-08-27 Microsoft Corporation Localization for interactive voice response systems
US9652552B2 (en) * 2010-12-14 2017-05-16 Facebook, Inc. Dialog server
US10691679B2 (en) 2011-01-18 2020-06-23 Microsoft Technology Licensing, Llc Providing query completions based on data tuples
US8255218B1 (en) * 2011-09-26 2012-08-28 Google Inc. Directing dictation into input fields
US8681950B2 (en) 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
US9424233B2 (en) * 2012-07-20 2016-08-23 Veveo, Inc. Method of and system for inferring user intent in search input in a conversational interaction system
US9465833B2 (en) 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
US9799328B2 (en) 2012-08-03 2017-10-24 Veveo, Inc. Method for using pauses detected in speech input to assist in interpreting the input during conversational interaction for information retrieval
US8543397B1 (en) 2012-10-11 2013-09-24 Google Inc. Mobile device voice activation
US10031968B2 (en) 2012-10-11 2018-07-24 Veveo, Inc. Method for adaptive conversation state management with filtering operators applied dynamically as part of a conversational interface
US9390166B2 (en) * 2012-12-31 2016-07-12 Fujitsu Limited Specific online resource identification and extraction
ES2751484T3 (es) 2013-05-07 2020-03-31 Veveo Inc Interfaz de entrada de voz incremental con retroalimentación en tiempo real
US9645703B2 (en) 2014-05-14 2017-05-09 International Business Machines Corporation Detection of communication topic change
CN104166703B (zh) * 2014-07-15 2017-10-27 百度在线网络技术(北京)有限公司 对象识别方法和装置
US9953646B2 (en) 2014-09-02 2018-04-24 Belleau Technologies Method and system for dynamic speech recognition and tracking of prewritten script
US9401949B1 (en) * 2014-11-21 2016-07-26 Instart Logic, Inc. Client web content cache purge
US9852136B2 (en) 2014-12-23 2017-12-26 Rovi Guides, Inc. Systems and methods for determining whether a negation statement applies to a current or past query
US9854049B2 (en) 2015-01-30 2017-12-26 Rovi Guides, Inc. Systems and methods for resolving ambiguous terms in social chatter based on a user profile
EP3563375B1 (en) * 2017-02-23 2022-03-02 Microsoft Technology Licensing, LLC Expandable dialogue system
US10586530B2 (en) 2017-02-23 2020-03-10 Semantic Machines, Inc. Expandable dialogue system
US20180275957A1 (en) * 2017-03-27 2018-09-27 Ca, Inc. Assistive technology for code generation using voice and virtual reality
CN107644641B (zh) * 2017-07-28 2021-04-13 深圳前海微众银行股份有限公司 对话场景识别方法、终端以及计算机可读存储介质
US11132499B2 (en) 2017-08-28 2021-09-28 Microsoft Technology Licensing, Llc Robust expandable dialogue system
EP3616080B1 (en) 2018-01-16 2022-09-21 Google LLC Systems, methods, and apparatuses for providing assistant deep links to effectuate third-party dialog session transfers
CN109492221B (zh) * 2018-10-31 2023-06-30 广东小天才科技有限公司 一种基于语义分析的信息回复方法及可穿戴设备
JP7202853B2 (ja) * 2018-11-08 2023-01-12 シャープ株式会社 冷蔵庫
US10789956B1 (en) 2019-08-20 2020-09-29 Capital One Services, Llc Text-to-speech modeling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US5953392A (en) * 1996-03-01 1999-09-14 Netphonic Communications, Inc. Method and apparatus for telephonically accessing and navigating the internet
WO2000005643A1 (en) * 1998-07-24 2000-02-03 Motorola Inc. Markup language for interactive services and methods thereof
WO2000014728A1 (en) * 1998-09-09 2000-03-16 One Voice Technologies, Inc. Network interactive user interface using speech recognition and natural language processing

Family Cites Families (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US672679A (en) * 1900-10-02 1901-04-23 Frank H Lewis Duplicate-whist board.
US4831550A (en) * 1986-03-27 1989-05-16 International Business Machines Corporation Apparatus and method for estimating, from sparse data, the probability that a particular one of a set of events is the next event in a string of events
DE3723078A1 (de) * 1987-07-11 1989-01-19 Philips Patentverwaltung Verfahren zur erkennung von zusammenhaengend gesprochenen woertern
DE3739681A1 (de) * 1987-11-24 1989-06-08 Philips Patentverwaltung Verfahren zum bestimmen von anfangs- und endpunkt isoliert gesprochener woerter in einem sprachsignal und anordnung zur durchfuehrung des verfahrens
US5263117A (en) * 1989-10-26 1993-11-16 International Business Machines Corporation Method and apparatus for finding the best splits in a decision tree for a language model for a speech recognizer
US5303327A (en) 1991-07-02 1994-04-12 Duke University Communication test system
US5477451A (en) * 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
EP0543329B1 (en) * 1991-11-18 2002-02-06 Kabushiki Kaisha Toshiba Speech dialogue system for facilitating human-computer interaction
US5502774A (en) * 1992-06-09 1996-03-26 International Business Machines Corporation Automatic recognition of a consistent message using multiple complimentary sources of information
US5384892A (en) * 1992-12-31 1995-01-24 Apple Computer, Inc. Dynamic language model for speech recognition
CA2115210C (en) 1993-04-21 1997-09-23 Joseph C. Andreshak Interactive computer system recognizing spoken commands
DE69423838T2 (de) 1993-09-23 2000-08-03 Xerox Corp Semantische Gleichereignisfilterung für Spracherkennung und Signalübersetzungsanwendungen
US5566272A (en) 1993-10-27 1996-10-15 Lucent Technologies Inc. Automatic speech recognition (ASR) processing using confidence measures
US5615296A (en) * 1993-11-12 1997-03-25 International Business Machines Corporation Continuous speech recognition and voice response system and method to enable conversational dialogues with microprocessors
US5699456A (en) 1994-01-21 1997-12-16 Lucent Technologies Inc. Large vocabulary connected speech recognition system and method of language representation using evolutional grammar to represent context free grammars
US5675819A (en) 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
US5752052A (en) * 1994-06-24 1998-05-12 Microsoft Corporation Method and system for bootstrapping statistical processing into a rule-based natural language parser
US6442523B1 (en) * 1994-07-22 2002-08-27 Steven H. Siegel Method for the auditory navigation of text
US5689617A (en) * 1995-03-14 1997-11-18 Apple Computer, Inc. Speech recognition system which returns recognition results as a reconstructed language model with attached data values
IT1279171B1 (it) * 1995-03-17 1997-12-04 Ist Trentino Di Cultura Sistema di riconoscimento di parlato continuo
US6965864B1 (en) 1995-04-10 2005-11-15 Texas Instruments Incorporated Voice activated hypermedia systems using grammatical metadata
US5774628A (en) 1995-04-10 1998-06-30 Texas Instruments Incorporated Speaker-independent dynamic vocabulary and grammar in speech recognition
US5710866A (en) * 1995-05-26 1998-01-20 Microsoft Corporation System and method for speech recognition using dynamically adjusted confidence measure
US5890123A (en) 1995-06-05 1999-03-30 Lucent Technologies, Inc. System and method for voice controlled video screen display
US5680511A (en) * 1995-06-07 1997-10-21 Dragon Systems, Inc. Systems and methods for word recognition
US5737489A (en) 1995-09-15 1998-04-07 Lucent Technologies Inc. Discriminative utterance verification for connected digits recognition
WO1997017694A1 (en) * 1995-11-04 1997-05-15 International Business Machines Corporation Method and apparatus for adapting the language model's size in a speech recognition system
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
KR100208772B1 (ko) * 1996-01-17 1999-07-15 서정욱 시각 장애인용 대화형 유도 신호 시스템 및 그 제어방법
US5913193A (en) * 1996-04-30 1999-06-15 Microsoft Corporation Method and system of runtime acoustic unit selection for speech synthesis
JP2753577B2 (ja) * 1996-04-30 1998-05-20 工業技術院長 配向した柱状粒子からなる窒化ケイ素多孔体とその製造方法
US5937384A (en) * 1996-05-01 1999-08-10 Microsoft Corporation Method and system for speech recognition using continuous density hidden Markov models
US5835888A (en) * 1996-06-10 1998-11-10 International Business Machines Corporation Statistical language model for inflected languages
US5819220A (en) 1996-09-30 1998-10-06 Hewlett-Packard Company Web triggered word set boosting for speech interfaces to the world wide web
US5905972A (en) * 1996-09-30 1999-05-18 Microsoft Corporation Prosodic databases holding fundamental frequency templates for use in speech synthesis
US5797123A (en) 1996-10-01 1998-08-18 Lucent Technologies Inc. Method of key-phase detection and verification for flexible speech understanding
US5829000A (en) * 1996-10-31 1998-10-27 Microsoft Corporation Method and system for correcting misrecognized spoken words or phrases
US5960399A (en) 1996-12-24 1999-09-28 Gte Internetworking Incorporated Client/server speech processor/recognizer
US6456974B1 (en) 1997-01-06 2002-09-24 Texas Instruments Incorporated System and method for adding speech recognition capabilities to java
US6188985B1 (en) 1997-01-06 2001-02-13 Texas Instruments Incorporated Wireless voice-activated device for control of a processor-based host system
GB9701866D0 (en) * 1997-01-30 1997-03-19 British Telecomm Information retrieval
DE19708183A1 (de) * 1997-02-28 1998-09-03 Philips Patentverwaltung Verfahren zur Spracherkennung mit Sprachmodellanpassung
US6078886A (en) 1997-04-14 2000-06-20 At&T Corporation System and method for providing remote automatic speech recognition services via a packet network
US6101472A (en) 1997-04-16 2000-08-08 International Business Machines Corporation Data processing system and method for navigating a network using a voice command
US6363301B1 (en) * 1997-06-04 2002-03-26 Nativeminds, Inc. System and method for automatically focusing the attention of a virtual robot interacting with users
US6073091A (en) * 1997-08-06 2000-06-06 International Business Machines Corporation Apparatus and method for forming a filtered inflected language model for automatic speech recognition
US6192338B1 (en) 1997-08-12 2001-02-20 At&T Corp. Natural language knowledge servers as network resources
US6154722A (en) * 1997-12-18 2000-11-28 Apple Computer, Inc. Method and apparatus for a speech recognition system language model that integrates a finite state grammar probability and an N-gram probability
US6138139A (en) * 1998-10-29 2000-10-24 Genesys Telecommunications Laboraties, Inc. Method and apparatus for supporting diverse interaction paths within a multimedia communication center
US6182039B1 (en) * 1998-03-24 2001-01-30 Matsushita Electric Industrial Co., Ltd. Method and apparatus using probabilistic language model based on confusable sets for speech recognition
US6141641A (en) * 1998-04-15 2000-10-31 Microsoft Corporation Dynamically configurable acoustic model for speech recognition system
US6610917B2 (en) 1998-05-15 2003-08-26 Lester F. Ludwig Activity indication, external source, and processing loop provisions for driven vibrating-element environments
US6689947B2 (en) 1998-05-15 2004-02-10 Lester Frank Ludwig Real-time floor controller for control of music, signal processing, mixing, video, lighting, and other systems
US6269336B1 (en) 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6434524B1 (en) 1998-09-09 2002-08-13 One Voice Technologies, Inc. Object interactive user interface using speech recognition and natural language processing
US6405170B1 (en) 1998-09-22 2002-06-11 Speechworks International, Inc. Method and system of reviewing the behavior of an interactive speech recognition application
US6493671B1 (en) 1998-10-02 2002-12-10 Motorola, Inc. Markup language for interactive services to notify a user of an event and methods thereof
US7003463B1 (en) * 1998-10-02 2006-02-21 International Business Machines Corporation System and method for providing network coordinated conversational services
US6587822B2 (en) 1998-10-06 2003-07-01 Lucent Technologies Inc. Web-based platform for interactive voice response (IVR)
US6188976B1 (en) * 1998-10-23 2001-02-13 International Business Machines Corporation Apparatus and method for building domain-specific language models
CA2287768C (en) * 1998-11-02 2004-01-13 Ahmed Abdoh Method for automated data collection, analysis and reporting
US6564263B1 (en) 1998-12-04 2003-05-13 International Business Machines Corporation Multimedia content description framework
US6718015B1 (en) 1998-12-16 2004-04-06 International Business Machines Corporation Remote web page reader
US6909874B2 (en) 2000-04-12 2005-06-21 Thomson Licensing Sa. Interactive tutorial method, system, and computer program product for real time media production
US6445776B1 (en) * 1998-12-31 2002-09-03 Nortel Networks Limited Abstract interface for media and telephony services
DE19910236A1 (de) 1999-03-09 2000-09-21 Philips Corp Intellectual Pty Verfahren zur Spracherkennung
US6526380B1 (en) 1999-03-26 2003-02-25 Koninklijke Philips Electronics N.V. Speech recognition system having parallel large vocabulary recognition engines
US6463413B1 (en) 1999-04-20 2002-10-08 Matsushita Electrical Industrial Co., Ltd. Speech recognition training for small hardware devices
US6314402B1 (en) 1999-04-23 2001-11-06 Nuance Communications Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system
US6081799A (en) * 1999-05-05 2000-06-27 International Business Machines Corporation Executing complex SQL queries using index screening for conjunct or disjunct index operations
US6604075B1 (en) 1999-05-20 2003-08-05 Lucent Technologies Inc. Web-based voice dialog interface
US6240391B1 (en) 1999-05-25 2001-05-29 Lucent Technologies Inc. Method and apparatus for assembling and presenting structured voicemail messages
US6312378B1 (en) 1999-06-03 2001-11-06 Cardiac Intelligence Corporation System and method for automated collection and analysis of patient information retrieved from an implantable medical device for remote patient care
US6978238B2 (en) 1999-07-12 2005-12-20 Charles Schwab & Co., Inc. Method and system for identifying a user by voice
US6493719B1 (en) * 1999-07-26 2002-12-10 Microsoft Corporation Method and system for scripting for system management information
US6311151B1 (en) * 1999-07-28 2001-10-30 International Business Machines Corporation System, program, and method for performing contextual software translations
US6365203B2 (en) 1999-08-16 2002-04-02 Warner-Lambert Company Continuous coating of chewing gum materials
US6453290B1 (en) 1999-10-04 2002-09-17 Globalenglish Corporation Method and system for network-based speech recognition
JP4140878B2 (ja) 1999-10-12 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム
GB9926134D0 (en) 1999-11-05 2000-01-12 Ibm Interactive voice response system
US6384829B1 (en) 1999-11-24 2002-05-07 Fuji Xerox Co., Ltd. Streamlined architecture for embodied conversational characters with reduced message traffic
US6349132B1 (en) 1999-12-16 2002-02-19 Talk2 Technology, Inc. Voice interface for electronic documents
GB9930731D0 (en) * 1999-12-22 2000-02-16 Ibm Voice processing apparatus
US6785649B1 (en) 1999-12-29 2004-08-31 International Business Machines Corporation Text formatting from speech
US6690772B1 (en) * 2000-02-07 2004-02-10 Verizon Services Corp. Voice dialing using speech models generated from text and/or speech
AU2001245447A1 (en) * 2000-03-06 2001-09-17 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US20020035474A1 (en) * 2000-07-18 2002-03-21 Ahmet Alpdemir Voice-interactive marketplace providing time and money saving benefits and real-time promotion publishing and feedback
US6662163B1 (en) * 2000-03-30 2003-12-09 Voxware, Inc. System and method for programming portable devices from a remote computer system
US6785653B1 (en) * 2000-05-01 2004-08-31 Nuance Communications Distributed voice web architecture and associated components and methods
US20020003547A1 (en) 2000-05-19 2002-01-10 Zhi Wang System and method for transcoding information for an audio or limited display user interface
AU2001263397A1 (en) * 2000-05-24 2001-12-03 Stars 1-To-1 Interactive voice communication method and system for information and entertainment
US6865528B1 (en) 2000-06-01 2005-03-08 Microsoft Corporation Use of a unified language model
TW472232B (en) * 2000-08-11 2002-01-11 Ind Tech Res Inst Probability-base fault-tolerance natural language understanding method
US6717593B1 (en) 2000-09-12 2004-04-06 Avaya Technology Corp. Mark-up language implementation of graphical or non-graphical user interfaces
US6785651B1 (en) 2000-09-14 2004-08-31 Microsoft Corporation Method and apparatus for performing plan-based dialog
US6745163B1 (en) 2000-09-27 2004-06-01 International Business Machines Corporation Method and system for synchronizing audio and visual presentation in a multi-modal content renderer
US20020077823A1 (en) 2000-10-13 2002-06-20 Andrew Fox Software development systems and methods
US6728679B1 (en) * 2000-10-30 2004-04-27 Koninklijke Philips Electronics N.V. Self-updating user interface/entertainment device that simulates personal interaction
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
JP3581648B2 (ja) 2000-11-27 2004-10-27 キヤノン株式会社 音声認識システム、情報処理装置及びそれらの制御方法、プログラム
US7028306B2 (en) 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US7487440B2 (en) 2000-12-04 2009-02-03 International Business Machines Corporation Reusable voiceXML dialog components, subdialogs and beans
US7203651B2 (en) 2000-12-07 2007-04-10 Art-Advanced Recognition Technologies, Ltd. Voice control system with multiple voice recognition engines
GB0030330D0 (en) 2000-12-13 2001-01-24 Hewlett Packard Co Idiom handling in voice service systems
EP1223423A3 (en) * 2001-01-16 2004-01-28 National Research Council of Canada Method and apparatus for enhanced laser-induced plasma spectroscopy using mixed-wavelength laser pulses
US20020107891A1 (en) 2001-02-06 2002-08-08 Leamon Andrew P. Device-independent content acquisition and presentation
US7062437B2 (en) 2001-02-13 2006-06-13 International Business Machines Corporation Audio renderings for expressing non-audio nuances
GB0104120D0 (en) 2001-02-20 2001-04-11 Pace Micro Tech Plc Remote control
US20020154124A1 (en) * 2001-02-22 2002-10-24 Han Sang-Yong System and method of enhanced computer user interaction
US20020173961A1 (en) 2001-03-09 2002-11-21 Guerra Lisa M. System, method and computer program product for dynamic, robust and fault tolerant audio output in a speech recognition framework
US20040117804A1 (en) * 2001-03-30 2004-06-17 Scahill Francis J Multi modal interface
US7778816B2 (en) 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
US7506022B2 (en) * 2001-05-04 2009-03-17 Microsoft.Corporation Web enabled recognition architecture
CN1279465C (zh) 2001-05-04 2006-10-11 微软公司 Web启用的识别体系结构
CN1266625C (zh) 2001-05-04 2006-07-26 微软公司 用于web启用的识别的服务器
US7610547B2 (en) 2001-05-04 2009-10-27 Microsoft Corporation Markup language extensions for web enabled recognition
US7409349B2 (en) 2001-05-04 2008-08-05 Microsoft Corporation Servers for web enabled speech recognition
US7020841B2 (en) 2001-06-07 2006-03-28 International Business Machines Corporation System and method for generating and presenting multi-modal applications from intent-based markup scripts
US7299269B2 (en) 2001-06-19 2007-11-20 Sun Microsystems, Inc. Dynamically allocating data buffers to a data structure based on buffer fullness frequency
US6941268B2 (en) 2001-06-21 2005-09-06 Tellme Networks, Inc. Handling of speech recognition in a declarative markup language
US6801604B2 (en) 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US6839896B2 (en) 2001-06-29 2005-01-04 International Business Machines Corporation System and method for providing dialog management and arbitration in a multi-modal environment
US6868383B1 (en) * 2001-07-12 2005-03-15 At&T Corp. Systems and methods for extracting meaning from multimodal inputs using finite-state devices
US20020010715A1 (en) * 2001-07-26 2002-01-24 Garry Chinn System and method for browsing using a limited display device
US20030065505A1 (en) * 2001-08-17 2003-04-03 At&T Corp. Systems and methods for abstracting portions of information that is represented with finite-state devices
US8229753B2 (en) * 2001-10-21 2012-07-24 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting
US7711570B2 (en) * 2001-10-21 2010-05-04 Microsoft Corporation Application abstraction with dialog purpose
US6941265B2 (en) 2001-12-14 2005-09-06 Qualcomm Inc Voice recognition system method and apparatus
US7610556B2 (en) * 2001-12-28 2009-10-27 Microsoft Corporation Dialog manager for interactive dialog with computer user
US7546382B2 (en) 2002-05-28 2009-06-09 International Business Machines Corporation Methods and systems for authoring of mixed-initiative multi-modal interactions and related browsing mechanisms
US7640164B2 (en) * 2002-07-04 2009-12-29 Denso Corporation System for performing interactive dialog
US7302383B2 (en) * 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
US7257575B1 (en) * 2002-10-24 2007-08-14 At&T Corp. Systems and methods for generating markup-language based expressions from multi-modal and unimodal inputs
US20040192273A1 (en) * 2003-01-02 2004-09-30 Auyeung Al T. Speed answers to voice prompts
US7003464B2 (en) 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
US7260535B2 (en) 2003-04-28 2007-08-21 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting for call controls
US20040230637A1 (en) 2003-04-29 2004-11-18 Microsoft Corporation Application controls for speech enabled recognition
US7158779B2 (en) * 2003-11-11 2007-01-02 Microsoft Corporation Sequential multimodal input
US7363027B2 (en) * 2003-11-11 2008-04-22 Microsoft Corporation Sequential multimodal input
US7660400B2 (en) 2003-12-19 2010-02-09 At&T Intellectual Property Ii, L.P. Method and apparatus for automatically building conversational systems
US7552055B2 (en) * 2004-01-10 2009-06-23 Microsoft Corporation Dialog component re-use in recognition systems
US8160883B2 (en) * 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US7805704B2 (en) * 2005-03-08 2010-09-28 Microsoft Corporation Development framework for mixing semantics-driven and state-driven dialog
US7853453B2 (en) * 2005-06-30 2010-12-14 Microsoft Corporation Analyzing dialog between a user and an interactive application
US7873523B2 (en) * 2005-06-30 2011-01-18 Microsoft Corporation Computer implemented method of analyzing recognition results between a user and an interactive application utilizing inferred values instead of transcribed speech

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953392A (en) * 1996-03-01 1999-09-14 Netphonic Communications, Inc. Method and apparatus for telephonically accessing and navigating the internet
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
WO2000005643A1 (en) * 1998-07-24 2000-02-03 Motorola Inc. Markup language for interactive services and methods thereof
WO2000014728A1 (en) * 1998-09-09 2000-03-16 One Voice Technologies, Inc. Network interactive user interface using speech recognition and natural language processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646529B (zh) * 2017-07-25 2019-01-01 雲拓科技有限公司 主動聊天裝置
TWI657433B (zh) * 2017-11-01 2019-04-21 財團法人資訊工業策進會 語音互動裝置及應用其之語音互動方法

Also Published As

Publication number Publication date
US8165883B2 (en) 2012-04-24
US20040073431A1 (en) 2004-04-15
JP2003216574A (ja) 2003-07-31
JP2009059378A (ja) 2009-03-19
EP1304614A2 (en) 2003-04-23
US20030130854A1 (en) 2003-07-10
EP1304614A3 (en) 2005-08-31
CN1417679A (zh) 2003-05-14
US7711570B2 (en) 2010-05-04

Similar Documents

Publication Publication Date Title
CN100397340C (zh) 以对话为目的的应用抽象
US8229753B2 (en) Web server controls for web enabled recognition and/or audible prompting
US8311835B2 (en) Assisted multi-modal dialogue
US8160883B2 (en) Focus tracking in dialogs
US7552055B2 (en) Dialog component re-use in recognition systems
US7260535B2 (en) Web server controls for web enabled recognition and/or audible prompting for call controls
CN1392473B (zh) 客户服务器系统中处理输入数据的方法
US7853453B2 (en) Analyzing dialog between a user and an interactive application
US20040230637A1 (en) Application controls for speech enabled recognition
US11749276B2 (en) Voice assistant-enabled web application or web page
US20070006082A1 (en) Speech application instrumentation and logging
US20050043953A1 (en) Dynamic creation of a conversational system from dialogue objects
CN107111516A (zh) 数字个人助理内的无头任务完成
CN100576171C (zh) 步进式标记语言与面向对象开发工具组合使用的系统和方法
CN101536083A (zh) 来自不可转录数据的诊断识别问题
JP2004310748A (ja) ユーザ入力に基づくデータの提示
US7395206B1 (en) Systems and methods for managing and building directed dialogue portal applications
JP2003044093A (ja) ウェブ対応音声認識用サーバの方法および記録媒体
Longoria Designing software for the mobile context: a practitioner’s guide
CN101833952B (zh) 客户服务器系统中处理输入数据的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CX01 Expiry of patent term

Granted publication date: 20080625

CX01 Expiry of patent term