掌桥专利:专业的专利平台
掌桥专利
首页

联合端点确定和自动语音识别

文献发布时间:2023-06-19 13:48:08


联合端点确定和自动语音识别

技术领域

本公开涉及联合端点确定和自动语音识别。

背景技术

自然语言处理系统通常使用端点器来确定用户何时开始及结束讲话。一些传统的端点器在确定话语何时开始或结束时对词之间的停顿的持续时间进行评估。例如,如果用户说“what is<长停顿>for dinner(晚餐吃什么)”,则传统的端点器可以在长停顿处对话音输入进行分段,并且可以指示自然语言处理系统尝试处理不完整的短语“what is”,而不是处理完整的短语“what is for dinner”。如果端点器为话音输入指定了错误的开始或端点,则处理该话音输入的结果可能是不准确的或者不符合需要的。识别口头话语的结尾或端点确定确定是流自动语音识别(ASR)系统的一项重要功能。

发明内容

本文的实施方式针对一种语音识别模型,其对话音的内容进行解码以及确定话语的结尾。例如,该语音识别模型可以是联合实行语音解码和话音端点确定这两者的神经网络模型。该模型可以是端对端模型,诸如接收指示话语的音频特性的输入数据并且在不使用外部语言模型的情况下输出拼写正确数据(例如,字素、词条或词)的模型。

利用单一模型联合预测端点和话音内容可以提供多种优势。例如,由于该模型的联合属性,该模型可以基于(i)话语的声学信息以及(ii)该模型对话语的语义含义或语言内容的解释这二者作出端点确定决策。这可以允许比单独评估音频特性的模型更快且更准确的端点确定决策。此外,与首先确定转录并且随后使用转录来作出端点确定决策的系统相比,联合预测端点和话音内容这二者可以明显更快地检测到端点。

一般而言,端点确定是指标识口头话语的结尾的过程,所述口头话语的结尾诸如短语、句子、问题或请求的结尾。一些端点确定技术使用话音活动检测器或查询结尾检测器作为端点器,其通常是与语音识别模型平行操作但是却与之分开的单独的模型或模块。本文的实施方式针对于通过将端点确定功能整合到语音识别模型中而提升自动语音识别(ASR)系统的端点确定。特别地,可以使用端对端模型来联合执行话音识别语音识别和端点确定。如将会显而易见的,采用能够联合执行语音识别和端点确定的端对端模型可以明显地减小检测话语端点时的延迟/时延,并且在一些情况下,将检测端点的延迟/时延减半。

可选地,联合语音识别和端点确定模型也可以随另一个单独的端点确定模块一起被用来提供冗余度和减小平均时延。例如,该联合模型可以在许多环境中提供更快、更准确的端点确定结果,但是专门的端点确定模型则可以在其它环境中提供更好的结果。将这两种技术一起使用可以跨更宽范围的情形提供最佳结果。例如,该系统可以被配置为使得端点被设定在来自两个模型的最早信号处。换句话说,这两个模型都可以并行地评估音频,并且无论这两个模型中的哪一个首先指示端点都将针对话语设定该端点。

本公开的一个方面提供了一种对话语进行端点确定的方法。该方法包括在数据处理硬件处接收用户设备的用户讲出的话语的音频数据,并且由该数据处理硬件处理该音频数据以获得作为来自被配置为联合执行话语的语音解码和端点确定的语音识别模型的输出的:该话语的部分语音识别结果;以及指示该话语何时已经结束的端点指示。在处理该音频数据时,该方法还包括由该数据处理硬件基于从该语音识别模型输出的该端点指示来检测该话语的结尾。该方法还包括响应于检测到该话语的结尾,由该数据处理硬件终止对在检测到该话语的结尾之后接收到的任何后续音频数据的处理。

本公开的实施方式可以包括以下的一个或多个可选特征。在一些实施方式中,该方法还包括响应于检测到该话语的结尾,由该数据处理硬件将该话语的转录传送到搜索引擎或数字谈话助理系统,该转录基于由该语音识别模型在处理该音频数据时输出的部分语音识别结果。在一些示例中,该语音识别模型包括流语音识别模型,其被配置为在端点确定决策指示该话语何时已经结束前发出该话语的部分语音识别结果。例如,该流语音识别模型可以包括递归神经网络-转换器(RNN-T)。在这些示例中,该方法还包括在检测到该话语的结尾之前,由该数据处理硬件提供该语音识别音频所发出的任何部分语音识别结果,以用于在与该数据处理硬件通信的屏幕上显示。

该数据处理硬件可以驻留在该用户的用户设备上并且执行该语音识别模型。在一些实施方式中,响应于检测到该话语的结尾,该方法还包括由该数据处理硬件使得捕捉该用户讲出的话语的一个或多个麦克风的阵列无效。

该语音识别模型可以包括神经网络,其被配置为在针对音频特征序列中的每个音频特征的输出标签集合上生成概率分布作为输出。该输出标签可以包括语言单元和话语端点符号。在这里,处理该音频数据以获得端点指示可以包括,在包括该话音端点符号的该输出标签与满足阈值分数的概率分数相关联时,确定该语音识别模型已经输出了该端点指示。此外,该语言单元可以包括字素、词条或词。在一些示例中,该输出标签进一步包括以下中的至少一个:指示话语的开始的话语起始符号;指示标点元素的标点符号;指示空格字符的空格符号;或者并不对应于任何拼写正确元素的空白符号。

在一些情况下,该语音识别模型被配置为基于该话语的音频数据输出解码符号序列,并且处理该音频数据以获得该端点指示包括,确定对应于该端点指示的端点符号是否被包括在该语音识别模型输出的该解码符号序列中。在这些示例中,确定对应于该端点指示的端点符号是否被包括在该语音识别模型输出的该解码符号序列中可以包括,确定与该端点符号相关联的概率分数是否满足阈值分数。在附加的示例中,处理该音频数据以获得指示该话语的结尾的该端点指示包括,在该语音识别模型的多个输出上的束搜索过程期间,确定对应于该端点指示的符号是否被包括在该束搜索过程的一个或多个束中。

本公开的另一个方面提供了一种系统,包括数据处理硬件和存储指令的存储器硬件,所述指令在该数据处理硬件上执行时使该数据处理硬件执行操作,所述操作包括接收用户设备的用户讲出的话语的音频数据,并且处理该音频数据以获得作为来自被配置为联合执行话语的语音解码和端点确定的语音识别模型的输出的:该话语的部分语音识别结果;以及指示该话语何时已经结束的端点指示。在处理该音频数据时,该操作还包括基于从该语音识别模型输出的该端点指示来检测该话语的结尾。该操作还包括响应于检测到该话语的结尾,终止对在检测到该话语的结尾之后接收到的任何后续音频数据的处理。

该方面可以包括以下一个或多个可选特征。在一些实施方式中,该操作还包括响应于检测到该话语的结尾,将该话语的转录传送到搜索引擎或数字谈话助理系统,该转录基于由该语音识别模型在处理该音频数据时输出的部分语音识别结果。在一些示例中,该语音识别模型包括流语音识别模型,其被配置为在端点确定决策指示该话语何时已经结束前发出该话语的部分语音识别结果。例如,该流语音识别模型可以包括递归神经网络-转换器(RNN-T)。在这些示例中,该操作还包括,在检测到该话语的结尾之前,提供该语音识别音频发出的任何部分语音识别结果以用于在与该数据处理硬件通信的屏幕上显示。

该数据处理硬件可以驻留在该用户的用户设备上并且执行该语音识别模型。在一些实施方式中,响应于检测到该话语的结尾,该操作还包括使得捕捉该用户讲出的话语的一个或多个麦克风的阵列无效。该语音识别模型可以包括神经网络,其被配置为在针对音频特征序列中的每个音频特征的输出标签集合上生成概率分布作为输出。该输出标签可以包括语言单元和话语端点符号。在这里,处理该音频数据以获得端点指示可以包括,在包括该话音端点符号的该输出标签与满足阈值分数的概率分数相关联时,确定该语音识别模型已经输出了该端点指示。此外,该语言单元可以包括字素、词条或词。在一些示例中,该输出标签进一步包括以下中的至少一个:指示话语的开始的话语起始符号;指示标点元素的标点符号;指示空格字符的空格符号;或者并不对应于任何拼写正确元素的空白符号。

在一些情况下,该语音识别模型被配置为基于该话语的音频数据来输出解码符号序列,并且处理该音频数据以获得该端点指示包括,确定对应于该端点指示的端点符号是否被包括在该语音识别模型输出的该解码符号序列中。在这些示例中,确定对应于该端点指示的端点符号是否被包括在该语音识别模型输出的该解码符号序列中可以包括,确定与该端点符号相关联的概率分数满足阈值分数。在附加的示例中,处理该音频数据以获得指示该话语的结尾的该端点指示包括,在该语音识别模型的多个输出上的束搜索过程期间,确定对应于该端点指示的符号是否被包括在该束搜索过程的一个或多个束中。

本公开的一种或多种实施方式的细节在附图和下文的描述中给出。其它的方面、特征和优势将由于该描述和附图以及由于权利要求而是显而易见的。

附图说明

图1是结合查询结尾(EOQ)端点器使用联合自动语音识别(ASR)和端点确定模型的示例语音识别器的示意图。

图2是用于训练图1的联合ASR和端点确定模型以联合执行话语的语音解码和端点确定的示例训练过程的示意图。

图3A示出了由端点器模块预测的查询结尾(EOQ)分类标签的序列的图表。

图3B示出了由图1的联合ASR和端点确定模型输出的包括端点标记的解码输出标签的序列的图表。

图4示出了递归神经网络-转换器(RNN-T)模型的示例架构。

图5是描绘EOQ分类器、端对端端点器以及EOQ端点器和端对端端点器的组合系统的词错误率(WER)对比平均时延的图表。

图6A是描绘EOQ端点器的时延的直方图。

图6B是描绘端对端端点器的时延的直方图。

图6C是描绘EOQ端点器和端对端端点器的组合系统的时延的直方图。

图7是可以被用来实施本文描述的系统和方法的示例计算设备的示意图。

图8是使用语音识别模型对话语确定端点的方法的示例操作布置的流程图。

各图中相同的附图标记指示相同的元件。

具体实施方式

通用的自动语音识别(ASR)系统可以被配置为识别口头话语的结尾,诸如短语、句子、问题或请求的结尾。为了提供低时延的准确结果,快速且准确地确定话语已经结束经常是重要的。例如,如果ASR系统过早结束了音频的捕捉和处理,则用户话语的结尾可能被截断并且所产生的转录可能是不完整的。另一方面,如果ASR系统在话语已经结束之后继续等待附加的音频,则该系统向用户提供响应时可能有不必要地延迟。

ASR系统可以包括端点器,ASR系统中负责确定用户何时已经完成讲话的组件。端点器的作用是在诸如话音助理和话音搜索之类的流语音识别应用中确保自然且快速的语音交互。所期望的是在用户完成讲话后马上就关闭麦克风。这使得被称作时延的系统响应的延迟最小化。然而,避免过早地截断话语同样是重要的。端点确定的错误会严重影响用户体验。如果系统等待过久才关闭麦克风,则用户体验感觉到缓慢。如果用户过于激进,则用户在讲话时被打断。因此,转录准确性和时延之间的权衡(例如,如词错误率(WER)所衡量的)对于ASR应用非常重要。因此,在识别准确度并不下降的情况下,期望ASR系统应当在话语结束之后尽可能快地确定端点并关闭麦克风或者以其它方式停止在当前话语中包括进一步的音频。

一些ASR系统具有分离的声学、发音和语言模型组件。这些ASR系统可以依赖于分开训练的端点确定模块,其与个体组件进行交互以标识出口头话语的结尾。

一种识别话语结尾的方式是使用话音活动检测器(VAD)以将音频信号的每一帧分类为话音或静默,其中静默是完全地非话音。在使用VAD时,系统观察到话音之后跟随有长静默间隔马上就设定端点。VAD检测将目前的话音与目前的静默区分开来的声学线索,但是却忽略了可能有助于预测当前静默是否将跟随有后续话音的潜在线索。这些潜在声学线索可能包括填充音、讲话节奏或音高,以便告知人类说话者是否想要在给定停顿后继续讲话的决策。因此,VAD在系统响应中会具有长的延迟。一般而言,VAD更适用于对长篇语音进行端点确定。

另一种类型的端点器是概率查询结尾(EOQ)分类器,其被训练以直接预测用户在给定时间是否已经完成了讲话。EOQ分类器寻找语音、初始静默、中间静默和最终静默。EOQ分类器可以检测有助于指示用户是否想要说更多语音的声学线索。附加地,不同于VAD以相同方式对待接近于话语起始和结尾的静默,EOQ分类器则是将它们区别对待。在EOQ分类器中,端点确定的概率贯穿话语而随时间增长。EOQ分类器仅基于声学信息来作出端点确定决策,而并不考虑来自语言模型的信息。EOQ分类器独立于ASR中诸如声学模型、发音模型和语言模型之类的其余组件被训练。

一些ASR系统使用端对端模型,其将声学、发音和语言模型归拢为单个端对端神经网络,由此简化识别流水线。对于许多现代ASR系统而言的一项重要要求是允许流操作,例如在讲话者继续说话时并发确定和输出解码话音。流模型在用户讲话时发出决策,而不用等到话语的结尾才对语音内容进行解码。流模型无法等待直到话语的结尾为止才执行解码。一种类型的流升级网络模型是递归神经网络-转换器(RNN-T),它可以使用其内部存储器来处理输入序列。RNN-T模型能够在处理音频信号时发出部分识别结果。

可以使用将端点器整合到语音识别神经网络中的端对端ASR模型来提升端点确定,使得该联合模型可以执行语音识别(例如,解码)和端点确定这二者。该联合模型可选地还可以与另一个单独的端点确定模型配对以提供冗余度并减少平均时延。该组合系统使用联合端点确定/语音识别模型和专用端点确定模型(例如,EOQ或VAD)这两者来触发端点确定决策,基于这两个模型中首先触发端点的任何一个来设定端点。

图1图示了示例的语音识别器100,其结合EOQ端点器150一起使用联合ASR和端点确定模型140。在所示示例中,在用户设备110的数据处理硬件111上执行的语音识别器140用于允许用户设备110捕捉用户115讲出的话语120并且在本地对话语120实行语音识别和端点确定。用户设备110包括存储指令的存储器硬件113,指令在被数据处理硬件111执行时使该数据处理硬件实行操作,除其它之外,该操作包括执行语音识别器100。在其它示例中,语音识别器100的一些或全部组件可以驻留在远程计算设备上,例如提供云计算环境的分布式系统的一个或多个服务器。例如,联合ASR和端点模型140可以驻留在用户设备110或远程计算设备中的一个上,并且EOQ端点器150可以驻留在用户设备110或远程计算设备中的另一个上。如此,该联合语音识别和端点确定技术可以被其中客户端设备和服务器系统交换信息以完成话音处理的布置中的该客户端设备或服务器系统所使用。

语音识别器100包括特征提取模块130,其被配置为接收对话语120编码的音频数据125并且生成指示音频数据125的声学特性的音频特征135。音频特征135被输入到联合ASR和端点确定模型(“联合模型”)140以及EOQ端点器150。使用束搜索过程145或另一个过程对联合模型140的输出进行评估。例如,该识别器可以对从联合模型140的输出获得的语音格155执行束搜索过程145以产生在音频数据125中编码的话语120的转录165。语音识别器100可以响应于接收到来自联合模型140或EOQ端点器150中的任一个首先发生的端点信号而触发端点检测160。该端点信号对应于联合模型140或EOQ端点器150输出的指示话语120的结尾的端点指示。在一些示例中,该端点指示(例如,端点信号)可以包括由束搜索145选择的转录165中的端点标记175。一旦语音识别器100触发了端点检测160,用户设备100就可以结束话语120的检测,例如通过停止使用联合模型140进行进一步的音频处理或者在一些实施方式中禁用从(多个)麦克风105的阵列到系统100的至少一些部分的输入。例如,语音识别器100可以提供指令以使得(多个)麦克风105无效,这也被称作麦克风关闭事件。该端点信号还可以触发设备110以执行另一种动作170,诸如通过请求或提供搜索结果、实施命令等来发起针对话语120的响应。

在所示示例中,用户115讲出与针对用户设备110的命令相关联的话语120。用户设备110的一个或多个麦克风105的阵列(在一些示例中,该阵列中的一个或多个麦克风可以远离用户设备110并且与数据处理硬件111通信)获得话语120的音频数据125,并且特征提取模块130提取与话语120的声学特性相对应的音频特征135以便输入到联合模型140。在这里,联合模型140可以以持续方式连续接收和处理音频特征135以便实行流语音识别。该过程可以以检测到触发语音识别处理的唤醒词或热词作为开始。

作为语音识别过程的一部分,特征提取模块130通过标识出表示音频数据125的声学特性的音频特征135来处理音频数据125。例如,特征提取模块130针对经常被称作帧的音频的不同时间窗口来产生音频特征矢量。特征矢量的序列随后可以充当针对各种模型的输入。音频特征矢量包含有关音频数据125的特性的信息,诸如梅尔频率倒谱系数(MFCC)。该音频特征可以指示任何的各种因素,诸如音频的音高、响度、频率和能量。音频特征135被提供为针对联合模型140——该示例中诸如RNN-T的递归神经网络模型——以及针对EOQ端点器150的输入。在一些实施方式中,该特征矢量可以被逐个地顺序提供至模型140、150。

基于神经网络的联合模型140评估音频特征135以计算ASR分数。该ASR分数指示各种语言单元已经发生的可能性。例如,该模型可以在包括拼写正确元素(例如,字素、词条或词)的输出标签的分布上输出分数,其中该分布中的分数表示相对应的拼写正确单元表示被讲出的词的概率。

在转录话音时不可能对所有可能的词序列进行评估。因此,一旦已经计算出ASR分数,识别器100就执行束搜索过程145,其包括裁剪以将搜索引导至最有前途的符号路径。换句话说,束搜索过程145可以通过使用有限数目的活动束将所涉及的计算限制为针对最可能的讲出的词序列的搜索。诸如格裁剪的其它相关过程可以被用来减小从联合模型140的输出获得的格155的大小。在该联合模型针对多个输出步骤中的每一个确定输出的集合(例如,输出标签)时,束搜索过程145可以剪去不可能的搜索路径而仅维持最可能的路径。这经常可以包括仅维持有限数量的搜索束。

在一些实施方式中,RNN-T联合模型140针对RNN-T联合模型140所产生的每个输出标签集合生成输出分数,并且每个输出标签集合中的输出标签之一包括用于在预测端点确定决策时使用的特殊端点标记175。该端点标记175对应于端点指示,该端点指示被包括为模型140所生成/预测的预期输出标签序列的一部分以指示话语的结尾。如下文更详细讨论的,联合模型140可以通过向端点标记175分配高概率分数而以信号通知已经到达了话语的端点。例如,当来自联合模型140的针对端点标记175的概率分数满足阈值分数时和/或当束搜索过程145在转录中包括端点标记175时,识别器100可以检测出已经到达了话语的结尾。特别地,在束搜索过程145期间,当分数最高的束包含端点标记175时,可以作出指示是否已经到达端点的端点确定决策160。以这种方式,联合模型140作为语音解码器和端点器联合作用,其中端点确定决策160基于句子结尾标记175的输出。

该系统还可以与联合模型140并行地操作端点器150。在端点被确定之前,模型140、150这两者都可以接收特征提取模型130在音频数据125被接收/检测时从附加的音频数据125提取的新的特征矢量135。端点器150对音频特征135进行评估以预测用户在给定时间是否已经完成了讲话。端点器150可以是EOQ类型,其可以检测有助于指示用户是否想要说出更多语音的声学线索。端点器150可以仅基于声学信息而做出端点确定决策,而并不考虑来自语言模型或者任何其它语音识别模型的信息。

语音识别器100可以使用EOQ端点器150和联合模型140这二者作出端点确定决策160。端点基于模型140、150中的哪一个首先以信号通知指示已经到达了话语端点的端点指示而被触发。在大多数情况下,联合模型140首先确定端点,因为端点确定是结合联合模型140中的解码所实行的,这允许对声学数据的含义进行更加语义感知的解释。然而,可能存在联合模型140未能输出端点指示时的实例。这可能是由于用户语音中的异常,诸如不完整的短语或不合规的词选取,其中所检测到语音的语义含义可能会不正确地建议进一步的语话音将会到来。在这些实例中,即使联合模型140尚未确定出端点,EOQ端点器150也提供了冗余度以基于声学数据(例如,明显停顿或静默)来触发端点确定。

当检测到端点时,无论是由于EOQ端点器150还是联合模型140的输出,设备110都结束话语的检测。这可以涉及到一个或多个动作以减少或停止监听或处理进一步的话音。类似地,其可以涉及到停止向联合模型140(或者任何其它语音识别模型)或者向诸如服务器系统的远程系统提供音频数据。在一些实施方式中,设备110终止该语音识别过程,但是设备110可以继续使用关键词辨认模型以检测诸如热词或唤醒词的某些关键词。响应于检测到端点,设备110可以发起获取并提供针对话语的响应,诸如将转录发送到搜索引擎或数字谈话助理。此外,响应于检测到端点,当前话语可以被结束,其中进一步的语音被认为是新的单独话语的一部分。

在图1的示例中,识别器产生话语的转录165。用户设备110然后可以从转录165确定动作170并且响应于口头命令120来实行命令180。例如,如果转录165是“Play music(播放音乐)”,则用户设备110可以确定转录165表示一个命令,并且设备110可以开始从移动设备110上的音乐app播放音乐。

显然,除了确定话音命令之外或者作为其替代,可以以许多不同方式来使用以这种方式所生成的转录。例如,转录165可以被提供以用于在设备110的屏幕上显示,被提供到设备110上的应用,通过网络被提供到服务器系统,被包括在针对搜索引擎或其它系统的请求中,被包括在专用消息或文档中,等等。端点的检测可以触发这些动作中以及其它动作中的任一个,所述其它动作诸如利用附加的语音识别模型(例如,语言模型)或其它处理重新评分。此外,识别器100可以从RNN-T联合模型140在音频数据125被接收时并且检测到话语结尾之前输出的部分语音识别结果(例如,字素、词条或词)来产生部分转录165。在这里,识别器100可以在用户115仍在讲话时以流的方式在用户设备110(或另一个设备)的屏幕上显示部分转录165。

在图1的示例中,语音识别器100(例如,ASR系统)以在移动设备100自包含的方式被示出,其中语音识别模型140和附加端点确定模型140被存储在存储器硬件113上并且在设备110的数据处理硬件111上本地执行。在此布置中,设备110可以能够在不需要连接到网络的情况下提供语音识别功能。然而,相同的建模技术可以被用来由远程设备或者在多个设备间共享处理时实行端点确定。例如,处理经网络接收到的音频数据的服务器系统可以使用联合端点确定和语音识别模型140相似地减少提供响应时的时延。

图2图示了用于训练联合模型140以联合实行话语的语音解码和端点确定的示例训练过程200。训练过程200在包括多个训练样本236的训练数据235上训练联合ASR和端点确定模型140,所述训练样本236各自包括训练话语220、训练话语220的对应转录220、以及对应转录220的参考输出标签222的序列。训练过程200可以通过从口头话语收集声学数据210而生成训练数据235。在一些情况下,可以收集并使用数千、数十万或者数百万的话语。示例训练样本236可以包括两千万个英语话语211(超过10,000小时)。训练话语211匿名化并且由转录过程215进行转录以产生对应文本转录220。转录过程215可以由经过训练的语音识别系统实行或者由人手工实行。为了改善真实世界条件下的鲁棒性,训练样本236的至少一部分中的训练话语220可以通过使用房间模拟器来增加不同程度的噪声和回响225而被人工加损。在一个示例中,训练示例的集合可以具有整体信噪比(SNR)在0dB和30dB之间不同的训练话语220,其中平均SNR为12dB。作为结果,每个训练样本236可以包括训练话语211的音频数据、对应参考转录220,以及参考输出标签222的序列。

在训练过程200期间,训练模块270调节联合模型140的参数。例如,训练模块270可以不时地将与一个训练话语211相关联的特征矢量作为输入馈送至联合模型140,并且联合模型140可以生成/预测不同的输出分数集合260来作为输出。个体的输出分数260各自对应于输出标签集合265中的不同输出标签。输出标签集合265包括语言单元-在该示例中是字素-以及端点标记275。输出分数260分别表示对应的符号应当被添加至表示话语的解码序列的相对可能性。可以使用附加类型的输出标签,诸如针对空格字符、针对标点符号以及针对并不表示任何拼写正确(例如,书写)元素向解码标签序列的添加的“空白”输出标签的输出标签。训练模块270被配置为将预测的输出标签265和相关联输出分数260与对应参考转录211的参考输出标签222相比较,并且调节联合模型140的参数,例如,神经网络权重,以改善预测的准确性。用于改善端点标记275的预测准确性的训练可以与针对语言单元的输出标签的训练联合且同时进行。该调节模型参数的过程可以针对许多不同的训练样本236进行重复以对联合模型140进行训练,从而针对语音解码和端点确定这二者都作出准确的预测。

返回参考图1,端点器150是语音识别器中负责确定用户何时已经完成讲话的组件。端点器的目的是确保诸如话音助理和话音搜索之类的流语音识别应用中自然且快速的话音交互。所期望的是在用户完成讲话之后马上就关闭麦克风。这使得系统响应的时延或延迟最小化。然而,避免在用户仍然讲话时打断他们同样是重要的。端点确定的错误会严重影响用户体验。如果系统等待过久才关闭麦克风,则用户体验感觉到缓慢。如果用户过于激进,则用户在讲话时被打断。因此,转录准确性与时延之间的权衡(如词错误率(WER)所衡量的)对于ASR应用非常重要。系统应当在话语之后尽可能快地确定端点并关闭麦克风,而不使得WER有所下降。

一些ASR系统具有分离的声学、发音和语言模型组件。这些ASR系统可以依赖于分开训练的端点确定模块,其与个体组件进行交互以标识出口头话语的结尾。

一种识别话语结尾的方式是使用VAD将音频信号的每一帧分类为话音或静默。在VAD中,麦克风在系统观察到跟随有长静默间隔的语音后马上关闭。VAD检测到将目前的语音与目前的静默区分开来的声学线索,但是却忽略了可能有助于预测当前静默是否将跟随有后续语音的潜在线索。这些潜在声学线索可以包括填充音、讲话节奏或基础频率,以便告知人类说话者是否想要在给定停顿后继续讲话的决策。因此,该方法可能导致系统响应中的长延迟。

概率查询结尾(EOQ)分类器被训练以直接预测用户在给定时间是否已经完成了讲话。EOQ分类器寻找语音、初始静默、中间静默和最终静默。EOQ分类器可以检测有助于指示用户是否想要说更多语音的声学线索。附加地,不同于VAD以相同方式对待接近于话语起始和结尾的静默,EOQ分类器则是将它们区别对待。在EOQ分类器中,端点确定的概率贯穿话语而随时间增长。EOQ分类器仅基于声学信息来做出端点确定决策,而并不考虑来自语言模型的信息。EOQ分类器独立于ASR中诸如声学模型、发音模型和语言模型之类的其余组件被训练。

图3A示出了由查询结尾(EOQ)分类器针对音频特征135的序列表示的话语所输出的EOQ检测标签的序列的图表300a。图表300a还示出了话语120的对应转录165。EOQ检测标签包括语音(“0”)、初始静默(“3”)、中间静默(“2”)和最终静默(“3”)。该序列输出标签中的符号表示空格。最终静默的逐帧后段被作为阈值从而获得硬性麦克风关闭决策。在相同的WER下,EOQ分类器已经示出了相比基于VAD的端点器的大约100ms的时延改善。

VAD和EOQ分类器这二者都是仅基于声学信息来作出端点确定决策,而忽略来自语言模型的信息。附加地,这些分类器独立于ASR流水线的其余组件被训练,所述其余组件即声学模型、发音模型和语言模型。通过训练端对端模型联合地进行解码和端点确定,可以作出相比VAD和EOQ分类器的改进。

图3B示出了由RNN-T联合模型140输出的解码输出标签265的序列的图表300b。为了使得能够利用RNN-T模型进行联合解码和端点确定,利用句子结尾(例如,端点)标记175来训练该RNN-T模型。在这里,当输出时束搜索过程145终止,由此端点标记175对应于指示话语120的结尾的端点指示。这将端点确定联合地归拢到端对端模型,使得对外部VAD或EOQ分类器的依赖最小化。

图4图示了联合模型400的RNN-T的架构。在该架构中,编码器410类同于接收声学特征矢量

RNN-T的条件概率分布可以被表达为:

其中x

在联配中

为了利用端点确定决策扩展RNN-T,特殊符号作为预期标签序列的一部分而指示话语的结尾。在一些示例中,RNN-T模型140在顶端束包含时作出麦克风关闭决策。因此,该模型联合地充当解码器和端点器。

与其它符号相比,的错误预测会对质量造成明显更大的影响,特别是在预测过早的情况下。因此,在为了解码而执行束搜索时,在两个不同方面对的后段进行精确控制。

首先,利用正规模α对标签进行惩罚,如下所示:

P|x

通过控制α,与其它符号竞争的的后段被直接修改。如果α被设置为大于1,则向增加额外的惩罚。在这种情况下,包括的假设具有比搜索束中的其它假设更高的成本,从而它不太可能出现在顶端。由于宣告端点确定决策依赖于顶端假设,所以该修改使得端点确定决策不会太激进。与之相反,使用较小的α则使得端点确定更加激进并且会由于引入删除错误而损害到WER。

第二,仅在经修改的后段高于阈值β的情况下才扩展具有的搜索空间以进一步减少早期端点确定。端点标记仅在以下条件满足的情况下才被添加至搜索束:

P|x

扫掠α允许符号在搜索期间扩展假设时被丢弃或被允许。因此,β确定符号是否被允许出现在搜索束中,而α则影响对具有的假设的排序。

图5示出了针对(a)EOQ、(b)端对端端点器以及(c)使用EOQ和端对端端点器这二者基于哪个系统首先触发而触发端点确定决策的组合系统的实施方式来描绘WER对比时延的实验结果的示例图表500。端点确定的目标是找出快速端点确定(如时延所衡量的)与准确性(如WER所衡量的)之间的最佳权衡。激进的端点器可以以损害WER为代价提供更快的响应,而被动的端点器则可以改善WER但是却增加了时延。

以下是可以被用于联合解码和端点确定的RNN-T的具体示例,但是可以有效地使用许多其它配置。示例RNN-T模型使用80维log-Mel特征,其具有使用25ms窗口计算的10ms帧步幅。这些特征利用3个帧被堆叠到左侧并且被降频采样至30ms的帧率。编码器网络架构由8个长短期存储器(LSTM)构成,其中每一层具有2048个隐藏单元,随后跟有640维投影层。解码器为具有2000个隐藏单元和每层640维投影的2个LSTM层。为了使得训练稳定,在编码器和解码器中的每个LSTM层之后输入一个层范式层(ayer-norm layer)。该编码器和解码器被馈送至具有640个隐藏单元的联合网络。该联合网络被馈送至具有总共76个字素单元的softmax层。示例RNN-T模型在具有4096的全局批次大小的8×8张量处理单元(TPU)切片上进行训练。

以下是可以被用于端点确定的EOQ检测器的示例。示例EOQ输入由40维log-Mel滤波器组构成的声学特征矢量序列,其具有4kHz的上限以及使用25ms窗口的10ms帧步幅。示例EOQ分类器使用卷积LSTM深度神经网络(DNN),其是卷积的堆叠LSTM和DNN层的组合。该特征被送至具有滤波器宽度为8个频带并且池化步长为3的频率卷积层,其后跟有64节点的ReLU DNN层,两个64单元格的LSTM层序列,另一个64节点的ReLU DNN层,以及4节点的softmax层。

对于端对端端点器,可以通过扫掠规模α和阈值β来管理端点确定速度和转录准确性的权衡。较大的α意味着向端点符号添加较大的惩罚,这使得端点确定更慢但是也避免了删除。类似地,使用较大的β避免了扩展端点符号在搜索空间中的可用性,这使得端点确定决策不太激进。两个参数被联合扫掠以找出最佳的操作点。α和β的示例数值为α=2.0并且β=0.65。

在图5的示例图表500中,该组合系统由端对端端点器所主导,这是因为其明显比EOQ端点器更快。端对端端点器将平均时延从500ms减小为200ms(60%的相对改进)。然而,虽然端对端端点器对于时延和WER这二者来说都比EOQ更好,但是其也示出了大约10%的端点确定覆盖损耗。这表明当该端对端端点器决定进行端点确定时,它利用比EOQ端点器明显更低的时延非常快地进行端点确定。然而,对于话语的子集,端对端端点器有可能根本不进行端点确定。另一方面,该组合系统借助于EOQ系统对该覆盖损耗进行补偿,同时仍然针对大多数话语从端对端端点器提供快速的端点确定决策。该组合系统示出了来自该组合系统的270ms的改进(54%的相对改进),而与EOQ基线相比没有WER或端点确定的覆盖退化。在该组合系统中,端对端端点器是针对82%的话语宣告决策的主要端点器,而EOQ端点器则覆盖了16%的话语的重置。因此,该组合系统可以维持来自EOQ端点器的高覆盖以及来自端对端端点器的低时延这两者。

图6A-6C示出了比较EOQ端点器(图6A)、端对端端点器(图6B)以及使用EOQ和端对端端点器这二者基于哪个系统首先触发端点而触发端点确定决策的组合系统(图6C)的时延的实验结果的一系列直方图600a-c。图6A示出了对于实际上已经被确定端点的话语的EOQ端点器时延的直方图600a。仅非常少量的话语具有低于300ms的时延。时延主要分布在300ms和1400ms之间。

图6B示出了相似的但是针对端对端端点器时延的直方图600b。在这种情况下,几乎所有时延都处于0和400ms之间。图6C示出了针对端对端加EOQ端点器的直方图600c。大多数的话语仍然由于端对端端点器而处于400ms的时延之内,所以该系统操作快速。直方图600c中长的尾端是所预期的,因为EOQ以从600ms至1400ms分布的时延对少量的边角情况进行处置。

图7示出了可以用来实施本文所述技术的计算设备700和移动计算设备750的示例。计算设备700意在表示各种形式的数字计算机,诸如膝上计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机,以及其它适当的计算机。移动计算设备750意在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话,以及其它类似计算设备。本文所示出的组件、它们的连接和关系以及它们的功能仅意在作为示例而并非意在作为限制。

计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和多个高速扩展端口710的高速接口708,以及连接到低速总线714和存储设备706的低速接口712。处理器702、存储器704、存储设备706、高速接口708和低速接口712中的每一个使用各种总线进行互连,并且可以安装在公共主板上,或者以其它适当方式进行安装。处理器702能够处理指令以便在计算设备700内执行以在诸如耦合到高速接口708的显示器716的外部输入/输出设备上显示用于GUI的图形信息,所述指令包括存储在存储器704中或者存储设备706中的指令。在其它实施方式中,如果适当,可使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,多个计算设备700可以被连接,其中每个设备提供部分的必要操作(例如,作为服务器机组、刀片服务器群组或者多处理器系统)。

存储器704存储计算设备700内的信息。在一些实施方式中,存储器704是一个或多个易失性存储器单元。在一些实施方式中,存储器704是一个或多个非易失性存储器单元。存储器704还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备706能够为计算设备700提供大量存储。在一些实施方式中,存储设备706可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其它类似的固态存储设备,或者设备的阵列,包括存储区域网络或其它配置中的设备。指令可以存储在信息载体中。该指令在被一个或多个处理设备(例如,处理器702)执行时实行诸如上文所述的那些一种或多种方法。该指令还可以被诸如计算机或机器可读介质(例如,存储器704、存储设备706或者处理器702上的存储器)的一个或多个存储设备所存储。

高速接口708管理计算设备700的带宽密集操作,而低速接口712则管理较低带宽密集操作。这样的功能分配仅是示例性的。在一些实施方式中,高速接口708耦合到存储器704、显示器716(例如通过图形处理器或加速器),并且耦合到可以接纳各种扩展卡(未示出)的高速扩展端口710。在该实施方式中,低速接口712耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口714可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪,或者诸如交换机和路由器之类的联网设备。

如图所示,计算设备700可以以多种不同的形式来实施。例如,其可以被实施为标准服务器720,或者在一组这样的服务器中多次实施。此外,其可以以诸如膝上型计算机722的个人计算机来实施。其也可以被实施为机架式服务器系统724的一部分。可选地,来自计算设备700的组件可以与诸如移动计算设备750的移动设备(未示出)中的其它组件相结合。这样的设备中的每一个可以包含计算设备700和移动计算设备750中的一个或多个,并且整个系统可由多个互相通信的计算设备组成。

除其它组件之外,移动计算设备750包括处理器752、存储器764、诸如显示器754的输入/输出设备、通信接口766和收发器768。移动计算设备750还可以被提供以诸如微驱动器或其它设备的存储设备以提供附加存储。处理器752、存储器764、显示器754、通信接口766和收发器768中的每一个使用各种总线进行互连,并且若干组件可安装在公共主板上或者以其它适当方式进行安装。

处理器752可以执行移动计算设备750内的指令,包括存储在存储器764中的指令。处理器752可以被实施为包括单独且多个的模拟和数字处理器的芯片的芯片组。例如,处理器752可以提供移动计算设备750的其它组件的协同,诸如用户接口的控制、由移动计算设备750运行的应用,以及移动计算设备750进行的无线通信。

处理器752可以通过耦合到显示器754的控制接口758和显示接口756与用户进行通信。显示器754例如可以包括TFT(薄膜晶体管液晶显示器)显示器、OLED(有机发光二极管)显示器,或者其它适当的显示技术。显示接口756可以包括用于驱动显示器754以向用户呈现图形和其它信息的适当电路。控制接口758可以接收来自用户的命令并且将它们进行转换以便提交到处理器752。此外,外部接口762可以提供与处理器752的通信,从而使得移动计算设备750能够与其它设备进行近场通信。例如,外部接口762在一些实施方式中可以提供有线通信,或者在其它实施方式中提供无线通信,并且也可使用多个接口。

存储器764存储移动计算设备750内的信息。存储器764可以被实施为一个或多个计算机可读介质、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元。也可以提供扩展存储器774并通过扩展接口772连接到移动计算设备750,所述扩展接口772例如可以包括SIMM(单列存储组模)卡接口。扩展存储器774可以为移动计算设备750提供额外的存储空间,或者也可以为移动计算设备750存储应用或其它信息。特别地,扩展存储器774可以包括指令以实施或补充上文所述的过程,并且还可以包括安全信息。因此,例如,扩展存储器774可以被提供作为移动计算设备750的安全模块,并且可以利用允许移动计算设备750的安全使用的指令进行编程。此外,可以经由SIMM卡连同附加信息一起提供安全应用,诸如以不可破坏的方式在SIMM卡上设置标识信息。

例如,如下文所讨论的,存储器可以包括闪存和/或NVRAM存储器(非易失性随机访问存储器)。在一些实施方式中,指令被存储在信息载体中。该指令在被一个或多个处理设备(例如,处理器752)执行时,实行诸如上文所述的那些一种或多种方法。该指令也可以被一个或多个存储设备所存储,诸如一个或多个计算机或机器可读介质(例如,存储器764、扩展存储器774,或者处理器752上的存储器)。在一些实施方式中,该指令可以例如通过收发器768或外部接口762而在传播信号中被接收。

移动计算设备750可以通过通信接口766进行无线通信,所述通信接口766在必要情况下可以包括数字信号处理电路。通信接口766可以在各种模式或协议下提供通信,除其它之外,所述模式或协议诸如GSM语音呼叫(全球移动通信系统)、SMS(短消息服务)、EMS(增强消息收发服务)或MMS消息收发(多媒体消息收发服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线电服务)。例如,这样的通信可使用射频通过收发器768进行。此外,可以诸如使用蓝牙、WiFi或其它这样的收发器(未示出)进行短距离通信。此外,GPS(全球定位系统)接收器模块770可以向移动计算设备750提供附加的导航和位置相关的无线数据,其可由在移动计算设备750上运行的应用适当使用。

移动计算设备750还可以使用音频编解码器760进行可听通信,所述音频编解码器760接收来自用户的口头信息并且将其转换为可用的数字信息。音频编解码器760同样可以诸如通过扬声器例如在移动计算设备750的听筒中为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括在移动计算设备750上操作的应用所生成的声音。

如图所示,移动计算设备750可以以多种不同的方式来实施。例如,其可以被实施为蜂窝电话780。其还可以被实施为智能电话782、个人数字助理或其它类似移动设备的一部分。

图8是对话语进行端点确定的方法800的示例操作布置的流程图。在操作802处,方法800包括在数据处理硬件111处接收用户设备110的用户115讲出的话语120的音频数据125。在操作804处,方法800包括由数据处理硬件111处理该音频数据125以获得作为来自被配置为联合执行话语的语音解码和端点确定的语音识别模型140的输出的:话语的部分语音识别结果165;以及指示该话语何时已经结束的端点指示175。在处理音频数据125时,在操作806处,方法800包括由数据处理硬件111基于从语音识别模型140输出的端点指示175来检测话语120的结尾。在操作808处,方法800还包括响应于检测到话语120的结尾,由数据处理硬件111终止对在检测到话语120的结尾后接收到的任何后续音频数据125的处理。

软件应用(即,软件资源)可以是指使计算设备实行一项任务的计算机软件。在一些示例中,软件应用可以被称作“应用”、“app”或“程序”。应用的示例包括但不限于系统诊断应用、系统管理应用、系统维护应用、词处理应用、电子表单应用、消息收发应用、流媒体应用、社交网络应用和游戏应用。

非瞬态存储器可以是用来在临时或永久的基础上存储程序(例如,指令的序列)或数据(例如,程序状态信息)以供计算设备使用的物理设备。非瞬态存储器可以是易失性和/或非易失性的可寻址半导体存储器。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机访问存储器(RAM)、动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)、相变存储器(PCM),以及光盘或磁带。

本文所述的系统和技术的各种实施方式可以以数字电子电路、集成电路、特殊设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或它们的组合来实施。这些各种实施方式可以以一个或多个计算机程序来实施,所述计算机程序能够在可编程系统上执行和/或被解释,所述可编程系统包括至少一个可编程处理器,其可以具有特殊用途或一般用途,耦合至存储系统、至少一个输入设备和至少一个输出设备以从该存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向它们传送数据和指令。

这些计算机程序(也被称作程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言来实施,和/或以汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非瞬态计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”是指被用来向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中所述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器(也被称为数据处理硬件)来实行以通过对输入数据进行操作并生成输出来实行功能。该过程和逻辑流程也可以由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路来实行。作为示例,适于计算机程序执行的处理器包括通用和专用微处理器这两者,以及任何类型的数字计算机的任何一个或多个处理器。一般而言,处理器将从只读存储器或随机访问存储器或者这两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括一个或多个用于存储数据的大量存储设备,例如磁盘、磁性光盘或光盘,或者与之操作耦合以从所述大量存储设备接收数据或者向其传送数据或者这两者。然而,计算机并非必须具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移除盘;磁性光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以以专用逻辑电路作为补充或者被整合在其中。

为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实施,所述计算机具有用于向用户显示信息的例如CRT(阴极射线管)、LCD(液晶显示器)监视器的显示设备,以及可选地具有用户可以利用其向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)。也可以使用其它类型的设备来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声学、语音或触觉输入。此外,计算机可以通过向用户所使用的设备发送文档或者从其接收文档来与用户进行交互;例如,通过响应于从用户的客户端设备上的web浏览器接收到的请求而向该web浏览器发送网页。

已经描述了多种实施方式。然而,将要理解的是,可以作出各种修改而并不背离本公开的精神和范围。因此,其它实施方式处于以下权利要求的范围之内。

技术分类

06120113817494