图1和下面的说明试图提供实现本发明的适当计算机环境100的简洁而一般性说明。举例性操作环境100包括普通个人计算机系统120,该个人计算机系统120包括处理器121、系统内存122和将系统内存122连接到处理器121的系统总线123。系统内存122包括只读存储器(ROM)124和随机存取存储器(RAM)。基本输入/输出系统126(BIOS)存储在ROM124内,BIOS126包含帮助在个人计算机系统120内的各组成之间传送信息的基本例行程序,如在启动中。
个人计算机120还包含硬盘驱动器127、可换磁盘式驱动器128和光盘驱动器130,可换磁盘式驱动器128可在可换式磁盘129上读写,光盘驱动器130用于读CD-ROM盘131或在另一光媒体上读写。硬盘驱动器127、可换磁盘式驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、可换磁盘式驱动器接口133和光盘驱动器接口134连接到系统总线133上。驱动器和其相关的计算机可读媒体向个人计算机系统120提供非易失性存储器。尽管上述的计算机可读的媒体指的是硬盘驱动器、可换式磁盘和CD-ROM盘,但是本领域的技术人员应该理解在实施例操作系统中还可采用其它类型的计算机可读媒体,如磁卡、快速内存卡、数字视频盘、伯努里盒式盘和类似的部件。
用户可通过普通输入装置包括键盘140和指点器如鼠标142向个人计算机120输入命令或信息。可采用麦克风161向计算机系统120输入声频输入,如语音。用户可以通过使用输入笔在书写板162绘制图形信息而将图形信息如图或手迹输入计算机系统。计算机系统120可包括附加输入装置(未示),如控制杆、游戏垫、卫星盘、扫描仪或类似装置。麦克风161可以通过与系统总线相连的声频适配器160与处理器121连接。其它输入装置通常通过与系统总线连接的串行端口接口146与处理器121连接,但是也可通过其它接口连接,如游戏端口或通用串行总线(USB)。
还可通过接口如视频适配器148将监视器147或其它类型显示器连接于系统总线123。除监视器外,个人计算机一般包含其它外围输出装置(未示),如扬声器或打印机。
个人计算机系统120可在采用与一个或多个远程计算机如远程计算机149逻辑连接的网络环境中工作。远程计算机149可以是服务器、路由器、对等器或其它公共网络节点,一般包含许多或所有上述与个人计算机系统120相关的部件,尽管图1中只给出了内存存储器150。图1所示的逻辑连接包含局域网(LAN)151和广域网(WAN)152。该网络环境广泛使用在办公室、企事业范围的计算机网络、内部网络和互联网中。
当使用在LAN网络环境中时,个人计算机系统120通过网络接口153连接到LAN151上。当使用在WAN网络环境中时,个人计算机系统120一般包含调制解调器154或其它在WAN152如互联网上建立通讯的装置。调制解调器154可以是内置的或外置的调制解调器,可通过串行端口接口146连接到系统总线123上。在网络环境中,显示的关于个人计算机120的程序模块或其组成部分可以存储在远程内存存储器150上。应理解图示的网络连接只是举例性的,还可使用在计算机之间建立通信连接的其它装置。还可进一步理解本发明可同样使用在主计算机系统或服务器计算机系统上,而不是使用在个人计算机系统上,并能通过除CD-ROM以外的其他装置同样传输到主计算机系统上,例如通过网络连接接口153。
多个程序模块可存储在计算机系统120的驱动器和RAM125上。程序模块通过I/O装置或其他计算机控制计算机系统120的操作并与用户交互作用。程序模块包括例行程序、操作系统135、应用程序模块138、数据结构、浏览器和其他软件或固件元件。本发明便于在一个或多个程序模块中实现,如基于详细说明的方法的语音引擎校正模块137。
应用程序模块138可包括多个与本发明一起使用的应用程序,其中一些程序如图2所示。在描述图2的文本中,这些程序模块中的一些模块的目的和它们之间交互作用的目的得到更充分的讨论。这些程序模块包括字处理程序(如由华盛顿州雷德蒙德的微软公司设计的WORD)、手写体识别程序模块、语音引擎校正模块137和输入方法编辑器(IME)。
将不对用于实现各详细说明的过程的特别程序语言进行说明,因为考虑到附图中说明和显示的操作、步骤和过程足以向本领域普通技术人员公开本发明的举例性实施例。此外,有由许多用于实现实施例的计算机和操作系统,因此不提供可应用于所有这些不同系统的详细的计算机程序。特定计算机的每个用户会知道最能满足用户的需要和目的的语言和工具。
本领域的技术人员会理解本发明可以与其它计算机系统配置一起使用,包括便携式装置、多处理器系统、基于微处理器或可编程的用户电子装置、微型计算机、主计算机和类似装置。本发明还可在分布式计算机环境中使用,在该分布式计算机环境中由通过通讯网络连接的远程处理器来完成任务。在分布式计算机环境中,程序模块可设置在本地内存存储器和远程内存存储器。
程序模块概述
图2提供语音引擎校正模块200的组成和模块概图。一般,图2所示的组成和模块的目的是校正当语音输入到应用程序138如字处理器时产生的语音识别模块错误。
图2所示的组成和模块使用户校正输入应用程序138文件的语音输入的语音识别模式错误。语音引擎校正模块200包括微应用程序138接收语音输入204的语音识别程序202。语音识别程序202通过由操作系统135中的麦克风驱动模块控制的麦克风161接收来自用户的语音输入204。由于许多单词听起来相似但却具有不同意思和拼法,因此操作系统135中的麦克风启动模块常常难于译解语音,从而语音识别程序202产生随机结果。随机结果可以存储在RAM206中,供以后由语音引擎模块200检索。
语音引擎校正模块200还包括具有下述组成的语音引擎208:模块选择处理器210、听写处理器212、命令处理器214和模式校正处理器216和存储器如RAM206。模型选择处理器210接收来自语音识别程序202的语音输入,并确定语音输入204的语音识别模块。在一个实施例中,模型选择处理器210可以是旁通的,有效地将语音输入204发送给听写处理器212和命令处理器214进行处理。
当由听写处理器212接收语音输入204时,听写处理器212处理语音输入204作为听写输入给应用程序138。采用自然语言模型218如统计语言模型(SLM),听写处理器212返回给定语音输入的文本串204。可以使用其它语言模型处理语音输入204,以返回作为用于应用程序138中的文本串。
当由命令处理器214接收语音输入204时,命令处理器214处理语音输入作为命令输入给应用程序138。采用上下文无关语法(CFG)语言模型220,命令处理器214返回给定语音输入204的命令。可以使用其它语言模型处理语音输入204,以返回用于应用程序138的命令。
在另一实施例中,模式选择处理器210确定语音输入204的语音识别模式,并根据所选模式将语音输入204发送给特定处理器。确定语音识别模式的选择标准可以是语音输入204的内容和语音输入204的上下文。
在由听写处理器212和/或命令处理器214返回语音识别模式结果后,模式校正处理器216接收该结果,并向应用程序138调用该结果以将其输入文件。模式校正处理器216还可将该结果存储在存储器如RAM206中,供以后检索。
存储器如RAM206用于存储语音输入204或经处理的语音输入204。RAM206包括能存储语音输入204数据如随机模型的数据结构。两个有此作用的有用结构是格和“n-最佳(n-best)”替换列表。格是一种本领域技术人员公知的结构,因此不做全面说明。但是,简单说来,格存储由节点中的语音输入源产生的单词或词组。由于每个单词或词组是语音输入数据,因此节点还存储赋予相关单词或词组的概率。为了产生由语音输入数据表示的文本段的相似替换,可采用本领域技术人员公知的方法将格切断。此外,表示文本相邻块的格可以通过称为连接的方法合并成大格。然后切断较大格以产生文本相邻块的替换。另外,语音输入数据可以由一列n-最佳替换和其相关概率表示。对于任何单词或词组,n-最佳替换列表可以产生于表示单词或词组的格。
模式校正处理器216还可检测来自应用程序138的模式校正命令,并等待将模式校正命令发送给语音引擎校正模块200。当接收或检测模式校正命令时,模式校正处理器216根据语音识别错误的类型、已预先存储在RAM206中的结果或语音输入204启动模式校正例行程序。
在实施例中,返回来自听写处理器212和命令处理器214产生的语音输入204。模式校正处理器216可以从RAM206检索替换结果。这些结果然后传给应用程序138以将其输入文件。
在模式选择处理器210选择费校正处理器的替换实施例中,模式校正处理器216可以从RAM206检索语音输入204。由替换的而不是模式选择处理器210最初选择的处理器处理语音输入204。然后将来自替换处理器的结果向应用程序138调用以将其输入文件。
在应用程序138接收结果后,用户可浏览替换结果,以便确定语音输入204的准确性。例如,如果听写结果有语音输入204的一个或多个替换听写,则用户可以选择通过图形用户界面呈现给用户的候选项。如果用户选择替换听写中的一个,然后应用程序138可用选择的候选项代替该听写,并将选择的候选项输入文件。
尽管已经分别说明了各个部分和模块,本领域技术人员应该认识到各个部分和模块可以以各种方式组合,产生新程序部分和模块以获得相似结果。
语音引擎模块例行程序
图3是显示校正文件中的语音识别模式错误的计算机例行程序逻辑流程图。图3显示的步骤由与应用程序138一起工作的语音引擎校正模块200完成。步骤302开始由语音引擎校正模块200执行的例行程序300。
步骤302后接着运行步骤304,其中语音引擎校正模块200等待来自应用程序138的语音输入204。当由语音引擎校正模块200接收语音输入204时,步骤304后接着运行步骤306。
在步骤306中,听写处理器212处理语音输入204。听写处理器212使用自然语言模型218如统计语言模型(SLM)确定语音输入204的听写内容。这样的模型通常用于本领域,以将语音输入转换成计算机可读文件的文本。模型可使用线索如语法和文本段的整个意思或单词序列的概率以产生候选列表的附加替换并计算这些替换的概率。合适的自然语言模型218总是返回作为给定语音输入的文本结果。在听写处理器212确定语音输入204的文本结果后,步骤306后接着运行步骤308。
在步骤308,命令处理器214处理语音输入204。命令处理器214使用上下文无关语法(CFG)语言模型220用于确定语音输入204的命令内容。这样的模型通常用于本领域,以将语音输入转换成给定语音输入的命令结果。合适的CFG模型总是返回非常类似于语音输入204的应用程序命令。在命令处理器214确定语音输入204的命令结果后,步骤308后接着运行步骤310。
在步骤310,模型选择处理器210确定语音输入204的语音识别模式。根据听写选择标准,模式选择处理器210确定语音识别模式,并根据选择语音识别模式继续处理语音输入204。合适的选择标准可以是语音输入和文件的上下文以及语音输入的内容。例如,当模型选择处理器210相遇包括单个单词“删除”的语音输入时,模式选择处理器210可根据语音输入204和文件的文字上下文以及从语音输入204的内容确定语音输入204是个命令。这样,模型选择处理器210继续处理作为命令的语音输入204。当语音输入识别模式已经由模式选择处理器210选择后,步骤310后接着运行步骤312。
在步骤312,模式选择处理器210向应用程序138发送选择的模型处理器结果。例如,如果命令处理器214返回命令“删除”,模式选择处理器210确定语音输入204的模式是个命令,然后模式选择处理器210会将语音输入“删除”作为命令发送给应用程序138。当选择的模式处理器结果已经发送给应用程序时,步骤312后接着运行步骤314。
在步骤314,语音引擎校正模块200在RAM206中存储替换模型处理器结果,或其它类似类型的存储器。存储替换模式处理器结果使语音引擎校正模块200可在以后检索这些结果。例如,当语音引擎或用户确定已经犯了模式错误,则选择的模式应该是由语音引擎校正模块200非初始选择的替换模式。
步骤314后接着运行决定块316,其中模式校正处理器216检查语音识别模块校正命令。可以选择或由指示出现模式错误的模块校正处理器216接收其它类似命令或功能。如果删除了语音识别模式校正命令,则沿“是”支路运行到决定块318,其中模块校正例行程序继续。如果没有删除语音识别模式校正命令,则沿“非”支路运行到步骤326以返回例行程序300的开始。
模式校正例行程序300随决定块318继续,其中模式校正处理器216确定是否需要进行听写对命令校正。如果模式错误需要命令转换成听写,则沿“是”支路运行到步骤320,其中执行例行程序400(如图4所示)。如果模式错误不需要转换成听写的命令,则沿“非”支路运行到决定块322。
在决定块322中,模式校正处理器216确定是否需要进行听写对命令模式校正。如果语音识别模式错误需要听写转换成命令,则沿“是”支路运行到步骤324,其中执行例行程序500(如图5所示)。如果语音识别模式错误不需要听写转换成命令,则沿“非”支路运行到步骤326,其中例行程序300返回开始。
图4显示了例行程序400,其中语音识别校正模块200校正命令语音识别模式错误。即当用户需要时,将已经作为命令输入应用程序138的语音输入204转换成应用程序138的听写输入。步骤402开始由语音引擎校正模块200执行的例行程序400。
步骤402后接着运行步骤404,其中语音引擎校正模块200将初始语音输入204存储在RAM206中,或任何其它类似存储器中。存储的初始语音输入204允许在以后再调用或再处理语音输入204。例如,当例行程序400中断并且需要再调用初始语音输入204时,RAM206是很有用的。
步骤404后接着运行步骤406,其中“撤消”命令作为命令输入文件。模式校正处理器216向应用程序138发送“撤消”命令,应用程序138在文件上执行“撤消”。该“撤消”命令再调用由应用程序138在文件上执行的上次命令或命令串,并取消或撤消在文件上执行的上次命令或命令串。通过执行“撤消”命令,在模式错误发生之前,文件可返回其初始内容,语音输入204是作为命令而不是作为听写而输入文件的。
步骤406后接着运行步骤408,其中模式校正处理器216从听写处理器212结果选择候选听写,该结果作为替换模式处理器结果存储在RAM中。如图3中的步骤314所述,替换模式处理器结果存储在RAM206中供以后在检测到语音识别模式错误的情况下进行检索。并且选择模式应该是替换模式而不是由语音引擎模块200最初选择的模式。模式校正处理器216根据文件的上下文使用选择标准从替换模式处理器结果选择候选听写。
为了提高校正模式错误的速度,模式校正处理器216可以自动向应用程序138发送候选听写,并将候选听写输入文件而不提示用户。否则,模式校正处理器216可简单提示用户候选听写是最可能的校正语音输入204听写结果,并等待用户确认或将候选听写输入该文件。
步骤410后接着运行步骤408,其中模式校正处理器216向应用程序138发送RAM206中的候选选择和所有替换结果。应用程序138然后在其它替换听写结果中以选亮选择显示该候选结果。用户可接着选择候选选择以将其输入应用程序138,或用户向下滚动替换听写以选择想要的听写结果。在有些时候,如为了提高校正模式错误的速度,候选选择是发送给应用程序138的唯一替换结果,可以提示用户输入候选选择,或候选选择可以自动插入该文件。
步骤412后接着运行步骤410,其中选择的听写选择是作为文件的听写输入而输入应用程序138的。在语音引擎校正模块200或用户已经分析了存储在RAM206中用于存储想要的听写结果的替换结果,并已经确定哪个结果是最想作为输入文件的听写的语音输入204以后,该步骤提供文件的听写输入。步骤412后接着运行步骤414,其中通过返回图3的步骤326而结束例行程序400。
图5显示例行程序500,其中语音引擎校正模块200校正听写对命令语音识别模式错误。即,当模式校正处理器216检测到语音输入204是作为听写的错误输入时,语音输入204应该作为命令输入文件。图5是例行程序500的逻辑流程图,其开始沿“是”支路由图3的决定块322运行,例行程序500从步骤502开始。
步骤502后接着运行步骤504,其中语音引擎校正模块200将接收的语音输入204存储在RAM206中,或任何其它类似的内存或存储器中。如果例行程序500中断,需要再调用初始语音输入204,则存储的初始语音输入204对语音输入204再调用或再处理。例如,当例行程序500中断时,需要再调用初始语音输入204时,RAM206是很有用的。
步骤504后接着运行步骤506,其中模式校正处理器216向应用程序138发送“删除”命令以删除作为听写错误输入文件的语音输入204。可以将“删除”命令或任何类似功能发送到应用程序138以删除作为听写错误输入该文件的语音输入204。
步骤506后接着运行步骤508,其中模式校正处理器216从存储在RAM206中的替换模式处理器结果选择候选命令。如图3的步骤314中所述,替换模式处理器结果存储在RAM206中,供以后在当检测到语音识别模式错误的情况下进行检索,选择的模式应该是替换模式而不是由语音引擎校正模块200最初选择的。模式校正处理器216根据文件的上下文或预先发出的命令使用选择标准从替换模式处理器结果选择候选命令。
步骤508后接着运行步骤510,其中模式校正处理器216向应用程序138发送候选命令和RAM206中的所有替换结果。应用程序138然后在其它替换命令结果中将候选选择作为显亮选择显示。为提高校正模式错误的速度,模式校正处理器136可自动向应用程序138发送候选命令而不提示用户。否则,模式校正处理器216可只注意到该候选命令是最可能选择的正确语音输入204命令结果。
步骤510后接着运行步骤512,其中将选择的命令输入应用程序138。在语音引擎校正模块200或用户分析存储在用于存储所需命令结果的RAM206中的替换结果,并确定哪个结果是最需要作为输入文件的命令的语音输入204后,该步骤提供文件的命令输入。步骤512后接着运行步骤514,其中通过返回图3的步骤326而结束例行程序500。
图6是显示用于校正文件中的语音识别模式错误的替换计算机例行程序流程图。图6中显示的步骤由与应用程序138一起工作的语音引擎校正模块200执行。步骤602开始由语音引擎校正模块200执行的例行程序600。
步骤602后接着运行步骤604,其中语音引擎校正模块200等待来自应用程序138的语音输入204。当语音输入204由语音引擎模块200接收时,步骤604后接着运行例行程序606。
在步骤606,模式选择处理器210确定语音输入204的语音识别模式。
根据听写选择标准,模式选择处理器210确定语音识别模式,并根据选择的语音识别模式继续处理语音输入204。合适的选择标准可以是语音输入204和文件的上下文以及语音输入204的内容。例如,当模式选择处理器210遇到包括单个词“删除”的语音输入204时,模式选择处理器210可根据语音输入204和文件的文字上下文以及从语音输入204的内容确定该语音输入204是命令。这样,模式选择处理器210继续处理作为命令的语音输入204。合适的语音识别模式可以是听写和命令或用于应用程序138的文件中的任何其它有用模式。当选择了语音识别模式时,步骤606后接着运行步骤608。
在步骤608中,根据在步骤606中选择的选择语音识别模式,模式处理器212、214处理语音输入204。如果选择了听写模式,听写处理器212使用用于确定听写内容的自然语言模型218。在本领域通常使用该模型将语音输入转换成计算机可读文件的文本。模型可使用线索,如语法和文本段的整个内容,或字串的概率,以产生候选列表的附加替换,并计算这些替换的概率。合适的语言模型总是返回作为给定语音输入的文本结果。在听写处理器218确定语音输入204的文本结果后,步骤608后接着运行步骤610。
另外,如果选择了命令模式,则命令处理器214处理语音输入204。命令处理器214使用与上下文无关的语法(CFG)语言模型229确定命令的内容。在本领域通常使用模型将语音输入204转换成给定语音输入204的命令结果。合适的CFG模型返回的应用程序命令非常类似于语音输入204。在命令处理器214确定了语音输入204的命令结果后,步骤608后接着运行决定块610。
在决定块610中,模式校正处理器216检查语音识别模式校正命令。可以由模式校正处理器216检测或接收其它类似命令或功能以指示模式错误。如果检测到语音识别模式校正命令,则沿“是”支路运行到决定块612,其中模式校正例行程序继续。如果没有检测到语音识别模式校正命令,则沿“非”支路运行到步骤308以采用选择模式继续处理语音输入。
模式校正例行程序600继续决定块612,其中模式校正处理器216确定是否需要进行命令对听写模式校正。如果模式错误需要将命令转变成听写,则沿“是”支路运行到步骤614,其中执行例行程序700(如图7所示)。如果模式错误不需要将命令转变成听写,则沿“否”支路运行到决定块616。
在决定块616中,模式校正处理器216确定是否需要进行听写对命令校正。如果语音识别模式错误需要将听写转变成命令,则沿“是”支路运行到步骤618,其中执行例行程序800(如图8所示)。如果语音识别模式错误不需要将命令转变成听写,则沿“否”支路运行到决定块620,其中例行程序600返回开始块602。
图7显示替换例行程序700,其中语音引擎校正模块200校正命令语音识别模式错误。即,通过再输入作为由用户指定的听写的语音输入204,语音引擎模块校正作为命令错误输入应用程序138的语音输入204。步骤702开始由语音引擎校正模块200的例行程序700。
步骤702后接着运行步骤704,其中语音引擎校正模块200在RAM206中存储初始语音输入204。其它存储器和结构可以用于存储初始语音输入204。存储初始语音输入204容许在以后再调用和再处理语音输入。例如,当例行程序700中断和需要再调用初始语音输入204时,RAM206是很有用的。
步骤704后接着运行步骤706,其中“撤消”命令是作为命令输入文件的。模式校正处理器216向应用程序138发送“撤消”命令,应用程序138在文件上执行“撤消”。“撤消”命令再调用由应用程序138在文件上执行的上次命令或命令串,并取消或撤消在文件上执行的上次命令或命令串。通过执行“撤消”命令,在语音输入204作为命令而不是听写错误地输入前,文件可以返回到初始状态。
步骤706后接着运行步骤708,其中模式校正处理器216向听写处理器212发送存储在RAM206中的初始语音输入204。
步骤708后接着运行步骤710,其中语音输入204作为听写由听写处理器212处理。听写处理器212使用统计语言模型(SLM)218或其它类似语言模型处理语音输入204。文本结果由听写处理器212返回以输入该文本。
步骤710后接着运行步骤712,其中模式校正处理器216向应用程序138发送听写结果。应用程序138接着将该听写输入输进该文件。步骤712后接着运行步骤714,其中例行程序700通过返回图6的步骤608而结束。
图8显示替换例行程序800,其中语音引擎校正模块200校正听写语音识别模式错误。即,当模式校正处理器216检测到语音输入204已经作为听写错误输入,而语音输入204应该作为命令输入文件。图8是显示例行程序800的逻辑流程图,接着图6的步骤616开始。例行程序800在步骤802开始。
步骤802后接着运行步骤804,其中语音引擎校正模块200将接收的语音输入204存储在RAM206。其它存储器可以用于存储该语音输入204。存储初始语音输入204容许在以后再调用和再处理语音输入。例如,当例行程序800中断并且需要再调用初始语音输入204时,RAM206是很有用的。
步骤804后接着运行步骤806,其中模式校正处理器216向应用程序发送“删除”命令以删除作为听写错误输入该文件的语音输入204。其它类似命令或功能可以发送给应用程序138以取消作为听写错误输入该文件的语音输入204。
步骤806后接着运行步骤808,其中模式校正处理器216向命令处理器214发送存储在RAM206中的初始语音输入204。
步骤808后接着运行步骤810,其中语音输入204是作为命令由命令处理器214处理的。命令处理器214使用与上下文无关语法(CFG)语言模型220或其它类似语言模型来处理语音输入214。命令结果由命令处理器214返回以输入应用程序138。
步骤810后接着运行步骤812,其中模式校正处理器216向应用程序138发送命令结果。应用程序138接着可将命令输入输进该文件。步骤812后接着运行步骤814,其中例行程序800通过返回图6的步骤608而结束。
综上所述,会理解本发明提供一种语音引擎校正模块以校正程序文件中的语音识别模式错误。应该明白上述内容只涉及本发明的举例性实施例,可以对其做出各种改变,而不会背离由下述权利要求所限定的本发明的精神和范围。