能识别口述命令的交互式计算机系统的制作方法

文档序号:2819506阅读:401来源:国知局
专利名称:能识别口述命令的交互式计算机系统的制作方法
技术领域
本发明涉及交互式计算机系统,其中用户通过输入装置向在计算机系统中执行的目标计算机程序提供命令。例如,输入装置可以是键盘、鼠标器或者语音识别器。对每个输入装置而言,由输入装置产生的输入信号被翻译成能够为目标计算机程序所用的一种形式。
用户能够通过口述命令来提供命令的交互式计算机系统可以包括一个处理器,它执行具有可以由目标计算机程序实现的命令识别功能的目标计算机程序。计算机系统还包括一个语音识别器,用于识别口述命令和输出对应于被识别命令的命令信号。语音识别器通过以下步骤识别一条口述命令测量一系列连续时间间隔中每个间隔的至少一种发音特征的值,以便产生一系列特征信号;将测得的特征信号与多个声音命令模型中的每一个进行比较,以便产生发音和每个声音命令模型的一个匹配率;以及输出对应于具有最佳匹配率的命令模型的一个命令信号。
可以被语音识别器识别的发音模型和由发音模型所代表的词的集合叫做系统词汇。系统词汇是有限的,其范围例如可以从一个发音模型到几千个发音模型。每个发音模型可以代表一个词,或可以代表连续说出的两个或两个以上词(词之间没有停顿)的一个组合。
例如,系统词汇可以包括目标计算机程序能够作出响应的所有命令的发音模型。然而,随着发音模型数目的增加,用整个系统词汇进行发音识别所需的时间也增加了,同时识别精度却下降了。
通常目标计算机程序在一系列时间段具有一系列活动状态。对每个活动状态而言,可以有一系列在活动状态下实现的活动状态命令识别功能。活动状态命令可以是系统词汇的一个小的子集。在目标计算机程序的一种状态下,将口述命令翻译成目标计算机程序可用的形式的过程不同于在目标计算机程序的另一状态下翻译同一命令的过程。
为了提高语音识别器的速度和精度,需要将语音识别器在任何给定的时间段都能识别的发音模型的有效词汇限制在活动状态命令识别功能的范围内,该功能可以由目标计算机程序在那个给定时间段实现。为此,语音识别器可以配备一个有限状态机,它复现目标计算机程序的活动状态和活动状态之间的转移。
实际上已经发现,为语音识别器配备一个严格地重复目标计算机程序的活动状态和活动状态之间的转移的有限状态机是不可能的。目标计算机程序不仅与用户之间交互作用,而且与不能预先知道其状态的计算机系统的数据和其他装置之间交互作用。
例如,如果存在文件,那么装载文件的命令将使得计算机程序转移到一种状态,如果不存在文件,那么装载文件的命令将使得计算机程序转移到一种不同的状态。然而,语音识别器状态机必须作出文件存在或不存在的某种假定。如果用语音识别器向计算机程序口述一条装载文件的命令,那么取决于该文件存在或不存在,语音识别器有限状态机可能或不可能正确地跟踪计算机程序状态。如果语音识别器有限状态机假定文件存在,但实际上该文件并不存在,那么语音识别器状态机将进入不同于目标计算机程序状态的一种状态。结果,目标计算机程序不再能够从语音识别器中接收到有效输入。
本发明的一个目的是提供一种交互式计算机系统,它包括一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态,还包括一个语音识别器,其中由语音识别器在任何给定时间段识别的命令的有效词汇被限制在一组活动命令识别功能的范围内,该功能可以由目标计算机程序在那个给定时间段实现,而不必预先指定状态以及在所有可能的环境下出现的目标计算机程序状态之间的转移。
根据本发明,交互式计算机系统包括一个处理器,它执行一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态。目标计算机程序产生活动状态图象数据信号,它们代表出现在每个时间段的目标计算机程序的活动状态的一个活动状态图象。每个活动状态图象包括一个或多个目标。
交互式计算机系统还包括用于显示至少一个出现在第一时间段的第一活动状态的第一活动状态图象的装置。所述系统还包括用于识别至少一个显示在第一活动状态图象中的目标、并且从所识别的目标产生一系列一个或多个第一活动状态命令识别功能的装置,该功能可以在目标计算机程序的第一活动状态中实现。
所述系统还包括用于存储声音命令模型的系统词汇的装置。每个声音命令模型代表一个或多个系列的声音特征值,这些特征值代表与声音命令模型相关的一个或多个词的发音。所述系统还包括用于识别第一活动状态的声音命令模型的第一活动状态词汇的装置。第一活动状态词汇包括从代表第一活动状态命令的系统词汇得到的声音命令模型。
交互式计算机系统包括用于测量在第一时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值以便产生一系列特征信号的语音识别器。语音识别器将测得的特征信号与第一活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。然后语音识别器从具有最佳匹配率的第一活动状态词汇输出对应于命令模型的一个命令信号。
实际上,第一活动状态词汇最好包括少于来自系统词汇的所有声音命令模型。语音识别器不将测得的第一时间段的特征信号与不在第一活动状态词汇中的任何声音命令模型进行比较。
在根据本发明的交互式计算机系统的一个实施例中,显示装置显示至少一个出现在不同于第一时间段的第二时间段的第二活动状态的不同于第一活动状态图象的第二活动状态图象。目标识别装置识别至少一个显示在第二活动状态图象中的目标,并且产生一系列一个或多个第二活动状态命令识别功能,该功能可以在目标计算机程序的第二活动状态中实现。
活动状态词汇识别装置识别第二活动状态的声音命令模型的第二活动状态词汇。第二活动状态词汇包括从代表第二活动状态命令的系统词汇得到的声音命令模型。第二活动状态词汇至少部分地不同于第一活动状态词汇。
语音识别器测量在第二时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值以便产生一系列特征信号。语音识别器将测得的第二时间段的特征信号与第二活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。然后语音识别器从具有最佳匹配率的第二活动状态词汇输出对应于命令模型的一个命令信号。
例如,目标计算机程序可以在每个时间段只出现一个活动状态。目标计算机程序可以只包括一个操作系统程序,包括一个应用程序和一个操作系统程序的组合,或包括两个或两个以上应用程序和一个操作系统程序。
至少有些活动状态的命令识别可以在状态的活动状态图象中的被识别目标上实现的功能。
一个活动状态图象中的被识别的目标包括一个或多个字符、字、图符、按钮、滚动条、滑块、表框、菜单、检验框、容器或笔记本。
在本发明的另一个实施例中,语音识别器可以从在给定时间段具有最佳匹配率的活动状态词汇输出对应于命令模型的两个或两个以上的命令信号。
每个活动状态声音命令模型的词汇还可以包括一组代表全局命令识别功能的全局声音命令模型,该功能可以在目标计算机程序的每个活动状态中实现。
显示装置可以包括例如阴极射线管显示器、液晶显示器或打印机。
显示装置可以既显示在一个时间段出现的一个活动状态的活动状态图象,也显示不在该时间段出现的程序状态的一个或多个图象的至少一部分。
根据本发明的一种计算机交互方法包括在一个处理器上执行一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态。目标计算机程序产生活动状态图象数据信号,它们代表出现在每个时间段的目标计算机程序的活动状态的一个活动状态图象。每个活动状态图象包括一个或多个目标。该方法还包括显示至少一个出现在第一时间段的第一活动状态的第一活动状态图象。识别至少一个显示在第一活动状态图象中的目标、并且从所识别的目标产生一系列一个或多个第一活动状态命令识别功能,该功能可以在目标计算机程序的第一活动状态中实现。
存储声音命令模型的系统词汇,每个声音命令模型代表一个或多个系列的声音特征值,这些特征值代表与声音命令模型相关的一个或多个词的发音。识别第一活动状态的声音命令模型的第一活动状态词汇。第一活动状态词汇包括从代表第一活动状态命令的系统词汇得到的声音命令模型。
测量在第一时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值以便产生一系列特征信号。将测得的特征信号与第一活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。从具有最佳匹配率的第一活动状态词汇输出对应于命令模型的一个命令信号。
通过识别显示在目标计算机程序的活动状态图象中的至少一个目标、并且从所识别的目标产生一系列一个或多个可以在目标计算机程序的活动状态中实现的活动状态命令识别功能,语音识别器的活动状态词汇可以被限制在代表活动状态命令的系统词汇的一个小的子集内,而不必预先指定状态以及在所有可能的环境下出现的目标计算机程序状态之间的转移。


图1是根据本发明的交互式计算机系统的一个实例的框图。
图2表示一个目标计算机程序的第一活动状态的第一活动状态图象的一个实例。
图3是根据本发明的交互式计算机系统的语音识别器的一个实例的框图。
图4表示一个目标计算机程序的第二活动状态的第二活动状态图象的一个实例。
图5是根据本发明的交互式计算机系统的存储系统词汇的声音命令模型的一个实例的框图。
图6是图3所示语音识别器的声音处理器的框图。
图7简略地表示声音命令模型的一个实例。
图8简略地表示构成声音命令模型的音素的声音模型的一个实例。
图9简略地表示通过图7所示声音模型的路径的一个实例。
图1是根据本发明的交互式计算机系统的一个实例的框图。交互式计算机系统包括处理器10,它执行一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态。目标计算机程序产生活动状态图象数据信号,它们代表出现在每个时间段的目标计算机程序的活动状态的一个活动状态图象。每个活动状态图象包括一个或多个目标例如,处理器可以是个人计算机、计算机工作站、或其他任何微型机、小型机或主机。
目标计算机程序可以是一种操作系统程序,如DOS、Microsoft Windows(商标)、OS/2(商标)、AIX(商标)、UNIX(商标)、X-Windows、或任何其他的操作系统。目标计算机程序可以包括与操作系统程序一起执行的一个或多个应用程序。应用程序包括扩展页程序、字处理程序、数据库程序、教育程序、重建程序、通信程序以及其他很多程序。
一个活动状态图象中的目标包括一个或多个字符、字、图符、按钮、滚动条、滑块、表框、菜单、检验框、容器或笔记本,等等。
交互式计算机系统还包括显示装置12,用于显示出现在第一时间段的第一活动状态的至少一个第一活动状态图象。显示装置可以包括例如阴极射线管显示器、液晶显示器或打印机。
图2表示出现在第一时间段的第一活动状态的假设第一活动状态图象的一个实例。在本例中,活动状态图象包括由标题条目标16、菜单条目标18、表框目标20和按钮目标22组成的一帧目标14。菜单条目标18包括“ITEMS(项目)”目标、“OPTIONS(选项)”目标和“EXIT(退出)”目标。表框目标20包括垂直滚动条目标24、以及“BLUE(蓝)”、“GREEN(绿)”、“RED(红)”、“ORANGE(桔黄)”、“BLACK(黑)”、“WHITE(白)”和“PURPLE(紫)”目标。在图2的表框20中只表示了“BLUE(蓝)”、“GREEN(绿)”、“RED(红)”、“ORANGE(桔黄)”和“BLACK(黑)”目标。“WHITE(白)”和“PURPLE(紫)”目标包括在表框中,并可以通过滚动垂直滚动条24看到。
活动状态图象数据信号可以通过目标计算机程序产生,例如通过使用操作系统中断、功能调用或应用程序接口调用。
下面的例Ⅰ表示形成活动状态图象数据信号的C编程语言源码。
返回到图1,交互式计算机系统还包括图象目标识别器26,用于识别至少一个显示在第一活动状态图象中的目标、并且从所识别的目标产生一系列一个或多个第一活动状态命令识别功能,该功能可以在目标计算机程序的第一活动状态中实现。
图象目标识别器26可以包括计算机子程序,用来截取(挂钩)由一个或多个目标计算机程序提供的操作系统功能调用和应用程序接口调用,和/或可以包括计算机子程序,使用操作系统中断、功能调用、或应用程序接口调用,用来识别显示在目标计算机程序的第一活动状态图象中的目标。下面的例Ⅱ表示用来识别至少一个显示在活动状态图象中目标的C编程语言源码。
表1表示一系列第一活动状态命令识别功能的一个假设实例,该功能可以在显示于图2所示第一活动状态图象内目标的目标计算机程序的第一活动状态中实现。


如表1的实例所示,每个目标可以有零个或多个命令标识功能,该功能可以在目标计算机程序的第一活动状态中实现。至少有些命令能识别可以在状态的活动状态图象中的被识别目标上实现的功能。例如,命令“FRAME”将注意力集中到图2的整个帧目标14上。当注意力集中在整个帧目标上的情况下,口述命令“LEFT”将帧目标移向显示屏的左方。
再次返回图1,交互式计算机系统包括系统声音命令模型词汇存储器28,它用于存储声音命令模型的系统词汇。每个声音命令模型代表一个或多个系列的声音特征值,这些特征值代表与声音命令模型相关的一个或多个词的发音。
例如,被存储的声音命令模型可以是Markov模型或其他动态编程模型。可以从已知的发音训练文本(例如257个句子)通过例如前后算法得到的平滑的参数来估计声音命令模型的参数。(参见例如Jelinek.的“通过统计方法进行连续语音识别”,该文载于1976年4月的IEEE学报第64卷第4号第532-536页。)最好每个声音命令模型代表一条单独口述的命令(即前次与随后的发音相互独立)。例如或者从音素模型通过手动的方法,或者通过Lalit R.Bahl等人在题为“从多种发音构成字的Markov模型”的美国专利4,759,068中所描述的自动的方法,或者通过任何其他已知的产生上下文独立的模型的方法,产生上下文独立的声音命令模型。
另一种做法是,可以通过将一条命令的发音分成上下文依赖的类型从上下文独立的模型产生上下文依赖的模型。例如可以通过根据其上下文对对应于一条命令的每个特征信号进行标记,以及通过根据其上下文将特征信号分类以便使所选择的评定功能最佳化,手动或自动地选择上下文。(例如参见Lalit R.Bahl等人的题为“根据声音相似性将一个音素的发音分成上下文依赖的类型的自动语音识别的装置和方法”的美国专利5,195,167。)如图1的框图所示,交互式计算机系统包括活动状态命令模型词汇识别器30,它用于识别第一活动状态的声音命令模型的第一活动状态词汇。第一活动状态词汇包括声音命令模型,它是从代表来自图象目标识别器26的第一活动状态命令的系统词汇28得到的。下面的例Ⅲ描述用来识别活动状态词汇的C编程语言源码。下面的例Ⅳ描述用来将活动状态词汇限定到语音识别器的C编程语言源码。
实际上,活动状态词汇最好包括少于系统词汇中的所有声音命令模型。例如,每个活动状态词汇可以包括50至200条命令。整个系统命令词汇可以包括500至700条或更多条命令。语音识别器不将测得的一个时间段的特征信号与不在那个时间段的活动状态词汇中的任何声音命令模型进行比较。
语音识别器32测量在第一时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值,以便产生一系列特征信号。语音识别器32将测得的特征信号与第一活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。语音识别器32从具有最佳匹配率的第一活动状态词汇输出对应于命令模型的一个命令信号。
下面的例V描述从具有最佳匹配率的活动状态词汇输出对应于命令模型的一个命令信号的C编程语言源码。
图3是根据本发明的交互式计算机系统的语音识别器的一个实例的框图。本例中语音识别器32包括用于存储活动状态词汇的活动状态声音命令声音命令模型存储器34,活动状态词汇声音命令模型,它是包括从代表在活动状态命令模型词汇识别器30中被识别的活动状态命令的系统词汇存储器28得到的。
语音识别器32还包括声音处理器36,它用于测量在每个活动状态时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值,以便产生一系列特征信号。声音匹配率处理器38将从声音处理器36测得的特征信号与活动状态命令模型存储器34中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。输出电路40从给定时间段具有最佳匹配率的活动状态词汇中输出对应于命令模型的一个或多个命令信号。
最好从具有最佳匹配率的第一活动状态词汇中只输出一个对应于命令模型的命令信号。在这种情况下,可以立即执行一条输出命令。如果从给定时间段具有最佳匹配率的活动状态词汇中输出对应于命令模型的两个或两个以上的命令信号,那么就可以显示被识别的命令,以便用户选择一条命令来执行。
语音识别器是一种可公开获得的产品,如IBM Voice Type Ⅱ(商标)或IBM Speech Server Series(商标)。在包括快速声音匹配和细节声音匹配的产品中,这两种声音匹配都可以用于本发明。另外,由于图象目标识别器26和活动状态命令模型词汇识别器30只选择存储器28中声音匹配的小的系统词汇子集,所以可以忽略快速声音匹配。
在包括语言模型的语音识别产品中,可以忽略语言模型。另一种做法是,在活动状态词汇中的所有字都可以赋予相等的语言模型概率。
在具有产生多字假设的假设搜索算法的语音识别器产品中,一个字的识别部分地依赖于连续字的识别。这种假设搜索算法不必用于本发明,在本发明中,每条命令最好与连续命令独立。
目标计算机程序和语音识别器最好都以分时的方式在同一个中央处理单元上执行。另一种做法是,例如,目标计算机程序和语音识别器可以利用用户服务器结构在不同的中央处理单元上执行。
在根据本发明的交互式计算机系统中,显示装置还可以为第二活动状态显示至少一个不同于第一活动状态图象的第二活动状态图象,该第二活动状态出现在不同于第一时间段的第二时间段。
图4表示一个目标计算机程序的第二活动状态的第二活动状态图象的一个实例。图4所示的第二活动状态图象包括帧目标42、标题条目标44、系统菜单目标46、垂直滚动条目标48、水平滚动条目标50和容器目标52。容器目标52包括“EDITOR(编辑)”目标、“PHONE BOOK(电话簿)”目标、“SPREADSHEET(扩展页)”目标、“MAIL(邮件)”目标和“SOLITAIRE(单独操作)”目标。
目标识别装置识别显示在第二活动状态图象中的至少一个目标,并且从所识别的目标产生一系列一个或多个第二活动状态命令识别功能,该功能可以在目标计算机程序的第二活动状态中实现。
表2是图4所示的每个目标识别功能的假设的一系列命令的一个实例,这些功能可以在目标计算机程序的第二活动状态中实现。

表-2(续前)表-2(续前)目标 口述命令 功能水平滚动条 SCROLL BAR 将注意力集中到下一滚动条上LEFT 通过显示将容器左移RIGHT 通过显示将容器右移EXTREME LEFT 将容器移到显示部分最左面EXTREME RIGHT 将容器移到显示部分最右面PAGE LEFT 通过显示向左移动一页容器PAGE RIGHT 通过显示向右移动一页容器容器 CONTAINER 将注意力集中到容器上SELECT ALL 执行容器中的所有程序编辑 EDITOR 执行编辑程序电话薄 PHONE BOOK 执行电话薄程序电子数据表 SPREADSHEET 执行电子数据表程序邮件 MAIL 执行邮件程序单独操作 SOLITAIRE 执行单独操作程序比较图2和图4,第一活动状态图象不同于第二活动状态图象,在第一活动状态图象中有菜单条目标18、表框目标20和按钮目标22,而在第二活动状态图象中却没有。在第二活动状态图象中有水平滚条50和编辑、电话簿、邮件、扩展页及单独操作目标,而在第一活动状态图象中却没有。
活动状态词汇识别装置还识别第二活动状态的声音命令模型的第二活动状态词汇,第二活动状态词汇包括从代表第二活动状态命令的系统词汇得到的声音命令模型。第二活动状态词汇至少部分地不同于第一活动状态词汇。
比较表1和表2,第一活动状态词汇包括列于表1的口述命令。第二活动状态词汇包括列于表2的口述命令。在本例中如表所示,第一活动状态词汇至少部分地不同于第二活动状态词汇。
语音识别器测量在第二时间段的一系列连续时间间隔中的每个间隔期间的至少一种发音特征的值,以便产生一系列特征信号。语音识别器将测得的第二时间段的特征信号与第二活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率。语音识别器从具有最佳匹配率的第二活动状态词汇输出对应于命令模型的一个命令信号。
目标计算机程序最好在每个时间段只出现一个活动状态。
图5是图1所示声音命令模型词汇存储器28的一个实例的框图。系统词汇可以包括例如一组代表全局命令识别功能的全局声音命令模型,该功能可以在目标计算机程序的每个活动状态中实现。
表3列出了由全局声音命令模型所代表的全局命令的一些例子。

系统词汇还可以包括与不同类型的目标相关的目标型声音命令模型。例如如表1和表2所示,帧目标型声音命令包括“FRAME(帧)”、“TOP BORDER(顶边界)”、“BOTTOM BORDER(底边界)”、“LEFT BORDER(左边界)”、“RIGHT BORDER(右边界)”、“LEFT(左)”、“RIGHT(右)”、“UP(上)”和“DOWN(下)”。垂直滚动条目标型声音命令包括“SCROLL BAR(滚动条)”、“UP(上)”、“DOWN(下)”、“TOP(顶)”、“BOTTOM(底)”、“PAGE UP(移上一页)”、“PAGE DOWN(移下一页)”。按钮目标型声音命令模型包括“PRESS(按)”和“PUSH BUTTON(按钮)”。
最后,系统词汇包括代表用户专用目标的用户专用声音命令模型。在表1和表2的实例中,用户专用目标包括字“ITEMS(项目)”、“COLORS(颜色)”、“NAMES(名称)”、“ADDRESSES(地址)”、“PHONE BOOK(电话簿)”、“SPREADSHEET(扩展页)”、“MAIL(邮件)”和“SOLITAIRE(单独操作)”。
图1的显示装置可以既显示在一个时间段出现的一个活动状态的活动状态图象,也显示不在该时间段出现的程序状态的一个或多个图象的至少一部分。
图6表示图3的声音处理器36的一个实例。声音处理器包括用于产生对应于发音的模拟电信号的话筒54。来自话筒54的模拟电信号经模/数转换器56变成一个数字电信号。为此,可以由模/数转换器56对模拟信号进行取样,取样频率例如为二十千赫。
窗口发生器58可以每隔十毫秒从模/数转换器56得到二十毫秒持续时间的数字信号取样。每个二十毫秒的数字信号取样由频谱分析器60进行分析,以便得到例如每二十个频带中的数字信号取样的幅度。频谱分析器60最好也产生一个代表二十毫秒数字信号取样的整个幅度或整个能量的二十一维信号。频谱分析器60例如可以是一个快速傅里叶变换处理器。另外,它也可以是一组二十个带通滤波器。
由频谱分析器60产生的二十一维向量信号适于通过自适应噪声消除处理器62去除背景噪声。噪声消除处理器62从输入到噪声消除处理器的特征向量F(t)中减去噪声向量N(t),以产生输出特征向量F′(t)。无论何时当先前一个特征向量F(t-1)被识别为噪声或无声时,噪声消除处理器62通过周期性地更新噪声向量N(t)来改变噪声电平。噪声电平N(t)根据以下公式更新N(t)= (N(t-1)+k[F(t-1)-Fp(t-1)])/((1+k)) [1]此处N(t)是时间t的噪声向量,N(t-1)是时间t-1的噪声向量,k是自适应噪声消除模型的一个固定参数,F(t-1)是在时间t-1输入至噪声消除处理器62中的特征向量,它代表噪声或无声,以及Fp(t-1)是来自存储器64的最接近特征向量F(t-1)的一个无声或噪声原型向量。
如果(a)向量的整个能量低于一个阈值或(b)在自适应原型向量存储器66中的最接近特征向量的原型向量是一个代表噪声或无声的原型时,前一个特征向量F(t-1)就被识别为噪声或无声。为了分析特征向量的整个能量,阈值例如可以是产生于评估特征向量前两秒的所有特征向量(对应于语音和无声)的百分之五。
噪声消除之后,通过短语平均规格化处理器68对特征向量F′(t)进行规格化,调整输入语音中的响度变化。规则化处理器68对二十一维特征向量F′(t)进行规格化处理,以产生二十维规格化的特征向量X(t)。代表整个幅度或整个能量的二十一维特征向量F′(t)被放弃。在时间t的规格化的特征向量X(t)的每个分量i例如可以下式给出Xi(t)=F′i(t)-Z(t) [2]在对数域中,F′i(t)是在时间t的非规格化向量的第i个分量,Z(t)是根据等式3和4的分量F′i(t)和Z(t-1)的加权平均Z(t)=0.9Z(t-1)+0.1M(t)[3]其中
M(t)=120ΣiF′r(t)[4]]]>规格化的二十维特征向量X(t)可以进一步由自适应标号器70进行处理,以适应发音的变化。从输入到自适应标号器70的二十维特征向量X(t)中减去二十维自适应向量A(t),以产生自适应的二十维特征向量X′(t)。在任何时间t的自适应向量A(t)例如可以由下式给出A(t)= (A(t-1)+k[X(t-1)-Xp(t-1)])/((1+k)) [5]其中k是自适应标号模型的一个固定参数,X(t-1)是在时间(t-1)输入至自适应标号器70的规格化的二十维向量,Xp(t-1)是最接近在时间(t-1)的二十维特征向量X(t-1)的自适应原型向量(来自自适应原型存储器66),以及A(t-1)是在时间(t-1)的自适应向量。
来自自适应标号器70的二十维自适应特征向量X′(t)最好供给听觉模型72。听觉模型72例如可以提供一个人类的听觉系统是如何感觉声音信号的模型。Bahl等人在题为“有效存储和快速汇集声逻辑图的语音识别系统”的美国专利4,980,918中描述了听觉模型的一个例子。
根据本发明,对时间t的自适应特征向量信号X′(t)的每个频段i来说,听觉模型72最好根据公式6和7计算一个新的参数Ei(t)Ei(t)=K1+K2(X′i(t))(Ni(t-1))[6]其中Ni(t)=K3×Ni(t-1)-Ei(t-1)[7]其中K1、K2和K3是听觉模型的固定参数。
对每一个十毫秒时间间隔来说,听觉模型72的输出是一个改变的二十维特征向量信号。这一特征向量由一个二十一维增大,该二十一维的值等于其他二十维值的平方和的平方根。
对每一个十毫秒时间间隔来说,连接器74最好将代表当前一个十毫秒时间间隔、前四个十毫秒时间间隔和后四个十毫秒时间间隔的九个二十一维特征向量连接起来,以形成一个单独的189维的拼接向量。每个189维拼接向量最好在转置器76中乘以一个转置矩阵,以转置拼接的向量,并将拼接的向量降低到五十维。
用于转置器76的转置矩阵例如可以通过将训练期间得到的一组189维的拼接向量分成M级获得。对训练组中所有拼接的向量来说的协方差矩阵乘以对所有M级中所有拼接的向量来说的级间协方差矩阵的逆。所得矩阵的前五十个特征向量形成转置矩阵。(参见例如L.R.Bahl等人的“采用离散参数音素的Markov字模型的语音识别系统的向量量化过程”,该文载于1989年12月的IBM技术公开报告第32卷第7号第320和321页。)窗口发生器58、频谱分析器60、自适应噪声消除处理器62、短语平均规格化处理器68、自适应标号器70、听觉模型72、连接器74和转置器76可以是经适当编程的专用或通用数字信号处理器。原型存储器64和66可以是上述类型的电子计算机存储器。
例如,可以通过将一训练组中的特征向量信号组合成多个组,然后计算每组平均的和标准的偏差,以便形成原型向量的参数值,由此得到原型存储器64中的原型向量。当训练文稿包括一系列字段模型(形成一系列字的一个模型),并且每个字段模型包括一系列基本模型,而它们在字段模型中具有特定位置时,可以将特征向量信号按下列规定组合,即每组对应单一字段模型中的单一位置上的单一基本模型。在1991年7月16日递交的题为“自动语音识别过程中获得声音原型的快速算法”的美国专利申请730,714中更详细地描述了这样一种方法。
另外的做法是,通过K方式Euclidean组合或K方式Gaussian组合或二者的结合将由训练文本的发音产生并对应于一个给定基本模型的所有声音特征向量组合在一起。例如在Bahl等人的题为“与讲话者无关的标号编码装置”的美国专利5,182,773中描述了这样一种方法。
图7简略地表示声音命令模型的一个假设实例。图7所示的假设模型具有开始状态S1、结束状态S4、以及从开始状态S1到结束状态S4的多条路径。
图8简略地表示一种音素的声音Markov模型的一个假设实例。在本例中,声音音素模型包括三个转移T1、四个转移T2和三个转移T3。虚线表示的转移是空转移。
在图7和8的声音模型中的每一种实线转移至少具有包括一个声音特征值的一个模型输出。每个模型输出都有输出概率。每个空转移没有输出。当模型处于一种状态时,来自那种状态的每个实线转移和每个虚线转移具有一定的出现概率。
图9简略地表示通过图7所示声音模型的路径的一个实例。一种发音和一个声音命令模型的匹配率是对通过声音命令模型的所有路径来说的所测得发音特征的概率之和。对每一条路径来说,所测得发音特征的概率等于沿该路径的转移概率与沿该路径的每次转移时所测得的特征概率之乘积。
根据本发明的交互式计算机系统最好由适当编程的通用型数字计算机系统构成。更具体地说,处理器10、图象目标识别器26和活动状态命令模型词汇识别器30可以由适当编程的通用型数字处理器构成。系统声音命令模型词汇存储器28和活动状态声音命令模型存储器34可以是电子计算机存储器。显示装置12可以包括一台视频显示器,如阴极射线管、液晶显示器或打印机。
如上所述,目标计算机程序可以是一种或多种应用程序和一种操作系统程序。例如目标计算机程序可以是IBM OS/2(商标)2.0版本,以及Presentation Manager(商标)。IBM OS/2 2.0版本操作系统和Presentation Manager具有各种语言的应用程序接口调用,这些语言包括C编程语言、汇编语言和REXX编程语言。应用程序接口调用的全部集合是OS/2 2.0 Technical Library的组成部分。一种语言的应用程序接口调用的语法与该语言的标准调用操作过程兼容。不同语言的特定应用程序接口调用的名称是不同的。此外,一种语言的应用程序接口的某些方面可能得不到另一种语言的支持。
对C编程语言来说,应用程序接口由许多程序库组成。C编程语言源码可以由IBM C Set/2编译程序编译。
实例Ⅰ至Ⅴ表示OS/2和Presentation Manager的C编程语言源码,用以(a)产生和显示图象;(b)读出活动状态图象,以便识别至少一个显示在活动状态图象中的目标;(c)从活动状态图象中产生词汇;(d)为语音识别器定义词汇;以及(e)从具有最佳匹配率的活动状态词汇输出对应于命令模型的一个命令信号。
实例Ⅰ实例Ⅰ表示产生示于图2的假设的第一活动状态图象的C编程语言源码。
在OS/2和Presentation Manager中有一个“标准窗口”的概念。一个标准窗口是几个公用窗口之和。在图2中,帧窗口、标题条、系统菜单和菜单条可以认为是一个标准窗口的组成部分。用OS/2应用程序接口调用WinCreateStdWindow()的下述C编程语言源码产生标准窗口。双斜线(//)后的注解描述源码的操作。
#define INCL-WIN //要求得到Presentation Manager的定义#include<os2.h> //要求得到Presentation Manager的定义MRESULT EXPENTRY SampleProc(HWND hwnd,ULONG ulMsg,MPARAM mp1,MPARAM mp2);
HWND hwndFrame; //这是一个对帧窗口保持“标识值”的变量//每个窗口的标识值是唯一的HWND hwndClient; //这是一个对用户窗口保持“标识值”的变量ULONG ulFlags; //这是一个在建立时采用的帧数据变量
HAB hAB; //Presentation Manager固定框标识值//对本例来说是不重要的,它是在初始化期//间接收和结束时使用的一个标识值HMQ hMQ; //信息队列。Presentation Manager用它//向应用窗口发送信息//对所有应用程序必须使用该调整用将//Presentation Manager初始化hAB=WinInitialization(0);
//建立供Presentation Manager使用的一个//信息队列,第二个参数是指取信息队列//的系统省缺尺寸hMQ=WinCreateMsgQueue(hAB,0);
//登记用户窗口的级,它规定Presentation//Manager将用来发送窗口准备了解的事件//的信息的一个功能//某些信息是WM-SIZE,它告诉窗口其尺寸//正在变化,某些信息是WM-CREATE,它告诉//窗口正在被形成,某些信息是//WM-BUTTON1DOWN,它表明在窗口中已经按//动了鼠标按钮//WinRegisterClass()的自变量//hAB -从WinInitializate()得到的标识值//“Generic”-窗口级的名称,该字符串用来产生一//种窗口类型//SampleProc-用上述原型定义的窗口过程的名称
//OL -级种类…无//OL -为应用程序的使用保留的特定的存储区…无WinRegisterClass(hAB,“Generic”,SampleProc,OL,OL);
//建立帧形成数据,以便规定某些所需的特定窗口ulFlags=FCF-TITLEBAR|FCF-SYSMENU|FCF-BORDER;
//WinCreateWindow()的自变量////HWND-DESKTOP-母窗口,使帧形成为Presentation//Manager桌面的子窗口//OL -帧种类…无//ulFlags -帧形成标识//“Generic” -前面的寄存窗口的过程//“Title” -在标题条中的标题//OL -用户窗口种类…无//10 -EXE中原的ID//εhwndClient-传递用户窗口的标识值地址,以便//-应用程序接口可以复制回新建立的//用户标识值hwndFrame-WinCreateStdWindow(HWND-DESKTOP,OL,εulFlags,“Generic”,
“Title”,OL,NULLHANDLE,10,εhwndClient);
//屏幕上帧的大小和位置//用WinSetWindowPos()使其成为可见的//WinSetWindowPos()的自变量//hwndFrame -打算设置其大小和位置的帧的标识值//HWND-TOP -设置所有的其他帧之上的帧,以便能//够看到和使用它//10,20 -要求的位置(x,y)//300,500 -要求的大小(宽,高)//SWP-… -告诉Presentation Manager处理大//小,移动窗口并表示它的标识WinSetWindowPos(hwndFrame,HWND-TOP,10,20,300,500,SWP-SIZE|SWP-MOVE|SWP-SHOW);
//Presentation Manager是以信息为基础的系统,并且在建//立调用期间,WM-CREATE信息被传送至以上登记的窗口过//程。当处理该信息时建立其他的子窗口。这一过程描述//如下MRESULT EXPENTRY SampleProc(HWND hwndClient,ULONG ulMsg,MPARAM mp1,MPARAM mp2);
{HWND hwndList;
HWND hwndButton;
switch(ulMsg){case WM-CREATE//处理刚建立的用户窗口的//WM-CREATE信息,所传递的窗口标识//值hwndClient将通过//WinCreateStdWindow()调用中的最//后一个参数返回//现在形成子表框//WinCreateWindow()的自变量//hwndClient-将母窗口设置为用户窗口//WC-CLISTBOX-窗口级,这是一个表框//.. -与表框关联的无标//题文本//WS-… -窗口种类//组成可见按钮//0,0 -放置窗口的初始坐标//50,30 -窗口的初始尺寸//hwndClient -设置拥有者为用户窗口//HWND-TOP -将该窗口放在所有其他窗口上//ID-BUTTON -窗口id//NULL -无控制数据//NULL -无表示参数//
hwndList-WinCreateWindow(hwndClient,WC-LISTBOX,“”,WS-VISIBLE|LS-MULTIPLESEL,0,0,50,30,hwndClient,HWND-TOP,ID-LISTBOX,NULL,NULL,);
//除了按钮级的窗口种类不同之外//WinCreateWindow()的自变量与以//上相同,在一不同的级名称,ID是//不同的,并且按钮具有有意义的文本hwndButton=WinCreateWindow(hwndClient,WC-BUTTON,“Help”,WS-VISIBLE|BS-PUSHBUTTON,0,70,100,250,hwndClient,HWND-TOP,ID-BUTTON,NULL,NULL);
//处理信息结束//返回控制到Presentation Managerbreak;…}return(FALSE));

实例Ⅱ实例Ⅱ表示读出活动状态图象的C编程语言源码。
Presentation Manager为任何应用程序提供了一个应用程序接口调用,以便将一个“挂钩”放入信息队列,该信息队列在窗口之间来回传递。挂钩被插入一个调用返回功能,对于每一个发送的信息它都被调用。挂钩的调用返回功能必须驻留在表示层管理程序的动态连接库中。所需的过程是装载包括调用返回功能的动态连接库,然后装载挂钩。
HMODULE hm;//被装载的动态连接帧窗口的一个//标识值。窗口标识是唯一的//这是返回调用的函数原型。它遵循//IBM Presentation Manager编程参//考第三卷中描述的SendMsgHook语法VOID EXPENTRY CallbackProc(HAB hAB,PSMHSTRUCT pSmh,BOOL bTask);
//DosLoadModule()装载带有返回调用功能的动态连//接库//DosLoadModule()的自变量如下
//NULL -无缓存用于返回错误信息//0 -缓存长度//“MYDLL” -装载的DLL的名称//εhm -返回模块标识值的地址DosLoadModule(NULL,0,“MYDLL”,εhm);
//现在设置挂钩WinSetHook()的自变量如下//hAB上 -从Presentation Manager初始化得到的固定框自变量//NULLHANDLE-Presentation Manager系统队列//HK-SEND -安装发送信息的钩//CallbackProc -从装载的动态连接库的返回调用过程//hm -装载的模块的标识值WinSetHook(hAB,hMQ,HK-SENDMSG,(PFN)CallbackProc,hm);
//每次用Presentation Manager发送信息时,将调用用//钩安装的返回调用程序。包括新图象(窗口)是活动的//信息的一个信息是WM-SETFOCUS。它可以接着被处理//成得到活动的帧窗口。
VOID EXPENTRY CallbackProc(HAB hAB,PSMHSTRUCT pSmh,BOOL bTask){HWND hwndWithFocus;
HWND hwndFrame;
HWND hwndParent;
HWND hwndDesktop;
if(pSmh->msg==WM-SETFOCUS){ //返回调用已经随同//WM-SETFOCUS Message一起调用//拆开信息的第二个参数//这说明信息是用于接收,还是//丢失焦点的窗口if(SHORT1FROMP(pSmh->mp2)){//这可以是变为活动的实际图象//的一个子窗口。得到的是一帧的//绝对的母窗口。一直观看,直//到到达是所有可见窗口的根的//Presentation Manager桌面//得到作为界限比较的桌面标识//值hwndDesktop=WinQueryDesktopWindow(hAB,NULLHANDLE,);
hwndParent=hwndWithFocus;
//找到窗口链中最后一个母窗口的环路while(hwndParent!=hwndDesktop){hwndFrame=hwndParent;
//询问下一个母窗口hwndParent=WinQueryWindow(hwndFrame,QW-PARENT);
}//在这一点上hwndFrame是活动图象的帧}}}
实例Ⅲ实例Ⅲ表示从活动状态图象中识别活动状态命令表的C编程语言源码。
从图象中建立活动状态命令表的过程如下(1)建立所有窗口的表,这些窗口是上面找到的活动帧的子窗口(直接和间接);(2)通过它们的窗口级识别表中所有的窗口;(3)对于向用户显示文本的窗口级中的窗口询问所有的窗口文本(隐藏的和可见的);(4)将字的一个全局表与每种窗口类型的一个标准表和在第(3)步中向应用程序询问的字结合起来。
步骤(4)仅包括将多个字数组合并成一个字数组。因此,不说明步骤(4)的源码。
//步骤(1)建立所有窗口的表,这些窗口是上面找到的活动帧//的子窗口(直接或间接)//假定没有100个以上的子窗口HWND AllWindows[100]; //说明保持窗口标识值的//一个数组int index=0; //将窗口放入AllWindows[]//数组的索引HWND hwndFrame; //假设用上述CallbackProc()//对活动窗口初始化//用递归功能得到所有的子窗口//开始用帧调用它//FindChildren(hwndFrame)VOID FindChildren(HWND hwndParent){HWND hwndList;
HWND hwndChild;
//将该窗口放在表上。增加索引以便指向数组中的下一//个可用的槽AllWindows[index]=hwndChild;
index=index+1;
//初始化最接近的子窗口的一个计数。返回计数标识值//hwndList。它用来顺序访问所有的子窗口
hwndList=WinBeginEnumWindows(hwndParent);
//循环访问所有的子窗口,直到返回0窗口标识值,0窗//口指没有更多的窗口while(hwndChild=WinGetNextWindow(hwndList)){//对每个窗口再次调用该功能,得到该窗口的所有子窗//口FindChildren(hwndChild);
}//结束计数WinEndEnum Windows(hwndList);
}//步骤(2),通过它们的窗口级识别表中的所有窗口//得到表中每个窗口的类型int i;
CHAR szBuffer[200];
int BufSize=sizeof(szBuffer);
HWND hwnd;
for(i=0;i<index;i++){hwnd=AllWindows[i];
//下一函数返回作为以自变量形式经过的缓存串的级名//称WinQueryClassName(hwnd,BufSize,szBuffer);
//这里有一些在Presentation Manager中作为一般窗口//定义的级名称,实际的字符串按照C编程语言的字符//串规定包括在引号中//“#1”帧窗口//“#3”按钮//“#4”菜单//“#7”表框//“#8”滚动条}//步骤(3)对从向用户显示文本的窗口级中的窗口询//问所有的窗口文本(隐藏的和可见的)//在这个编码取样中,表示如何读取由应用程序显示的//文本//-假定本例没有200字节以上的文本//-假定pBuffer指向共享存储器的一个缓存,该存储//器已经分配给窗口驻留过程//-假定级名称已经用上述(2)中的目的级名称填充CHAR classname[100];
CHAR *pBuffer;
int BufferSize=201;
int ListboxCount;
int i;
//得到表框和按钮的应用文本if(strcmp(classname,“#3”)==0){//这是一个按钮。得到其文本WinQueryWindowText(hwndButton,BufSize,pBuffer);

if(strcmp(classname,“#7”)==0){ //这是一个表框。循环访问的项目,以得到所有的文本//与表框接口要求Presentation Manager应用程序接口//调用WinSendMsg()。它总有相同的四个参数,//-窗口标识值//-信息//-信息专用参数或0//-信息专用参数或0ListboxCount=WinSendMsg(hwndListbox,LM-QUERYITEMCOUNT,0,0);
//这里是循环for(i=0;i<ListboxCount;i++){//将Presentation Manager应用程序接口压缩//宏指令用于最后两个参数//第一个参数由两个数字构成//MPFROM2SHORT(项目索引,缓存大小)//第二个参数是指向缓存的指针//MPFROMP(缓存)WinSendMsg(hwndListbox,LM-QUERYITEMTEXT,MPFROM2SHORT(i,BufSize),MPFROMP(pBuffer));
//现在一个项目的文本存在缓存中,它应该复制并存储/起来实例Ⅳ实例Ⅳ表示对语音识别器定义活动状态词汇的C编程语言源码。
用语音识别器的一个应用程序接口来使语音识别器进行识别。可以采用的一个可行的应用程序接口是Speech Manager(商标)应用程序接口,它是IBM Speech Server Series(商标)产品。以下表示一个类似应用程序接口的源码。
#include“smapi.h” //Speech Manager应用程序接口//头文件SmArg Args[9]; //局部变量-用于初始化语音//系统的自变量数组int iNumArgs;
//初始化语音系统。不用参数SmOpen(0,NULL);
//建立用于连接的自变量。SmSetArg()函数中的第二个//参数是自变量名。第三个参数是值SmSetArg(Args
,SmNrecognize,“User”);
//这是用户IDSmSetArg(Args[3],SmNuserId,“User”);
//这是用户训练统计SmSetArg(Args[4],SmNenrollId,“Enroll ID”);
//这是被使用的文本的域SmSetArg(Args[5],SmNtask,“Office System”);
//这是前面形成的窗口,它将被语音识别器用来与该应//用程序通信SmSetArg(Args[6],SmNwindowHandle,hwndCommunication);
//这是一个识别来自语音识别器的信息的IDSmSetArg(Args[7],SmNconnectionID,27);
//这是应用程序名称SmSetArg(Args[8],SmNapplicationName,“Patent Application”);
//与语音识别器连接。这一函数的最后一个参数告诉语//音识别器进行非同步调用SmConnect(9,Args,SmAsynchronous);
//现在与语音识别器形成连接。以上建立的词汇现在可//以被定义,允许使用和用作识别//为定义一个词汇使用SmDefineVocab()。在定义期间,//语音识别器在一个很大的字集合中寻找字的一个语音//模型。如果不存在语音模型,则在使用字之前必须增//加一个。对确定存在的那些语音模型而言,造一张仅//仅包括这些语音模型的表,以便识别。
//SmDefineVocab()的自变量
//“Active Vocabulary”-与词汇有关的名称//35 -词汇中的字数//pWords -指向字数组的一个指针// 该字的形成是由应用程序// 接口规定的//SmAsynchronous -非同步调用SmDefineVocab(“Active Vocabulary”,35,pWords,SmAsynchronous);
//为了允许词汇用于识别,使用应用程序接口调用//SmEnableVocab()//SmEnableVocab()的自变量//“Active Vocabulary”-允许使用的词汇名//SmAsynchronous -非同步调用SmEnableVocab(“Active Vocabulary”,SmAsynchronous);
//现在系统准备识别。为了开始识别,用SmMicOn()接通//话筒,用SmRecognizeNextWord()请求一个字。这两//种调用都是非同步的。
SmMicOn(SmAsynchronous);
SmRecognizeNextWord(SmAsynchronous);
实例Ⅴ实例Ⅴ表示用于从具有最佳匹配率的活动状态词汇输出对应于命令模型的一个命令信号的C编程语言源码。
开始时,如上所述,人工定义命令和命令目标关联的表。除了全局命令之外,每个命令都与一个目标关联。假定从表1识别了字“RIGHT”。从命令目标关联表中,知道了命令的目标。本例中该目标写作hwndTarget。
HWND hwndTarget;
该目标由“RIGHT”确定的动作是将目标向右移动前面定义的增量例如10个图象元素(象素)。
#define INCREMENT-RIGHT 10通过采用OS/2 Presentation Manager应用程序接口调用,其名称为WinsetWindowPos(),在目标上执行命令。
必须首先询问当前窗口的位置,这样才可以确定新的位置。
SWP swp;//窗口位置的Presentation Manager结构//得到初始窗口位置//hwndTarget -目标窗口或目标//εswp -将返回目标窗口特征的地址WinQueryWindowPos(hwndTarget,εswp);
//执行命令“RIGHT”//hwndTarget -目标窗口或目标//NULLHANDLE -不需要的参数//swp.x+INCREMENT-RIGHT// -窗口的新的X坐标//swp.y -用相同的Y坐标//SWP-MOVE -告诉窗口移动WinSetWindowPos(hwndTarget,NULLHANDLE,swp.x+INCREMENT-RIGHT,swp.y,SWP-MOVE);
另外假定识别字“ORANGE”。从命令目标关联表中,知道了命令的目标。本例中该目标写作hwndTarget。
HWND hwndTarget;
该目标由“ORANGE”确定的动作是在表框中选择条目。通过采用OS/2 Presentation Manager应用程序接口调用,其名称为WinSendMsg(),在目标上执行命令,将信息LM-SELECTITEM送至表框。首先必须找到项目的索引。
SHORT sItem;//询问的项目索引//在表中找到被识别的字//hwndTarget -目标窗口或目标//LM-SEARCHSTRING -发送的信息//MPFROM2SHORT() -Presentation Manager压// 缩宏指令//LSS-PREFIX -寻找用下一个参数的字符// 串开始的项目索引//LIT-FIRST -寻找匹配的第一项目//MPFROMP() -Presentation Manager压// 缩宏指令//pListboxWord -识别字“ORANGE”sItem=(SHORT)WinSendMsg(hwndTarget,LM-SEARCHSTRING,MPFROM2SHORT(LSS-PREFIX,LIT-FIRST),MPFROMP(pListboxWord));
//选择被识别的字//hwndTarget -目标窗口或目标//LM-SELECTITEM -发送的信息//sItem -表中起作用的项目//TRUE -选择该项目WinSendMsg(hwndTarget,LM-SELECTITEM,MPFROMSHORT(sItem),MPFROMLONG(TRUE));
权利要求
1.一种交互式计算机系统,其特征在于包括一个处理器,它执行一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态,所述目标计算机程序产生活动状态图象数据信号,它们代表出现在每个时间段的目标计算机程序的活动状态的一个活动状态图象,每个活动状态图象包括一个或多个目标;用于显示至少一个出现在第一时间段的第一活动状态的第一活动状态图象的装置;用于识别至少一个显示在第一活动状态图象中的目标、并且从所识别的目标产生一系列一个或多个第一活动状态命令识别功能的装置,该功能可以在目标计算机程序的第一活动状态中实现;用于存储声音命令模型的系统词汇的装置,每个声音命令模型代表一个或多个系列的声音特征值,这些特征值代表与声音命令模型相关的一个或多个词的发音;用于识别第一活动状态的声音命令模型的第一活动状态词汇的装置,第一活动状态词汇包括从代表第一活动状态命令的系统词汇得到的声音命令模型;以及用于测量至少一种在第一时间段的一系列连续时间间隔中的每个间隔期间的发音特征的值以便产生一系列特征信号的语音识别器,所述语音识别器将测得的特征信号与第一活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率,并且所述语音识别器从具有最佳匹配率的第一活动状态词汇输出对应于命令模型的一个命令信号。
2.如权利要求1的一种交互式计算机系统,其特征在于第一活动状态词汇实际上包括少于来自系统词汇的所有声音命令模型;以及语音识别器不将测得的第一时间段的特征信号与不在第一活动状态词汇中的任何声音命令模型进行比较。
3.如权利要求2的一种交互式计算机系统,其特征在于显示装置显示至少一个出现在不同于第一时间段的第二时间段的第二活动状态的不同于第一活动状态图象的第二活动状态图象;目标识别装置识别至少一个显示在第二活动状态图象中的目标,并且从所识别的目标产生一系列一个或多个第二活动状态命令识别功能,该功能可以在目标计算机程序的第二活动状态中实现;活动状态词汇识别装置识别第二活动状态的声音命令模型的第二活动状态词汇,第二活动状态词汇包括从代表第二活动状态命令的系统词汇得到的声音命令模型,第二活动状态词汇至少部分地不同于第一活动状态词汇;以及语音识别器测量至少一种在第二时间段的一系列连续时间间隔中的每个间隔期间的发音特征的值以便产生一系列特征信号,所述语音识别器将测得的第二时间段的特征信号与第二活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率,并且所述语音识别器从具有最佳匹配率的第二活动状态词汇输出对应于命令模型的一个命令信号。
4.如权利要求3的一种交互式计算机系统,其特征在于目标计算机程序在每个时间段只出现一个活动状态。
5.如权利要求4的一种交互式计算机系统,其特征在于目标计算机程序包括一个操作系统程序。
6.如权利要求5的一种交互式计算机系统,其特征在于目标计算机程序包括一个应用程序和一个操作系统程序。
7.如权利要求6的一种交互式计算机系统,其特征在于目标计算机程序包括两个或两个以上应用程序和一个操作系统程序。
8.如权利要求6的一种交互式计算机系统,其特征在于一个活动状态的至少一些命令识别可以在状态的活动状态图象中的被识别目标上实现的功能。
9.如权利要求8的一种交互式计算机系统,其特征在于一个活动状态图象中的被识别的目标包括一个或多个字符、字、图符、按钮、滚动条、滑块、表框、菜单、检验框、容器或笔记本。
10.如权利要求9的一种交互式计算机系统,其特征在于语音识别器从在给定时间段具有最佳匹配率的活动状态词汇输出对应于命令模型的两个或两个以上的命令信号。
11.如权利要求10的一种交互式计算机系统,其特征在于每个活动状态声音命令模型的词汇还包括一组代表全局命令识别功能的全局声音命令模型,该功能可以在目标计算机程序的每个活动状态中实现。
12.如权利要求11的一种交互式计算机系统,其特征在于显示装置包括一台显示器。
13.如权利要求11的一种交互式计算机系统,其特征在于显示装置既显示在一个时间段出现的一个活动状态的活动状态图象,也显示至少一部分不在该时间段出现的程序状态的一个或多个图象。
14.一种计算机交互方法,其特征在于包括在一个处理器上执行一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态,所述目标计算机程序产生活动状态图象数据信号,它们代表出现在每个时间段的目标计算机程序的活动状态的一个活动状态图象,每个活动状态图象包括一个或多个目标;显示出现在第一时间段的第一活动状态的至少一个第一活动状态图象;识别至少一个显示在第一活动状态图象中的目标、并且从所识别的目标产生一系列一个或多个第一活动状态命令识别功能,该功能可以在目标计算机程序的第一活动状态中实现;存储声音命令模型的系统词汇,每个声音命令模型代表一个或多个系列的声音特征值,这些特征值代表与声音命令模型相关的一个或多个词的发音;识别第一活动状态的声音命令模型的第一活动状态词汇,第一活动状态词汇包括从代表第一活动状态命令的系统词汇得到的声音命令模型;测量至少一种在第一时间段的一系列连续时间间隔中的每个间隔期间的发音特征的值以便产生一系列特征信号;将测得的特征信号与第一活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率;以及从具有最佳匹配率的第一活动状态词汇输出对应于命令模型的一个命令信号。
15.如权利要求14的一种计算机交互方法,其特征在于第一活动状态词汇实际上包括少于来自系统词汇的所有声音命令模型;以及比较步骤不将测得的第一时间段的特征信号与不在第一活动状态词汇中的任何声音命令模型进行比较。
16.如权利要求15的一种计算机交互方法,其特征在于包括以下步骤显示至少一个出现在不同于第一时间段的第二时间段的第二活动状态的不同于第一活动状态图象的第二活动状态图象;识别至少一个显示在第二活动状态图象中的目标,并且从所识别的目标产生一系列一个或多个第二活动状态命令识别功能,该功能可以在目标计算机程序的第二活动状态中实现;识别第二活动状态的声音命令模型的第二活动状态词汇,第二活动状态词汇包括从代表第二活动状态命令的系统词汇得到的声音命令模型,第二活动状态词汇至少部分地不同于第一活动状态词汇;测量至少一种在第二时间段的一系列连续时间间隔中的每个间隔期间的发音特征的值,以便产生一系列特征信号;将测得的第二时间段的特征信号与第二活动状态词汇中的每一个声音命令模型进行比较,以便产生发音和每个声音命令模型的一个匹配率;以及从具有最佳匹配率的第二活动状态词汇输出对应于命令模型的一个命令信号。
17.如权利要求16的一种计算机交互方法,其特征在于目标计算机程序在每个时间段只出现一个活动状态。
18.如权利要求17的一种计算机交互方法,其特征在于目标计算机程序包括一个操作系统程序。
19.如权利要求18的一种计算机交互方法,其特征在于目标计算机程序包括一个应用程序和一个操作系统程序。
20.如权利要求19的一种计算机交互方法,其特征在于目标计算机程序包括两个或两个以上应用程序和一个操作系统程序。
21.如权利要求19的一种计算机交互方法,其特征在于一个活动状态的至少一些命令能识别可以在状态的活动状态图象中的被识别目标上实现的功能。
22.如权利要求21的一种计算机交互方法,其特征在于一个活动状态图象中的被识别的目标包括一个或多个字符、字、图符、按钮、滚动条、滑块、表框、菜单、检验框、容器或笔记本。
23.如权利要求22的一种计算机交互方法,其特征在于输出一个命令信号的步骤包括从在给定时间段具有最佳匹配率的活动状态词汇输出对应于命令模型的两个或两个以上的命令信号。
24.如权利要求23的一种计算机交互方法,其特征在于每个活动状态声音命令模型的词汇还包括一组代表全局命令识别功能的全局声音命令模型,该功能可以在目标计算机程序的每个活动状态中实现。
25.如权利要求24的一种计算机交互方法,其特征在于所包括的显示步骤既显示在一个时间段出现的一个活动状态的活动状态图象,也至少显示一部分不在该时间段出现的程序状态的一个或多个图象。
全文摘要
一种交互式计算机系统,它包括一个目标计算机程序,该目标计算机程序在一系列时间段具有一系列活动程序状态,还包括一个语音识别器,其中由语音识别器在任何给定时间段识别的命令的有效词汇被限制在一组活动命令识别功能的范围内,该功能可以由目标计算机程序在那个给定时间段实现,而不必预先指定状态以及在所有可能的环境下出现的目标计算机程序状态之间的转移。
文档编号G10L15/00GK1105464SQ94103948
公开日1995年7月19日 申请日期1994年3月21日 优先权日1993年4月21日
发明者约瑟·C·安德谢克, 格雷格·H·达格特, 约翰·卡拉特, 约翰·卢卡斯森, 斯蒂芬·E·利维, 罗伯特·L·马克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1