语音识别宏运行时环境的制作方法

文档序号:2831768阅读:373来源:国知局
专利名称:语音识别宏运行时环境的制作方法
语音识别宏运行时环境
背景
用于计算机用户的早期语音识别系统已经提供了基本口述功能。这些系统 将口述单词转换为书写文本。通常这些系统被实现为与诸如文字处理应用程序
等其它用户应用程序合作地运行于计算机的操作系统之上的用户应用程序。
稍后的语音识别系统有时通过提供静态、预定义操作来包括除口述之外的
命令和控制功能。这些操作允许用户界面的有限控制,诸如开启应用程序和在
应用程序之间切换。
使用这些传统语音识别系统,创建新语音命令需要语音识别应用程序编程
接口 (API)的知识和诸如0++编程等大量软件开发。新的操作将需要自定义
开发的软件应用程序与语音识别API接口 。因为需要庞大的开发工作来使用这
些系统创建、更新、以及维护新的操作,所以提供个性化操作、适应个别用户
的需要是不切实际的。 概述
此处所公开的语音识别系统允许用户在不进行大量软件开发的情况下定 义个性化的、上下文知晓的语音命令。命令集可使用用户友好宏语言来定义。 命令集内的命令对象可以包括一个或多个用户可配置动作、 一条或多条可配置 规则、以及零个或更多可配置条件。
命令集可由软件子系统"命令集加载器"来管理,该命令集加载器加载每 一命令集并将其处理成诸如公共对象模型(COM)对象等计算机可执行代码。 命令数据可由可扩展标记语言(XML)文件来定义。例如,XML文件可由 软件提供者创建、由用户直接创建、和/或由用户经由一系列用户界面提示来创 建。命令集加载器可以监视命令数据中的改变并可以改变、启用和/或禁用命令 集。
该语音识别系统可以包括宏处理组件。该宏处理组件可以与所加载的命令 集和计算机的语音识别引擎进行接口 。宏处理组件可以评估命令以根据每一命令所包括的条件的评估来确定哪条命令现在被启用。宏处理组件可以基于当前 启用的命令来向语音识别引擎提供语音识别语法。可以监视条件和/或命令本身 来寻找改变。条件的评估中的改变和/或命令本身中的改变可以指示宏处理组件 生成经更新的语法并向语音识别引擎提供该经更新的语法。
在语音识别弓I擎识别出与语法一致的用户语音时,语音识别引擎可以向宏 处理组件提供识别指示。该宏处理组件可以确定对应命令。宏处理组件可以处 理每一对应命令,以发起与该对应命令相关联的一个或多个计算机可执行动 作。因此,用户可以在不进行大量计算机编程和/或自定义软件开发的情况下定 义复杂的启用语音的宏。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特 征,也不旨在用于限定所要求保护的主题的范围。
附图简述


图1示出示例性计算环境。
图2示出用于处理语音识别宏的示例系统。
图3示出使用语音识别引擎的示例方法。
详细描述
本发明的许多实施例可在计算机上执行。图1及以下讨论旨在提供可在其 中实现本发明的合适计算环境的简要概括描述。尽管并非所需,但本发明将在 诸如程序模块等由诸如客户机工作站或服务器等计算机执行的计算机可执行 指令的一般上下文中描述。 一般而言,程序模块包括执行特定任务或实现特定 抽象数据类型的例程、程序、对象、组件、数据结构等。而且,本领域的技术 人员可以理解,本发明方法可以使用其它计算机系统配置来实现,包括手持式 设备、多处理器、基于微处理器或可编程消费电子产品、网络PC、小型机、 大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备 执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地 和远程存储器存储设备中。图1示出了在其中可实现各示例实施例和各方面的示例性计算环境。计算
系统环境ioo只是合适计算环境的一个示例,并非旨在对使用范围或功能提出 任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任
一组件或其组合有任何依赖性或要求。
可以使用多种其它通用或专用计算系统环境或配置。适合与本发明一起使 用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器 计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、
可编程消费电子产品、网络PC、微型计算机、大型计算机、嵌入式系统、包
括任何以上系统或设备的分布式计算环境等等。
可以使用诸如程序模块等可由计算机执行的计算机可执行指令。 一般而 言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、 组件、数据结构等。也可使用其中任务由通过通信网络链接的远程处理设备执 行的分布式计算环境。在分布式计算环境中,程序模块可以位于包括存储器存 储设备的本地和远程计算机存储介质中。
参考图1,示例性系统包括计算机110形式的通用计算设备。计算机110 的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存 储器在内的各种系统组件耦合至处理单元120的系统总线121。处理单元120 可表示诸如多线程处理器上支持的多个逻辑处理单元。系统总线121可以是几 种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、 以及使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这 样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA) 总线、增强型ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线 和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。系统总线121 也可被实现为点对点连接、交换光纤等通信设备。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计 算机110访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不 可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通 信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程 序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动
7和不可移动介质。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、 闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、 磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可 由计算机110访问的任一其它介质。通信介质通常以诸如载波或其它传输机制 等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据, 并包括任意信息传送介质。术语"已调制数据信号"指的是其一个或多个特征 以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介 质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、 红外线和其它无线介质。以上的任何组合也应包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质, 如只读存储器(ROM) Bl和随机存取存储器(RAM) 132。基本输入/输出系 统133 (BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基 本例程,它通常储存在ROM131中。RAM132通常包含处理单元120可以立 即访问和/或目前正在其上操作的数据和/或程序模块。作为示例而非限制,图 1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存 储介质。仅作为示例,图l示出了对不可移动、非易失性磁介质进行读写的硬 盘驱动器140,对可移动、非易失性磁盘151进行读写的磁盘驱动器152,以 及对诸如CD ROM或其它光学介质等可移动、非易失性光盘155进行读写的 光盘驱动器156。可以在示例性操作环境中使用的其它可移动/不可移动、易失 性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、 数字录像带、固态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 (通常指的是鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可包括话筒198、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常由耦合至系统总线的用户输入接口 160连接至处理单元120,但也可以由其它接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口 190连接至系统总线121。除监视器以外,计算机还可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口 195连接。
计算机110可使用至一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且通常包括许多或所有以上相对于计算机IIO所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器171连接至LAN170。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以经由用户输入接口 160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图l示出远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。宏的示例系统。该系统可以在图1所示的计算
环境100上操作或结合该计算环境100来操作。示例系统可以包括语音识别引 擎202、宏处理组件204、命令集206、命令集加载器208、和/或用户界面组件 210。命令集加载器208可以检索诸如可扩展标记语言(XML)数据214等命 令数据212。命令集加载器208可以建立一个或多个命令集206。命令集加载 器208可以监视命令数据212的改变。在检测到改变后,命令集加载器208可 以更新相关联的命令集206。
该命令集206可以定义多个命令216,这些命令216可启用高级、可配置 语音宏。每一命令216可包括规则数据218、条件数据220、和/或执行数据222。 规则数据218可以包括用户将希望系统识别的单词和/或短语。条件数据220 可包括零个或更多条件,在这些条件下用户将希望系统识别由规则数据218所 指定的单词和/或短语。执行数据222可包括用户将希望系统在识别由规则数据 218所指定的单词和/或短语时发起的一个或更多计算机可执行动作。
宏处理组件204可以与命令集206接口来为语音识别引擎202生成与命令 集206相关联的语音识别语法224。在语音识别引擎202检测到与语法224 — 致的口头语音时,语音识别引擎202可以向宏处理组件204报告该识别事件。 宏处理组件204可以发起与识别事件相关联且与命令216 —致的正确动作和/ 或执行。可以监视由命令216所定义的条件来寻找状态的改变。在条件的状态 改变后,宏处理组件204可以生成经更新的语法224,以根据与改变后的条件 相关联的规则数据218来添加和/或移除单词和/或短语。
语音识别引擎202可包括任何硬件、软件、其组合、适用于从音频语音信 号中辨别单词和/或短语的任何系统、子系统、和/或组件。例如,语音识别引 擎202可以接收并处理音频流。该处理可例如包括基于隐马尔可夫模型的识别、 基于神经网络的识别、基于动态时间变形的识别、基于知识的识别等。语音识 别引擎202可以实时地处理音频流。例如,语音识别引擎可以经由如图l所示 的话筒198来接收音频流。
语音识别引擎202可根据语法224来识别单词。语法224可包括语音识别 引擎202将监听的目标单词和/或与这些目标单词相关联的模式的结构化列表。 语音识别引擎202可以处理多种语法。每一语法224可包括标识符。
10在语音识别引擎202从音频流中识别到与语法224 —致的单词时,语音识 别引擎202可返回识别指示。该识别指示可包括被识别的单词、该被识别的单 词与之相关联的语法224的标识符、和/或置信度度量。
命令数据212可包括任何被结构化以定义语音识别宏命令216的数据。命 令数据212可本地存储在计算机处。例如,命令数据212可存储在计算机文件 系统中的目录中。命令数据212可在计算机的注册表中列出。命令数据212可 以远程地存储并由计算机经由网络来访问。例如,命令数据212可经由真正简 单聚合(RSS)订阅源来访问。命令数据212可经由安全超文本传输协议 (HTTPS)来访问。命令数据212的每一实例可对应于命令集206。命令数据 212可定义一条或多条命令216。
命令数据212可包括XML数据214。该XML数据214可定义命令216、 条件、规则、和/或可执行动作。XML数据214可包括以VCMD文件扩展名存 储在本地盘上的XML文件。
XML数据214可包括遵循所定义的语音宏规范的标签和结构。语音宏规 范可定义具有具体意义和功能的特定标签。语音宏规范可定义用于标签的结 构。例如,标签可标识命令216和这些命令216的特性。规则数据218、条件 数据220、和/或执行数据222可根据XML标签来界定。标签可定义它们界定 的数据的各个方面。为了说明,每一命令216可由标签〈command〉〈/command〉 界定。与规则数据218相关联的单词和/或短语可由标签〈listenForx/listenFor〉 界定。与条件数据220相关联的条件可由标签本身的文本来定义,且该条件的 各参数可由该标签来界定。为了说明,在应用程序notepad.exe在前台中时为 真的条4牛可由〈appIsInForeground processName="notepad.exe" />来表不。类"[以 地,与执行数据222相关联的计算机可执行动作可由标签本身的文本来定义, 且该计算机可执行动作的各参数可由该标签来界定。为了说明,启动应用程序 notepad.exe的i十算禾几可执〗亍动作可由〈run command=,,notepad.exe,, />来表示。 因此,命令可被表示为界定数据的XML标签的集合。
命令集加载器208可以监视命令数据212。在命令集加载器208检测到命 令数据212中的改变时,命令集加载器208可以同步命令集206和命令数据 212。此改变可以包括移除、增加、和/或替换命令数据212。命令集加载器208可以周期性地轮询命令数据212以寻找改变。例如,如果检测到改变,则受影
响的命令集206可以被卸载并根据该改变重新加载。例如,命令集加载器208 可以检测到命令数据212已经被移除(例如,XML数据文件214已经被删除) 且命令集加载器208同样可以移除命令集206。命令集加载器208可包括触发 命令数据212的周期性检査的可配置定时器。
命令集加载器208可包括XML架构解析器。该XML架构解析器可以确 认命令数据212使用正确的XML格式。命令集加载器208可以从命令数据212 中提取命令集并将该命令集存储在存储器中。命令集加载器208可以根据命令 数据212来创建和/或填充公共对象模型(COM)对象。命令集加载器208可 以根据命令数据212建立一个或多个命令集206。
这些命令集每一个都可以包括命令216、全局规则生成器226、和/或全局 条件228。命令集和/或其内容可以是COM对象。命令集206可以与宏处理组 件204接口。命令集206可以表示语音识别宏的分布单元。例如,用户可以为 不同应用程序定义语音识别宏(例如,电子邮件宏、工作宏、因特网宏等)。 每组宏可以被收集进不同命令集206中。每一命令集206可以与一不同的XML 数据文件214相关联。命令216可包括规则数据218、条件数据220、和/或执 行数据222。每一命令216可以将规则数据218、条件数据220、和/或执行数 据222相关以定义语音识别宏。
诸如规则生成器等规则数据218可以定义用户希望语音识别引擎202监听 的单词和/或短语。规则数据218可以对应于将触发语音识别宏的语音。规则数 据218可以引用诸如静态文本数据等静态单词和/或短语。例如,规则数据218 可以包括对应于要识别的单词的纯文本。该纯文本可被转换为基于SAPI 5的 规则。
命令集206可以与一个或多个全局规则生成器226相关联。全局规则生成 器226可以定义应用于命令集206内的每一命令216的规则。全局规则生成器 226可以是以很少几行XML代码将规则包括在许多命令216中的快速方式。
规则数据218可以引用诸如基于现有操作环境的动态单词等动态单词。例 如,规则数据218可以引用存在于活动文本文档窗口中的任何单词或有序的单 词集。为了说明,如果文本编辑器应用程序是前台应用程序,则可以将任何包含在该文档中的文本导出为规则。规则数据218可以引用能够经由开始菜单或 桌面被启动的应用程序的名称。用户可以使用此规则来通过名称访问应用程序 而不必为每一应用程序具有单独的规则。
规则数据218可以包括当前应用程序中的所有命名控件的列表。为了说 明,前台中的文本编辑器可以与诸如像"文件"、"编辑"、"格式"等菜单 标题,以及像"关闭"、"最小化"等窗口控件等命名控件相关。规则数据218 可以包含当前在系统上运行的应用程序的列表,如那些在Alt-Tab列表中可见 的列表。规则数据218可以引用短语列表。每一短语可任选地与相应语义特性 相关联。规则数据218可以包括用于触发规则的短语的有序子集。规则数据218 可以包括SAPI 5 XML规则。
规则数据218可用于生成对应于位于指定用户界面(UI)元素之下的可访 问项目的短语的列表。规则数据218可用于为在前台中的应用程序生成单个短 语。例如,这可在引用规则需要使用来自当前应用程序的文本的任何时候使用。 规则数据218可用于为当前运行的所有应用程序生成短语集。例如,此规则可 用于生成当前运行的所有应用程序的列表,以启用诸如"关闭[应用程序的名 称]"等语音识别宏。
规则数据218可以与应用程序数据相关联。该规则可用于为指定目录中的 所有文件生成单词集。规则数据218可以基于在消息收发应用程序编程接口 (MAPI)兼容邮件系统中的收件箱和/或发件箱文件夹中找到的项目来生成规 则。例如,规则的短语部分可以包括消息的发送者和/或接收者的名字,且语义 特性可以包含电子邮件地址。规则数据218可以动态地包括来自媒体播放器应 用程序的项目,诸如名称、艺术家、标题、风格、音轨号等。
规则数据218可以根据脚本的结果来引用单词和/或短语。例如,脚本可 以包括Visual Basic脚本、Java脚本等。
条件数据220可以定义命令何时被启用(g卩,语音识别何时应该监听由规 则数据218所标识的单词和/或短语)。命令可以具有零个条件,其中该命令可 被一直启用。命令可以具有一个条件,其中该条件可以在命令被启用之前被满 足。命令可以具有超过一个条件,其中所有列出的条件应该被满足以启用该命 令。命令可以具有超过一个由诸如AND、 OR、 XOR等逻辑运算符组合在一起的条件。
命令集206可以与一个或多个全局条件228相关联。全局条件228可以定 义应用于命令集206内的每一命令216的条件。全局条件228可以是以很少几 行XML代码将条件包括在许多命令216中的快速方式。
条件可用于基于计算机操作的任何方面来启用命令216。条件可以取决于 计算机的一个或多个操作。条件可以取决于与计算机进行通信的其它设备的一 个或多个操作。例如,条件可以取决于来自远程web服务器的网页的内容。条 件可以取决于软件属性,诸如运行的应用程序和/或计算机操作系统的各方面。 条件可以取决于硬件属性,诸如例如通用串行总线(USB)设备的存在。
条件可以检査特定应用程序是否是前台窗口。例如,条件可以经由进程名 称或窗口标题来检查。条件可以检査特定应用程序是否正在运行。条件可以经 由进程名称或窗口标题来检査。条件可以检査特定应用程序是否被安装。例如, 它可以通过进程名称来检査。
条件可以检查在可编辑域中是否存在插入点。条件可以检査在可编辑域中 是否存在选择。此条件可用于控制应该仅在存在选择时被启用(或禁用)的命 令216,诸如操纵该选择的口述命令216。
条件可以检查是否存在具有指定特性的用户界面(UI)元素。此条件可用 于控制应该仅在指定UI元素存在时被启用(或禁用)的命令216。这在尝试 将语音识别宏应用于应用程序的特定方面而不是整个应用程序时可以是有用 的。
条件可以检査是否存在命名状态,且可任选地检查命名状态的值。此条件 可用于提供对话控件。条件数据220可包括脚本以程序性地确定条件是否被满 足。有了可以指示条件是否被满足的条件对象模型,条件数据220可以指示相 关联的脚本的启动。例如,脚本可以包括Visual Basic脚本、Java脚本等。
执行数据222可以定义在语音识别引擎202识别到由规则数据218所标识 的单词和/或短语时要采取的计算机可执行动作。执行数据222可定义一个或多 个可执行动作。这些可执行动作可以与一个或多个计算机可执行动作相关联。 动作可以静态地定义或动态地定义。
可执行动作可以在语音用户界面中设置文本反馈。可执行动作可向用户提供回指定语音。例如,该语音可使用文本-语音系统来生成。可执行动作可以 启动新的应用程序。可执行动作可以切换到指定应用程序。可执行动作可以关 闭指定应用程序。可执行动作可以最小化指定应用程序。可执行动作可以最大 化指定应用程序。可执行动作可以还原指定应用程序。可执行动作可以模拟被 发送到前台中的应用程序的键。此可执行动作可用于模拟来自键盘的用户输 入。
可执行动作可以将文本插入到活动文档中。可执行动作可以将识别结果的
一部分插入到活动文档中。为了说明,用户可以定义启动web浏览器应用程序 并将所说出的统一资源定位符(URL)输入到web浏览器应用程序的地址域中 的宏。
可执行动作可以对语音识别进行仿真。例如,可执行动作可用于使用文本 短语来模拟语音识别。语音识别器将假装它听到用户说出要仿真的内容。可执 行动作可使得Microsoft Active Accessibility (微软活动可访问性,MSAA)元 素被点击和/或执行。如果MSAA元素不能被定位,则用于该命令的可执行动 作的列表可以在此可执行动作处终止。
可执行动作可以等待指定量的时间。例如,此可执行动作可用于确保命令 在通过有关应用程序的动作来继续之前有足够的时间以供该应用程序加载。可 执行动作可以向用户确认命令应该继续其执行。例如,可以向用户显示具有 "是"和"否"按钮的对话框。可执行动作可以使用消息框类型的对话框来通 知用户。例如,该对话框可以具有消息和"确认"按钮。可执行动作可用于使 用具有包含用户可以操纵的文本的编辑控件的对话框来提示用户。
可执行动作可以将命名状态设置为特定值。该命名状态可用于开发复杂的 宏。例如,命名状态可用于将命令216链接在一起。此可执行动作可用于模拟 对话框控件。
可执行动作可以是消歧可执行动作。该消歧可执行动作可用于消除识别结 果中的将可能有歧义的特性或文本的歧义。如果被消歧的项目是有歧义的,则 可以向用户显示对话框以允许该用户从列表中选择特定项目。例如,响应于同 音语音,语音识别组件可以返回识别指示。响应于该识别指示,消歧可执行动 作可以指示用户界面显示多个与同音语音一致的单词。用户可以从该列表中选
15择对应于用户的预期意义的单词。
可执行动作可以控制交互式媒体播放器。例如,此可执行动作可用于指示 媒体播放器控件,诸如播放、暂停、停止等。可执行动作可以在交互式媒体播 放器中选择音频。可执行动作可通过诸如名称、艺术家、标题、风格、音轨号 等与存储的媒体相关联的单词来引用。可执行动作可以提供对电子邮件应用程 序的访问。可执行动作可用于从宏框架内运行脚本代码。
条件数据220、规则数据218、以及执行数据222可与语义特性有关。语 义特性可允许可执行动作对有关用户所说的语音的数据进行操作。为了说明, 用于发送电子邮件的语音识别宏可希望对"向Rob发送电子邮件"做出响应。 Rob的电子邮件地址将是语义特性,艮卩,有关所说出的单词"Rob"的数据。 规则数据218可以包括语义特性名称。因此,用于此命令的规则数据218可以
指示监听"向[人]发送电子邮件"。项"[人:i"可以是对应于在此时间点所识
别的语音的标签,其与短语中的其它单词相关联。项"[人]"可以被链接到具 有姓名和相关联的电子邮件地址的配对列表。作为语义特性,可将所说出的文 本返回给涉及标签的任何可执行动作。再次为了说明,如果用户说"向Rob发 送电子邮件",则名为"人"的语义特性将具有值"Rob"。
在一实施例中,命令集206可包括至少两个命令对象,以使得第二命令对 象的执行数据222定义第一命令对象。例如,来自第二命令对象的执行数据222 可定义第一命令对象的条件。来自第二命令对象的执行数据222可建立命名状 态,且第一命令对象的条件可取决于该命名状态。
以这种方式,可使用复杂的模式将多个命令对象连贯起来。为了说明,用 户可能希望设计在两种模式中操作的宏。用户可能希望在家以一种模式操作并 在工作时以另一模式操作。该用户可以创建监听短语"我在家"的第二命令对 象。与此第二命令对象相关联的执行数据222可以建立与家庭模式相关联的命 名状态。该用户可以创建监听短语"检査电子邮件"的第一命令对象。为确保 该第一命令对象将检査用户的个人电子邮件帐户而不是用户的工作电子邮件 帐户,第二命令对象可包括取决于与家庭模式相关联的命名状态的条件。
宏处理组件204可根据命令216的条件数据220和规则数据218来管理语 法224和/或语音识别引擎202的操作。宏处理组件204可包括与一个或多个命令集206和/或语音识别引擎202接口的软件组件。宏处理组件204可评估命令 集206中的每一命令216。宏处理组件204可接收每一条件的评估的结果。宏 处理组件204可评估每一命令216的条件数据220。
根据条件数据220 ,宏处理组件204可以选择要被包括在语音识别语法224 中的规则数据218。例如,宏处理组件204可在条件数据220的条件被评估为 真时将规则数据218包括在语音识别语法224中。宏处理组件204可根据条件 数据220的评估的结果来生成语法224。宏处理组件204可为每一命令集206 生成相应语法224。宏处理组件204可标识每一语法224以将每一语法224与 相应命令集206相关联。
宏处理组件204可向语音识别引擎202传送语法224。宏处理组件204可 通过诸如例如语音应用程序编程接口 (SAPI)等应用程序编程接口 (API)与 语音识别引擎202通信。
语音识别引擎202可根据语法224来识别人类语音。在语音识别引擎202 识别出在语法224中找到的口述单词时,语音识别引擎202可将识别指示返回 给宏处理组件204。该结果可包括所识别的单词和/或使用哪个语法224的指示。 宏处理组件204可根据所识别的单词来选择正确的命令集206。宏处理组件204 可启动和/或发起与所选择的命令相关联的计算机可执行动作。
宏处理组件204可监视由命令集206所定义的条件。例如,每一条件可与 一对象相关联以使得在该条件的状态改变时,该对象可以回过来向宏处理组件 204报告。宏处理组件204可接收经更新的状态。宏处理组件204可生成对应 于新状态的经更新的语法224。例如,条件可以从真到假,且宏处理组件204 可以生成已经移除了相关联的单词的经更新的语法224。类似地,条件可以从 假到真,且宏处理组件204可以生成具有附加单词的经更新的语法224。
用户界面组件210可以与宏处理组件204、语音识别引擎202、命令集加 载器208、和/或命令数据212进行通信。用户界面组件210可以是适用于提供 用于管理、控制、评估、监视、和/或配置语音识别宏处理系统的各组件的图形 和/或文本用户界面的特征和功能的任何集合。用户界面可以允许用户通过逐步 的"向导"过程来生成命令数据212。用户界面组件210可允许用户标识和配 置位置并设置与命令集加载器208相关联的监视频率。用户界面组件210可提供当前活动命令216和/或命令集的图形和/或文本显示。用户界面组件210可 以显示使用中的语法。用户界面组件210可以允许用户通过按钮、复选框、单 选选择器等来启用或禁用系统的各方面。用户界面组件210可以具有用于呈现 给用户的图形表示。例如,用户界面组件210可以图形地呈现在计算机桌面、 窗口、工具条、系统托盘中。
图3示出使用语音识别引擎202的示例方法。在302,语音宏处理系统可 接收命令数据212。命令数据212可在本地访问和/或远程地访问。命令数据212 可被存储在本地盘或从网络位置存储在远程盘上。命令数据212可使用XML 脚本文件和/或XML脚本格式化数据的形式。命令数据212根据真正简单聚合 (RSS)订阅源来从网络位置处接收。
语音识别宏处理系统可验证与命令数据212相关联的数字证书。验证该数 字证书可确保数据完整性和命令数据212的认证。可以解析使用XML形式的 命令数据212以填充命令对象。命令对象可包括条件数据220、规则数据218、 和/或执行数据222。
可静态地定义命令对象。例如,命令数据212可包括静态地定义命令对象 的静态XML格式化代码。可动态地定义命令对象。例如,命令数据212可包 括在被执行时动态地定义命令对象的脚本和/或运行时代码。
在304,可评估与命令对象相关联的条件。条件可取决于计算机系统的操 作的任何方面。条件可评估为结果。例如,结果可被赋值为真或假。如果条件 评估为真,则命令对象可以活动。如果条件评估为假,则命令对象可以不活动。
在306,语音识别宏处理系统可生成语音识别语法224。语音识别语法224 可根据命令对象来生成。在命令对象活动时,语法224可包括与命令对象的规 则数据218相关联的单词。在该命令不活动时,宏处理系统可从语法224中排 除与规则数据218相关联的一个或多个单词。
在308,可监视与命令对象相关联的条件来寻找状态的改变。该状态的改 变可由在评估条件时的结果中的改变来指示。在304可以重新评估条件,且在 306可以生成经更新的语音识别语法224。在一实施例中,条件可以是向父对 象报告其评估结果中的改变的COM对象。
在310,可以监视命令数据212来寻找改变,诸如存储在本地驱动器上的XML格式化数据的改变、对RSS订阅源的更新等。可以监视命令数据212来 寻找对命令集的改变、寻找附加命令集、以及寻找命令集的移除。在302可以 接收经更新的命令数据212,且在304可以评估与经更新的命令数据212相关 联的条件。在306,可根据经更新的命令数据212来生成经更新的语音识别语 法224。
在312,可将所生成的语音识别语法224发送到语音识别引擎202。在308 和310的监视可以继续。随着语音识别语法224以与308处条件的改变和/或 310处命令数据的改变一致的方式来更新,可将经更新的语音识别语法224传 送到语音识别引擎202。
语音识别引擎202可对经更新的语音识别语法224进行操作。语音识别引 擎202可分析音频流。在语音识别引擎202识别到音频流与语法224之间的匹 配时,语音识别引擎202可以返回识别指示。识别指示可以与被包括在活动命 令对象的规则数据218中的单词相关联。
在314,响应于识别指示,可执行计算机可执行动作。该计算机可执行动 作可与由识别指示和相关联的命令所指定的单词相关联。该单词可被包括在命 令对象的规则数据218中,且计算机可执行动作可被包括在与命令对象相关联 的执行数据222中。为了说明,宏处理组件204可接收识别指示。宏处理组件 204可从该识别指示中确定相关联的命令集206。宏处理组件204可从该识别 指示中确定此命令集206内的相关联的命令对象。宏处理组件204可以发起与 此命令对象的执行数据222相关联的一个或多个计算机可执行动作。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种使用语音识别引擎(202)的方法,所述方法包括接收第一命令对象(216),其中所述第一命令对象包括指示单词、条件、以及第一计算机可执行动作的第一数据;评估所述条件;根据所述评估的结果来生成包括所述单词的第一语音识别语法(224);将所述第一语音识别语法(224)传送到所述语音识别引擎(202);以及响应于从所述语音识别引擎(202)接收到识别指示来执行所述第一计算机可执行动作,其中所述识别指示与所述单词相关联。
2. 如权利要求1所述的方法,其特征在于,所述第一命令对象(216)由 可扩展标记语言(XML)文件(214)来定义。
3. 如权利要求2所述的方法,其特征在于,还包括监视目录位置来寻找所 述XML文件(214)。
4. 如权利要求2所述的方法,其特征在于,还包括根据真正简单聚合 (RSS)订阅源来下载所述XML文件(214)。
5. 如权利要求2所述的方法,其特征在于,还包括验证与所述XML文件 (214)相关联的数字证书。
6. 如权利要求1所述的方法,其特征在于,还包括监视所述条件来寻找所 述结果的改变,其中根据所述改变来生成第二语音识别语法(224)。
7. 如权利要求1所述的方法,其特征在于,还包括接收第二命令对象,其 中所述第二命令对象包括指示第二计算机可执行动作的第二数据;其中所述第 二计算机可执行动作在被执行时定义所述第一命令对象(216)。
8. 如权利要求7所述的方法,其特征在于,所述第二计算机可执行动作在 被执行时定义所述第一命令对象(216)的条件。
9. 如权利要求8所述的方法,其特征在于,所述第二计算机可执行动作在 被执行时定义命名状态的值,且其中所述第一命令对象(216)的条件取决于所述命名状态的值。
10. 如权利要求1所述的方法,其特征在于,所述单词与语义特性相关 联,且其中所述第一计算机可执行动作的参数取决于所述语义特性。
11. 一种系统,包括第一命令集(206),其中所述第一命令集包括第一命令对象(216),且 其中所述第一命令对象(216)包括指示第一单词、条件、以及计算机可执行 动作的第一数据;语音识别组件(202),其中所述语音识别组件(202)适用于接收语法(224) 并响应于与所述语法(224) —致的语音来返回识别指示;以及与所述语音识别组件(202)进行通信的宏处理组件(204),其中所述宏 处理组件(204)被编程为接收所述第一命令集(206)、根据所述条件的评估 来生成所述语法(224)、并响应于所述识别指示来执行所述计算机可执行动 作,其中所述识别指示对应于所述第一单词。
12. 如权利要求11所述的系统,其特征在于,还包括加载器组件(208), 该加载器组件(208)被编程为从第一可扩展标记语言(XML)脚本文件(214) 来定义所述第一命令集(216)。
13. 如权利要求12所述的系统,其特征在于,还包括第二命令集,其 中所述加载器组件(208)被编程为从第二 XML脚本文件来定义所述第二命令 集,且其中所述宏处理组件(204)被编程为接收所述第二命令集。
14. 如权利要求ll所述的系统,其特征在于,所述第一命令集(206) 包括第二命令对象和全局条件,其中所述第二命令对象包括第二单词,且其中 所述宏处理组件(204)被编程为根据所述全局条件的评估来生成包括所述第 一单词和所述第二单词的语法。
15. 如权利要求ll所述的系统,其特征在于,所述第一命令集(206) 包括第二命令对象和全局可执行动作,其中所述第一计算机可执行动作引用所 述全局可执行动作,且其中所述第二命令对象包括引用所述全局可执行动作的 第二计算机可执行动作。
16. 如权利要求11所述的系统,其特征在于,还包括用户界面(210), 且其中所述语音识别组件(202)响应于与所述语法一致的同音语音来返回所 述识别指示,所述用户界面显示多个与所述同音语音一致的单词。
17. —种其上存储有计算机指令的计算机可读介质,所述计算机指令在 被执行时执行包括以下动作的方法接收指示条件的可扩展标记语言(XML)数据(214); 监视以寻找与所述可扩展标记语言(XML)数据(214)相关联的第一改变;监视以寻找与所述条件的评估相关联的第二改变;以及 响应于所述第一改变或所述第二改变来生成语音识别语法(224)。
18. 如权利要求17所述的计算机可读介质,其特征在于,所述第一改 变包括将单词添加到所述XML数据(214),且其中生成所述语音识别语法(224)包括将所述单词包括在所述语音识别语法(224)中。
19. 如权利要求18所述的计算机可读介质,其特征在于,所述计算机 指令在被执行时还执行监视音频流来寻找与单词一致的语音。
20. 如权利要求17所述的计算机可读介质,其特征在于,所述条件与 单词相关联,其中所述第二改变包括所述评估变为假,且其中生成所述语音识 别语法包括生成排除所述单词的语音识别语法。
全文摘要
所公开的语音识别系统允许用户在不进行大量软件开发的情况下定义个性化的、上下文知晓的语音命令。可使用用户友好语言来定义命令集并将其存储在可扩展标记语言(XML)文档中。命令集内的每个命令对象可包括一个或多个用户可配置动作、一条或多条可配置规则、以及一个或多个可配置条件。命令集可由命令集加载器来管理,该命令集加载器加载每个命令集并将其处理成计算机可执行代码。命令集加载器可以启用和禁用命令集。宏处理组件可以基于当前启用的命令来向语音识别引擎的API提供语音识别语法。在语音识别引擎识别到与该语法一致的用户语音时,宏处理组件可以发起一个或多个计算机可执行动作。
文档编号G10L15/00GK101681621SQ200880016212
公开日2010年3月24日 申请日期2008年5月15日 优先权日2007年5月17日
发明者B·金, R·L·钱伯斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1