具有并行识别任务的语音识别

申请号 CN201310582554.2 申请日 2009-07-02 公开(公告)号 CN103761968A 公开(公告)日 2014-04-30
申请人 谷歌公司; 发明人 布莱恩·斯特罗普; 弗朗索瓦丝·博费; 奥利维尔·西奥汉;
摘要 本 发明 涉及具有并行识别任务的 语音识别 。除其他之外,本 说明书 的主题可以具体化为一种方法,其包括接收音频 信号 并且发起多个语音识别系统(SRS)的语音识别任务。每个SRS被配置为生成 指定 音频信号 中包括的可能语音的识别结果和指示语音结果的正确性的 置信度 的置信度值。该方法还包括完成语音识别任务的一部分,包括生成一个或多个识别结果和关于一个或多个识别结果的一个或多个置信度值,确定一个或多个置信度值是否满足置信度 阈值 ,中止未完成生成识别结果的SRS的剩余部分的语音识别任务,并且基于所生成的一个或多个语音结果中的至少一个输出最终识别结果。
权利要求

1.一种计算机实现的方法,包括:
接收音频信号
发起由多个语音识别系统SRS进行的语音识别任务,每个SRS被配置为生成指定所述音频信号中包括的可能语音的识别结果和指示所述识别结果的正确性的置信度的置信度值;
完成所述语音识别任务的一部分,包括生成一个或多个识别结果和关于所述一个或多个识别结果的一个或多个置信度值;
确定所述一个或多个置信度值是否满足置信度阈值
中止未完成的SRS的语音识别任务的剩余部分;以及
基于所生成的一个或多个识别结果中的至少一个输出最终识别结果。
2.根据权利要求1所述的方法,进一步包括:如果语音识别任务超过指定完成所述语音识别任务所允许的最大时间段的延时阈值,则中止所述语音识别任务。
3.根据权利要求1所述的方法,进一步包括:如果完成的语音识别任务与所生成的识别结果中的低置信度值相关联,则中止未完成的语音识别任务。
4.根据权利要求1所述的方法,其中所述SRS中的至少一个生成多个识别结果。
5.根据权利要求4所述的方法,进一步包括:基于与所述多个识别结果中的前N个识别结果相关联的置信度值,对所述前N个识别结果排名,其中N表示任何正整数。
6.根据权利要求5所述的方法,进一步包括:基于由不同的SRS生成的置信度值确定与所述前N个识别结果相关联的置信度值的滑动平均值。
7.根据权利要求6所述的方法,基于哪个识别结果与最高整体置信度值相关联来从所述前N个结果中选择所述最终识别结果。
8.根据权利要求1所述的方法,进一步包括:基于哪个识别结果与最大置信度值相关联来选择所述最终识别结果。
9.一种系统,包括:
多个语音识别系统,其发起用于识别编码在接收到的音频信号中的可能语音的语音识别任务,每个语音识别系统SRS被配置为生成识别结果和指示所述识别结果的正确性的置信度的置信度值;
识别管理模,用于在所述SRS生成识别结果时接收所述识别结果并且接收与所生成的识别结果相关联的置信度值,其中如果所接收到的置信度值中的一个或多个满足置信度阈值,则所述识别管理模块中止由未完成生成识别结果的SRS进行的未完成的语音识别任务;以及
接口,用于传送基于所生成的识别结果的置信度值选择的最终识别结果。
10.一种系统,包括:
多个语音识别系统,其发起对接收到的音频信号的语音识别任务,每个语音识别系统SRS被配置为生成识别所述音频信号中的可能语音的识别结果和指示所述识别结果的正确性的置信度的置信度值;
用于以下的装置:在每个SRS生成一个或多个识别结果时从所述SRS接收所述一个或多个识别结果和一个或多个相应的置信度值,如果所接收到的置信度值中的一个或多个满足置信度阈值,则中止由未完成生成识别结果的SRS进行的未完成的语音识别任务,并且基于所生成的识别结果的置信度值选择最终识别结果;以及
接口,用于传送表示所述音频信号中的可能语音的最终识别结果。

说明书全文

具有并行识别任务的语音识别

[0001] 分案说明
[0002] 本申请属于国际申请日为2009年7月2日、国际申请号为PCT/US2009/049604的PCT国际申请进入中国国家阶段后的申请号为200980134034.7的中国专利申请的分案申请。

技术领域

[0003] 本申请涉及语音识别。

背景技术

[0004] 许多应用受益于接收以语音命令或询问形式的输入。对于在诸如蜂窝电话的移动设备上运行的应用特别如此,其中通过小键盘或者用户手指操纵的其他设备进行输入可能因设备的减小的尺寸而是困难的。类似地,如果移动设备用于访问在另一设备(例如,电子邮件服务器、地图/路线服务器或者电话簿服务器)上运行的应用,则向应用传送语音命令而非通过小键盘等输入命令对于用户可能是更加容易的。
[0005] 为了使应用对口头输入起作用,语音识别器可以将口头输入转换为由应用使用的符号表示。一些当前的语音识别器可以使用尝试识别口头输入中的可能语音的单个识别系统。使用单个语音识别系统可能将语音识别的准确性限制于与单个语音识别系统相关联的准确性。其他当前的语音识别器可以使用连续的语音识别,其中对口头输入执行两轮或更多轮以确定口头输入最可能表示的语音。多轮的使用可能增加生成最终语音识别结果所需要的时间。
[0006] 在其他当前的语音识别器中,多个语音识别系统均可以完全处理口头输入并且随后输出结果。由于处理时间的长度由最慢的语音识别系统(和/或由执行语音识别算法的最慢的计算机)确定,因此这种多个语音识别系统的使用也可能增加生成最终结果所需要的时间。发明内容
[0007] 一般地,本文描述了并行使用多个语音识别系统(SRS)来识别语音,但是如果所生成的识别结果满足所期望的阈值,则在完成之前中止(abort)一些SRS。例如,每个SRS可能在执行语音识别任务时具有不同的延时和准确性。如果具有较低延时的SRS输出语音识别结果和表述结果中的高置信度的置信度值,则可以中止剩余的SRS执行的语音识别任务。如果置信度值相对于置信度阈值过低,则可以允许更多的SRS生成结果。如果这些结果满足置信度阈值,则可以中止仍未完成语音识别任务的SRS,等等。
[0008] 在第一一般方面,描述了一种计算机实现的方法。该方法包括接收音频信号并且发起多个语音识别系统(SRS)的语音识别任务。每个SRS被配置为生成指出音频信号中包括的可能语音的识别结果和指示语音结果的正确性的置信度的置信度值。该方法还包括完成一部分语音识别任务,包括生成一个或多个识别结果和关于一个或多个识别结果的一个或多个置信度值,确定一个或多个置信度值是否满足置信度阈值,对于未生成识别结果的SRS中止剩余部分的语音识别任务,并且基于所生成的一个或多个语音结果中的至少一个输出最终识别结果。
[0009] 在第二一般方面,描述了一种系统,其包括多个语音识别系统,所述多个语音识别系统发起用于识别编码在接收到的音频信号中的可能语音的语音识别任务。每个语音识别系统(SRS)被配置为生成识别结果和指示识别结果的正确性的置信度的置信度值。该系统还包括识别管理模,用于在SRS生成识别结果时接收识别结果并且接收与所生成的识别结果相关联的置信度值。如果接收到的置信度值中的一个或多个满足置信度阈值,则识别管理模块中止由未生成识别结果的SRS进行的未完成的语音识别任务。该系统包括接口,用于传送基于所生成的识别结果的置信度值选择的最终识别结果。
[0010] 在第三一般方面,描述了一种系统,其包括多个语音识别系统,所述多个语音识别系统发起对于接收的音频信号的语音识别任务,每个语音识别系统(SRS)被配置为生成识别音频信号中的可能语音的识别结果和指示识别结果的正确性的置信度的置信度值。该系统包括用于以下的装置:在SRS生成一个或多个识别结果时,从每个SRS接收一个或多个识别结果和一个或多个相应的置信度值,如果接收到的置信度值中的一个或多个满足置信度阈值,则中止由未生成识别结果的SRS进行的未完成的语音识别任务,并且基于所生成的识别结果的置信度值选择最终识别结果。该系统还包括用于传送表示音频信号中的可能语音的最终识别结果的接口。
[0011] 这里描述的系统和技术可以提供以下优点中的一个或多个。首先,并行地使用多个语音识别系统对音频解码的系统可以提供延时和准确性的改进的联合优化,因为如果接收到令人满意的结果,则可以允许中止未完成的识别任务。此外,使用多个识别系统的系统可以改进拒绝率(即,使拒绝率降低)。系统还可以通过比较多个识别系统输出的识别结果来增加准确性。还可以提供用于缩放(例如,增加)用于提供增加的识别性能的计算资源量的框架
[0012] 在附图和下面的描述中阐述了一个或多个实施例的细节。根据描述和附图以及权利要求,其他特征和优点将是显然的。

附图说明

[0013] 图1是用于识别语音的示例系统的示图。
[0014] 图2是用于对嵌入在音频传送中的语音解码的示例系统的更详细的示图。
[0015] 图3是用于使用并行解码来识别语音的示例方法的流程图
[0016] 图4A-C示出了图示示例语音识别任务的执行的示图。
[0017] 图5A-C是SRS生成的示例识别结果和置信度值以及选择最终识别结果的不同方法的示图。
[0018] 图6是用于对在最终识别结果的选择中使用的值加权的置信度值的分布的示例曲线图。
[0019] 图7A-E是示出SRS输出的示例识别结果集合和可用于对识别结果加权的集合之间的相关性的Venn(维恩)示图。
[0020] 图8A和8B是图示在语音解码系统的运行操作期间SRS之间的交集如何调整或改变的Venn示图。
[0021] 图9是图示在与识别结果相关联的SRS错误率和权重之间的示例相关性的曲线图。
[0022] 图10是可用于实现本文中描述的系统和方法的计算设备的框图
[0023] 各附图中相同的附图标记指示相同的元素。

具体实施方式

[0024] 本文描述了用于使用多个语音识别系统(SRS)对话语解码的系统和技术。在一些实现方式中,每个SRS具有不同的特性,诸如准确性、延时、词典等,从而多个SRS中的一些SRS在其他SRS之前输出识别结果。如果输出的识别结果满足某些要求(例如,所生成的结果中的一个或多个与满足或超过阈值置信度的指定置信度值相关联),则语音解码系统可以在剩余的SRS完成它们的语音识别任务之前中止它们。
[0025] 图1是用于识别语音的示例系统100的示图。一般地,系统100包括处理从例如蜂窝电话接收到的音频信号的多个SRS。在该示例中,用户呼叫具有语音功能的电话簿服务,其将包含用户语音的音频信号转发到具有多个SRS的语音识别器。
[0026] 多个SRS可以并行处理音频信号,但是一些SRS可以在其他SRS之前生成识别结果。如果生成识别结果的SRS表达这些结果中的足够高的置信度,则可以中止剩余的未完成的语音识别任务并且可以基于当前生成的识别结果确定最终识别结果,而非等待所有SRS完成它们的语音识别任务。
[0027] 示例系统100包括蜂窝电话102,其将以音频信号104的形式输入的语音传送到具有语音功能的电话簿信息服务器106,其允许蜂窝电话用户口头请求电话簿信息并且以所请求的信息作出响应。
[0028] 在图1的示例中,信息服务器106将音频信号104传送到用于对嵌入在音频信号104中的语音解码的语音识别器108。在一些应用中,语音识别器108包括多个SRSA-E,其并行操作以对音频信号104中的语音解码。
[0029] 语音识别系统(SRS)管理模块110监视任何SRS是否已生成识别结果并且收集与这些结果相关联的置信度值。该监视在示图112中示出,其示出了SRS的并行执行。示图112示出了SRSA首先生成具有0.3的置信度值的识别结果。接着,SRSE生成具有0.6的置信度值的识别结果。稍后,SRSB生成具有0.8的置信度值的识别结果。由于在该实现方式中,SRSB生成的识别结果具有满足预定置信度阈值的置信度值,因此SRS管理模块110可以在SRSB生成识别结果之后中止SBSC,D执行的剩余的语音识别任务。
[0030] 在一些实现方式中,SRS管理模块110中的最终结果选择模块113可以选择最终识别结果114以输出到具有语音功能的电话簿信息服务器106。例如,SRS管理模块110可以基于由已完成语音识别任务的SRSA,B,E输出的所生成的识别结果和相关联的置信度值116的集合来选择最终识别结果。在一些实现方式中,最终识别结果114是从音频信号104解码的可能语音的符号表示。例如,电话簿信息服务器106可以提示用户说出城市和州的名称。所说的城市和州名称可以被编码在从蜂窝电话102的用户接收的音频信号104中并且由语音识别器108解码。在一些实现方式中,最终结果是解码器已确定的音频信号104最可能表示的语音。
[0031] SRS输出的置信度值116可以根据若干种方法生成。在一些实现方式中,第一SRS可以生成关于话语识别的若干假设或猜想。靠前生成的假设可以与SRS生成的竞争假设比较并且置信度值可以基于靠前生成的假设和竞争假设之间的识别分值的差异而变化。
[0032] 在另一示例中,第一识别结果的置信度值可以基于识别结果的生成中或者前端信号分析的计算中使用的信号或特性。例如,信号可以包括搜索中使用的多个竞争假设或者探测搜索曲线的密度,前端示例可以包括估计的信噪特性,或者基于与现有的那些信道类型的模型的匹配的估计的信道类型(例如,免持vs.蜂窝vs.陆线)。这些信号的组合可以基于保存的数据有条件地优化。
[0033] 还可以作为来自声学模型和语言模型的分值的非线性组合来估计置信度。例如,给定最靠前的假设,系统可以提取分立的语言模型分值(例如,在处理任何语音之前的关于所识别的结果的先验估计),和声学模型分值(例如,该话语与最靠前结果所关联的声学单元的匹配程度)。这样系统可以作为对保存的数据进行有条件优化的这两个分值的非线性组合来估计总置信度结果。
[0034] 除了分值之外,可用于使置信度优化的另一信号基于经过语言模型的路径的类型。例如,对于n-gram语言模型,当系统未遇到特定的3词序列时,系统可以“回退”,或者从系统遇到的2词序列来估计关于3词序列的先验。针对给定假设对搜索必须经历回退估计的次数进行计数提供了可以在有条件地估计关于给定话语的置信度时使用的另一信号。
[0035] 在其他实现方式中,置信度值可以是识别结果是正确的后验概率。在一些实现方式中,可以基于格阵密度计算来计算后验概率。在其他示例中,可以使用语音的不太特定的声学模型,诸如收发话器回路,或者利用比主声学模型的参数少的参数训练的所有语音gmm,通过将最靠前假设与所有语音的更一般的模型比较来确定后验概率。所有这些关于置信度的后验估计的方法在本领域中是公知的,这些估计的组合也是公知的。
[0036] 在一些实现方式中,使用多种技术来计算置信度值。例如,置信度值基于后验概率以及相比于在语音识别任务期间生成的其他识别结果的结果的相似性。
[0037] 选择模块113可以将最终识别结果114传送到接口118,其进而可以将最终识别结果114传送到具有语音功能的电话簿信息服务器106。在一些实现方式中,接口118使用API的集合,其与在信息服务器126处执行的软件对接。例如,信息服务器126可以执行软件,其具有用于输入城市、州和企业名称的文本表示的公共方法。在其他实现方式中,接口118可以包括联网协议(例如,TCP/IP)用于在网络上向信息服务器126传送信息。
[0038] 尽管图1示出了分立的计算设备上的电话簿信息服务器106和语音识别器,但这不是必需的。在一些实现方式中,这两个系统可以在单个计算设备上实现。相似地,可以使用若干个计算设备实现每个系统。例如,可以使用如图2中示出的一个或多个计算机实现每个SRS。
[0039] 图2是用于对嵌入在音频传送中的语音解码的示例系统200的示图。出于说明的目的,系统200被分为两个部分:音频传送部分202和语音识别器部分204。音频传送部分202示出了用于将音频信号从用户传送到应用服务器的示例架构。语音识别器部分204示出了用于解释或解码音频传送表示的语音的示例架构。在该实现方式中,代表应用服务器执行解码,并且解码的语音被传送回应用服务器,用于在处理用户请求时使用。
[0040] 在一些实现方式中,系统200,音频传送部分202包括诸如蜂窝电话206的电话设备,其在网络(例如,POTS、蜂窝、互联网等)上向电话服务器212传送音频信号208。电话服务器可以将音频传送到诸如软件应用服务器214的另一计算设备或者直接传送到随后描述的语音识别系统。
[0041] 软件应用服务器214可以包括用户正在与其进行口头交互的软件应用。例如,软件应用服务器可以是日历应用。用户可以呼叫日历应用并且请求日历应用创建2012年5月16日的下午1:30到下午2:00的事件。软件应用服务器214可以将接收到的请求事件创建的口头输入转发到语音识别器部分204用于解码。
[0042] 在一些实现方式中,语音识别器部分204包括语音识别系统SRSA-D和语音识别系统(SRS)管理模块,其可以协调SRS用于在确定音频信号208最可能表示什么话语时使用。
[0043] 每个SRS可以在一个或多个方面不同。在一些实现方式中,SRS可以因它们底层声学模型而不同。例如,不同的声学模型可以针对特定的条件,例如用户的性别、口音、年龄范围或者特定的背景和前景噪声条件或者特定的传送信道。声学模型还可以因它们的架构和尺寸而变化,例如具有较少参数的较小的模型可以产生较快的识别,而具有较多参数的较大的模型可以产生更准确的结果。在其他示例中,声学模型可以因它们的训练过程而不同(例如,可以使用不同的随机化训练集合来训练模型或者可以使用不同的训练算法)。
[0044] 在一些实现方式中,SRS可以因它们的语言模型而不同。例如,模型可以针对不同类型的数据,例如特定不同域的语言模型、不同的粒度或者不同的地理位置。在另一示例中,模型可以因它们的架构、尺寸、训练过程等而不同。
[0045] 在其他实现方式中,SRS可以因其他组件而不同,诸如结束指针、前端、词典、置信度估计算法、搜索配置等。
[0046] 出于说明目的,图2中示出了用于SRSD的语言模型252、声学模型254和语音识别算法256。
[0047] 在一些实现方式中,当SRS管理模块250接收音频信号208时,其发起如下过程,通过该过程并行使用两个或更多个SRS来识别进入的话语。例如,通过四个SRS(SRSA-D)并行执行四个语音识别任务以试图识别由音频信号208表示的同一话语。
[0048] 在一些实现方式中,每个SRS可以具有特定延时。延时可以取决于SRS架构(例如,声学模型、语言模型或者其他组件),但是其也可以基于语音识别任务的特定实例而变化。例如,如果SRS具有指示话语将落在某组词(例如,是、否、不是、是的、肯定、否定、决不、叫喊等)中的信息,则关于特定模型的延时可以比SRS不具有指示其中讲出话语的约束上下文(例如,话语不在是或否问题的上下文中)的信息时的延时短。
[0049] 在一些实现方式中,每个SRS在完成其语音识别任务之后输出识别结果(例如,SRS确定进入的话语说出了什么),以及SRS有多确信其结果的正确性的度量。
[0050] 在一些实现方式中,SRS管理模块250具有识别结果监视器258,其跟踪SRS生成的识别结果262。结果监视器258还可以监视与识别结果262相关联的置信度值264或者分值。
[0051] 在一些实现方式中,结果监视器258可以计算关于每个识别结果的组合置信度分值。例如,SRSA和SRSB可以生成关于进入的话语的识别结果“5月16日”。SRSA可以使其结果与置信度值0.8相关联而SRSB可以使其结果与置信度值0.7相关联。结果监视器258可以计算关于结果“5月16日”的当前滑动平均值是0.75(即(0.8+0.7)/2)。每当SRS生成识别结果(和相应的置信度值)时,可以更新组合置信度值。
[0052] SRS管理模块250还可以包括延时监视器268,其跟踪每个SRS的延时(例如,到语音识别任务完成时的实际或估计时间)。例如,延时监视器268可以跟踪特定的语音识别任务耗用SRS的多长时间用于产生识别结果。
[0053] 延时监视器268还可以监视SRS是否已完成语音识别任务(例如,通过监视SRS是否输出识别结果)。此外,延时监视器268可以估计SRS完成语音识别任务的预测延时。例如,延时监视器268可以访问针对SRS收集的经验信息,其指示SRS耗用多长时间用于完成相似的语音识别任务(例如,先前耗用SRS的多长时间用于对在诸如回答特定提示问题的相似的上下文中说出的话语解码)。
[0054] 延时监视器260还可以访问关于底层模型的特性的信息以确定SRS完成语音识别任务的估计时间(例如,延时监视器260可以确定SRS是否由于必须搜索较大的词典以识别识别结果而耗用较长的时间以完成语音识别)。
[0055] SRS管理模块可以包括SRS中止器270,其与延时监视器260和/或识别结果监视器258通信以确定是否针对仍未完成接收的音频信号208的解码的SRS传送中止命令266。例如,SRS中止器270可以确定所跟踪的置信度值和/或延时是否满足操作点或曲线。如果是这样,则可以中止所有剩余的语音识别。
[0056] 在简单示例中,SRS管理模块250可以确定:在中止任何未完成的语音识别任务之前,应达到关于识别结果的0.75的置信度阈值。在一些实现方式中,对于不同的语音识别任务,置信度阈值可以变化。例如,如果与特定语音识别任务相关联的上下文信息指示识别结果限于相对小量的话语(例如,识别任务在回答呈现给用户的是或否的问题的上下文中),则SRS支持器270可以确定置信度值应是相对高的(例如,0.8、0.9、0.95)。
[0057] 如果上下文指示识别结果可以包括许多可能话语中的任何一个(例如,向用户提问诸如“你今天想做什么?”的开放问题),则SRS中止器270可以确定:关于识别结果的置信度阈值可以是相对低的(例如,0.49、0.55、0.61)并且对于SRS管理模块250仍是可接受的。
[0058] 在一些实现方式中,如果识别结果中的一个满足阈值置信度点(例如,0.75),则中止器270可以将中止命令266传送到任何未完成的SRS。例如,如果SRSA,B的组合置信度值等于或大于0.75,则中止器270可以将中止命令266传送到仍未生成识别结果的SRS。
[0059] 在另一示例中,如果识别结果中的一个具有等于或大于0.75的置信度值,则中止器270可以传送中止命令266。在该情况中,置信度值可以不是组合置信度值,相反可以是与单个SRS生成的识别结果相关联的单个置信度值。
[0060] 在其他实现方式中,SRS中止器270可以基于关于SRS的实际或估计延时来传送中止命令。例如,如果SRSA和SRSB已生成识别结果并且识别结果与非常低的置信度值相关联,则SRS中止器270可以中止剩余的未完成的语音识别任务。在该情况中,由于其他SRS仍未产生这样的识别结果,因此在仍未完成识别任务的SRS将不会产生具有高置信度值的识别结果的假设下,取消剩余的语音识别任务。
[0061] 不同于等待剩余SRS完成,在一些实现方式中,SRS中止器270可以传送中止命令266并且发起其中请求用户重复话语274的过程。SRS随后可以尝试对新的话语解码。
[0062] 在其他实现方式中,如果基于置信度值或其他参数,识别结果不是令人满意的,则SRS管理模块250可以发起其中请求切换到人类操作员的过程。例如,如箭头276指示的,人类操作员可以响应于用户来解释音频信号,其图示了将音频信号路由到呼叫中心278。人类操作员可以解决用户传达的请求或信息。
[0063] 在一些实现方式中,SRS中止器270可以首先询问延时监视器260以确定是否向未完成的SRS传送中止命令266。例如,如果SRS中止器270询问延时监视器260并且确定未完成的SRS中的一个很可能将在相对短的时间量内完成,则SRS中止器270可以拖延以从几乎完成的SRS获得结果。在生成结果之后,SRS中止器270可以传送中止命令266以停止剩余的未完成的SRS完成语音识别。
[0064] 在一些实现方式中,另外的识别结果和相关联的信息可能是足够有价值的,足以使中止命令的传送延迟直至几乎完成的SRS被完成。例如,如果与几乎完成的SRS相关联的特性指示其识别结果常常比先前完成的SRS的结果更准确,则在中止剩余的未完成的语音识别任务之前,中止器270可以等待直至几乎完成的SRS生成识别结果。
[0065] 在一些实现方式中,使用具有一个或多个变量的函数来确定置信度阈值。例如,置信度函数可以具有包括置信度值和延时的变量。如果所生成的置信度值和观察到的延时满足置信度函数,则中止器270可以取消任何未完成的语音识别任务。例如,在短的延时时段中,置信度函数可以指示:对于应满足的置信度函数,置信度值应是非常高的。这可以部分地基于如下假设:如果中止器270快速地发出中止命令,则由于将不会生成其他潜在的识别结果,因此所生成的结果是正确的概率应是非常高的。随着延时增加,在耗用较长时间处理的语音识别任务可能是更困难的假设下,所需的置信度值可以下降,并且因此结果的置信度很可能将是较低的。
[0066] SRS管理模块250还可以包括最终结果选择模块280,其在一些实现方式中从所生成的识别结果中选择最终识别结果。例如,选择模块280可以选择具有最高组合置信度值的识别结果或者具有最高单个置信度值的识别结果。
[0067] 在一些实现方式中,基于哪个SRS生成识别结果,最终识别结果的选择可被影响。例如,如果识别结果是由具有相对不同的组件(例如,语言模型、声学模型、语音识别算法等)和/或典型地产生不同的识别结果的SRS生成的,则选择模块280可以加权或偏好选择该识别结果。
[0068] 在一些实现方式中,SRS相关性监视器282可以跟踪SRS的输出识别结果之间的相关性。如果输出识别结果指示两个SRS不是高度相关的,然而在特定的识别任务中它们生成相同的识别结果,则在最终识别结果的选择中,该结果可以被更高地加权或偏好。替选地,如果生成识别结果的SRS是高度相关的,则识别结果可被打折或者不加权,从而在最终识别结果的选择中不一定偏好该结果。
[0069] 相关性监视器282可以基于SRS生成的识别结果动态地更新指定两个或更多个SRS之间的相关性的相关性值。例如,两个与低相关性值相关联的SRS可以开始产生相似的识别结果。相关性监视器282可以更新相关性值(例如,使其增加)以反映SRS之间的识别结果中的重叠增加。
[0070] 在最终结果选择模块280识别最终结果之后,SRS管理模块可以将结果传送回请求对音频信号解码的软件应用服务器。软件应用服务器可以使用解码的音频信号处理用户请求。
[0071] 图3是用于使用并行解码来识别语音的示例方法300的流程图。方法300可以例如由诸如系统100和200的系统执行,并且为了表达清楚,下面的描述使用系统100和200作为用于描述方法的示例的基础。然而,可以使用另一系统或者系统的组合来执行方法
300。
[0072] 在步骤302中,接收音频信号。例如,语音识别器108可以接收音频信号104。在一些实现方式中,音频信号104已被采样并且分割为数字用于在传送到语音识别器108之前进行处理。在其他实现方式中,语音识别器108也执行这些功能。
[0073] 在一些实现方式中,音频信号可能已被预处理以识别信号的哪些部分包含语音以及哪些部分被确定为噪声。接收到的音频信号104可能仅包括被确定为具有语音的部分,其随后可以在后面的步骤中由语音识别器108解码。
[0074] 在步骤304A-N中,发起语音识别任务(SRT)。在一些实现方式中,SRT基本上被同时发起并且开始对音频信号104表示的语音解码。诸如图2的SRSA-D的SRS可能具有处理音频信号的不同的延时,从而SRT可能需要不同的时间量来完成。
[0075] 在步骤306中,监视SRT的进展。例如,延时监视器260可以跟踪与每个SRS相关联的延时(实际的和估计的)。
[0076] 在步骤308中,确定任何SRT1-N是否已生成识别结果。例如,在识别结果被生成之后,SRS可以向识别结果监视器258输出识别结果(或者结果存在的指示)。如果没有SRS已生成识别结果,则方法300可以返回步骤306并且继续监视SRT的进展。如果SRS已生成一个或多个识别结果,则该方法可以继续到步骤310。
[0077] 在步骤310中,确定与所生成的识别结果相关联的任何置信度值是否满足置信度阈值。例如,SRS中止器270可以将关于识别结果的置信度值(单个或组合置信度值)与如前所述的置信度点或置信度函数比较。如果当前置信度值不满足置信度阈值,则方法300可以返回步骤306,其中监视SRT的进展。如果满足置信度阈值,则方法300可以进行到步骤312。
[0078] 在步骤312中,中止未完成的SRT。例如,如果存在并行执行的十个SRT并且四个已完成,则可以取消或中止剩余的六个SRT。在一些实现方式中,SRS中止器270可以向适当的SRS传送中止命令266,从而它们停止语音识别任务。
[0079] 在一些实现方式中,语音识别任务中的一个或多个未被中止,而是仅被“暂停”,(例如,处理任务的状态可以被保存并且稍后重新开始)。例如,如果识别结果最终被证明是不正确的(例如,当软件应用服务器提示用户确认语音已被正确解码时,用户否定答复),则可以重新开始“暂停的”语音识别任务。
[0080] 在一些实现方式中,可以基于例如执行SRT的SRS的准确性来有选择地暂停SRT。例如,如果识别结果与仅刚刚满足置信度阈值的置信度值相关联,则中止器270可以有选择地暂停更准确的SRS的SRT,同时中止剩余的SRT。如果识别结果最终被证明是不正确的,则可以重新开始更准确的SRS的暂停的SRT。
[0081] 在一些实现方式中,先前完成的SRT和先前中止的SRT可以与“未暂停的”SRT同时开始。较之SRT完全重新开始,这可以为更准确的SRT提供更多的时间用于完成。在其他实现方式中,基于用户确认不正确的识别而推断或确定的信息可以被集成到未暂停的SRT以及重新开始的任务中。例如,可以从语音解码的新的轮回中的考虑移除错误话语。此外,用于确定错误结果的一些声音、词等可以被忽视或者从识别处理的第二次轮回中的考虑排除。
[0082] 在步骤314中,基于所生成的结果选择最终识别结果。例如,最终结果选择模块280可以识别与最高平均置信度分值相关联的识别结果。在一些实现方式中,还可以基于产生结果的SRS的准确性来对选择加权,其中来自典型地准确的SRS的结果相对较不准确的SRS是被偏好的。在其他实现方式中,选择还可以基于生成结果或者与结果相关联的出现频率的机器之间的相关性。所选择的结果可以被输出到请求音频信号的解码的应用。接着,该方法可以结束。
[0083] 图4A-C示出了图示示例语音识别任务的执行的示图。图4A示出了四个SRS的四个SRT的执行。在图示实现方式中,并行发起SRT并且SRSA首先生成识别结果。SRSA确定关于其识别结果的0.7的置信度值。在一些实现方式中,SRS管理模块110可以将该置信度值与置信度阈值比较。如果置信度值不满足阈值,则允许剩余的任务执行。例如,如果置信度阈值是0.9的固定常数,则由于初始识别结果的0.7不满足阈值,因此SRS管理模块将允许剩余的SRS继续。
[0084] 接着,SRSB生成识别结果和相关联的0.85的值。该置信度值也不满足0.9的置信度阈值,因此允许剩余任务继续。
[0085] 此外,SRS管理系统还可以跟踪与每个SRS相关联的延时并且可以将这些延时与所允许的延时阈值比较。如图4A中所示,在一些实现方式中,如果SRS(例如,SRSC和SRSD)未在延时阈值之前产生识别结果,SRS管理模块110可以向它们传送中止命令。
[0086] 在一些实现方式中,如果在生成满足置信度阈值的识别结果之前SRT被中止,则SRS管理模块110可以选择具有最高置信度值的结果,即使其未满足置信度阈值。在一些实现方式中,次最高的置信度值可能必须位于将选择的置信度阈值的确定范围内(例如,10%)。在其他实现方式中,如果未选择识别结果,则SRS管理模块110可以发送重复口头输入的请求。
[0087] 图4B是图示一旦SRS生成具有满足置信度阈值的置信度值的识别结果则中止未完成的SRT的示图。在该示例中,置信度阈值是0.9。SRSA首先生成识别结果,但是其向结果分配0.7的置信度值,其低于置信度阈值。因此,SRS管理模块110允许SRSB-D继续执行。
[0088] SRSB接着生成识别结果并且将其分配0.9的置信度值。SRS管理模块110将该置信度值与置信度阈值比较并且确定满足阈值。SRS管理模块随后可以向SRSC和SRSD发出中止命令,其使它们各自的SRT停止而不产生识别结果。
[0089] 图4C是图示基于已生成的低置信度值的识别结果来中止未完成的SRT的示图。在该示例中,置信度阈值可以被设定在0.9的固定点。SRSA和SRSB生成识别结果,然而,这两个结果分别与0.3和0.25的相对低的置信度值相关联。假设置信度值均是相对低的,则在由于先前的SRS产生的识别结果具有明显低于置信度阈值的置信度值,因此这些SRS不太可能产生具有满足置信度阈值的置信度值的识别结果的假设下,SRS管理模块110可以向SRSC和SRSD传送中止命令。
[0090] 在如图4C中所示的一些实现方式中,SRS管理模块110可以在基于先前生成的识别结果的低置信度值而传送中止命令之前等待确定的时间量。在一些实现方式中,SRS管理模块110基于生成最后的识别结果的时间发起时间段。确定的时间段可以允许另一SRS完成其SRT;然而,如果在所允许的时间段期间未生成结果,则可以传送中止任何未完成的SRT的命令。
[0091] 在一些实现方式中,要等待的时间段的确定可以基于仍未生成识别结果的一个或多个SRS的估计延时。例如,SRS管理模块110可以确定SRSC具有剩余SRS中的最短估计延时。例如,SRSC可以具有典型的0.5秒的延时。如果SBSB在0.4秒之后生成识别结果,则语音识别管理模块100在传送中止命令之前可以延迟0.1秒以确定SRSC是否生成识别结果。
[0092] 在其他实现方式中,可以立即传送中止命令。例如,SRS管理模块110可以在确定数量的SRS生成也与低置信度值相关联的识别结果之后传送中止命令。在图4C中示出的情况中,可以在一半的SRS返回与低置信度值相关联的识别结果时传送中止命令。
[0093] 在一些实现方式中,如果置信度值是低的,则系统继续接收更多的识别结果直至系统确认复合(例如,总体/累积)置信度值高于某个阈值。对于一些识别任务,确认从未出现,并且系统可以通过拒绝话语来中止识别过程。因此,在一些实现方式中,存在三种类型的置信度:第一,来自每个识别过程的原始置信度;第二,从来自每个识别过程的原始置信度确定的累积总置信度;以及第三,当系统等待更多的识别事件时总置信度可能改变(例如,增加)的期望值。
[0094] 在一些情况中,系统跨越解相关的识别器接收到足够数量的一致的低置信度结果,促使中止所有识别任务并且拒绝话语。如果发生拒绝,则系统可以提示用户重复话语。例如,当各原始置信度值是一致地低的,累积总置信度是低的,以及总置信度随着更多的识别而可能改变的期望值也是低的时候,可能出现拒绝情况。
[0095] 在一些实现方式中,通过针对给定的部分识别置信度的训练样本,对最终识别置信度的分布进行计数,提早执行对于给定的特定置信度值集合的关于估计的预期置信度改变的训练。(例如,在看到来自前20个快识别器的20个低于0.1的置信度值之后,系统不再体验其中关于超过20个识别器的组合置信度值使总置信度值增加到0.5以上的示例。因此,系统被训练为当该情形出现时拒绝话语。)
[0096] 在一些实现方式中,与最终识别结果相关联的组合置信度可以是来自各SRS的各置信度值的函数。具有来自彼此也匹配的许多识别器的高置信度值的结果与高组和置信度值一致。每个识别器的单独贡献的加权可以基于训练过程期间的测试数据的识别的实验优化。
[0097] 图5A-C是SRS生成的示例识别结果和置信度值以及选择最终识别结果的不同方法的示图。具体地,图5A-C示出了来自SRSA的SRSA输出502、来自SRSB的SRSB输出504和来自SRSC的SRSC输出506。在该示例中,响应于每个SRS尝试对表示词“carry”的音频信号解码生成输出。如图5A-C所示,由于每个SRS可能是不同的,因此SRS产生的识别结果可能是不同的。
[0098] 在一些实现方式中,SRS输出包括靠前的N个识别结果(其中N可以表示任何正整数或0),其是基于哪些识别结果与最大置信度值相关联而选择的。例如,SRSA输出502包括关于SRSA的前四个识别结果和相关联的置信度值:结果=carry,置信度=0.75;结果=Cory,置信度=0.72;结果=quarry,置信度=0.6;和结果=hoary,置信度=0.25。
[0099] SRSB输出504包括:结果=quarry,置信度=0.61;结果=Cory,置信度=0.59;结果=hoary,置信度=0.4;和结果=Terry,置信度=0.39。
[0100] SRSC输出506包括结果=tarry,置信度=0.58;结果=Terry,置信度=0.57;结果=Cory,置信度=0.55;和结果=carry,置信度=0.2。
[0101] 图5A示出了选择与最高置信度值相关联的识别结果的示例选择算法。例如,最终结果选择模块113可以比较所有识别结果并选择与最大置信度值相关联的一个识别结果。在该示例中,由于结果“carry”与所有置信度值中的最高置信度值0.75相关联,因此被选择为最终识别结果。选择模块随后可以输出识别结果“carry”用于由请求语音解码的应用进行进一步处理。
[0102] 图5B示出了基于哪个结果具有最高组合置信度值来选择识别结果的示例选择算法。例如,多于一个SRS可以生成相同的识别结果,但是可以向该结果分配不同的置信度值。在一些实现方式中,关于相同结果的多个置信度分值可以被取平均(或者另外组合)以创建组合置信度分值。例如,SRSA和SRSC生成识别结果“carry”,然而,SRSA向结果分配0.75的置信度值并且SRSC向结果分配0.2的置信度值。这些置信度值的平均值是0.475。
[0103] 相似地,关于识别结果“Cory”的平均组合置信度分值是0.61并且关于“quarry”的组合置信度分值是0.62。在该示例中,由于结果“quarry”的组合置信度分值大于其他结果的组合置信度分值,因此选择模块113可以选择“quarry”作为最终识别结果。应当注意,该选择算法产生了不同于图5B中描述的算法的最终结果,尽管事实是从相同的识别结果池中进行选择。
[0104] 图5C示出了在选择识别结果时考虑加权因子的示例选择算法。在一些实现方式中,权重可以基于识别结果的出现频率。例如,表550列出了三个权重,它们可以与前面讨论的组合置信度分值倍乘以创建新的加权置信度分值。
[0105] 在该示例中,如果识别结果由单个SRS生成(例如,如果结果出现频率是“一次”),则将权重“1”与组合置信度分值倍乘。因此,如果识别结果仅出现一次,则将不会受益于加权。如果识别结果出现两次,则可以使用因子1.02对其加权,这使得相对仅出现一次的另一识别结果略微偏好该识别结果。如果识别结果出现三次,则可以通过因子1.04对其加权。
[0106] 在图5C的示例中,关于识别结果“Cory”的组合置信度值将按因子1.04进行加权,这导致了0.6344的加权值。关于识别结果“quarry”的组合置信度值将按因子1.02进行加权,这导致了0.6324的加权值。在该情况中,选择模块113可以相对于结果“quarry”选择结果“Cory”,这是因为后者的加权组合置信度分值高于前者,尽管“Cory”的未加权组合置信度分值小于结果“quarry”的未加权组合置信度分值。
[0107] 用于选择最终识别结果的值可以基于若干种标准进行加权,其包括但不限于,SRS生成的置信度分值的分布、生成识别结果的SRS的特性(例如,整体准确性、特定上下文中的准确性、定义的时间段上的准确性等)以及产生相同识别结果的SRS之间的相似性。
[0108] 在其他实现方式中,最终识别结果可以使用识别置信度值与关于识别器和关于最终组合识别器的识别错误的相关性进行加权。例如,在训练期间,系统可以对特定识别器以置信度值0.3返回的次数计数,并且还对这些“0.3置信度识别结果”是关于该识别器的错误的频繁度以及最终组合识别也是识别错误的频繁度计数。当组合相似的识别结果时,系统可以使用相同的正态化计数。根据识别器具有相同的结果(具有给定的置信度值)和共同的结果是正确的次数来估计组合置信度。
[0109] 图6是用于对最终识别结果的选择中使用的值加权的置信度值的分布的示例曲线图600。曲线图的y轴指示其中特定的置信度值沿正态化比例(从0.0到1.0)下降。曲线图的x轴标记哪个特定SRS产生哪个识别结果。在该示例中,SRSA生成五个识别结果,其中四个朝向可能的置信度值的中下范围相对紧密地聚在一起。单个识别结果“quarry”明显与其他识别结果分离并且具有相对较高的置信度值。这可以指示SRSA具有结果“quarry”明显优于其他结果的较大的置信度,其他结果是彼此更加可互换的。
[0110] 在一些实现方式中,外部的或者分离的较高置信度值可以被加权以偏好选择相关联的识别结果。例如,选择模块113可以以常数1.05对关于结果“quarry”的置信度值0.9加权。关于“quarry”的得到的置信度值于是增加到0.945。
[0111] 替选地,较均匀间隔的置信度值可能不接收额外的加权(或者可以接收较小的加权)。例如,关于SRSB生成的识别结果的置信度值较均匀地间隔,没有明显的偏值。在该情况中,选择模块113可以不向关于排名靠前的识别结果“quarry”的置信度值添加权重,这是因为排名靠前的识别结果不太可能是正确的(例如,“quarry”未突出为远离具有较低置信度值的结果簇中的靠前结果)。
[0112] 图7A-E是示出SRS输出的示例识别结果集合和可用于对识别结果加权的集合之间的相关性的Venn示图。图7A是包括三个识别结果集合,即SRSA生成的识别结果A、SRSB生成的识别结果B和SRSC生成的识别结果C的Venn示图700。
[0113] 如Venn示图700所示,结果A、结果B和结果C部分地重叠。在该示例中,结果A和结果B较之结果A和结果C或者结果B和结果C之间的重叠具有更多的重叠结果。这可以指示SRSA和SRSB常常产生相同的识别结果,而SRSC的结果常常不对应于SRSA或SRSB的结果。
[0114] 在一些实现方式中,结果的交集基于哪些SRS响应于特定的语音识别任务产生相同的识别结果。例如,如果两个SRS生成关于特定任务的排名靠前的识别结果,则该结果可以被添加到交集。
[0115] 在另一示例中,如果第一SRS生成识别结果“Cory”作为其靠前结果并且第二SRS生成识别结果“Cory”作为其(五个生成结果中的)第四排名结果,则结果“Cory”被添加到交集。在一些实现方式中,都不与靠前排名相关联的结果不会被添加到交集结果,但是也可以与指示它们排名不同的折扣因子相关联。例如,两个排名之间的差异可以用于折扣与交集相关联的加权因子(例如,每个排名差异可以与折扣因子相关联)。例如,如果排名是1和4,则绝对差异是3,其可以与0.3的折扣因子相关联,该折扣因子与交集所关联的权重倍乘。例如,如果权重是1.03并且折扣因子是0.3,则总权重可以与权重1.03的“提升”因子相乘,即与0.03相乘。这导致新的更低的提升因子0.01,从而新的总权重值是1.01。
[0116] 在一些实现方式中,SRS之间的识别结果的重叠可用于对识别结果加权,从而它们在选择最终识别结果时被偏好或冷遇。例如,如果识别结果是由两个常常一致的SRS生成的,则相对于由不常一致的两个SRS生成的识别结果,其被较小地加权(或者冷遇)。图7B-7E更详细地图示了这一点。
[0117] 图7B示出了仅包括来自图7A的Venn示图700的结果A和结果B的Venn示图710。如前所述,基于SRSA和SRSB在它们的识别结果上的相似性,它们可以被分类为略微相似。在一些实现方式中,加权因子可以被分配给落在两个(或更多个)SRS之间的重叠中的识别结果。例如,加权因子0.01可以与落在该集合中的识别结果相关联。
[0118] 在一些实现方式中,当重叠较大时,该加权因子较小,并且当重叠较小时,该加权因子较大。这可以反映如下假设,不常一致的SRS生成的结果应被偏好,因为这些重叠的结果很可能是正确的。例如,产生不同结果的SRS可以具有不同的底层架构并且对不同类型的识别错误敏感。
[0119] 图7C示出了仅包括来自图7A的Venn示图700的结果A和结果C的Venn示图720。在该示例中,结果之间的重叠小于图7B中示出的重叠。因此,在该实现方式中,对于落在该重叠中的结果相对于图7B中示出的交集中的结果,0.6的加权因子是较大的。
[0120] 相似地,图7D示出了包括结果B和结果C的Venn示图730。这些结果的交集具有介于图7B和7C的交集之间的尺寸。因此,在该实现方式中,加权因子也具有介于与图7B和7C的交集相关联的加权因子之间的尺寸(例如,0.03)。
[0121] 图7E示出了图也在7A中示出的Venn示图700,然而,突出了所有SRSA-C的结果之间的交集。该交集反映了每个SRS已生成的识别结果的集合。假定三个SRS之间的一致是相对少的(在该示例中),落在该集合中的识别结果可以与高于其他权重的权重相关联,即0.1。
[0122] 图8A和8B示出了图示在系统的运行操作期间SRS之间的交集如何调整或改变的Venn示图800和810。在一些实现方式中,随着识别结果的交集改变,与交集相关联的权重也可以改变。
[0123] 图8A示出了SRSA和SRSB生成的识别结果中的示例第一交集。第一交集与权重0.01相关联。在一些实现方式中,语音识别器108执行额外的语音解码并且生成额外的识别结果。SRS相关性监视器282可以监视这些结果并且识别各个SRS之间的结果的交集。
[0124] 相关性监视器282可以随着生成更多的结果动态地更新交集计算。这由图8B图示,除了交集改变之外,其示出了图8A中示出的相同的SRSA和SRSB。在该示例中,由于SRS对于特定语音识别任务达成一致的次数相对于SRS已执行任务的次数增加,因此交集增长。
[0125] 也可以响应于增加的交集来减小权重。例如,示图810的结果交集可以与较低的权重0.001相关联。在一些实现方式中,权重值的改变可以与结果交集的尺寸改变线性关联。例如,当识别器与另一识别器相似时,系统可以较少地加权或偏好来自该识别器的结果。在图8A和8B中,两个识别器的识别结果的相似性被表述为两个识别器之间的交集,其中交集越大,系统可以在两个识别器生成相同结果时附加到识别结果的权重越小。相反地,当两个识别器非常不同时(例如,由于不同的语音识别算法等,它们通常产生不同的识别结果),结果的交集可以是较小的。当这两个不同的识别器随后对话语达成一致时,由于一致可以指示结果很可能是正确的,因此系统可以对它们的结果加权,从而它们被系统更重地考虑。
[0126] 图9是图示将与识别结果相关联的SRS错误率和权重之间的示例相关性的曲线图900。在一些实现方式中,在选择最终识别结果时,具有低错误率的SRS生成的识别结果可以被更重地加权。例如,如果SRS具有高错误率,则较之由高准确度的SRS生成的识别结果,其识别结果可以被折扣(或者不被重加权)。
[0127] 曲线图900图示了用于向特定SRS分配权重的示例函数或算法。曲线图900的y轴指示与SRS相关联的错误率,并且x轴指示与SRS相关联的权重。在该示例中,折扣权重(例如,0.9、0.95、0.8)用于对具有高于确定阈值的错误率的SRS(例如,SRSA、SRSE、SRSC)加权。提升权重(例如,1.01、1.04、1.1)用于对具有低于阈值的错误率的SRS(例如,SRSB)加权。在该示例中,中性权重(例如,1)用于对落在错误阈值上的SRS(例如,SRSD)加权。
[0128] 在一些实现方式中,与每个SRS相关联的错误率可以基于识别结果不正确的确认而被更新(例如,该结果被选择为最终识别结果并且被用户拒绝,基于用户接受,第一结果被选择为最终识别结果并且被确定为正确的,因此未被选择的结果被记录为错误结果等)。选择模块113可以基于与每个SRS相关联的更新的错误率来动态地改变权重。
[0129] 图10是可用于实现本文中描述的系统和方法的作为客户端或者服务器或多个服务器的计算设备1000、1050的框图。计算设备1000旨在表示各种形式的数字计算机,诸如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机和其他适当的计算机。计算设备1050旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他相似的计算设备。此外,计算设备1000或1050可以包括通用串行总线(USB)闪速驱动器。USB闪速驱动器可以存储操作系统和其他应用。USB闪速驱动器可以包括输入/输出组件,诸如无线传送器或USB连接器,其可以被插入到另一计算设备的USB端口。这里示出的组件、它们的连接和关系以及它们的功能仅是示例性的,并非限制本文中描述和/或要求保护的本发明的实现方式。
[0130] 计算设备1000包括处理器1002、存储器1004、存储设备1006、连接到存储器1004和高速扩展端口1010的高速接口1008以及连接到低速总线1014和存储设备1006的低速接口1012。每个组件1002、1004、1006、1008、1010和1012使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器1002可以处理用于在计算设备1000中执行的指令,包括存储在存储器1004中或者存储设备1006上的指令,以在诸如耦合到高速接口1008的显示器1016的外部输入/输出设备上显示关于GUI的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。而且,可以连接多个计算设备1000,每个设备提供必要的操作的一部分(例如,作为服务器阵列、刀片服务器组或者多处理器系统)。
[0131] 存储器1004存储计算设备1000中的信息。在一个实现方式中,存储器1004是易失性存储器单元。在另一实现方式中,存储器1004是非易失性存储器单元。存储器1004还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
[0132] 存储设备1006能够提供用于计算设备1000的大容量存储。在一个实现方式中,存储设备1006可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或者带设备、闪速存储器或者其他相似的固态存储器设备,或者设备的阵列,包括存储区域网络或者其他配置中的设备。计算机程序产品可以有形地实现在信息载体中。计算机程序产品也可以包含指令,当其被执行时,执行诸如上文描述的一个或多个方法。信息载体是计算机或机器可读介质,诸如存储器1004、存储设备1006或者处理器1002上的存储器。
[0133] 高速控制器1008管理关于计算设备1000的带宽密集操作,而低速控制器1012管理较低带宽密集操作,该功能分配仅是示例性的。在一个实现方式中,高速控制器1008耦合到存储器1004、显示器1016(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1010,其可以接受各种扩展卡(未示出)。在实现方式中,低速控制器1012耦合到存储设备1006和低速扩展端口1014。低速扩展端口可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网),可以耦合到一个或多个输入/输出设备,诸如键盘、指针设备、扫描仪或者例如通过网络适配器耦合到诸如交换机或路由器的联网设备。
[0134] 如图中所示,计算设备1000可以以许多不同的形式实现。例如,其可以被实现为标准服务器1020,或者更多时间实现在这样的服务器的组中。其还可以被实现为机架式服务器系统1024的一部分。此外,其可以被实现为诸如膝上型计算机1022的个人计算机。替选地,来自计算设备1000的组件可以与诸如设备1050的移动设备(未示出)中的其他组件组合。每个这样的设备可以包含一个或多个计算设备1000、1050,并且整个系统可以由彼此通信的多个计算设备1000、1050构成。
[0135] 除其他组件之外,计算设备1050包括处理器1052、存储器1064、诸如显示器1054的输入/输出设备、通信接口1066和收发器1068。设备1050还可以提供有诸如微驱动器或其他设备的存储设备以提供额外的存储。每个组件1050、1052、1064、1054、1066和1068使用各种总线互连,并且若干个组件可以安装在公共主板上或者以其他适当的方式安装。
[0136] 处理器1052可以执行计算设备1050中的指令,包括存储在存储器1064中的指令。处理器可以被实现为包括分立的多个模拟和数字处理器的芯片的芯片组。此外,处理器可以使用许多架构中的任何架构实现。例如,处理器410可以是CISC(复杂指令集计算机)处理器、RISC(简化指令集计算机)处理器或者MISC(最小指令集计算机)处理器。处理器可以提供例如设备1050的其他组件的协调,诸如用户接口的控制、设备1050运行的应用以及设备1050的无线通信。
[0137] 处理器1052可以通过耦合到显示器1054的控制接口1058和显示接口1056与用户通信。显示器1054可以是例如TFT(薄膜晶体管液晶显示器)显示器或者OLED(有机发光二极管)显示器或者其他适当的显示技术。显示接口1056可以包括用于驱动显示器1054将图形和其他信息呈现给用户的适当的电路。控制接口1058可以从用户接收命令并且对它们进行转换以提交给处理器1052。此外,外部接口1062可以被提供为与处理器1052通信,以便于使设备1050能够与其他设备进行近程通信。例如,在一些实现方式中外部接口1062可以提供有线通信,或者在其他实现方式中提供无线通信,并且多个接口也可以被使用。
[0138] 存储器1064存储计算设备1050中的信息。存储器1064可以被实现为一个或多个计算机可读介质、易失性存储器单元或者非易失性存储器单元。还可以提供扩展存储器1074并且通过扩展接口1072将其连接到设备1050,该扩展接口1072可以包括例如SIMM(单列直插存储器模块)卡接口。该扩展存储器1074可以提供用于设备1050的额外的存储空间,或者也可以存储用于设备1050的应用或者其他信息。具体地,扩展存储器1074可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器
1074可以被提供为用于设备1050的安全模块,并且可以通过允许设备1050的安全使用的指令进行编程。此外,可以经由SIMM卡与另外的信息一起提供安全应用,诸如以不可破解的方式将识别信息置于SIMM卡上。
[0139] 存储器可以包括例如如下文讨论的闪速存储器和/或NVRAM存储器。在一个实现方式中,计算机程序产品被有形地实现在信息载体中。计算机程序产品包含指令,当其被执行时,执行诸如上文描述的一个或多个方法。信息载体是计算机或机器可读介质,诸如存储器1064、扩展存储器1074或者处理器1052上的存储器。
[0140] 设备1050可以通过在必要时包括数字信号处理电路的通信接口1066无线通信。通信接口1066可以提供各种模式或协议下的通信,诸如GSM语音呼叫,SMS、EMS、或者MMS消息传递,CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。该通信可以例如通过射频收发器
1068进行。此外,短程通信可以诸如使用蓝牙、WiFi或者其他这种收发器(未示出)进行。
此外,GPS(全球定位系统)接收器模块1070可以向设备1050提供额外的导航和位置相关的无线数据,其可以由在设备1050上运行的应用适当地使用。
[0141] 设备1050还可以使用音频编解码器1060进行可听通信,该音频编解码器1060可以接收从用户说出的信息并且将其转换为可使用的数字信息。音频编解码器1060同样可以诸如通过例如设备1050的听筒中的扬声器为用户生成可听声音。该声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备1050上操作的应用生成的声音。
[0142] 如图中所示,计算设备1050可以以许多不同的形式实现。例如,其可以被实现为蜂窝电话1080。其还可以被实现为智能电话1082、个人数字助理或者其他相似的移动设备的一部分。
[0143] 这里描述的系统和技术的各种实现方式可以在数字电子电路、集成电路、专设计的ASIC(专用集成电路)、计算机硬件固件、软件和/或它们的组合中实现。这些各种实现方式可以包括一个或多个计算机程序中的实现方式,该计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器是专用的或通用的,被耦合为从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向其传送数据和指令。
[0144] 这些计算机程序(还被称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令,并且可以在高级程序和/或面向对象的编程语言中和/或在汇编/机器语言中实现。如这里使用的,术语“机器可读介质”、“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指的是用于向可编程处理器提供机器指令和/或数据的任何信号。
[0145] 为了提供与用户的交互,这里描述的系统和技术可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘以及指针设备(例如,鼠标轨迹球)。其他类别的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感知反馈(例如,视觉反馈、听觉反馈或者触觉反馈);并且来自用户的输入可以以任何形式接收,包括声音、语音或触觉输入。
[0146] 这里描述的系统和技术可以在如下计算系统中实现,其包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户接口或Web浏览器的客户端计算机,用户可以通过该图形用户接口或Web浏览器与这里描述的系统和技术的实现方式交互),或者该后端、中间件或前端组件的任何组合。系统的各个组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、对等网络(具有自组织或静态成员)、栅格计算基础设施和互联网。
[0147] 该计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系依靠在各个计算机上运行的并且彼此具有客户端-服务器关系的计算机程序而产生。
[0148] 已描述了本发明的许多实施例。然而,将理解,在不偏离本发明的精神和范围的情况下可以进行各种修改。例如,多个SRS的组合或联合置信度分值可以包括诸如关于话语的识别的假设或猜想的一致性的特征。例如,输出具有置信度0.8的第一结果的三个SRS可能比输出具有置信度0.9的第二结果的一个SRS更加可靠。
[0149] 在一些实现方式中,可以基于延时或其他因素选择使用预定SRS集合。例如,如果响应于提示用户回答是或否的问题而接收到音频,则最快的两个SRS可以被选择为处理答案而非允许所有可用的SRS处理答案。
[0150] 此外,在一些实现方式中,当SRS生成的各识别结果不一致时,最终识别结果的整体置信度可能下降。在识别结果未完全重叠时用于选择“最佳”当前结果的一个示例算法是选择具有最高单独置信度的识别结果。在该示例中,当系统具有相似的不重叠条件和相似的给定置信度值时,组合置信度将是在训练期间计数的正确的识别结果的期望数值。对于识别结果中的给定量的部分重叠,还可以估计相似的计数和统计。因此,由于/如果重叠程度与训练期间的较少的整体识别错误相关,整体系统可以向部分重叠的识别结果的组合分配较高的置信度值。
[0151] 例如,可以通过对步骤重新排序、添加步骤或者移除步骤来使用上文示出的各种形式的流程。而且,尽管已描述了在语音解码中使用多个语音识别系统的若干个应用和方法,但是应当认识到,许多其他应用也在考虑范围内。因此,其他实施例在所附权利要求的范围内。
QQ群二维码
意见反馈