CN101185116A - 在软件程序中使用强数据类型表示语音识别语法 - Google Patents

在软件程序中使用强数据类型表示语音识别语法 Download PDF

Info

Publication number
CN101185116A
CN101185116A CNA200680018504XA CN200680018504A CN101185116A CN 101185116 A CN101185116 A CN 101185116A CN A200680018504X A CNA200680018504X A CN A200680018504XA CN 200680018504 A CN200680018504 A CN 200680018504A CN 101185116 A CN101185116 A CN 101185116A
Authority
CN
China
Prior art keywords
grammer
natural language
type
input
grammar
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.)
Pending
Application number
CNA200680018504XA
Other languages
English (en)
Inventor
J-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 Corp
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 CN101185116A publication Critical patent/CN101185116A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

在一实施例中,一种用于向自然语言实现应用程序解释自然语言输入的系统具有语法、源文件、以及语音识别器。该语法具有一组数据类型以及关于该组数据类型的语义编码定义规则。该源文件包括用于通过实例化(instantiating)该组数据类型中所选择的数据类型而访问该语法的计算机可读编码。该语音识别器用于接收自然语言输入并映射该自然语言输入至所选择的数据类型。

Description

在软件程序中使用强数据类型表示语音识别语法
背景
下面的讨论仅仅提供广义的背景信息,并不是为了被用作确定所要求的主题的范围的依据。
“自然语言软件应用程序”是指用于接收以人说话的方式表达的语音表述或者文本输入的应用程序。然而,传统的利用语音识别的此类应用程序实现如下:定义该应用程序可能会收到的词、定义这些词可能怎样被组合、以及定义这些词的特定组合的语义含义。
通常,术语“语法”(grammar)是指定义任何给定语言的结构的规则和潜在原则,并且语法可被用作自然语言应用程序执行这些功能的机制。在实现中,自然语言编程器对语法进行编码,该语法之后被语音识别器利用。当用于访问该自然语法程序并且说了一些属于已经被该语法所定义的一组词和规则中的内容时,语法识别器将这些词映射到在该语法中定义的串或者其他类型。语法识别器之后告知应用程序(用户)说了什么,以及任何由语法所定义的相应的语义信息,并通常将映射后的对象提供给该应用程序进行进一步的处理。
这种形式的传统应用程序要求软件开发者编码大量的文本和串文本操作。为了使编码更加有效率,开发者需要对语法从总体上有很好的理解,且对开发者所使用的该具体语法的内部工作原理有很好的理解。不幸的是,这种语法知识(grammatical insight)并不是程序员的知识库的一部分。
为了加快整体的开发周期,开发者通常希望使用一些现存语法的变体,比如对现存的语法进行编译和/或进行增加。然而,对现存的语法进行编译需要开发者花费时间去学习其结构,而这些时间原本是可以用来增强软件实现的。尽管传统的技术允许开发者在另一个语法中参考一个现存的语法,但是该参考语法对于调用程序并不是透明的,因为其是通过返回参考语法的语义的方式而起作用的。
概要
该概要被提供用于以简要的方式介绍一些概念,这些概念在下面的详细说明部分会被描述。该概要不是为了确定所要求的主题的关键特征或者是基本特征,该概要也不是为了被用作确定所要求的主题的范围的依据。
在一实施例中,一种用于向自然语言实现应用程序解释自然语言输入的系统具有语法、源文件、以及语音识别器。该语法具有一组数据类型以及关于该组数据类型的语义编码定义规则。该源文件包括用于通过实例化该组数据类型中所选择的数据类型而访问该语法的计算机可读编码。该语音识别器用于接收自然语言输入并将该自然语言输入映射至所选择的数据类型。
在另一实施例中,一种用于自然语言输入识别的系统具有输入设备、强类型语法、识别组件、以及解释组件。该输入设备用于接收自然语言输入。该强类型语法定义了一组表示自然语言输入的元素的类型。该识别组件用于使用该强类型语法将该自然语言输入转换成文本并基于该文本产生识别输出。该解释组件用于基于该识别输出确定自然语言输入的语义。
在另一实施例中,提供一种用于访问自然语言应用程序的语法的方法。提供一个或多个语法。每个语法具有一组表示自然语言的类型。在一个或多个源编码文件中定义用于在自然语言输入上操作的进程。在运行时,该组类型中被选择的类型从一个或多个语法被实例化。该选择的类型对应于自然语言输入。
附图简述
图1是可以实现本发明的实施例的计算系统环境的示意图;
图2是根据本发明的一实施例用于自然语言语法的编译进程的简化框图;
图3是示出根据本发明的一实施例的自然语言系统的输入组件的简化框图;
图4是根据本发明的一实施例用于编程强类型语法的进程的简化的流程图;
图5是根据本发明的一实施例使用强类型语法编程自然语言程序的编译进程的简化的流程图;
图6是根据本发明的一实施例用于编译自然语言状态机和中间语言编码的编译系统的简化的框图;
图7是示出根据本发明的一实施例用于实例化语法的元素的简化的框图。
详细描述
图1说明了适当的计算系统环境100的一例,其中可以实现本发明。计算系统环境100仅是适当的计算环境的一例并且并非意图限制本发明的使用范围或功能。计算环境100不应被解释为具有与示例性操作环境100中所述的组件的任一或组合有关的从属性或要求。
本发明可以用多种其它通用或专用计算系统环境或配置来操作。可以适合与本发明一起使用的公知计算系统、环境和/或配置的示例包括、但不限于:个人计算机、服务器计算机、手提或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程用户电子设备、网络PC、小型计算机、大型计算机、包括任  上述系统的分布式计算环境等等。
本发明可以用计算机可执行指令的一般上下文来描述,譬如由计算机执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定的抽象数据类型。本发明还可以实际用于分布式计算环境中,其中由通过通信网络或其它数据传输媒质连接的远程处理设备来执行任务。在分布式计算环境中,程序模块及其它数据可以位于本地和远程存储媒质中,包括存储器存储设备。分布式计算通过计算设备和系统间的直接交换便于共享计算机资源和服务。这些资源和服务包括信息、高速缓存、及文件磁盘存储的交换。分布式计算利用网络连接性,允许用户机发挥它们的集体功效来有利于整个公司。在这点上,多种设备可以具有应用程序、对象或资源,它们可以利用本发明的技术。
参考图1,用于实现本发明的示例性系统包括形式为计算机110的通用计算设备。计算机110的组件可以包括、但不限于:处理单元120、系统存储器130、及把包括系统存储器在内的各种系统组件耦合至处理单元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)一般存储在ROM131内,它包含例如启动期间帮助在计算机110内的组件间传输信息的基本例程。RAM132一般包含数据和/或程序模块,它们可以立即访问并且/或者当前由处理单元120在其上操作。通过示例但非限制,图1说明了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性计算机存储媒质。仅仅通过示例,图1说明了对不可移动、非易失性磁性媒质进行读写的硬盘驱动器141、对可移动、非易失性磁盘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或其它类型的显示设备也通过诸如视频接口190这样的接口与系统总线121相连。除了监视器191之外,计算机还可以包括其它外部设备,如扬声器197和打印机196,它们可以通过输出外设接口190连接。
计算机110可以工作在联网环境中,该环境使用与诸如远程计算机180这样的一个或多个远程计算机之间的逻辑连接。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且一般包括上述与计算机110有关的许多或全部元件。图1所述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但可以还包括其它网络。这种联网环境在办公室、企业范围计算机网络、企业内联网和互联网中是常见的。
当用于LAN联网环境中时,计算机110通过网络接口或适配器170与LAN171相连。当用于WAN联网环境中时,计算机110一般包括用于在诸如互联网这样的WAN173上建立通信的调制解调器172或其它装置。调制解调器172可以是内部或外部的,它可以通过用户输入接口160或其它适当机制与系统总线121相连。在网络化环境中,关于计算机110所述的程序模块或其部分可以存储在远程存储器存储设备中。通过示例但非限制,图1说明了驻留在远程计算机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>February<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或者类,用于编程自然语言应用程序,因而允许开发者将注意力集中在程序特征,而不是语法的内部工作原理上。
尽管本发明结合具体实施例进行描述,本领域的技术人员会认识到对于形式和细节可进行改变,但是不脱离本发明的精神和范围。

Claims (20)

1.一种用于向自然语言实现应用程序解释自然语言输入的系统,包括:
语法,包括一组数据类型和关于该组数据类型的语义编码定义规则;
源文件,包括用于通过实例化所述这组数据类型中所选择的数据类型而访问所述语法的计算机可读编码;
语音识别器,用于接收自然语言输入并将自然语言输入映射到所选择的数据类型。
2.如权利要求1所述的系统,还包括:
语法编译器,用于接收所述语法并从所述语义编码中分离所述这组数据类型,该语法编译器用于从该语法产生一输出。
3.如权利要求2所述的系统,其特征在于,所述输出包括一状态机。
4.如权利要求1所述的系统,其特征在于,所选择的数据类型在运行时是用参数进行实例化的。
5.如权利要求1所述的系统,还包括:
编码编译器,用于接收源编码和源文件并将所述源编码和所述源文件编译成为中间语言编码。
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所述的方法,还包括:
使用语法编译器将所述语法编译成一状态机;以及
向语音识别器提供所述状态机以及与所选择的类型相关的语义编码。
CNA200680018504XA 2005-06-23 2006-05-08 在软件程序中使用强数据类型表示语音识别语法 Pending CN101185116A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/159,648 US7460996B2 (en) 2005-06-23 2005-06-23 Using strong data types to express speech recognition grammars in software programs
US11/159,648 2005-06-23

Publications (1)

Publication Number Publication Date
CN101185116A true CN101185116A (zh) 2008-05-21

Family

ID=37568667

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200680018504XA Pending CN101185116A (zh) 2005-06-23 2006-05-08 在软件程序中使用强数据类型表示语音识别语法

Country Status (6)

Country Link
US (1) US7460996B2 (zh)
EP (1) EP1891623A4 (zh)
JP (1) JP2009500699A (zh)
KR (1) KR101213890B1 (zh)
CN (1) CN101185116A (zh)
WO (1) WO2007001637A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502739A (zh) * 2018-05-17 2019-11-26 国际商业机器公司 结构化输入的机器学习模型的构建

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190419B1 (en) 2006-09-11 2012-05-29 WordRake Holdings, LLC Computer processes for analyzing and improving document readability
US9620117B1 (en) * 2006-06-27 2017-04-11 At&T Intellectual Property Ii, L.P. Learning from interactions for a spoken dialog system
US7827033B2 (en) * 2006-12-06 2010-11-02 Nuance Communications, Inc. Enabling grammars in web page frames
US8175885B2 (en) * 2007-07-23 2012-05-08 Verizon Patent And Licensing Inc. Controlling a set-top box via remote speech recognition
WO2011011534A1 (en) * 2009-07-23 2011-01-27 Sourcetrace Systems, Inc. Modification of terminal and service provider machines using an update server machine
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
KR20110036385A (ko) * 2009-10-01 2011-04-07 삼성전자주식회사 사용자 의도 분석 장치 및 방법
US10811004B2 (en) * 2013-03-28 2020-10-20 Nuance Communications, Inc. Auto-generation of parsing grammars from a concept ontology
US11100291B1 (en) 2015-03-13 2021-08-24 Soundhound, Inc. Semantic grammar extensibility within a software development framework
US10843080B2 (en) * 2016-02-24 2020-11-24 Virginia Tech Intellectual Properties, Inc. Automated program synthesis from natural language for domain specific computing applications
KR102396187B1 (ko) 2020-10-12 2022-05-09 광운대학교 산학협력단 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6022222A (en) * 1994-01-03 2000-02-08 Mary Beth Guinan Icon language teaching system
US5642519A (en) * 1994-04-29 1997-06-24 Sun Microsystems, Inc. Speech interpreter with a unified grammer compiler
US6654955B1 (en) * 1996-12-19 2003-11-25 International Business Machines Corporation Adding speech recognition libraries to an existing program at runtime
CA2346145A1 (en) * 1998-10-05 2000-04-13 Lernout & Hauspie Speech Products N.V. Speech controlled computer user interface
US6314398B1 (en) * 1999-03-01 2001-11-06 Matsushita Electric Industrial Co., Ltd. Apparatus and method using speech understanding for automatic channel selection in interactive television
US6553345B1 (en) * 1999-08-26 2003-04-22 Matsushita Electric Industrial Co., Ltd. Universal remote control allowing natural language modality for television and multimedia searches and requests
US7027991B2 (en) * 1999-08-30 2006-04-11 Agilent Technologies, Inc. Voice-responsive command and control system and methodology for use in a signal measurement system
US6529865B1 (en) * 1999-10-18 2003-03-04 Sony Corporation System and method to compile instructions to manipulate linguistic structures into separate functions
US6934684B2 (en) * 2000-03-24 2005-08-23 Dialsurf, Inc. Voice-interactive marketplace providing promotion and promotion tracking, loyalty reward and redemption, and other features
US7133830B1 (en) * 2001-11-13 2006-11-07 Sr2, Inc. System and method for supporting platform independent speech applications
US7761858B2 (en) * 2004-04-23 2010-07-20 Microsoft Corporation Semantic programming language

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502739A (zh) * 2018-05-17 2019-11-26 国际商业机器公司 结构化输入的机器学习模型的构建

Also Published As

Publication number Publication date
KR20080018160A (ko) 2008-02-27
KR101213890B1 (ko) 2012-12-18
EP1891623A4 (en) 2009-04-22
WO2007001637A3 (en) 2007-11-08
JP2009500699A (ja) 2009-01-08
US7460996B2 (en) 2008-12-02
US20060293894A1 (en) 2006-12-28
EP1891623A2 (en) 2008-02-27
WO2007001637A2 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
CN101185116A (zh) 在软件程序中使用强数据类型表示语音识别语法
CN111708539B (zh) 一种应用程序代码转换方法、装置、电子设备和存储介质
US8745584B2 (en) Dependency injection by static code generation
US7010796B1 (en) Methods and apparatus providing remote operation of an application programming interface
Ferrández et al. The QALL-ME Framework: A specifiable-domain multilingual Question Answering architecture
US8762963B2 (en) Translation of programming code
CN106951305B (zh) 一种基于模型转换由QVT-R语言生成midCore脚本的方法
CN102566984A (zh) 一种配置参数的方法及装置
US8315874B2 (en) Voice user interface authoring tool
US7752596B2 (en) Connecting alternative development environment to interpretive runtime engine
Irwin et al. Object oriented metrics: Precision tools and configurable visualisations
CN112269566B (zh) 脚本生成处理方法、装置、设备及系统
JP2005209176A (ja) アプリケーションをコンパイルするための方法
Di Natale et al. A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components
US20230072988A1 (en) System and a method for automatic generation of smart contracts across blockchain platforms
Prinz et al. A model-based standard for SDL
Martinez et al. Migrating c/c++ software to mobile platforms in the adm context
US20070050706A1 (en) Method of xml transformation and presentation utilizing an application-specific parser
CN115374764A (zh) 一种基于用户故事的需求模型自动生成方法及系统
US20050177788A1 (en) Text to XML transformer and method
CN103176830A (zh) 基于类图和活动图相结合生成c++代码的方法
CN101446895B (zh) 基于语法重构的代码级构件组装方法
CN104657162A (zh) 一种服务环境修改方法和装置
US20080313606A1 (en) Xsl dialog modules
US20070192367A1 (en) Generic expression framework for computer implementable expressions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080521