在软件程序中使用强数据类型表示语音识别语法的制作方法

文档序号:2830066阅读:493来源:国知局
专利名称:在软件程序中使用强数据类型表示语音识别语法的制作方法
在软件程序中使用强数据类型表示语音识别语法
背景
下面的讨论仅仅提供广义的背景信息,并不是为了被用作确定所要求的主 题的范围的依据。
"自然语言软件应用程序"是指用于接收以人说话的方式表达的语音表述
或者文本输入的应用程序。然而,传统的利用语音识别的此类应用程序实现如
下定义该应用程序可能会收到的词、定义这些词可能怎样被组合、以及定义 这些词的特定组合的语义含义。
通常,术语"语法"(grammar)是指定义任何给定语言的结构的规则和 潜在原则,并且语法可被用作自然语言应用程序执行这些功能的机制。在实现 中,自然语言编程器对语法进行编码,该语法之后被语音识别器利用。当用于 访问该自然语法程序并且说了一些属于己经被该语法所定义的一组词和规则 中的内容时,语法识别器将这些词映射到在该语法中定义的串或者其他类型。 语法识别器之后告知应用程序(用户)说了什么,以及任何由语法所定义的相 应的语义信息,并通常将映射后的对象提供给该应用程序进行进一步的处理。
这种形式的传统应用程序要求软件开发者编码大量的文本和串文本操作。 为了使编码更加有效率,开发者需要对语法从总体上有很好的理解,且对开发 者所使用的该具体语法的内部工作原理有很好的理解。不幸的是,这种语法知 识(grammatical insight)并不是程序员的知识库的 一 部分。
为了加快整体的开发周期,开发者通常希望使用一些现存语法的变体,比 如对现存的语法进行编译和/或进行增加。然而,对现存的语法进行编译需要开 发者花费时间去学习其结构,而这些时间原本是可以用来增强软件实现的。尽 管传统的技术允许开发者在另一个语法中参考一个现存的语法,但是该参考语 法对于调用程序并不是透明的,因为其是通过返回参考语法的语义的方式而起 作用的。
概要
该概要被提供用于以简要的方式介绍一些概念,这些概念在下面的详细说 明部分会被描述。该概要不是为了确定所要求的主题的关键特征或者是基本特 征,该概要也不是为了被用作确定所要求的主题的范围的依据。
在一实施例中, 一种用于向自然语言实现应用程序解释自然语言输入的系 统具有语法、源文件、以及语音识别器。该语法具有一组数据类型以及关于该 组数据类型的语义编码定义规则。该源文件包括用于通过实例化该组数据类型 中所选择的数据类型而访问该语法的计算机可读编码。该语音识别器用于接收 自然语言输入并将该自然语言输入映射至所选择的数据类型。
在另一实施例中, 一种用于自然语言输入识别的系统具有输入设备、强类 型语法、识别组件、以及解释组件。该输入设备用于接收自然语言输入。该强 类型语法定义了一组表示自然语言输入的元素的类型。该识别组件用于使用该 强类型语法将该自然语言输入转换成文本并基于该文本产生识别输出。该解释 组件用于基于该识别输出确定自然语言输入的语义。
在另一实施例中,提供一种用于访问自然语言应用程序的语法的方法。提 供一个或多个语法。每个语法具有一组表示自然语言的类型。在一个或多个源 编码文件中定义用于在自然语言输入上操作的进程。在运行时,该组类型中被 选择的类型从一个或多个语法被实例化。该选择的类型对应于自然语言输入。
附图简述


图1是可以实现本发明的实施例的计算系统环境的示意图2是根据本发明的一实施例用于自然语言语法的编译进程的简化框图3是示出根据本发明的一实施例的自然语言系统的输入组件的简化框
图4是根据本发明的一实施例用于编程强类型语法的进程的简化的流程
图5是根据本发明的一实施例使用强类型语法编程自然语言程序的编译进 程的简化的流程图6是根据本发明的一实施例用于编译自然语言状态机和中间语言编码的
编译系统的简化的框图7是示出根据本发明的一实施例用于实例化语法的元素的简化的框图。
详细描述
图1说明了适当的计算系统环境100的一例,其中可以实现本发明。计算
系统环境ioo仅是适当的计算环境的一例并且并非意图限制本发明的使用范围
或功能。计算环境100不应被解释为具有与示例性操作环境100中所述的组件 的任一或组合有关的从属性或要求。
本发明可以用多种其它通用或专用计算系统环境或配置来操作。可以适合 与本发明一起使用的公知计算系统、环境和/或配置的示例包括、但不限于个 人计算机、服务器计算机、手提或便携式设备、多处理器系统、基于微处理器 的系统、机顶盒、可编程用户电子设备、网络PC、小型计算机、大型计算机、 包括任一上述系统的分布式计算环境等等。
本发明可以用计算机可执行指令的一般上下文来描述,譬如由计算机执行 的程序模块。 -般而言,程序模块包括例程、程序、对象、组件、数据结构等, 它们执行特定任务或实现特定的抽象数据类型。本发明还可以实际用于分布式 计算环境中,其中由通过通信网络或其它数据传输媒质连接的远程处理设备来 执行任务。在分布式计算环境中,程序模块及其它数据可以位于本地和远程存 储媒质中,包括存储器存储设备。分布式计算通过计算设备和系统间的直接交 换便于共享计算机资源和服务。这些资源和服务包括信息、高速缓存、及文件 磁盘存储的交换。分布式计算利用网络连接性,允许用户机发挥它们的集体功 效来有利于整个公司。在这点上,多种设备可以具有应用程序、对象或资源, 它们可以利用本发明的技术。
参考图1,用于实现本发明的示例性系统包括形式为计算机110的通用计 算设备。计算机110的组件可以包括、但不限于处理单元120、系统存储器
30、及把包括系统存储器在内的各种系统组件耦合至处理单元120的系统总 线121。系统总线121可以是多种类型总线结构的任一种,包括存储器总线或 存储器控制器、外围设备总线、及使用任一多种总线结构的本地总线。通过示 例但非限制,这种结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、
增强型ISA(EISA)总线、视频电子标准联盟(VESA)本地总线、及外围组件互连 (PCI)总线(也称为Mezzanine总线)。
计算机110—般包括各种计算机可读媒质。计算机可读媒质可以是能由计 算机110访问的任何可用媒质并包括易失性和非易失性的媒质、可移动和不可 移动媒质。通过示例但非限制,计算机可读媒质可以包括计算机存储媒质和通 信媒质。计算机存储媒质包括易失性和非易失性、可移动和不可移动媒质,它 们以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信 息的任意方法或技术来实现。计算机存储媒质包括、但不限于RAM、 ROM、 EEPROM、闪存或其它存储技术、CDROM、数字化通用光盘(DVD)或其它光盘 存储器、磁带盒、磁带、磁盘存储器或其它磁性存储设备、或用于存储期望信 息并能由计算机110访问的任意其它媒质。通信媒质一般在诸如载波或其它传 输机制这样的已调数据信号中包含计算机可读指令、数据结构、程序模块或其 它数据,并且包括任意信息传递媒质。术语"已调数据信号"意指其一个或多 个特性以对信号内信息进行编码的方式被设置或改变的信号。通过示例但非限 制,通信媒质包括诸如有线网络或直接线连接这样的有线媒质、以及诸如声音、 RF、红外这样的无线媒质及其它无线媒质。上述的任意组合应该包含在计算机 可读媒质的范围内。
系统存储器130包括计算机存储媒质,其形式为易失性和/或非易失性存储 器,譬如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系 统133(BIOS)—般存储在ROM 131内,它包含例如启动期间帮助在计算机110 内的组件间传输信息的基本例程。RAM 132 —般包含数据和/或程序模块,它 们可以立即访问并且/或者当前由处理单元120在其上操作。通过示例但非限 制,图1说明了操作系统134、应用程序135、其它程序模块136和程序数据 137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性计算机存 储媒质。仅仅通过示例,图l说明了对不可移动、非易失性磁性媒质进行读写 的硬盘驱动器MK对可移动、非易失性磁盘152进行读写的磁盘驱动器151、 以及对可移动、非易失性光盘156进行读写的光盘驱动器155,譬如CD ROM
或其它光学媒质。示例性操作环境中可用的其它可移动/不可移动、易失性/非
易失性计算存储媒质包括、但不限于磁带盒、闪存卡、数字通用盘、数字视
频磁带、固态RAM、固态ROM等等。硬盘驱动器141 一般通过如接口 140这 样的不可移动存储器接口与系统总线121相连,且磁盘驱动器151和光盘驱动 器155—般用如接口 150这样的可移动存储器接口与系统总线121相连。
上面讨论并在图1中说明的驱动器和它们的相关计算机存储媒质为计算机 110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图1 中,例如,所述硬盘驱动器141存储操作系统144、应用程序145、其它程序 模块146和程序数据147。注意到这些组件或者可与操作系统134、应用程序 135、其它程序模块136和程序数据137相同,或者与它们不同。这里为操作 系统144、应用程序145、其它程序模块146和程序数据147给出不同数字以 说明它们至少是不同的副本。
用户可以通过诸如键盘162和指示设备161这样的输入设备把命令和信息 输入到计算机110中,输入设备通常称为鼠标、轨迹球或触板。其它输入设备 (未示出)可以包括麦克风、游戏杆、游戏板、卫星式转盘、扫描仪等等。这些 和其它输入设备经常通过与系统总线121耦合的用户输入接口 160与处理单元 120相连,但也可以用其它接口和总线结构连接,譬如并行端口、游戏端口或 通用串行总线(USB)。监视器191或其它类型的显示设备也通过诸如视频接口 l卯这样的接口与系统总线121相连。除了监视器191之外,计算机还可以包 括其它外部设备,如扬声器197和打印机196,它们可以通过输出外设接口 l卯 连接。
计算机IIO可以工作在联网环境中,该环境使用与诸如远程计算机180这 样的一个或多个远程计算机之间的逻辑连接。远程计算机180可以是个人计算 机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且一般包括 上述与计算机110有关的许多或全部元件。图1所述的逻辑连接包括局域网 (LAN)171和广域网(WAN)173,但可以还包括其它网络。这种联网环境在办公 室、企业范围计算机网络、企业内联网和互联网中是常见的。
当用于LAN联网环境中时,计算机110通过网络接口或适配器170与LAN 171相连。当用于WAN联网环境中时,计算机110 —般包括用于在诸如互联 网这样的WAN 173上建立通信的调制解调器172或其它装置。调制解调器172
可以是内部或外部的,它可以通过用户输入接口 160或其它适当机制与系统总 线121相连。在网络化环境中,关于计算机IIO所述的程序模块或其部分可以
存储在远程存储器存储设备中。通过示例但非限制,图l说明了驻留在远程计
算机180上的远程应用程序185。可以理解,所示网络连接是示例性的,也可 以使用在计算机间建立通信连接的其它装置。
在一实施例中,语音识别语法和结果被表达为各种数据类型(比如在面向 对象技术中的"类")。传统的自然语言编程应用程序将语法表示为文本串或 者二进制数据结构,但是可使用强类型语法来替代,以执行自然语言的功能。 通常,短语"强类型"(strongly typed)是指语言或者语法如何来运用数据类 型。在此处,强类型语法或者语言是指在编译时所有的类型都可被检验的那种。
通常,应用程序开发者通过下述的方式定义语法制作一系列应用程序接
口 (API)调用以便将词和规则加入到语音识别器中,或者创建一个文本文件 (比如可扩展标记语言(XML)或者XML文件格式)。上述格式中的一种是 万维网联盟(W3C)语音识别语法规范(SRGS)。该文本文件一般包含该语 法,由该潜在的语音识别器将该语法编译成状态机。
图2是强类型语法的一实施例的元素200在编译进程的不同阶段的简化框 图。该元素200包括语法元素、语义编码202和源编码文件204。语法元素和 语义编码202定义了用于将语音识别语法和结果表达成数据类型的一组类型 (或者"类")。源编码文件204定义了一组按照特定应用程序处理自然语言 输入的进程。例如,该语法元素和语义编码202可包括SRGS语法。例如,源 编码文件204可包括一个或多个C弁源编码文件。
语义信息可根据特定的实施方式被编码在源编码文件204中或者在语法元 素和语义编码202中。在编译的过程中,如果语义信息被编码在语法元素和语 义编码202中,则语法编译器(grammar complier)将文件分离成为语法元素 206和语义编码208。源编码文件204接着被载入到该编译器并与语义编码208 结合以产生中间语言编码214。语法元素被编译到状态机212。例如,该中间 语言编码214和状态机212可以是能被语音识别器所利用的二进制文件。
通过从语义编码208 (有关词的含义的规则)中分离语法元素206 (收到 的词的序列),二进制文件被简化从而该状态机212包括了所有可能的转换或
改变,而该中间语言编码214包含了语义处理信息。
总的来说,语法编译器可产生经编译的形式语法(CFG)文件或者类库 (class library)。通常,CFG文件包含状态机212、中间语言编码214、以及 任何调试信息(debugging information)。通常,CFG文件要求从例如一语义值 字典中计算出的结果。
类库表示包含中间语言编码214和状态机212的强类型语法。调试信息可 被存储在分开的文件中(没有示出)。类库使得将用于不同文化的语法所有语 言版本保存在同一个文件中变得可能。这不再需要语音应用程序开发者具备他 所使用的语法的口语知识。例如,语音应用程序开发者能在完全不懂西班牙语 的情况下为英语和西班牙语进行编码。此外,语法中定义的类型可被语音应用 程序、以字段形式返回的结果以及语法对象的属性所共享。
在该实例中,强类型语法被封装在动态链接库(dll)中,动态链接库是一 种在反病毒过滤器、email过滤器等领域中广为人知的文件类型。如果强类型 语法被封装在DLL中,应用程序编码,比如.NET语义编码就能够访问语音应 用程序能够访问的所有资源。
在这种情况下,开发者能够在总体上对于语法只有一点了解并且对于他们 使用的特定语法的内部工作原理完全不了解的情况下对自然语言程序进行编 程。此外,开发者使用自然数据类型而不是通过操作输入串和解析输出串来和 语法进行互动。
在一实施例中,使用标签(tag)来创建属性。例如,与一年中的月份有关 的属性可以被编码如下
<item〉Febmary<tag〉"month,,=2</tag></item>.
上述的编码片断将整数值2与项目"二月"的标签相关。于是,如果用户 从下拉菜单中选择项目"二月",诸如属性"2"被分配给标签"月份"。
属性可被结合以创建强类型复合对象。例如,日期时间"DataTime"对象 可从中间结果中返回,例如
return(new DataTime( result["year,,], result["month,,], result["day"]).
对象和属性可基于父规则重新组合以创建最终结果。总的来说,强类型的 复合对象在语义处理期间被创建并被返回给语音应用程序。
上述的讨论很大程度针对由自然语言应用程序的作者执行的语义结果的 处理(产生)。作为语法编译进程的一部分,源编码被编译并被核对。大多数 的编码错误能在这个阶段被找出,并且错误的精确位置能够被确定。此外,调 试信息可被保存,中断点可直接在源文件中被设置,任何变量的内容可被察看,
并且可使用包括VS.net、 Rascal等在内的任何调试器。
图3是示出在自然语言应用的设计阶段自然语言系统300的一个实施例的 简化框图。系统300包括自然语言识别组件302和耦合至客户输入设备302的 解释组件306。客户端输入设备304可以是麦克风、笔式(pen-based)输入设 备、键盘和鼠标、或者任何其他输入机构。通常,自然语言识别组件302从用 户处捕获自然语言输入,将该输入翻译成能够被后续的处理所使用的形式。该 自然语言识别组件302使用由语法标记语言(比如XML、 SRGS等等)描述的 强类型语法308。自然语言识别组件302包括语音识别组件312A、手写识别组 件312B、键盘和鼠标组建312C、其他输入312D、以及系统生成输入312E。 302 的每个识别组件312A-312D使用该强类型语法308将该自然语言输入转换成文 本,并基于在该强类型语法中定义的类型对该文本进行标记(或者分类)。
经标记或者分类的词接着被传送到解释组件306。更具体地说,每个识别 组件312A-312D分别将其分类的词送到不同的解释组件314A-314D。每一个解 释组件314A-314D基于来自不同的识别组件302 (312A-312D)的经标记的用 户输入,使用语义编码310来确定用户希望的"意思"或者"语义"。此时, 来自客户端设备304的输入数据基于在语义编码310中定义的规则被映射到在 该强数据类型的语法308中定义的类型。解释组件306提供一组语义结果316 (文本至类型映射)给集成组建320。集成组件320包括一处理器322,该处 理器322用于按照一方案或者其他系统产生的输入312处理所述一组语义规 则,以从所述一组语义规则316中选择能够被客户端设备304所使用的类型。 因此,不映射至自然语言特征在客户端设备304的客户端应用程序中定义的类 型映射将被丢弃,而合适的映射将被结合到--集成输出中。集成输出接着返回 到客户端设备304供一客户端应用程序使用。在一实施例中,集成输出包括一 个或多个具有相关的字段和属性的语法对象,它们表示自然语言输入。
通过使用强类型语法,基于类型的系统的优点将在进行自然语言编程时被
开发者所利用,比如可在编译时间找到更多的错误、通过继承(inheritance) 和封装(encapsulation)来进行重构(reuse)、对实施细节进行抽象(abstraction),
等等。这允许开发者能够使用自然数据类型与语法进行互动。对于使用一语法 来说,开发者只需要声明并实例语法类型,设置随便什么该类型所暴露的属性, 并将实例化的类型传送到语音识别器即可。开发者不需要管理语法文件。相反, 任何可以由开发者调整的设置作为该类型的外部接口的一部分是可见的。此 外,强类型的语法允许开发者在运行时间通过标准编程技术设置语法的参数, 比如通过构造器重载(constructor overload)、暴露的属性,等等。使用一组参 数来实例化一语法可通过单个的简单句来完成。换句话说,语法可基于一组运 行时间参数在运行时间同时进行(on the fly)参数化和重建。此外,使用强类 型语法允许开发者构建多语言的语法,而不需要学习定义不同语言的结构的规 则和潜在原理。因此,语音应用程序开发者可按照一语言(比如英语)进行编 码,并且,显然的,该同样的编码对于另一种语言(比如西班牙语)的同样语 法的变形同样适用。
需要理解的是,在强类型语法308中定义的标签或者分类可被识别器302 使用以标记或者标示所识别的输入。这些经标记或者标示的输入接着可由解释 组件306按照开发者定义的语义编码306进行处理以产生一组语义结果316。 较佳的,该组语义结果316对应于客户端设备304的操作者所希望的输入。该 集成的输出可被客户端设别304使用以执行用户所希望的操作。
图4是用于编程强数据类型语法的进程的一实施例的简化的流程图。开发 者在定义语法对象的标签元素中创建属性(步骤400)。可选择的,该属性可 被结合用于创建强类型复合对象(步骤402)。可选择的,强类型复合对象可 根据父规则重新组合而创建一最终结果(步骤404)。该源编码使用语法编译 器进行编译(步骤406)。作为语法编译进程的一部分,验证该语法(步骤408)。 最后,调试信息与中间语言编码输出一起被保存(步骤410)。
图5是用于使用强类型语法编程自然语言程序的进程的简化的流程图。一 语法在一个或多个专用源编码文件和/或一个语法文件中与语义编码一起被定 义(步骤500)。编译器将语法从语义编码中分离(步骤502)。该语法和相 关的语义编码被编译(步骤504)。语法编译器自动为每一个公共语法规则创
建一个类(步骤506)。该语法编译器基于该语法产生一状态机(步骤508)。 最后,语法编译器基于语法文件和/或一个或多个专用源编码文件中的编码产生 经编译的中间语言编码(步骤510)。
图6是用于编译自然语言状态机和中间语言编码的编译器系统600的一实 施例的简化的框图。系统600包括由语法编译器604和编码编译器606组成的 编译器602。语法编译器604用于接收源语法文件608,其可包括语法和语义 编码。语法编译器604用于将语义编码从语法编码中分离出来,并将语法编码 编译到状态机612中。语法编译器604提供分离的语义编码之编码编译器606。
编码编译器606用于接收一个或多个源编码文件610和来自于语法编译器 604的分离的语义编码。编码编译器606用于将分离的语义编码和一个或多个 源编码文件610编译到一中间语言编码614,该中间语言编码614可包括调试 信息616。在一些情况中,调试信息616可被保存在分离的文件中。
强类型数据允许开发者在另一个语法中参考一现存的语法。通过允许开发 者实例化一语法作为一类型,开发者能容易地使用标准的面向对象编程技术或 方法,比如子类或者聚集重构并扩展现存的语法。
传统的技术无法提供简单的方法来识别日期或者基于文本文件将其限制 到曰期范围内,而强类型语法可以通过这样的方式来实现,其可在运行时间通 过标准编程技术,比如构造器重载或者暴露的属性来接收参数。语法接着可通 过单个简单语句(statement)内的一组参数进行实例化。例如,这允许开发者 限制日期范围。
图7是用于实例化语法的系统700的一实施例的简化的框图。该系统700 包括语法702和应用程序编码708。语法702较佳的包括一组强类型的类型704。 语法702还可以包括语义编码706,语义编码706包括一个或多个构造器714。 应用程序编码708使用参数718调用构造器714。构造器714基于所述一组参 数718使用语法编译器716重建其状态机。
语法编译器716用于基于从应用程序编码708调用的参数718编译语法 702。来自所述一组类型704中的类型的具体实例可基于构造器714或者应用 程序编码708中的其他编码结合参数718而进行实例化。参数718可在具体的 实例化上设置特定的要求。此外,得到的实例化的语法(可选择地具有参数)
720包括该类型所暴露的属性。该实例化的语法720被传送到语音识别器722。 语音识别器722用于接收自然语言输入724并将自然语言输入映射到实例化的 语法720中的实例化的类型中以产生映射的对象726。
开发者不需要管理语法702。相反,可由开发者调整的任何一个设置作为 该类型的外部接口是可见的,例如,可通过构造器714访问。这种强类型的语 法允许开发者在运行时间通过标准编程技术,比如构造器重载、暴露的属性等 等对应用程序进行参数化。此外,实例化的类型能够从该一组类型中的基本类 继承属性。因此,本发明的实施例提供类似面向对象的一组类型704或者类, 用于编程自然语言应用程序,因而允许开发者将注意力集中在程序特征,而不 是语法的内部工作原理上。
尽管本发明结合具体实施例进行描述,本领域的技术人员会认识到对于形
式和细节可进行改变,但是不脱离本发明的精神和范围。
权利要求
1.一种用于向自然语言实现应用程序解释自然语言输入的系统,包括语法,包括一组数据类型和关于该组数据类型的语义编码定义规则;源文件,包括用于通过实例化所述这组数据类型中所选择的数据类型而访问所述语法的计算机可读编码;语音识别器,用于接收自然语言输入并将自然语言输入映射到所选择的数据类型。
2. 如权利要求l所述的系统,还包括语法编译器,用于接收所述语法并从所述语义编码中分离所述这组数据类型, 该语法编译器用于从该语法产生一输出。
3. 如权利要求2所述的系统,其特征在于,所述输出包括一状态机。
4. 如权利要求l所述的系统,其特征在于,所选择的数据类型在运行时是用 参数进行实例化的。
5. 如权利要求l所述的系统,还包括编码编译器,用于接收源编码和源文件并将所述源编码和所述源文件编译成 为中间语言编码。
6. 如权利要求5所述的系统,其特征在于,该中间语言编码包括计算机可读 编码和相关的调试信息。
7. —种用于自然语言输入识别的系统,包括 输入设备,用于接收自然语言输入;强类型语法,用于定义表示自然语言输入的元素的一组类型;识别组件,用于使用该强类型语法将该自然语言输入转换成文本并基于该文 本产生识别输出;以及解释组件,用于基于该识别输出确定所述自然语言输入的语义。
8. 如权利要求7所述的系统,还包括 语义编码,用于定义所述语法中的类型的含义。
9. 如权利要求8所述的系统,其特征在于,所述解释组件使用该语义编码基 于所述语法来标识所述自然语言输入的语义。
10. 如权利要求7所述的系统,其特征在于,所述识别组件用于将所述自然 语言输入转换成在该语法中指定的文本。
11. 如权利要求7所述的系统,其特征在于,所述解释组件包括一个或多个 解释组件,每一个解释组件用于产生所述自然语言输入的一可能的解释,该系统还包括集成组件,用于集成由所述一个或多个解释组件产生的所述自然语言输入的 一个或多个可能的解释。
12. 如权利要求7所述的系统,其特征在于,该自然语言输入包括语音。
13. 如权利要求7所述的系统,其特征在于,该自然语言输入包括手写输入。
14. 如权利要求7所述的系统,还包括在包含所述强类型语法的语法文件之内且在一个或多个专用源编码文件之内 进行定义的应用程序编码。
15. —种访问用于自然语言应用程序的语法的方法,包括 提供一个或多个语法,每一个语法包括表示自然语言的一组类型; 定义用于在一个或多个源编码文件中的自然语言输入上进行操作的进程;以 及在运行时间从所述一个或多个语法实例化所述这组类型中所选择的类型,该 所选择的类型对应于自然语言输入。
16. 如权利要求15所述的方法,其特征在于,所述实例化的步骤进一步包括 在所选择的类型的至少一个被实例化的类型上设置参数。
17. 如权利要求15所述的方法,其特征在于,所述实例化的步骤进一步包括 使用语法编译器在所述一个或多个语法中为每一个公共语法创建一个类。
18. 如权利要求15所述的方法,其特征在于,每个语法进一步包括与所述这组类型相关的语义编码。
19. 如权利要求15所述的方法,其特征在于,所选择的类型基于类型定义从 所述语法继承属性。
20. 如权利要求15所述的方法,还包括 使用语法编译器将所述语法编译成一状态机;以及 向语音识别器提供所述状态机以及与所选择的类型相关的语义编码。
全文摘要
在一实施例中,一种用于向自然语言实现应用程序解释自然语言输入的系统具有语法、源文件、以及语音识别器。该语法具有一组数据类型以及关于该组数据类型的语义编码定义规则。该源文件包括用于通过实例化(instantiating)该组数据类型中所选择的数据类型而访问该语法的计算机可读编码。该语音识别器用于接收自然语言输入并映射该自然语言输入至所选择的数据类型。
文档编号G10L15/00GK101185116SQ200680018504
公开日2008年5月21日 申请日期2006年5月8日 优先权日2005年6月23日
发明者J-F·佩洛克斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1