CN200410063247.4
2004.06.30
CN1577267A
2005.02.09
授权
有权
专利权的转移IPC(主分类):G06F 9/44变更事项:专利权人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150504|||授权|||实质审查的生效|||公开
G06F9/44
微软公司
王冠三
美国华盛顿州
2003.07.03 US 10/613,631
上海专利商标事务所
钱慰民
本发明将提供VoiceXML与诸如SALT的话音应用开发工具进行组合的系统和方法。在本发明的一个方面中,Voice XML模块包括VoiceXML可执行指令。SALT模块包括话音应用语言标记以执行与VoiceXML模块相关的指令。
1. 一种具有指令的计算机可读媒介,当在计算机上实现该指令时,该指令使计算机处理信息,所述指令包括:步进式模块,包括根据执行算法以规定顺序执行的指令;以及面向对象的模块,包括至少一个对象,所述对象具有用于对与指令相关的操作进行初始化的时序触发器。2. 如权利要求1所述的计算机可读媒介,其特征在于当遇到至少一个对象时,所述执行算法自动调用所述时序触发器。3. 如权利要求1-2的任意一项所述的计算机可读媒介,其特征在于所述步进式模块是执行表单解释算法的VoiceXML模块。4. 如权利要求1-3的任意一项所述的计算机可读媒介,其特征在于所述面向对象的模块是具有话音应用语言标记的SALT模块。5. 如权利要求1-4的任意一项所述的计算机可读媒介,其特征在于所述时序触发器对话音识别事件进行初始化。6. 如权利要求1-5的任意一项所述的计算机可读媒介,其特征在于所述时序触发器对DTMF识别事件进行初始化。7. 如权利要求1-5的任意一项所述的计算机可读媒介,其特征在于所述时序触发器对消息事件进行初始化。8. 如权利要求1-5的任意一项所述的计算机可读媒介,其特征在于所述步进式模块声明第一字段和第二字段,其中所述面向对象的模块对识别事件进行初始化以从用户获得话音输入,并且用所述话音输入的第一部分填充所述第一字段,而用所述话音输入的第二部分填充所述第二字段。9. 如权利要求8所述的计算机可读媒介,其特征在于第一语法与所述第一字段有关,而第二语法与所述第二字段有关。10. 如权利要求1-9的任意一项所述的计算机可读媒介,其特征在于所述面向对象的模块对具有多个语法的识别事件进行初始化以获得识别结果,并将所述识别结果与所述多个语法的至少一个相关。11. 如权利要求1-10的任意一项所述的计算机可读媒介,其特征在于所述步进式模块声明第一字段和第二字段,并且所述面向对象的模块对识别事件进行初始化以从用户获得具有话音和DTMF输入的发音,并将话音输入与所述第一字段相关,而DTMF输入与所述第二字段相关。12. 如权利要求1-11的任意一项所述的计算机可读媒介,其特征在于所述步进式模块声明一字段,并且所述面向对象的模块对识别事件进行初始化以从用户获得识别结果来填充该字段,并执行提示以将该字段呈现给用户。13. 如权利要求1-12的任意一项所述的计算机可读媒介,其特征在于所述面向对象的模块执行消息事件以连接到远端应用。14. 如权利要求13所述的计算机可读媒介,其特征在于所述面向对象的模块根据消息事件接收结果,并将该结果呈现给用户。15. 如权利要求1-14的任意一项所述的计算机可读媒介,其特征在于在完成所述操作后,所述执行算法自动进行到后续的指令。16. 如权利要求1-15的任意一项所述的计算机可读媒介,其特征在于所述触发器是错误、异常、识别和没有识别的指示的其中一个。17. 如权利要求1-16的任意一项所述的计算机可读媒介,其特征在于所述触发器是播放指令的完成。18. 如权利要求1-17的任意一项所述的计算机可读媒介,其特征在于所述触发器是消息的接收。19. 一种计算机可读媒介,它包括可由计算机执行的标记页,当该标记页实现时使计算机处理信息,所述标记页包括:VoiceXML模块,具有VoiceXML可执行指令;以及SALT模块,具有话音应用语言标记以执行与所述VoiceXML模块相关的指令。20. 如权利要求19所述的计算机可读媒介,其特征在于所述VoiceXML模块声明第一字段和第二字段,其中所述SALT模块对识别事件进行初始化以从用户获得话音输入,并且用所述话音输入的第一部分填充第一VoiceXML字段,而用所述话音输入的第二部分填充第二VoiceXML字段。21. 如权利要求20所述的计算机可读媒介,其特征在于第一语法与所述第一VoiceXML字段有关,而第二语法与所述第二VoiceXML字段有关。22. 如权利要求19-21的任意一项所述的计算机可读媒介,其特征在于所述SALT模块对具有多个语法的识别事件进行初始化以获得识别结果,并将所述识别结果与所述多个语法的至少一个相关。23. 如权利要求19所述的计算机可读媒介,其特征在于所述VoiceXML模块声明第一字段和第二字段,并且所述SALT模块对识别事件进行初始化以从用户获得具有话音和DTMF输入的发音,并将话音输入与所述第一字段相关,而DTMF输入与所述第二字段相关。24. 如权利要求19所述的计算机可读媒介,其特征在于所述VoiceXML模块声明一字段,并且所述SALT模块对识别事件进行初始化以从用户获得识别结果来填充该字段,并执行标记页中的提示以将该字段呈现给用户。25. 如权利要求19-24的任意一项所述的计算机可读媒介,其特征在于所述SALT模块执行消息事件以连接到远端应用。26. 如权利要求25所述的计算机可读媒介,其特征在于所述SALT模块根据消息事件接收结果,并将该结果呈现给用户。27. 一种提供交互式用户接口的方法,包括:建立以规定顺序执行指令的步进式对话,所述指令包括对象,所述对象用于处理与识别、提示和消息的至少一个相关的事件;以及遇到与所述指令相关的对象后,进行面向对象的操作,以提供在与识别、提示和消息相关的对话中的至少一个但不是所有的事件。28. 如权利要求27所述的方法,其特征在于所述面向对象的操作是话音识别事件。29. 如权利要求27所述的方法,其特征在于所述面向对象的操作是DTMF识别事件。30. 如权利要求27所述的方法,其特征在于所述步进式对话在VoiceXML模块中实现。31. 如权利要求27所述的方法,其特征在于所述面向对象的操作在SALT模块中实现。32. 如权利要求27-31的任意一项所述的方法,其特征在于建立步进式对话包括声明第一字段和第二字段,并且进行面向对象的操作包括识别事件,该识别事件从用户获得话音输入,并且用所述话音输入的第一部分填充所述第一字段,而用所述话音输入的第二部分填充所述第二字段。33. 如权利要求32所述的方法,其特征在于进行操作进一步包括开始与所述第一字段有关的第一语法以及与所述第二字段有关的第二语法。34. 如权利要求27-33的任意一项所述的方法,其特征在于所述操作对具有多个语法的识别事件进行初始化以获得识别结果,并将所述识别结果与所述多个语法的至少一个相关。35. 如权利要求27-31的任意一项所述的方法,其特征在于建立步进式对话包括声明第一字段和第二字段,并且进行面向对象的操作包括对识别事件进行初始化以从用户获得具有话音和DTMF输入的发音,并将话音输入与所述第一字段相关,而DTMF输入与所述第二字段相关。36. 如权利要求27-35的任意一项所述的方法,其特征在于建立步进式对话包括声明一字段,并且进行面向对象的操作包括对识别事件进行初始化以从用户获得识别结果来填充该字段,并执行提示以将该字段呈现给用户。37. 如权利要求27-36的任意一项所述的方法,其特征在于所述操作是消息事件以连接到远端应用。38. 如权利要求37所述的方法,其特征在于所述操作进一步根据消息事件接收结果,并将该结果呈现给用户。
步进式标记语言与面向对象的开发工具的组合使用 技术领域 本发明涉及话音使能应用的编程,尤其涉及步进式语音标记语言和面向对象的话音应用扩展的组合使用。 背景技术 计算机用户/接口的发展允许用户与计算机通过语音命令进行交互。已经发展了诸如通过使用VoiceXML(语音可扩展标记语言)的语音入口,使得可使用语音输入来访问因特网的内容。在该结构中,文档服务器(如web服务器)通过VoiceXML解释器处理来自客户的请求。web服务器可以产生VoiceXML的文档和应答,它们由VoiceXML解释器进行处理并可听见地呈现给用户。通过语音识别使用规定的语音命令,用户可以导航网络并监听可听传送的数据。 为了允许设计者对用户和话音应用之间的对话进行控制,设计了VoiceXML的开发语言。VoiceXML遵循一种步进式的方法,其中应用控制对话流程,并询问用户,以进行填表或从菜单选择。VoiceXML应用实行多个步骤以将数据呈现给用户或在表单中填充数据。尤其是,VoiceXML遵循一种表单解释算法,它驱动用户和VoiceXML表单或菜单之间的交互。该算法继续循环遍历表单或菜单,直到填充了值、进行了选择或者遇到了异常。 还通过诸如话音应用语言标记(SALT)的标记语言扩展的使用,开发了支持话音的使能应用。SALT允许从个人计算机、电话、个人数字助理和其他计算设备对信息、应用和web服务多模式和电话使能访问。SALT扩展了现有的标记语言,如HTML、X-HTML和XML。使用SALT的多模式访问使用户能够以各种不同的方式与应用进行交互,例如使用键盘、话音、鼠标和/或指示笔,或它们的组合。 与VoiceXML相反,SALT是基于面向对象的编程方法,其中应用包括各种对象、触发器和事件。面向对象的方法使得应用设计者能够对用户和应用之间的对话流程进行用户化。当在SALT中遇到事件时,基于SALT的应用就根据该事件执行各种命令。这样,用户就可以控制对话流程,这是计算机交互的更有效和/或更自然的形式。 当前,利用VoiceXML步进式方法的应用并不利用由面向对象的编程方法(这是诸如SALT的话音应用工具所使用的)所提供的灵活性。因此,VoiceXML应用在处理混合起始情况(其中用户请求几个不同类型的数据)、外部消息和高级呼叫控制时就遇到了困难。从而在VoiceXML中提供SALT的编程灵活性的系统和方法将会是有利的。 发明内容 本发明提供组合步进式指令执行算法和面向对象的模块的系统和方法。在本发明的一个方面,计算机可执行的程序包括步进式模块,其具有根据执行算法以规定顺序执行的指令。面向对象的模块包括具有用于对与指令相关的操作进行初始化的时序触发器。 在本发明的另一方面,VoiceXML模块包括VoiceXML可执行指令。SALT模块包括话音应用语言标记,以执行与VoiceXML模块相关的指令。在另一实施例中,可以使用VoiceXML模块声明第一和第二VoiceXML字段,并且SALT模块对识别事件进行初始化,以从用户获得话音输入。SALT模块用话音输入的第一部分填充第一VoiceXML字段,并用话音输入的第二部分填充第二VoiceXML字段。此外,SALT包括多个语法,它们识别话音输入并将该输入与特定的语法和/或字段进行相关。 本发明的又一方面是一种提供交互式用户接口的方法。该方法建立以规定顺序执行指令的步进式对话。该指令包括对象,这些对象用于处理与识别、提示和消息中至少一个有关的事件。当遇到与该指令相关的对象时,进行面向对象的操作。该操作包括在与识别、提示和消息有关的对话中的至少一个但不是所有的事件。 附图说明 图1是使用步进式模块和面向对象模块的系统框图。 图2是计算设备操作环境的平面图。 图3是图2计算设备的框图。 图4是电话的平面图。 图5是通用计算机的框图。 图6是客户机/服务器系统结构的框图。 图7是根据本发明实施例的方法的框图。 图8是识别结果和多个语法的框图。 图9是根据本发明实施例的方法的框图。 图10是识别结果和多个字段的框图。 图11是根据本发明实施例地方法的框图。 图12是根据本发明实施例的方法的框图。 图13是根据本发明实施例的方法的框图。 图14是根据本发明实施例的示例标记页。 具体实施方式 图1示出了用于组合步进式语言(如VoiceXML)和面向对象的话音应用开发工具(如SALT)的使用的系统10。系统10包括步进式模块12(如VoiceXML模块)和面向对象的话音应用开发工具模块14(如SALT模块)。步进式模块包括以给定执行算法的规定顺序执行的指令。面向对象的开发工具模块包括进行各种操作的编程对象。如这里所使用的,VoiceXML指的是语音可扩展标记语言,它是W3C(万维网联盟)的候选推荐。VoiceXML2.0版的规范副本可以在www.w3.org/TR/voicexm120找到。此外,SALT指的是由SALT论坛开发的话音应用语言标记。SALT1.0规范的副本可以在www.SALTforum.org找到。VoiceXML根据表单解释算法执行步进式的指令。 本发明的一个方面包括将一个或多个面向对象的模块14结合在步进式模块12的可执行指令中。面向对象的模块14包括时序触发器,在步进式模块12的执行算法遇到触发时,使操作开始。触发器可以包括各种事件,如错误、异常、消息接收、识别和/或没有识别,或它们的组合。所进行的操作包括诸如话音识别、DTMF识别、音频采集、音频播放和其他的操作。 当在步进式模块12的操作下遇到面向对象的模块14(如SALT标记)时,就将SALT标记和VoiceXML模块12之间的交互定义为允许在VoiceXML中使用SALT。例如,当使用SALT标记触发根据多个语法的话音识别时,与将每一单元放置在分开的字段有关的指令就允许在VoiceXML模块中嵌入SALT模块。当利用SALT消息性能时,将消息指令嵌入表单解释算法的循环。将面向对象的模块14嵌入步进式模块12中,从而,与仅仅使用诸如VoiceXML的步进式语言相比增强了最终应用的功能性和灵活性。 提供交互式用户接口的方法是在系统10中实现的本发明的另一方面。步进式模块12与用户建立步进式对话,该对话以规定顺序执行指令,例如通过VoiceXML表单或菜单。该指令处理与识别提示和/或消息相关的对话事件。当在识别、提示或消息的至少一个但非全部的对话中遇到面向对象的模块14时,该模块14就进行面向对象的操作(如通过执行SALT标记)。在一实施例中,步进式对话包括实现指令的VoiceXML和执行面向对象操作的SALT标记。 对于用于开发话音应用的系统的概括描述,对以上所述系统10中可运行的计算设备进行一般描述是有用的。本领域技术人员可以意识到,系统10的部件可以位于单一的计算机中,也可以使用网络连接和协议分布在分布式计算环境中。 现在参照图2,在30示出了诸如数据管理设备(PIM、PDA等)的移动设备的示例形式。然而,可以预见,本发明也可使用以下所述的其他计算设备实现。例如,电话和/或数据管理设备也可从本发明中获利。与现有的便携式个人信息管理设备和其他便携式电子设备相比,这样的设备具有增强的实用性。 图2中示出了示例形式的数据管理移动设备30。移动设备包括外壳32,并具有包括显示屏34的用户接口,它使用与指示笔33结合的触摸敏感显示屏。使用指示笔33在指定坐标对显示屏34进行按压或接触,以选择某个字段、选择性地移动光标的起始位置、或另外诸如通过手势或手写体来提供命令信息。可选地,或此外,在设备30上可以包括一个或多个按钮35以进行导航。此外,还可以提供诸如可旋转滚轮、滚筒等的其他输入装置。然而,应该注意,不希望本发明仅限于这些形式的输入装置。例如,另外形式的输入包括诸如通过计算机显示的可视输入。 现在参照图3,框图示出了包括移动设备30的功能性部件。中央处理单元(CPU)50实现软件控制功能。将CPU 50耦合到显示屏34,使得根据控制软件产生的文本和图形图标显示在显示屏34上。通常用数字-模拟转换器59将扬声器43耦合到CPU 50以提供可听输出。将由用户下载或输入到移动设备30的数据存储在非易失性读/写随机存取存储器54,其双向耦合到CPU 50。随机存取存储器(RAM)54提供由CPU 50执行的指令的易失性存储,还提供对临时数据的存储,如寄存器的值。在只读存储器(ROM)58中存储配置选项和其他变量的缺省值。还可以使用ROM58存储控制移动设备30基本功能的设备操作系统软件以及其他操作系统核心功能(如将软件部件加载到RAM 54中)。 RAM 54还用于以类似于PC上用于存储应用程序的硬盘驱动器功能的形式存储代码。应该注意,虽然非易失性存储器用于存储代码,但可供选择地它也可以存储在不用于执行代码的易失性存储器中。 可以通过耦合到CPU 50的无线收发信机52发射/接收无线信号。还可以提供可选的通信接口60用于直接从计算机(台式计算机)或从有线网络(如果需要)下载数据。此外,接口60包括各种形式的通信设备,例如红外线链路、调制解调器、网络卡等。 移动设备30包括话筒29和模拟-数字(A/D)转换器37以及存储在存储器54中可选的识别程序(话音、DTMF、手写体、手势或计算机显示)。例如,响应于来自设备30的用户的可听信息、指令或命令,话筒29提供话音信号,并由A/D转换器37进行数字化。话音识别程序对数字化的话音信号进行归一化和特征提取功能,以获得中间话音识别结果。使用无线收发信机52或通信接口60,可将话音数据发射到远端识别服务器204(将在以下进行讨论并在图6的结构中示出)。随后,将识别结果返回到移动设备30以在其上呈现(如可视的和/或可听的),并最终将其发射到web服务器202(图6),其中web服务器202和移动设备30以客户机/服务器的关系进行操作。类似的处理还用于其他形式的输入。例如,在设备30可将手写体输入进行数字化(可用预处理或不用预处理)。如话音数据一样,将该形式的输入发射到进行识别的识别服务器204,其中将识别结果返回到设备30和/或web服务器202中的至少一个。同样,类似地可以处理DTMF数据、手势数据和可视数据。根据输入的形式,设备30(和以下所述其他形式的客户机)包括必要的硬件,如用于可视输入的照相机。 图4是便携式电话80示例实施例的平面图。电话80包括显示屏82和键盘84。通常,图3的框图应用图4的电话,虽然需要进行其他功能所必需的附加电路。例如,对于图3的实施例,需要用作电话所必需的收发信机;然而这样的电路与本发明是不相关的。 除了以上所述的便携式或移动计算设备,也应该理解,本发明还可用于许多其他计算设备,如通用台式计算机。例如,当诸如完全字母-数字键盘的其他传统输入设备难以操作时,本发明将允许具有有限身体能力的用户将文本输入到计算机或其他计算设备。 本发明还可操作于许多其他的通用或专用计算系统、环境或配置。适用于本发明的熟知的计算系统、环境和/或配置的例子包括,但不限于,正规的电话(没有任何屏幕)、个人计算机、服务器计算机、手持或膝上设备、输入板计算机、多处理器系统、基于微处理器的系统、机顶盒、可编程用户电子设备、网络PC、小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等。 以下是图5所示的通用计算机120的简要描述。然而计算机120只是合适的计算环境的一个示例,并非想局限本发明的使用或功能范围。也不应认为计算机120对在其中所示出的任一组件或其组合具有任何依赖性和需求。 在计算机可执行指令的通常环境下描述本发明,计算机可执行指令如由计算机执行程序模块。程序模块通常包括例程、程序、对象、组件、数据结构等等,它们完成特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实现,在该环境中,任务由通过通信网络链接的远端处理装置来完成。在分布式计算环境中,程序模块可以位于本地和远端两者的包括存储器装置的计算机存储介质中。以下参照附图描述由程序和模块完成的任务。本领域的技术人员可以将描述和附图实现为微处理器可执行的指令,可以将指令写入任何形式的计算机可读媒介。 参考图5,计算机120的组件包括但不限于,处理单元140、系统存储器150以及将包括系统存储器在内的各种系统组件耦合至处理单元140的系统总线141。系统总线141可以是几种总线结构的任何一种,包括存储器总线或存储器控制器、外部总线,以及使用任意总线结构的本地总线。作为示例,但非局限,这类结构包括工业标准体系结构(ISA)总线、通用串行总线(USB)、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、以及外围部件互联(PCI)总线,也称Mezzanine总线。计算机120通常包括各种计算机可读介质。计算机可读介质可以是任何可由计算机120存取的可用介质,包括易失性介质和非易失性介质,可移动介质和不可移动介质。作为示例,并非局限,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括在任意用于存储信息的方法或技术中实现的易失性介质和非易失性介质、可移动介质和不可移动介质,这些信息包括计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质包括但不限于,RAM、ROM、EEPROM、按块擦除存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或任何其它可以用于存储需要的信息并可由计算机120存取的介质。 通信介质通常包括计算机可读指令、数据结构、程序模块或其它已调制数据信号如载波或其它传输机制中的数据,包括任何信息传送介质。术语“已调制数据信号”表示一种信号,该信号具有一个或多个通过对信号中的信息进行编码而设定或改变的特征。作为示例,并非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外以及其它无线介质。上述任何介质的组合也应当包含在计算机可读介质的范围内。 系统存储器150包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)151和随机存取存储器(RAM)152。基本输入/输出系统153(BIOS)通常存储在ROM 151中,包含协助在计算机120内如启动时在元件之间进行信息传输的基本例程。RAM 152通常包含处理单元140立即可存取和/或当前正操作的数据和/或程序模块。作为示例,并非局限,图5描述了操作系统154、应用程序155、其它程序模块156以及程序数据157。 计算机120也可包括其它可移动/不可移动的易失性/非易失性计算机存储介质。仅作示例,图5描述了硬盘驱动器161,对不可移动、非易失性磁介质进行读写;磁盘驱动器171,对可移动、非易失性磁盘172进行读写;以及光盘驱动器175,对可移动、非易失性光盘176如CD-ROM或其它光学介质进行读写。其它可在示例操作环境中使用的可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频磁带、固态RAM、固态ROM等等。硬盘驱动器161通常通过不可移动存储器接口,如接口160,连接至系统总线141。磁盘驱动器171和光盘驱动器175通常通过可移动存储器接口,如接口170,连接至系统总线141。 以上讨论并在图5中描述的驱动器连同其相关的计算机存储介质为计算机120提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图5中,将硬盘驱动器161描述为存储操作系统164、应用程序165、其它程序模块166以及程序数据167。值得注意,这些组件可以与操作系统154、应用程序155、其它程序模块156以及程序数据157相同,也可以不同。此处为操作系统164、应用程序165、其它程序模块166以及程序数据167标上不同的号码,以至少表明它们是不同的副本。 用户可以通过输入设备,如键盘182、话筒183、以及定位设备181,如鼠标、跟踪球或触摸板,向计算机120输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏操纵杆、卫星天线、扫描仪等等。这些或其它输入设备通常通过耦合至系统总线的用户输入接口180连接至处理单元140,也可以通过其它接口和总线接口来连接,如并行端口、游戏端口或通用串行总线(USB)。监视器184或其它类型的显示设备也通过接口,如视频接口185,连接至系统总线141。除监视器之外,计算机也可以包括其它外围输出设备,如扬声器187和打印机186,通过输出外围接口188连接。 计算机120可以在采用逻辑连接至一个或多个远端计算机,如远端计算机194,建立的网络的环境中操作。远端计算机194可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等装置或其它常见网络节点,通常包括上文描述的同计算机120相关的许多或所有元件。图5描述的逻辑连接包括局域网(LAN)191和广域网(WAN)193,也可以包括其它网络。这类联网环境在办公室、企业范围计算机网络、企业内部互联网和因特网中是常见的。 当在LAN网络环境中使用时,计算机120通过网络接口或适配器190同LAN 191相连接。当在WAN网络环境中使用时,计算机120通常包括调制解调器192或其它用于通过WAN 193,如因特网,建立通信的装置。调制解调器192可以是内置的,也可以是外置的,通过用户输入接口180或其它合适的机制连接至系统总线141。在建立网络的环境中,所述的同计算机120或其部分相关的程序模块可以存储在远端存储器设备中。作为示例,并非限制,图5描述远端应用程序195驻留于远程计算机194中。可以意识到,此处所示的网络连接是示例性的,也可使用其它在计算机之间建立通信链路的装置。 图6示出了用于基于web的识别和数据传递的结构200,它是本发明的一个示例环境。通常在web服务器202存储的信息可通过诸如移动设备30或计算机120(这里表示具有如根据输入形式所需要的显示屏、话筒、照相机、触摸敏感面板的其他形式的计算设备)的客户机100,或通过电话80(其中可听地或通过电话80响应于键盘按压所产生的音调来请求信息,并且只以可听的形式将来自于web服务器202的信息提供回用户)进行存取。 在该实施例中,结构200是统一的,因为不管是通过使用话音识别的客户机100还是通过使用话音识别的电话80获得信息,单一的识别服务器204都可以支持任一模式的操作。此外,结构200使用熟知的标记语言(如HTML、XHTML、cHTML、XML、WML等)的扩展进行操作。这样,还可以使用在这些标记语言中存在出现的熟知的GUI方法对存储在web服务器上的信息进行存取。通过使用熟知的标记语言的扩展,web服务器上的设计就可以更简便,并且还可以简单地修改现存旧版本应用以包括语音识别。 通常,客户机100使用浏览器执行由web服务器202提供的HTML页、脚本等,一般以206表示。例如,当需要语音识别时,将话音数据连同语法或语言模型202指示(这由客户机100提供)提供给识别服务器204,以在话音识别期间使用,如上所述,话音数据是数字化的音频信号或话音特征,其中音频信号由客户机100进行预处理。可选地,话音服务器204可以包括语言模型220。识别服务器204的实现可以采用许多形式,其中一种形式就如图所示,但一般包括识别器211。将识别的结果提供回客户机100以进行本地呈现(如果需要)或合适。如果需要,可以使用文本到话音模块222向客户机提供口头文本。通过识别和任何图形用户接口(如果使用)对信息进行编译后,客户机100将信息发送到web服务器202,以进一步进行处理并接收另外的HTML页/脚本(如果需要)。 如图6所示,客户机100、web服务器202和识别服务器204通过网络205(这里是诸如因特网的广域网)一般地连接在一起并分开放置的。因此不需要任何设备在物理位置上彼此相邻。尤其是,web服务器202不需要包括识别服务器204。这样,在web服务器202的设计就可集中于所需要的应用,而设计者不需要知道识别服务器204的复杂性。相反地,可以独立设计识别服务器204并将其连接到网络205,由此可以更新和改进识别服务器,而不需要在web服务器进一步改变。web服务器202还包括设计装置,它可以动态地产生客户端的标记和脚本。在另一实施例中,可以根据实现机器的性能组合web服务器202、识别服务器204和客户机100。例如,如果客户机100包括通用计算机(如个人计算机),则客户机可包括识别服务器204。同样,如果需要,web服务器202和识别服务器204可结合在单个机器中。 通过电话80对web服务器202的存取包括将电话80连接到有线或无线电话网络208,随后该网络将电话80连接到第三方网关210。网关210将电话80连接到电话语音浏览器212。电话语音浏览器212包括提供电话接口的媒介服务器214和语音浏览器216。如客户机100,电话语音浏览器212从web服务器202接收HTML页/脚本等。在一实施例中,HTML页/脚本所具有的形式类似于提供到客户机100的HTML页/脚本。这样,web服务器202不需要分别支持客户机100和电话80,或者甚至不需要另外支持标准的GUI客户机。相反地,可以使用通用的标记语言。此外,如客户机100,将来自由电话80发射的可听信号的语音识别从语音浏览器216通过网络205或通过专线207(例如使用TCP/IP)提供到识别服务器204。可以在任何适合的计算环境中实现web服务器202、识别服务器204和电话语音浏览器212,如图5所示通用台式计算机。 通过使用嵌入VoiceXML中的话音应用开发工具,就可以增强VoiceXML标记页的功能性。虽然VoiceXML的表单解释算法是为了交互式语音响应应用而设计的,但是在VoiceXML中使用其它工具提供对用户更友好、更稳健的应用。为了将话音应用开发工具嵌入VoiceXML,就要提供VoiceXML指令和开发工具指令之间的交互。 图7示出了根据本发明实施例的方法300。该方法起始于步骤302,其中初始化VoiceXML步进式算法。例如,可以通过分别使用<form>标记或<menu>标记在VoiceXML标记页中声明表单或菜单,可初始化算法。一旦初始化了算法,VoiceXML页中的步骤将持续循环,直到满足某些条件。在步骤302后,方法300进入步骤304,其中,初始化具有多个相关语法的SALT识别事件。可以通过使用监听标记触发SALT识别事件。具有多个语法,就可以使用多个语法标记以开始每一语法的使用。例如,在询问用户地址的应用中,可使用一个语法识别城市,而使用另一语法识别州。可选地,可使用一个语法识别类别,而使用另外的语法识别与该类别相关的子类。 一旦由用户提供话音和/或DTMF输入的发音,方法就进入步骤306,其中将识别结果与多个语法中的至少一个相关。例如,具有识别多个类别(即运动、天气、股价、电影、交通)和多个子类(即运动类别的篮球、棒球、足球、曲棍球)的欢迎页面允许用户输入待识别的一个类别或一个子类,并将其与特定语法相关。一旦与特定语法相关,就可以由话音应用分析和使用来自用户的输入。例如,如果用户发出“hockey”,就可以向用户呈现当天棒球比赛的比分和精彩镜头。 VoiceXML在识别期间只允许单个语法。这样,用户就必须周游多个类别和子类别以得到相关信息或者必须使用最相关的语法。通过使用嵌入VoiceXML指令中的SALT<listen>标记,就可以将话音输入与特定语法相关,和/或与特定字段相关,例如通过使用<bind>单元。 图8示出了识别结果320和多个语法321-324的框图。当使用方法300时,可以将识别结果320与语法321-324的每一个和/或每一语法321-324的特定选项或标题相关。 图9示出了根据本发明另一实施例的方法340。在步骤342,声明第一VoiceXML字段和第二VoiceXML字段。当声明VoiceXML字段时,例示表单解释算法,它将继续在表单中循环通过VoiceXML可执行指令,直到已经填充了第一和第二VoiceXML字段。在声明了字段之后,在步骤344对获得用户话音输入的SALT识别事件进行初始化。例如,可以通过使用包括一个或多个语法单元的监听标记,来触发识别事件。用户的话音输入可包括单个发音的不同部分。在步骤346,用话音输入的第一部分填充第一VoiceXML字段,并用话音输入的第二部分填充第二VoiceXML字段。例如,用户希望输入航线信息的出发城市和到达城市,或者可以输入餐馆信息的烹饪风格和地点。 图10示出了字段和话音输入的框图。字段350和字段352是由VoiceXML模块声明的,并且识别结果360是根据用户的话音输入识别的。结果360包括第一部分362和第二部分364。使用结果360,将第一部分362填充到于350中,而将第二部分364填充到于352中。这样,设计者就能够对话音应用进行编程,以识别用户的多个输入并根据识别结果将它们放入合适的字段中。 图11示出了根据本发明实施例的另一方法380。方法380开始于步骤382,其中用VoiceXML可执行指令建立标记页。在步骤384,声明第一字段和第二字段。在声明第一字段和第二字段之后,从用户接收话音和DTMF两者输入的发音。例如,用户可以发音:“Please transfer[DTMF输入]amount of dollars from mychecking account to my saving account(请将[DTMF输入]美元从我的支票账户转移到我的存款账户)。”在此情况下,用户不是口头上说出所要转移的金额,而是使用键盘打出金额。在步骤388,使用SALT识别话音输入,并随后将其与第一字段相关,而使用SALT识别DTMF输入,并随后将其与第二字段相关。例如,作为DTMF输入而输入的金额被放入金额字段,而将话音输入与从支票到存款的转移相关。 图12示出了根据本发明实施例的另一方法400。使用方法400,可以利用运行时间变量来将数据呈现给用户,而无需向远端服务器提交表单或另外访问别的标记页。在步骤402,用VoiceXML可执行指令建立标记页。在步骤404,从用户的话音输入获得话音识别结果。在步骤406,至少将一部分结果放入字段中。一旦将结果放入了字段中,方法就进入步骤408,其中利用标记页将字段呈现给用户。例如,使用步骤408确认由用户输入的一个或多个字段。此外,可将字段用作回放给用户的提示部分。当使用SALT<prompt>标记时,就呈现运行时间变量,而无需对远端服务器的往返访问。在此情况下,使用客户机的计算能力,而无需连接到远端服务器。 图13示出了根据本发明另一实施例的方法420。该方法开始于步骤422,其中用VoiceXML可执行指令建立标记页。接着,在步骤424,从用户获得话音输入。在步骤426,使用话音输入建立到web服务器的连接并且执行消息事件。例如,web服务器可包括用户希望呈现的值。在步骤428,根据从消息事件接收的信息,将结果呈现给用户。 图14示出了根据输入城市而将邮政编码呈现给用户的标记页。标记页450包括VoiceXML可执行指令以及以下所述的SALT标记。标题452包括涉及VoiceXML和SALT的模式,并进一步建立“v:”作为VoiceXML标记的定界符以及“s:”作为SALT标记的定界符。指令454声明了VoiceXML中的表单,它开始执行表单解释算法。这样,表单解释算法就在表单中执行指令(它包括<v:form>标记和</v:form>标记之间的指令),直到填充了表单中的值。指令456声明了变量“answer”,并将空值赋予该变量。随后为了提示用户输入城市和州,表单解释算法进行某些步骤,从而可找到邮政编码。 指令458声明了名为“city”的字段。在VoiceXML中,该字段的默认处理器将根据识别事件填充字段。提示标记460(它可以是SALT或VoiceXML)提示用户说出城市,以搜索该城市的邮政编码。SALT监听标记462触发具有相关语法464(它识别城市名)的识别事件。如果用户希望在发音时输入州名,则另一相关语法465识别州名。如果用户输入识别为城市的话音输入,则识别事件填充“city”字段。如果用户输入识别为州的话音输入,则识别事件填充“state”字段。 如果已填充了城市字段,则表单解释算法进入指令466。指令466声明了名为“state”的字段,它是根据与州语法(它出现在由监听标记462初始化的识别事件中)相关的识别事件而填充的。提示468提示用户说出州,并且监听标记470对具有相关语法472和474的识别事件进行初始化。语法472识别城市,而语法474识别州。有了语法472,用户就可以选择将要识别的不同城市并填充城市字段。可选地,用户可以输入与州语法474相关的州并放入州字段。 指令476是条件指令,如果已真正填充了变量“city”和“state”,它就将执行<v:filled>和</v:filled>标记之间的指令。SALT消息标记478初始化消息事件,该事件根据用户的城市输入返回邮政编码。标记478使用“smex”对象,它与外部构件进行通信。SALT参数标记480标识将要访问的远端服务器以根据城市检索邮政编码。参数标记481将城市和州字段发送到远端服务器。SALT bind(联接)标记482将从远端服务器检索的邮政编码与用指令456声明的变量answer(回答)相联接。SALT prompt(提示)标记484提供输出,它包括由用户输入的城市和从消息事件中确定的回答。 尽管本发明是参考特定实施例来描述的,但本领域的熟练技术人员可以理解在不背离本发明主旨和范围的情况下作形式和细节上的改变。
《步进式标记语言与面向对象的开发工具的组合使用.pdf》由会员分享,可在线阅读,更多相关《步进式标记语言与面向对象的开发工具的组合使用.pdf(32页珍藏版)》请在专利查询网上搜索。
本发明将提供VoiceXML与诸如SALT的话音应用开发工具进行组合的系统和方法。在本发明的一个方面中,Voice XML模块包括VoiceXML可执行指令。SALT模块包括话音应用语言标记以执行与VoiceXML模块相关的指令。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1