用于使用搜索查询信息的言语识别处理的方法和系统与流程

文档序号:12678439阅读:253来源:国知局
用于使用搜索查询信息的言语识别处理的方法和系统与流程
本申请属于申请日为2013年10月14日的中国发明专利申请201380064902.5的分案申请。相关申请的交叉引用本申请要求2013年3月15日提交的并且题为“MethodsAndSystemsForSpeechRecognitionProcessingUsingSearchQueryInformation”的美国专利申请序列号13/832,136的优先权,它是2012年10月18日提交的并且题为“MethodsandSystemsforSpeechRecognitionProcessingUsingSearchQueryInformation”的美国专利申请序列号61/715,365的非临时申请,所有这些专利申请在此通过引用并入本文,如同在本说明书中充分阐述一样。
背景技术
:自动言语识别(ASR)技术可用于将音频话语映射至那些话语的文本表示。一些ASR系统使用“训练”,其中个体说话人将文本段读入到言语识别系统中。这些系统分析人的特定语音并且使用该语音来精细调节对该人的言语的识别,从而得到更准确的转录。不使用训练的系统可被称作“说话人无关”的系统。使用训练的系统可被称作“说话人有关”的系统。技术实现要素:本申请公开了用于言语识别处理的系统和方法。在一个方面,描述了一种方法。该方法可包括在计算装置处接收指示搜索查询向搜索引擎的提交频率的信息。所述搜索查询可包括词序列。所述方法还可包括基于所述搜索查询的提交频率超过阈值,针对所述搜索查询的所述词序列基于所述搜索查询的一个或多个词出现于所述搜索查询的所述词序列中的顺序来确定所述一个或多个词的分组。所述方法还可包括将指示所述分组的信息提供给言语识别系统以更新给定词序列的语料库。所述言语识别系统可被配置为基于给定词序列的语料库将给定说出话语转换为给定词序列。在另一方面,描述了一种其上存储有指令的计算机可读介质,所述指令在由计算装置执行时使得所述计算装置执行功能。所述功能可包括接收指示搜索查询向搜索引擎的提交频率的信息。所述搜索查询可包括词序列。所述功能还可包括基于所述搜索查询的提交频率超过阈值,针对所述搜索查询的所述词序列,基于所述搜索查询的一个或多个词出现于所述搜索查询的所述词序列中的顺序来确定所述一个或多个词的分组。所述功能还可包括将指示所述分组的信息提供给言语识别系统以更新给定词序列的语料库。所述言语识别系统可被配置为基于给定词序列的语料库将给定说出话语转换为给定词序列。在另一方面,描述了一种装置。所述装置可包括至少一个处理器。所述装置还可包括数据存储装置以及该数据存储装置中的程序指令,所述程序指令在由所述至少一个处理器执行时使得所述装置接收指示搜索查询向搜索引擎的提交频率的信息。所述搜索查询可包括词序列。所述数据存储装置中的程序指令在由所述至少一个处理器执行时还使得所述装置基于所述搜索查询的提交频率超过阈值,针对所述搜索查询的所述词序列基于所述搜索查询的一个或多个词出现于所述搜索查询的所述词序列中的顺序来确定所述一个或多个词的分组。所述数据存储装置中的程序指令在由所述至少一个处理器执行时还使得所述装置将指示所述分组的信息提供给言语识别系统以更新给定词序列的语料库。所述言语识别系统可被配置为基于给定词序列的语料库将给定说出话语转换为给定词序列。所述言语识别系统还可包括所述语料库的给定词序列的出现概率。以上
发明内容仅是例示性的,而非意在以任何方式限制。除了例示方面以外,上述实施例和特征,另外的方面、实施例和特征将通过参照附图以及以下具体实施方式而变得显而易见。附图说明图1图示出依据示例实施例的示例自动言语识别(ASR)系统。图2图示出依据实施例的示例声学模型的各方面。图3图示出依据实施例的ASR系统的示例搜索图。图4是依据实施例的用于言语识别处理的示例方法的流程图。图5A图示出依据实施例的示例搜索查询的示例自动机表示。图5B图示出依据实施例的示例搜索查询的示例bi-gram语言模型。图5C图示出依据实施例的示例搜索查询的示例因子图。图6图示出依据示例实施的示例分布式计算架构。图7A是依据示例实施例图示的示例计算装置的框图。图7B示出依据示例实施例的基于云的服务器系统。图8是图示出根据本文所呈现的至少一些实施例布置的示例计算机程序产品的局部概念图的示意图,该计算机程序产品包括用于在计算装置上执行计算机处理的计算机程序。具体实施方式以下具体实施方式参照附图描述了所公开的系统和方法的各种特征和功能。在附图中,除非上下文另外指示,否则相似的标号标识相似的组件。本文所描述的例示系统和方法实施例并非意在限制。可容易地理解,所公开的系统和方法的某些方面可按照各种各样的不同配置来布置和组合,其全部在本文中被预期。随着计算能力不断增加,自动言语识别(ASR)系统和装置可被部署在各种环境中以提供基于言语的用户接口。这些环境中的一些包括住宅、企业、车辆等。例如,在住宅和企业中,ASR可对诸如大家电(例如,烤箱、冰箱、洗碗机、洗衣机和烘干机)、小家电(例如,烤面包机、恒温器、咖啡机、微波炉)和媒体装置(立体声、电视、数字视频记录器、数字视频播放器)的装置以及门、灯、窗帘等提供语音控制。在车辆中,ASR可提供通信技术(例如,蜂窝电话)、媒体装置(例如,收音机和视频播放器)、地图技术(例如,导航系统)、环境控制(例如,供热装置和空调)等的免提使用。在示例中,ASR可用于将语音搜索查询转换为文本串,该文本串可被发送给搜索引擎以获得搜索结果。语音控制的潜在用途有许多,并且这些示例不应被视为限制。在示例中,可在从说话人接收话语的装置处执行ASR。对于此基于装置的ASR,每个用户装置可配置有ASR模块。在另一示例中,可在远程网络服务器(例如,互联网上的服务器或者服务器集群)处执行言语识别。尽管在此示例中言语识别可能没有将ASR并入用户装置中,但是用户装置仍可被配置为具有与远程ASR系统的通信路径(例如,通过互联网接入)。在另一示例中,言语识别可通过使用本地ASR系统来执行,该本地ASR系统将ASR的至少一些方面的执行卸下给远程装置。本地ASR系统可以是执行ASR的专用装置或者被配置为例如在通用计算平台上操作的软件。该本地ASR系统可在物理上位于住宅、企业、车辆等中,并且即使用户装置没有互联网接入也可操作。在一些示例中,用户装置可从说话人接收话语并且将话语的表示发送给本地ASR系统。本地ASR系统可将话语的表示转录为话语的文本表示,并且将该文本表示发送给用户装置。另选地,本地ASR系统作为替代可基于话语的转录将命令发送给用户装置。此命令可基于话语的转录的文本表示,或者可从话语的表示更直接地导出。所述命令还可以是用户装置所支持的命令集或命令语言。在一个示例中,话语可表示语音搜索查询,并且本地ASR系统可被配置为将语音搜索查询的转录发送给搜索引擎,以获得可通信给用户装置的相应的搜索结果。图1图示出依据实施例的示例ASR系统。在运行时,ASR系统的输入可包括话语100,并且输出可包括一个或多个文本串以及可能关联的置信度101。ASR系统的组件可包括可被配置为生成特征向量104的特征分析模块102、模式分类模块106、声学模型108、字典110和语言模型112。模式分类模块106可包含声学模型108、字典110和语言模型112的各种方面。图1所描绘的示例ASR系统仅用于例示。其它ASR系统布置方式也是可能的,包括不同的组件、组件之间的不同关系和/或不同的处理。特征分析模块102可被配置为接收话语100。话语100可包括人类言语的模拟或数字表示,并且可能也许还包含背景噪声。特征分析模块102可被配置为将话语100转换为一个或多个特征向量104的序列。特征向量104中的每个特征向量可包括话语100的至少一部分的声学特征的时间和/或频谱表示。例如,特征向量可包括此类部分的mel频率倒谱系数。mel频率倒谱系数可表示话语100的一部分的短时功率谱。它们可基于例如频率的非线性mel尺度上的对数功率谱的线性余弦变换。(mel尺度可以是由听者主观感知的音高约相等地彼此远离的尺度,即使这些音高的实际频率并不相等地彼此远离)。为了导出这些系数,特征分析模块102可被配置为采样并量化话语100,将话语100分割成15毫秒的交叠或不交叠的帧,并且对帧执行频谱分析以导出每个帧的频谱分量。特征分析模块102还可被配置为执行噪声去除,将标准频谱系数转换为mel频率倒谱系数,并且计算mel频率倒谱系数的一阶和二阶倒谱导数。一阶倒谱系数导数可基于在两个或更多个连续帧的窗口上执行的线性回归的斜率来计算。二阶倒谱系数导数可基于在一阶倒谱系数导数的两个或更多个连续集合的窗口上执行的线性回归的斜率来计算。然而,可存在计算一阶和二阶倒谱系数导数的其它方式。在一些示例中,话语100的一个或多个帧可通过mel频率倒谱系数、一阶倒谱系数导数和二阶倒谱系数导数的特征向量来表示。例如,特征向量可包含13个系数、13个一阶导数和13个二阶导数,因此长度为39。然而,在其它可能的示例中,特征向量可使用特征的不同组合。模式分类模块106可被配置为从特征分析模块102接收特征向量104的序列,并且生成话语100的一个或多个文本串转录101作为输出。每个转录101可伴随有相应的置信度,该置信度指示转录正确的所估计的可能性(例如,80%置信度、90%置信度等)。为了生成文本串转录101,模式分类模块106可被配置为包括或包含声学模型108、字典110和/或语言模型112的各方面。在一些示例中,模式分类模块106还可被配置为使用搜索图,该搜索图表示出现在说出话语中的词或子词声学特征的序列。声学模型108可被配置为确定特征向量104可能已经从说出词和/或子词音的特定序列导出的概率。这可涉及将特征向量104的序列映射至一个或多个音素,并且然后将音素的序列映射至一个或多个词。音素可被视为话语的最小片段,其涵盖与话语的其它片段的有意义对照。因此,词通常包括一个或多个音素。例如,音素可被认为是字母的发声;然而,一些音素可呈现多个字母。词“cat”的美式英语发音的示例音素拼法可为/k//ae//t/,包括音素/k/、/ae/和/t/。词“dog”的另一示例音素拼法可为/d//aw//g/,包括音素/d/、/aw/和/g/。存在不同的音素字母表,这些字母表对于其中的各种音素可具有不同的文本表示。例如,字母“a”对于在“cat”中的音可由音素/ae/表示,对于在“ate”中的音可由音素/ey/表示,对于在“beta”中的音可由音素/ah/表示。其它音素表示也是可能的。美式英语的常见音素字母表包含约40个不同的音素。这些音素中的每一个可与特征向量值的不同分布关联。声学模型108可被配置为通过将特征向量与40个音素中的每一个的分布进行比较并寻找最可能由特征向量表示的一个或多个音素来估计特征向量中的音素。在一个示例中,声学模型108可包括隐式马尔可夫模型(HMM)。HMM可将系统建模为具有未观测(即,隐式)状态的马尔可夫过程。每个HMM状态可被表示为表征状态的统计行为的多元高斯分布。另外,每个状态还可与一个或多个状态转移关联,该状态转移指定从当前状态转移至另一状态的概率。当应用于ASR系统时,每个状态的多元高斯分布和状态转移的组合可限定在一个或多个音素的持续时间中的特征向量的时间序列。另选地或另外地,HMM可对限定词的音素序列进行建模。因此,一些基于HMM的声学模型还可在将特征向量序列映射至一个或多个词时考虑音素语境。图2图示出依据实施例的示例声学模型200的各方面。声学模型200限定组成词“cat”的音素序列。每个音素通过3-状态HMM表示,该3-状态HMM具有初始状态、中间状态和结尾状态,分别表示音素的开始处、音素的中间处以及音素的结尾处的统计特性。每个状态(例如,状态/k/1、状态/k/2等)可表示音素并且可包括一个或多个转移。声学模型200可通过利用适当的转移将词中的每个音素相应的3-状态HMM级联在一起来表示词。这些级联可基于字典110中的信息来执行。在一些实现方式中,可在声学模型200中使用每音素更多或更少的状态。可利用每个音素在众多语境(例如,各种词和句子)中的记录来训练声学模型200,以使得可获得每个音素的状态的表示。这些表示可涵盖上述多元高斯分布。为了训练声学模型200,可能包含说出音素的大量的话语可各自与转录关联。这些话语可以是词、句子等,并且可从日常言语或者一些其它来源的记录获得。转录可以是话语的自动或手动(人为)文本串。话语可根据它们相应的转录来分段。例如,声学模型200的训练可涉及将说出串分段成单位(例如,使用Baum–Welch和/或Viterbi对齐方法),并且然后使用所分段的话语来构建每个音素状态的统计分布。因此,用于训练的数据(话语及其关联的转录)越多,可生成越准确的声学模型。然而,即使良好训练的声学模型在其未经训练的领域中用于ASR时也可能准确性有限。例如,如果通过来自多个美式英语的说话人的话语训练给定声学模型,则该声学模型在用于美式英语的ASR时可能表现良好,但是在用于例如英式英语的ASR时可能不太准确。另外,如果利用来自多个说话人的话语训练声学模型200,则最终可能是将每个音素表示为该音素的发音对所有说话人的统计平均。因此,声学模型200在以这种方式训练时可表示假设的平均说话人(而非任何特定说话人)的发音和使用。返回参照图1,字典110可限定音素与词之间预先建立的映射。例如,该映射可包括几万或几十万的音素-模式至词映射的列表。因此,在一些示例中,字典110可包括查找表,诸如下面所示的表1。表1示出字典110可如何针对ASR系统尝试识别的对应词列出模式分类模块106可被配置以标识的音素序列。因此,字典110可在开发由声学模型200所示的词的音素状态表示时使用。词音素解释cat/k//ae//t/and/ay//n//d/dog/d//aw//g/表1语言模型112可被配置为基于音素或词的序列出现在输入到ASR系统的话语中的可能性来向该音素或词的序列指派概率。因此,例如,如果有从话语转录的短语中的n-1个先前词的模式的值,语言模型112可定义wn的条件概率(对于该短语中的第n个词)。示例条件概率可被表达为:P(wn|w1,w2,...,wn-1)通常,语言模型可在n-gram上操作,该n-gram例如可以是在模式分类模块106中表示的n个音素或词的序列。n的值大于5的语言模型可需要较大内存或存储空间;因此,较小的n-gram(例如,3-gram,其也被称作tri-gram)可用于高效地产生可接受的结果。为了例示目的,本文中使用tri-gram。然而,本文中的示例可使用n的任何值。可通过文本串或词的序列的语料库的分析来训练语言模型。该语料库可包含大量的词(例如,数百、数千、数百万或更多)。这些词可源自ASR系统的用户说出的话语和/或书面文档。例如,可基于出现在人类言语、书面文本(例如,电子邮件、网页、报告、学术论文、字处理文档等)、搜索查询等中的词模式来确定或开发语言模型112。从此类语料库,可基于它们在语料库中的相应的出现次数来估计tri-gram概率。换言之,如果C(w1,w2,w3)是词w1,w2,w3的序列在语料库中的出现次数,则所述词的序列的出现概率可被表达为:因此,语言模型112可被表示为条件概率的表。表2示出此类表的示例,其可形成语言模型112的基础。具体地讲,表2包含tri-gram条件概率。tri-gram条件概率P(dog|cat,and)=0.50P(mouse|cat,and)=0.35P(bird|cat,and)=0.14P(fiddle|cat,and)=0.01表2对于2-gram前缀“catand”,表2指示基于在语料库中观测到的出现,50%次接下来的1-gram为“dog”。同样,35%次接下来的1-gram为“mouse”,14%次接下来的1-gram为“bird”,并且1%次接下来的1-gram为“fiddle”。在充分训练的ASR系统中,语言模型112将包含更多条目,并且这些条目可不仅仅包括一个2-gram前缀。一旦声学模型108和语言模型112被适当地训练,特征分析模型102和模式分类模块106可被配置为执行ASR。在提供输入话语100的情况下,ASR系统可从语言模型112搜索有效词序列空间以寻找话语100中说出的可能性最大的词序列。然而,搜索空间的大小会非常大,并且减小搜索空间的方法可使得此类搜索在计算上更高效。例如,可使用启发式技术来降低搜索的复杂度(可能降低达数个数量级)。限制搜索空间的其它方法也是可能的。例如,搜索空间可被约束至给定时间段内的流行短语。可使用有限状态转换机(FST)来紧凑地表示映射至单个词的多个音素模式。诸如“data”、“either”、“tomato“和”potato“的一些词具有多种发音。这些发音的音素序列可被表示在每一词的单个FST中。可针对字典110中的每个词执行这种创建高效的音素级FST的处理,并且可利用语言模型112将所得词FST组合成句子FST。最终,可开发出音素、词和词的序列的状态网络并表示在紧凑搜索图中。图3图示出依据实施例的ASR系统的示例搜索图300。该示例搜索图300与ASR系统中可能使用的搜索图相比较小并且不太复杂,并且用于例示。具体地讲,利用五个输入话语“catapult”、“catandmouse”、“catanddog”、“cat”和“cap”训练搜索图300。搜索图300中的每个圆圈可表示与映射至音素的输入话语的处理关联的状态。为了简单,搜索图300中的每个音素利用单个状态,而非多个状态来表示。另外,搜索图300中省略了自转移以简化图3。搜索图300中的状态基于输入话语的当前音素语境利用格式“x[y]z”来命名,以指示所考虑的当前音素y的左语境为音素x,右语境为音素z。换言之,状态“x[y]z”指示处理话语中的点,其中所考虑的当前音素为y,话语中先前考虑的音素为x,并且话语中接下来将考虑的音素为z。话语的开始和话语的结尾由“#”字符来表示,并且也可称作空音素。终点状态可由加引号的识别的词或短语来表示。搜索图300包括表示识别出词或词的序列(即,短语)的五个终点状态,诸如“catapult”、“catandmouse”、“catanddog”、“cat”和“cap”。从一个状态向另一状态的转移可表示在语料库中观测到的音素排序。例如,状态“#[k]ae”表示识别出“k”音素,其左语境为null音素,并且右语境为“ae”音素。存在从状态“#[k]ae”的两个转移——对于一个转移,接下来的音素(“ae”之后的音素)为“t”,并且对于另一转移,接下来的音素为“p”。基于声学模型108、字典110和语言模型112,可向一个或多个状态和/或转移指派成本。例如,如果特定音素模式是罕见的,则向表示该音素模式的状态转移的成本可能高于向表示更常见的音素模式的状态转移。类似地,来自语言模型的条件概率(例如,参见表2)也可用于向状态和/或转移指派成本。例如,在表2中,假定具有词“catand”的短语,该短语中接下来的词是“dog”的条件概率为0.5,而该短语中接下来的词是“mouse”的条件概率为0.35。因此,从状态“ae[n]d”向状态“n[d]m”转移的成本可高于从状态“ae[n]d”向状态“n[d]d”转移。其中包括任何状态、状态之间的转移以及关联的成本的搜索图300可用于估计新输入的话语的文本串转录。例如,模式分类模块106可基于搜索图300确定与输入话语匹配的一个或多个词的序列。模式分类模块106可被配置为尝试寻找:w*=argmaxwP(a|w)P(w)其中,a是从输入话语导出的特征向量流,P(a|w)表示由词序列w生成的那些特征向量的概率,并且P(w)是由语言模型112指派给w的概率。例如,P(w)可基于如上所述的n-gram条件概率以及其它因子。函数argmaxw可返回使P(a|w)P(w)最大化的w值。返回参照图1,为了寻找可与话语100匹配的文本串,模式分类模块106可被配置为尝试基于特征向量104寻找从搜索图300中的初始状态到搜索图300中的终点状态的路径。这一处理可涉及模式分类模块106对搜索图300执行广度优先搜索、A-star(A*)搜索、集束搜索或者一些其它类型的搜索。模式分类模块106可被配置为基于与状态关联的成本和/或与每个路径关联的转移向通过搜索图300的一个或多个路径指派总成本。这些成本中的一些可基于例如话语的特定片段映射至路径中的特定音素序列的置信度。例如,话语100可包括短语“catanddog”,并且模式分类模块106可被配置为逐个音素地逐步通过搜索图300以寻找开始于初始状态“#[k]ae”并且结束于终点状态“catanddog”的路径。模式分类模块106还可被配置为寻找通过搜索图300的一个或多个附加路径。例如,模式分类模块106还可被配置为将话语100与初始状态为“#[k]ae”并结束于终点状态“catandmouse”的路径以及初始状态为“#[k]ae”并结束于终点状态“catapult”的路径关联。然而,模式分类模块106可被配置为与其它路径相比向终点状态为“catanddog”的路径指派较低成本(或者较高出现概率)。因此,终点状态为“catanddog”的路径可被选择作为输入话语100的最可能转录。ASR系统可按照许多不同的方式来操作。上述示例是为了例示的目的而呈现,而不是ASR系统操作的仅有方式。如上所述,ASR系统的言语识别数据库中的搜索空间会非常大。在一些示例中,为了创建言语识别数据库,ASR系统可被配置为发掘诸如键入查询、新闻文章和其它材料的文档来源以生成统计语言模型。例如,语言模型可向每一个可能的词序列指派特定概率。在示例中,语言模型可允许没有出现在文档来源中的词序列,即,语言模型可允许出现或没有出现在文档来源中的短语的词的排列和组合。对没有出现在文档来源中的序列的一般化可称作平滑。平滑会是有用的,因为用户可能讲出文档来源中可能不存在的独特或新的短语。然而,允许词的排列和组合可能生成无意义的词序列。例如,如果源短语为“showmefootballresults”,则无意义的词序列可为“showresultsfootballme”。搜索空间的减小可使得ASR系统在计算上更高效。通常,ASR系统的用户可生成具有高度重复性的话语。在一些示例中,话语的重复可能基于无限期的趋势(例如,赛季型运动的结果)。在其它示例中,话语的重复可基于可与话语关联的话题的流行度来预测(例如,与给定持续时间的当前事件(诸如,奥林匹克运动会)关联的话语)。在示例中,ASR系统可被配置为利用此类可预测的重复来生成计算上高效的语言模型。在示例中,为了使ASR系统在计算上高效,ASR系统可被配置为基于流行短语来生成词的序列。另外,代替允许假设流行短语的词的每一个单一序列而不管流行短语中的词的顺序的语言模型,ASR系统可被配置为确定流行短语的词的一组分组或子序列,使得分组或子序列包括词,所述词以相同顺序出现在流行短语中。作为用于例示的示例,流行短语可包括给定序列“词1词2词3词4词5”中的五个词。给定语言模型可允许子序列或分组“词2词3词5”;然而,更高效的语言模型可不是这样,因为该子序列不在源流行短语中。这样,ASR系统的搜索空间可被限制或减小,从而允许更高的准确性和计算效率。图4是依据实施例的用于高效言语识别的示例方法的流程图。方法400可包括如一个或多个方框402-406所示的一个或多个操作、功能或动作。尽管按照依次顺序示出方框,这些方框在一些情况下可并行执行和/或按照与本文所述的那些顺序不同的顺序来执行。另外,基于期望的实现方式,各种方框可被组合成更少的方框、划分成附加方框、和/或被移除。另外,对于方法400以及本文所公开的其它处理和方法,流程图示出了本示例的一个可能实现方式的功能和操作。在这方面,每个方框可表示模块、片段或程序代码的一部分,其包括可由处理器执行以用于实现处理中的特定逻辑功能或步骤的一个或多个指令。所述程序代码可被存储在任何类型的计算机可读介质或存储器上,例如,诸如包括盘或硬盘驱动器的存储装置。计算机可读介质可包括非瞬时性计算机可读介质或存储器,例如,诸如用于短期存储数据的计算机可读媒介,类似寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。计算机可读介质还可包括非瞬时性媒介或存储器,诸如辅助或永久的长期存储装置,类似例如只读存储器(ROM)、光盘或磁盘、紧凑盘只读存储器(CD-ROM)。计算机可读媒介还可以是任何其它易失性或非易失性存储系统。例如,计算机可读介质可被视为计算机可读存储介质、有形存储装置或其它制品。另外,对于方法400以及本文所公开的其它处理和方法,图4中的每个方框可表示被连线以执行处理中的特定逻辑功能的电路。在方框402,方法400包括在计算装置处接收指示搜索查询向搜索引擎的提交频率的信息,并且所述搜索查询可包括词的序列。计算装置可以是例如移动电话、个人数字助理(PDA)、膝上型计算机、笔记本、或上网本计算机、平板计算装置、可穿戴计算装置、基于云的计算系统中的服务器等。在示例中,搜索查询活动的突然增加(通常称作尖峰)可源自多个来源。尖峰可源自诸如假期或体育赛事的定期和流行发生,或者源自诸如高调新闻条目的不定期事件。在一个示例中,计算装置(例如,服务器)可被配置为接收与在给定时间段内搜索查询(或者多个搜索查询)向搜索引擎的提交频率的跟踪关联的信息,以标识流行或尖峰查询。例如,给定搜索查询可以是文本串(短语)或者给定装置(例如,移动电话)的用户所讲出的语音搜索查询。在示例中,可每天、每周或在任何其它时间单位内标识或提取流行或尖峰查询。返回参照图4,在方框404处,方法400包括基于搜索查询的提交频率超过阈值,针对搜索查询的词序列基于该搜索查询的一个或多个词出现于该搜索查询的词序列中的顺序来确定所述一个或多个词的分组。在示例中,基于指示搜索查询向搜索引擎的提交频率的信息,计算装置可被配置为确定指示搜索查询的流行度的度量,并且标识在给定时间段内该搜索查询是否流行。例如,计算装置可被配置为基于搜索引擎的历史使用确定阈值,使得如果搜索查询的提交频率超过阈值,则该搜索查询可被指定为流行或尖峰搜索查询。在示例中,计算装置可被配置为基于随时间推移的查询提交的时间序列分析来确定度量,并且将该度量与阈值进行比较以确定查询的流行度。所述度量可以例如与查询加速度或速度有关。例如,查询速度可被计算为即时查询请求与最近查询请求之间的时间差的倒数。所述时间差可被计算为:dt=(该查询实例的时间-上次见到查询的时间),查询速度可被确定为1/dt。给定查询的查询加速度可被确定为当前查询速度(或平均查询速度)与在先前时间确定的先前计算的查询速度(或先前计算的平均查询速度)之差乘以瞬时查询速度。所述度量可以是查询速度或查询加速度或者基于随时间推移的查询提交的时间序列分析而确定的其它参数的函数。其它参数或计算这些参数的方法是可能的。作为用于示出方法400的示例,计算装置可被配置为基于两个查询向搜索引擎的相应的提交频率确定两个流行短语:“helloworldIamhere”和“worldwartwo”。这两个搜索查询中的每一个包括给定顺序的词序列。例如,搜索查询“worldwartwo”在该序列中包括三个词“world”、“war”和“two”。计算装置可被配置为基于词出现在对应搜索查询中的顺序来确定词的分组。例如,对于搜索查询“worldwartwo”,计算装置可被配置为确定词的以下分组:worldworldwarworldwartwowarwartwotwo这些分组也可被称作因子。对于较大的一组序列,分组可为给定搜索查询的大小的平方;因此,可禁止枚举词的所有分组。为了更高效地确定因子或分组,计算装置可被配置为确定或生成搜索查询的自动机表示和因子图。因子图可更紧凑地表示分组,并且可允许更高效的搜索。图5A图示出依据实施例的示例搜索查询的示例自动机表示500。自动机表示500表示搜索查询“helloworldIamhere”和“worldwartwo”二者。自动机表示500包括诸如初始状态502A、中间状态502B和终点状态502C的自动机状态。自动机表示500还包括诸如自动机弧504A和504B的自动机弧,并且每个自动机弧可对应于来自给定搜索查询的词序列的词。图5B图示出依据实施例的示例搜索查询的示例bi-gram语言模型506。语言模型506允许搜索查询的所有词的可能的分组,而不管词在对应搜索查询中的顺序。如图5B所示,语言模型506是复杂的,并且可允许词的无意义的分组,诸如:“helloworldhereI”。相比之下,可基于自动机表示500生成基于词在给定搜索查询中的顺序紧凑地表示搜索查询的词的可能的分组的因子图。图5C图示出依据实施例的示例搜索查询的示例因子图508。因子图508不如图5B中所描绘的语言模型506复杂,并且允许基于词在对应搜索查询中的顺序的词的分组。例如,为了确定词的给定分组,计算装置可被配置为选择由连接到第一自动机状态(例如,初始状态512A)的自动机弧(例如,弧510A)表示的词;继续至与第一自动机状态相邻的第二自动机状态(例如,状态512B);并且选择由第二弧(例如,弧510B)表示的词以确定例如分组“Iam”。可允许所述分组中的给定分组在因子图508中的任何给定状态处开始。因子图508可允许诸如“helloworldI”的分组,但是不允许“helloI”;换言之,因子图508不允许跳过词或者偏离词在源搜索查询中的顺序。这样,因子图508可被视为基于词出现在给定搜索查询中的顺序来表示该给定搜索查询上的词的分组的紧凑和高效方式。计算装置可被配置为频繁地(例如,每天)标识流行或尖峰查询(如上面在方框402处描述的)并且构建或生成诸如因子图508的因子图以用于查询。生成诸如因子图508的因子图可比构建诸如语言模型506的全语言模型更高效。另外,由于因子图508有效地允许子序列,所以因子图508可比仅对于允许逐字尖峰查询产生更多灵活性。例如,如果“AlbertEinsteinRelativity”被标识为流行或尖峰查询,则对应因子图可允许分组“EinsteinRelativity”和“AlbertEinstein”,这些分组在被提交给搜索引擎时可得到与流行查询“AlbertEinsteinRelativity”相似的搜索结果。返回参照图4,在方框406处,方法400包括将指示所述分组的信息提供给言语识别系统以更新给定词序列的语料库,并且言语识别系统被配置为基于给定词序列的语料库将给定说出话语转换为给定词序列。计算装置(例如,服务器)可耦接到言语识别系统(诸如,图1中所描绘的ASR系统)或与其通信。在一个示例中,计算装置可包括言语识别系统。在示例中,言语识别系统可包括言语识别数据库,该数据库包括可通过语言模型(诸如,图1中的语言模型112)生成的给定词序列的语料库。言语识别系统可被配置为接收给定说出话语,并且将该给定说出话语与来自给定词序列的语料库的词序列匹配(例如,如图1-3中所述)。计算装置可被配置为生成描绘尖峰搜索查询的词的分组的因子图,并且将所述因子图和/或分组提供给言语识别系统以将所述分组包括在(例如,增加)语料库中。在一些示例中,在利用与流行搜索查询对应的分组更新语料库之后,计算装置可被配置为使得语料库中的搜索空间被约束。例如,搜索空间可被约束至至少由搜索图表示的分组。在另一示例中,言语识别系统可被配置为在尝试使给定说出话语与语料库中的其它词序列匹配之前,尝试使该给定说出话语与所述分组中的一个匹配。在另一示例中,言语识别系统可被配置为生成与计算装置为流行查询生成的因子图对应的搜索图(诸如,搜索图300)。例如,与因子图对应的搜索图可被整合成更大的搜索图以用于其它词序列。为了寻找可匹配给定话语的文本串,言语识别系统可被配置为尝试寻找从搜索图中的初始状态到搜索图中的终点状态的路径,并且可被配置为基于与状态关联的成本和/或与每个路径关联的转移来向通过搜索图的一个或多个路径指派总成本。例如,与其它路径相比,与因子图的词的分组对应的路径可被指派较小的成本(即,指派更高的概率)。在示例中,言语识别系统可接收不与流行或尖峰搜索查询的词的任何分组有关和匹配的说出话语。为了应对这种可能性,在一个示例中,言语识别系统可被配置为将搜索空间约束至因子图,即,尝试追溯因子图的路径以标识高置信度匹配,并且如果这种尝试失败,则言语识别系统可被配置为利用全语言模型或者语料库的其余部分来标识匹配。在另一示例中,言语识别系统可被配置为并行地追溯因子图和全语言模型,并且当在因子图或全语言模型中标识出匹配时终止搜索。将搜索图和全语言模型组合的其它搜索策略也是可能的。另外,如上面参照语言模型112所述,可向语料库中的给定词序列指派出现概率,所述出现概率可基于在语料库中的相应的出现次数来估计。因此,除了将分组提供给言语识别系统以外,计算装置还可被配置为基于所述分组来更新出现概率。例如,计算装置可被配置为向分组指派比语料库中的其它词序列的给定出现概率高的相应的出现概率。所指派的相应的概率可以基于搜索查询有多流行,例如,基于指示搜索查询向搜索引擎的提交频率的信息。在一些示例中,分组的出现概率可随时间变化。在一些情况下,给定搜索查询的流行度可随时间推移而减小。作为用于例示的示例,关于奥林匹克运动会结果的搜索查询在奥林匹克运动会期间并且可能在奥林匹克运动会之后的给定期间流行;然而,这种搜索查询的流行度可能随时间推移而减小。因此,在此示例中,计算装置可被配置为使得分组的出现概率衰减。在其它示例中,计算装置可被配置为不断评估搜索查询有多流行,并且基于更新的搜索查询的流行度变化来相应地更新或修改概率。图6图示出依据示例实施例的示例分布式计算架构。图6示出被配置为经由网络606与可编程装置608a、608b和608c通信的服务器装置602和604。网络606可对应于LAN、广域网(WAN)、公司内联网、公共互联网或者被配置为在联网的计算装置之间提供通信路径的任何其它类型的网络。网络606还可对应于一个或多个LAN、WAN、公司内联网和/或公共互联网的组合。尽管图6示出三个可编程装置,但是分布式应用架构可为数十、数百或数千的可编程装置服务。此外,可编程装置608a、608b和608c(或任何附加可编程装置)可以是任何种类的计算装置,诸如普通的膝上型计算机、台式计算机、网络终端、无线通信装置(例如,平板、蜂窝电话或智能电话、可穿戴计算装置等)等等。在一些示例中,可编程装置608a、608b和608c可专用于软件应用的设计和用途。在其它示例中,可编程装置608a、608b和608c可以是被配置为执行多个任务的通用计算机,并且可不专用于软件开发工具。服务器装置602和604可被配置为执行可编程装置608a、608b和/或608c所请求的一个或多个服务。例如,服务器装置602和/或604可向可编程装置608a-608c提供内容。所述内容可包括(但不限于)网页、超文本、脚本、诸如编译的软件的二进制数据、图像、音频和/或视频。所述内容可包括压缩和/或未压缩的内容。所述内容可被加密和/或解密。其它类型的内容也是可能的。作为另一示例,服务器装置602和/或604可向可编程装置608a-608c提供对用于数据库、搜索、计算、图形、音频(例如,言语识别)、视频、万维网/互联网利用、和/或其它功能的软件的访问。服务器装置的许多其它示例也是可能的。服务器装置602和/或604可以是基于云的装置,其存储基于云的应用和/或服务的程序逻辑和/或数据。在一些示例中,服务器装置602和/或604可以是驻留于单个计算中心中的单个计算装置。在其它示例中,服务器装置602和/或604可包括单个计算中心中的多个计算装置或者位于不同地理位置的多个计算中心中的多个计算装置。例如,图6描绘了驻留于不同的物理位置的服务器装置602和604中的每一个。在一些示例中,在服务器装置602和/或604处的数据和服务可被编码为存储在非瞬时性、有形计算机可读媒介(或计算机可读存储媒介)中并且可由可编程装置608a、608b和608c和/或其它计算装置访问的计算机可读信息。在一些示例中,在服务器装置602和/或604处的数据可被存储在单个盘驱动器或其它有形存储媒介上,或者可被实现于位于一个或多个不同的地理位置处的多个盘驱动器或其它有形存储媒介上。图7A是依据示例实施例的计算装置(例如,系统)的框图。具体地讲,图7A所示的计算装置700可被配置为执行服务器装置602、604、网络606、和/或一个或多个可编程装置608a、608b和608c的一个或多个功能。计算装置700可包括用户接口模块702、网络通信接口模块704、一个或多个处理器706以及数据存储装置708,所有这些均可经由系统总线、网络或其它连接机制710链接在一起。用户接口模块702可操作以向外部用户输入/输出装置发送数据和/或从其接收数据。例如,用户接口模块702可被配置为向诸如键盘、键区、触摸屏、计算机鼠标、轨迹球、操纵杆、相机、语音识别/合成模块和/或其它类似装置的用户输入装置发送数据和/或从其接收数据。用户接口模块702还可被配置为向诸如一个或多个阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、使用数字光处理(DLP)技术的显示器、打印机、灯泡和/或现在已知或以后开发的其它类似装置的用户显示装置提供输出。用户接口模块702还可被配置为生成识别的言语或可听输出,并且可包括扬声器、扬声器插孔、音频输出端口、音频输出装置、耳机和/或其它类似装置。网络通信接口模块704可包括一个或多个无线接口712和/或一个或多个有线接口714,其可被配置为经由诸如图6所示的网络606的网络来通信。无线接口712可包括一个或多个无线发射器、接收器和/或收发器,诸如蓝牙收发器、Zigbee收发器、Wi-Fi收发器、LTE收发器和/或可被配置为经由无线网络通信的其它类似类型的无线收发器。有线接口714可包括一个或多个有线发射器、接收器和/或收发器,诸如以太网收发器、通用串行总线(USB)收发器或者可被配置为经由双绞线、同轴电缆、光纤链路或者与有线网络的类似物理连接来通信的类似收发器。在一些示例中,网络通信接口模块704可被配置为提供可靠、安全和/或经认证的通信。对于本文所述的每个通信,可提供用于确保可靠通信(即,有保证的消息递送)的信息,可能作为消息头和/或脚的一部分(例如,分组/消息定序信息、封装头和/或脚、大小/时间信息、以及诸如CRC和/或奇偶校验值传输验证信息)。可利用一个或多个密码协议和/或算法(诸如(但不限于)DES、AES、RSA、Diffie-Hellman和/或DSA)来使通信安全(例如,编码或加密)和/或解密/解码。除了本文所列那些以外也可使用其它密码协议和/或算法来对通信进行保护(然后解密/解码)。处理器706可包括一个或多个通用处理器和/或一个或多个专用处理器(例如,数字信号处理器、专用集成电路等)。处理器706可被配置为执行包含在数据存储装置708中的计算机可读程序指令715和/或如本文所述的其它指令(例如,方法400)。数据存储装置708可包括可由至少一个处理器706读取和/或访问的一个或多个计算机可读存储媒介。所述一个或多个计算机可读存储媒介可包括易失性和/或非易失性存储组件,诸如光学、磁、有机或其它存储器或盘存储装置,其可整个或部分地与至少一个处理器706集成。在一些示例中,数据存储装置708可利用单个物理装置(例如,一个光学、磁、有机或其它存储器或盘存储单元)来实现,而在其它示例中,数据存储装置708可利用两个或更多个物理装置来实现。数据存储装置708可包括计算机可读程序指令715以及可能附加的数据,诸如(但不限于)由软件应用的一个或多个进程和/或线程使用的数据。在一些示例中,数据存储装置708可另外包括执行本文所述的方法(例如,方法400)和技术的至少部分和/或本文所述的装置和网络的功能的至少部分所需的存储装置。图7B描绘了依据示例实施例的基于云的服务器系统。在图7B中,服务器装置602和/或604的功能可分布在三个计算集群716a、716b和716c之间。计算集群716a可包括通过本地集群网络724a连接的一个或多个计算装置718a、集群存储阵列720a和集群路由器722a。类似地,计算集群716b可包括通过本地集群网络724b连接的一个或多个计算装置718b、集群存储阵列720b和集群路由器722b。同样,计算集群716c可包括通过本地集群网络724c连接的一个或多个计算装置718c、集群存储阵列720c和集群路由器722c。在一些示例中,计算集群716a、716b和716c中的每一个可具有相等数量的计算装置、相等数量的集群存储阵列和相等数量的集群路由器。然而,在其它示例中,每个计算集群可具有不同数量的计算装置、不同数量的集群存储阵列和不同数量的集群路由器。每个计算集群中的计算装置、集群存储阵列和集群路由器的数量可取决于指派给每个计算集群的计算任务。在计算集群716a中,例如,计算装置718a可被配置为执行服务器装置602的各种计算任务。在一个示例中,服务器装置602的各种功能可分布在计算装置718a、718b和718c中的一个或多个之间。计算集群716b和716c中的计算装置718b和718c可类似于计算集群716a中的计算装置718a来配置。另一方面,在一些示例中,计算装置718a、718b和718c可被配置为执行不同的功能。在一些示例中,与服务器装置602和/或604关联的计算任务和存储的数据可至少部分地基于服务器装置602和/或604的处理要求,计算装置718a、718b和718c的处理能力,每个计算集群中的计算装置之间以及计算集群本身之间的网络链路的延迟,和/或可对整个系统架构的成本、速度、容错、弹性、效率和/或其它设计目标作出贡献的其它因素,来分布于计算装置718a、718b和718c上。计算集群716a、716b和716c的集群存储阵列720a、720b和720c可以是包括盘阵列控制器的数据存储阵列,所述盘阵列控制器被配置为管理对硬盘驱动器群组的读和写访问。盘阵列控制器(单独地或与其相应的计算装置结合)还可被配置为管理存储在集群存储阵列中的数据的备份或冗余拷贝,以针对妨碍一个或多个计算装置访问一个或多个集群存储阵列的盘驱动器或其它集群存储阵列故障和/或网络故障加以保护。与服务器装置602和/或604的功能可分布于计算集群716a、716b和716c的计算装置718a、718b和718c上的方式类似,这些组件的各种活动部分和/或备份部分可分布于集群存储阵列720a、720b和720c上。例如,一些集群存储阵列可被配置为存储服务器装置602的数据,而其它集群存储阵列可存储服务器装置604的数据。另外,一些集群存储阵列可被配置为存储其它集群存储阵列中所存储的数据的备份版本。计算集群716a、716b和716c中的集群路由器722a、722b和722c可包括被配置为向计算集群提供内部和外部通信的联网设备。例如,计算集群716a中的集群路由器722a可包括一个或多个互联网交换和路由装置,其被配置为提供:(i)计算装置718a与集群存储阵列720a之间经由本地集群网络724a的局域网通信;以及(ii)计算集群716a与计算集群716b和716c之间经由到网络606的广域网连接726a的广域网通信。集群路由器722b和722c可包括类似于集群路由器722a的网络设备,并且集群路由器722b和722c可为计算集群716b和716c执行与集群路由器722a为计算集群716a执行的类似的联网功能。在一些示例中,集群路由器722a、722b和722c的配置可至少部分地基于计算装置和集群存储阵列的数据通信要求、集群路由器722a、722b和722c中的网络设备的数据通信能力、本地网络724a、724b、724c的延迟和吞吐量、广域网链路726a、726b和726c的延迟、吞吐量和成本、和/或可对缓冲系统架构的成本、速度、容错、弹性、效率和/或其它设计目标作出贡献的其它因素。在示例中,图6和图7A-7B所示的配置可用于参照方法400所描述的实现方式。例如,实现方法400的计算装置可以是基于云的装置(例如,服务器装置602和/或604)。在此示例中,计算装置可被配置为接收与由图6中的可编程装置608a-c或者图7B中的计算装置718a-c提交的搜索查询关联的信息,以确定尖峰查询并生成对应因子图。然后可将因子图提供给言语识别系统,所述言语识别系统也可被实现于诸如服务器装置602和/或604的基于云的装置中。在一些示例中,所公开的方法(例如,方法400)可被实现为以机器可读格式编码在非瞬时性计算机可读存储媒介上或者其它非瞬时性媒介或制品上的计算机程序指令。图8是图示出根据本文所呈现的至少一些实施例布置的示例计算机程序产品的局部概念图的示意图,该计算机程序产品包括用于在计算装置上执行计算机处理的计算机程序。在一个实施例中,提供利用信号承载介质801的示例计算机程序产品800。信号承载介质801可包括一个或多个编程指令802,这些编程指令在由一个或多个处理器执行时可提供上面参照图1-7描述的功能或部分功能。在一些示例中,信号承载介质801可涵盖计算机可读介质803,诸如(但不限于)硬盘驱动器、紧凑盘(CD)、数字视频盘(DVD)、数字带、存储器等。在一些实现方式中,信号承载介质801可涵盖计算机可记录介质804,诸如(但不限于)存储器、读/写(R/W)CD、R/WDVD等。在一些实现方式中,信号承载介质801可涵盖通信介质805,诸如(但不限于)数字和/或模拟通信介质(例如,光纤线缆、波导、有线通信链路、无线通信链路等)。因此,例如,信号承载介质801可由无线形式的通信介质805(例如,遵循IEEE802.11标准或其它传输协议的无线通信介质)来传达。一个或多个编程指令802可以是例如计算机可执行指令和/或逻辑实现的指令。在一些示例中,诸如图6中的可编程装置608a-c或者图7B中的计算装置718a-c的计算装置可被配置为响应于由计算机可读介质803、计算机可记录介质804和/或通信介质805中的一个或多个传达给可编程装置608a-c或计算装置718a-c的编程指令802提供各种操作、功能或动作。应该理解,本文所述的布置方式仅是用于示例目的。因此,本领域技术人员将理解,可替代使用其它布置方式和其它元件(例如,机器、接口、功能、顺序和功能分组等),并且可根据期望的结果完全省略一些元件。另外,所描述的许多元件是可被实现为分立或分布的组件或者以任何合适的组合和位置与其它组件结合的功能实体。尽管本文中公开了各种方面和实施例,对于本领域技术人员而言其它方面和实施例将是显而易见的。本文所公开的各种方面和实施例是为了例示的目的,并非意在限制,真实范围由所附权利要求以及与授权的这些权利要求等同的完整范围指示。还将理解,本文所使用的术语仅是为了描述特定实施例,而非意在限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1