语言模型语音端点确定的制作方法

文档序号:13942369阅读:215来源:国知局



背景技术:

语音辨识系统已经发展到人类可以完全依靠语音与计算设备交互的程度。这样的系统基于接收到的音频输入的各种质量,使用多种技术来识别由人类用户说出的词语。语音辨识结合自然语言理解处理技术,实现对计算设备的基于语音的用户控制,以基于用户的口头命令来执行任务。语音辨识和自然语言理解处理技术的组合通常被称为语音处理。语音处理还可以将用户的语音转换成文本数据,然后,可以将文本数据提供给各种基于文本的软件应用程序。

语音处理可由计算机、手持设备、电话计算机系统、公共电话亭和多种其他设备用来改进人机交互。

附图说明

为了更全面地理解本公开,现在结合附图参考以下描述。

图1示出了根据本公开的实施方案的用于自动语音辨识(asr)的系统。

图2是根据本公开的实施方案的可如何处理口头话语的概念图。

图3示出了根据本公开的一个方面的音素处理和文字处理。

图4示出了根据本公开的一个方面的语音辨识网格。

图5示出了根据本公开的一个方面的语音辨识网格。

图6示出了与图4的网格相关联的多个假设。

图7示出了可由语音辨识系统考虑的多个假设。

图8是概念性地示出了根据本公开的实施方案的设备的示例部件的框图。

图9是概念性地示出了根据本公开的实施方案的服务器的示例部件的框图。

图10示出了与该系统一起使用的计算机网络的示例。

具体实施方式

自动语音辨识(asr)是计算机科学、人工智能和语言学的涉及将与语音相关联的音频数据转换成代表该语音的文本的领域。同样,自然语言理解(nlu)是计算机科学、人工智能和语言学领域的一个领域,它使计算机能够从包含自然语言的文本输入中获得含义。asr和nlu经常一起用作语音处理系统的一部分。

从计算角度来看,asr和nlu会十分昂贵。也就是说,在合理的时间帧内处理asr和nlu可能需要大量的计算资源。因此,当执行语音处理时,可以使用分布式计算环境。典型的这种分布式环境可以涉及具有一个或多个麦克风的本地设备,这些麦克风被配置成捕获来自用户讲话的声音,并将这些声音转换为音频信号。然后,可将音频信号发送到下游远程设备以进行进一步处理,诸如将音频信号转换成最终命令。然后,命令可以由远程设备和本地设备的组合来执行,这取决于命令本身。

作为分布式语音处理系统的一部分,本地设备可以被配置成连续地将所有检测到的音频发送到远程设备。这种方法有几个缺点。一个缺点是这种通信需要大量带宽和网络资源。这种方法的另一个缺点是,隐私问题可能会使本地设备不愿意将所有捕获的音频发送到远程设备。还有一个缺点是当大多数音频没有发出命令时,远程设备可能会浪费大量计算资源来处理所有进入的音频。

为了解释这些问题,本地设备可以被配置为仅在用户说出特定唤醒命令时才激活,以唤醒本地设备,以便用户可以说出进一步的命令。唤醒命令(其可以被称为唤醒字)可以包括系统执行进一步处理的指示。本地设备可以不断地监听唤醒词并且可以忽略检测到的不包括唤醒词的任何音频。通常情况下,系统被配置为检测唤醒词,然后,处理唤醒词之后的任何后续的音频,(或者加上唤醒词之前的固定的,少量的音频),以检测后续音频中的任何命令。作为示例,唤醒词可以包括用户引用设备的名称。因此,如果该设备被命名为“alexa”,并且唤醒词是“alexa”,则用户可以通过说“alexa,播放一些音乐”,来命令声控设备来播放音乐。设备在辨识唤醒词“alexa”之后,将理解后续音频(在该示例中,“播放一些音乐”)包括某种命令,并将对该音频执行语音处理,以确定要执行的命令是什么。所提供的服务/命令可以包括执行动作或活动、呈现媒体、获取和/或提供信息、经由本地设备,经由生成的或合成的语音提供信息,代表用户发起基于互联网的服务等等。

为了确定何时停止处理音频数据,可以使用称为端点确定的过程。传统的端点确定技术通常依赖于在音频数据中检测到的暂停,但是,这种技术可能不精确,并可能会导致错误,特别是当用户在句子中间暂停说话,只在不久之后恢复。当前的系统可以确定暂停中的端点,从而导致在不正确的时间停止语音处理。

提供一种用于纠正这个问题的系统,其中在确定可能的话语端点时考虑假设。

图1示出了如上所述的系统。如所示,系统100可以包括在用户10的位置处的语音控制设备110。设备110可以通过网络199连接到一个或多个服务器120。系统100可以是分布式语音处理系统,其中设备110捕获由用户10说出的音频,并且服务器对音频执行语音处理,如下面参考图2所述的。如图1所示,该系统可确定(152)与输入语音对应的音频数据,并可以对音频数据执行(154)asr,以确定由系统的解码器/语音辨识引擎考虑的多个活动假设。该系统还可以确定(156)每个活动假设的暂停长度。系统可以持续地确定暂停长度/持续时间,例如,跟踪紧接在网格中的特定节点前面的非语音量。或者,系统可以在处理期间的特定时间检查紧接在每个活动假设结束前面的非语音量。例如,可以通过紧接在每个假设结束前面的多个非语音帧来确定暂停长度。然后,系统可以通过将每个活动假设的加权暂停长度乘以由语音辨识引擎确定的相应的假设的asr概率来确定(158)加权暂停长度。然后,系统可以将活动假设的加权暂停长度相加(160)以达到预期暂停持续时间。系统还可以将处于结束状态的活动假设的加权暂停长度相加(162),以达到结束状态下的预期暂停持续时间。然后,系统可以将累计加权暂停长度与一个或多个阈值进行比较(164)。例如,系统可将预期暂停持续时间与第一阈值进行比较,并将结束状态下的预期暂停持续时间与第二阈值进行比较。然后,系统可以在预期暂停持续时间超过其相应的阈值时确定(166)端点。因此,端点的确定是口头命令已经结束的估计,其中估计的置信度是基于预期暂停持续时间。因此,当预期暂停持续时间超过阈值时确定端点。因此,系统可以基于一个或多个asr假设所看到的暂停或非语音的量来指定可能的端点。当确定可能的端点时,系统可以对所接收到的音频执行其他操作,例如,nlp和/或其他命令处理。

图1的系统100可以使用如图2所描述的各种语音处理部件来操作。图2是关于如何处理口头话语的概念图。所示的各种部件可以位于相同或不同的物理设备上。图2中所示的各种部件之间的通信可以直接或通过网络199发生。系统可包括设备110,该设备可以是通用设备(例如移动电话、平板电脑等)或专用设备,例如,被配置为播放音乐的音频设备。虽然下面的教示适用于许多不同类型的设备110,但是为了本目的,可以使用音频设备110的示例来说明系统的操作。音频设备110可以包括多个应用程序,所述多个应用程序被配置为与音频设备110的其他元件一起工作以提供服务和功能。所述应用程序可以包括诸如音乐播放器的媒体播放服务。由应用程序执行或提供的其他服务或操作可以作为示例包括请求和消费娱乐(例如,游戏、查找和播放音乐,电影或其他内容等)、个人管理(例如,日历、记笔记等)、在线购物、金融交易、数据库查询等等。在一些实施方案中,所述应用程序可以预先安装在音频设备110上,并且可以实现音频设备110的核心功能。在其他实施方案中,所述应用程序中的一个或多个可以由用户10安装,或在用户10已初始化音频设备110之后安装,并且可以如用户10期望的,实现附加功能或定制功能。

诸如音频设备110的麦克风的音频捕获部件捕获对应于口头话语的音频。下面讨论了用于捕获口头话语的细节,例如确定话语的开始和/或结束以及配置与话语对应的音频信号。包括话语的表示的音频信号/音频数据111可以被发送到asr部件250。asr部件250可以是音频设备110本地的,和/或位于远程服务器120上。asr部件250将音频转换成文本。因此,asr部件250将音频数据转录成表示音频数据中包含的语音的词语的文本数据。然后,文本数据可以被其他下游部件用于各种目的,诸如执行系统命令、输入数据等。下游部件可以是对asr输出进行操作的任何数量的部件或应用程序。虽然针对这些技术设想很多这样的下游应用程序,但是,为了说明的目的,本描述将使用nlu过程和应用程序,因为nlu过程说明了如下所述的早期asr输出的益处。例如,nlu过程可以获取asr输出,并基于早期asr输出的已辨识语音来确定例如动作(有时称为命令、“应用程序响应”或“app响应”)。

将音频数据中的口头话语输入到被配置为执行asr的处理器,该处理器随后基于话语与存储在asr模型知识库(asr模型存储装置252)中的预先建立的语言模型254之间的相似度来解释话语。例如,asr过程可以将输入音频数据与声音模型(例如,子字单元或音素)和声音序列进行比较,以识别与在音频数据的话语中说出的声音序列匹配的词。

口头话语可以被解释的不同方式(即,不同的假设)可以被指派一个概率或一个置信度分数,其表示一组特定的单词匹配在话语中说出的那些单词的可能性。置信度分数可以基于多个因素,包括,例如,话语中的声音与语言声音的模型(例如,存储在asr模型存储装置252中的声学模型253)的相似度,以及将在语句中的特定位置包括与声音匹配的特定单词的可能性(例如,使用语言或语法模型或基于对话的交互式话音响应(ivr)系统))。因此,对口头话语的每个潜在的文本解释(假设)均与置信度分数相关联。基于所考虑的因素和所指派的置信度分数,asr过程250输出音频数据中的已辨识的最可能的文本。asr过程也可以网格或n最佳列表的形式输出多个假设,其中每个假设均对应于置信度分数或其他分数(诸如概率分数等)。

执行asr过程250的一个或多个设备可以包括声学前端(afe)256和语音辨识引擎/解码器258。声学前端(afe)256将来自麦克风的音频数据转换为用于由语音辨识引擎处理的数据。语音辨识引擎258将语音辨识数据与声学模型253、语言模型254以及用于辨识在音频数据中传达的语音的其他数据模型和信息进行比较。afe可以降低音频数据中的噪声,并且将数字化音频数据划分为表示时间间隔的帧,afe为这些帧确定一组值(称为特征向量),其表示帧内的话语部分的特征/质量。许多方法可以由afe用来处理音频数据,如梅尔倒频谱系数(mfcc)、感知线性预测(plp)技术、神经网络特征向量技术、线性判别分析、半绑定协方差矩阵或本领域技术人员已知的其他方法。afe256可以位于设备110上或服务器120上。如果在设备110上,设备可以通过网络199将afe的输出(诸如特征向量)发送到服务器120以供进一步处理。

语音辨识引擎258可以参考存储在语音/模型存储装置(252)中的信息,来处理来自afe256的输出。或者,可以由执行asr处理的设备从内部afe之外的另一个源接收前端处理后的数据(诸如特征向量)。例如,设备110可以将音频数据处理为特征向量,并通过网络199将该信息传输到服务器以供进行asr处理。特征向量可以经编码地到达服务器,在这种情况下,在由执行语音辨识引擎258的处理器进行处理之前,可以将所述特征向量解码。可以使用滑动窗口技术来确定供处理的特征向量。例如,每个音频帧可以是25毫秒(ms)长,但是下一音频帧从上一帧的结尾10ms后开始。因此,某个时间点的音频数据可能出现在多个帧中。可应用快速傅立叶变换(fft)来获得对应于帧的短期幅度谱。然后,可以确定帧数据的特征值,例如通过应用滤波器组来获得特征值,然后,可以将特征值包含在与音频帧对应的特征向量中。一个或多个特征向量可以对应于单个帧。也可以使用其他用于获得特征向量的技术。

语音辨识引擎258试图将所接收的特征向量与存储的声学模型253和语言模型254中已知的语言音素和单词匹配。语音辨识引擎258基于声学信息和语言信息,来计算特征向量的辨识分数。声学信息用于计算声学分数,该分数表示由一组特征向量表示的既定声音与语言音素匹配的可能性。语言信息用于通过考虑什么声音和/或词语用于彼此的上下文中来调整声学分数,从而改进asr过程将输出在语法上讲得通的语音结果的可能性。

语音辨识引擎258可以使用多个技术来匹配特征向量与音素,例如使用隐马尔可夫模型(hmm)来确定特征向量可能匹配音素的可能性。接收到的声音可以表示为hmm的状态之间的路径,并且多个路径可能表示同一声音的多个可能的文本匹配。

在进行asr处理之后,可以由语音辨识引擎258将asr结果发送到其他处理部件,这些处理部件可以是执行asr的设备本地的,和/或分布在网络199上。例如,可以将asr结果(语音的单个文本表示、包括多个假设和相应的分数的n最佳列表、网格的形式)发送到诸如服务器120的服务器,用于进行自然语言理解(nlu)处理,诸如将文本转换为命令,供由设备110、由服务器120,或通过另一设备(诸如运行搜索引擎的服务器等等)来执行。

执行nlu处理260的设备(例如,服务器120)可包括各种部件,包括潜在专用处理器、存储器、存储装置等。被配置为用于nlu处理的设备可包括命名实体辨识(ner)模块252和意图分类(ic)模块264、结果排序和分配模块266以及知识库272。nlu过程也可使用存储在实体库存储装置282中的地名辞典信息(284a-284n)。地名辞典信息可以用于实体解析,例如,将asr结果与不同实体(诸如歌曲名称、联系人姓名等)进行匹配。地名辞典可以链接到用户(例如,特定地名辞典可以与特定用户的音乐收藏相关联),可以链接到某些域(例如购物),或可以各种其他方式组织。

nlu过程获取文本输入(诸如基于话语11,经过asr250处理的),并试图对文本进行语义解释。即,nlu过程基于个别单词确定文本的含义,并且然后实现该含义。nlu处理260解释文本串,以推导用户的意图或期望的动作,以及文本中的允许设备(例如,设备110)完成该动作的相关的多条信息。例如,如果使用asr250处理口头话语并输出文本“给妈妈打电话”,则nlu过程可以确定用户打算激活他的/她的设备上的电话,并开始向匹配实体“妈妈”的联系人打电话。

nlu可以处理与同一话语有关的数个文本输入。例如,如果asr250输出n个文本段(作为n最佳列表的一部分),则nlu可以处理所有n个输出以获得nlu结果。

如下文进一步讨论的,nlu过程可被配置为被解析和标注,以作为nlu处理的一部分,对文本进行批注。例如,对于文本“给妈妈打电话”,可以将“打电话”标注为命令(执行打电话的动作),并可以将“妈妈”标注为命令的特定实体和目标(并可以将对应于存储在联系人列表中的“妈妈”的实体的电话号码包括在批注结果中)。

为正确地执行对语音输入的nlu处理,nlu过程260可被配置为确定话语的“域”,以便确定并缩窄由端点设备(例如,服务器120或设备110)提供的哪些服务可能相关。例如,端点设备可以提供与电话服务、联系人列表服务、日历/日程安排服务、音乐播放器服务等的交互有关的服务。单个文本查询中的单词可能涉及一个以上的服务,并且一些服务可能在功能上被链接(例如,电话服务和日历服务都可以利用来自联系人列表的数据)。

名称实体辨识模块262以asr结果的形式接收查询,并试图识别可用于解释含义的相关语法和词汇信息。为此,名称实体辨识模块262可以通过识别可能与接收到的查询相关的潜在域来开始。nlu知识库272包括识别与特定设备相关联的域的设备(274a-274n)的数据库。例如,设备110可以与用于音乐、电话、日历、联系人列表和设备专用通信(而不包括视频)的域相关联。另外,实体库还可以包括关于特定设备上的特定服务的数据库条目,所述数据库条目由设备id、用户id或者家庭id或者某一其他指示符来编索引。

域可以表示具有共同主题的离散的一组活动,诸如“购物”、“音乐”、“日历”等。因此,每个域均可以与特定的语言模型和/或语法数据库(276a-276n),一组特定的意图/动作(278a-278n)以及特定的个性化词典(286)相关联。每个地名辞典(284a-284n)均可以包括与特定用户和/或设备相关联的域索引词汇信息。例如,地名辞典a(284a)包括域索引词汇信息286aa至286an。例如,用户的音乐域词汇信息可以包括例如唱片集标题、艺术家姓名和歌曲名称,而用户的联系人列表词汇信息可能包括联系人的姓名。由于每个用户的音乐收藏和联系人列表大概不同,因此,这种个性化的信息改进了实体的分辨率。

使用适用于每个识别域的规则、模型和信息来处理查询。例如,如果查询潜在地涉及通信和音乐,则将使用用于通信的语法模型和词汇信息对查询进行nlu处理,并且将使用用于音乐的语法模型和词汇信息来处理该查询。对基于由每组模型产生的查询的响应进行得分(下面进一步讨论),来自所有应用域的总体排名最高的结果通常被选择为正确的结果。

意图分类(ic)模块264解析查询以确定每个识别域的一个或多个意图,其中意图对应于对查询作出响应的要执行的动作。每个域均与链接到意图的单词的数据库(278a-278n)相关联。例如,音乐意图数据库可以将诸如“安静”,“音量关闭”和“静音”的单词和短语链接到“静音”意图。ic模块264通过将查询中的单词与意图数据库278中的单词和短语进行比较来识别每个识别域的潜在意图。

为了生成特定的解释的响应,ner262应用与相应的域相关联的语法模型和词汇信息。每个语法模型276均包括在语音中通常会发现的关于特定域的实体(即,名词)的名称(即,通用术语),而来自地名辞典284的词汇信息286是针对用户和/或设备而个性化的。例如,与购物域相关联的语法模型可以包括当人们讨论购物时通常使用的单词的数据库。

由ic模块264识别的意图被链接到具有要填充的“时隙”或“字段”的域特定语法框架(包含在276中)。例如,如果“播放音乐”是识别的意图,则一个或多个语法(276)框架可以对应于诸如“播放{艺术家姓名}”、“播放{专辑名称}”、“播放{歌曲名称}”、“{艺术家姓名}播放{歌曲名称}”等等。然而,为了使辨识更加灵活,这些框架通常不会被构造成句子,而是基于将时隙与语法标签相关联。

例如,ner模块260可以在辨识命名实体之前解析查询,以基于语法规则和模型,将单词识别为主题、对象、动词、介词等。所识别的动词可由ic模块264用来识别意图,然后,ner模块262使用该意图来识别框架。用于“播放”意图的框架可以指定适用于播放所识别的“对象”和任何对象修饰语(例如,介词短语)的时隙/字段的列表,诸如{艺术家姓名},{专辑名称},{歌曲名称}等。然后,ner模块260搜索域特定和个性化词典中的对应字段,尝试将标注为语法对象或对象修饰语的查询中的单词和短语与数据库中识别的单词和短语进行匹配。

这个过程包括语义标记,它是根据单词的类型/语义含义来标记一个单词或单词组合。解析可以使用启发式语法规则来执行,或者可以使用诸如隐马尔可夫模型、最大熵模型、对数线性模型、条件随机场(crf)等的技术来构建ner模型。

例如,查询“播放滚石乐队的妈妈的小帮手(playmother’slittlehelperbytherollingstones)”可能被解析并标记为{动词}:“播放”、{对象}:“妈妈的小帮手”、{对象介词}:“by”以及{对象修饰语}:“滚石乐队”。在此过程中的此刻,基于与音乐域相关联的单词数据库,将“播放”识别为动词,ic模块264将确定该动词对应于“播放音乐”意图。关于“妈妈的小帮手”和“滚石乐队”的含义,还没有进行确定,但根据语法规则和模型,确定这些短语与查询的语法对象有关。

然后,使用链接到意图的框架来确定应该搜索哪些数据库字段来确定这些短语的含义,例如搜索用户的公报中与框架槽的相似之处。因此,“播放音乐意图”框架可能表明尝试基于{艺术家姓名}、{专辑名称}和{歌曲名称}来解析识别的对象,而相同意图的另一个框架可能表明尝试基于{艺术家姓名}来解析对象修饰语,并基于链接到所识别的{艺术家姓名}的{专辑名称}和{歌曲名称}来解析对象。如果对地名词典的搜索没有使用地名辞典信息来解析时隙/字段,则ner模块262可以搜索与该域相关联的通用字的数据库(在nlu的知识库272中)。因此,例如,如果查询是“播放滚石乐队的歌曲(playsongsbytherollingstones)”,则在未能通过“滚石乐队”确定名为“歌曲”的专辑名称或歌曲名称之后,ner262可以在域词汇表中搜索单词“歌曲”。在替代方案中,可以在地名辞典信息之前检查通用词,或者两者都可以尝试,可能会产生两个不同的结果。

由ner模块262使用的比较过程可以分类(即,评分)数据库条目与经标记的查询词或短语的匹配程度,查询的语法结构与所应用的语法框架的对应程度,以及基于数据库是否指出条目与被识别为填充框架的其他时隙的信息之间的关系。

ner模块262也可以使用上下文操作规则来填充时隙。例如,如果用户先前已经请求暂停特定歌曲并且此后请求语音控制设备“请恢复播放我的音乐”,则ner模块262可以应用基于推断的规则来填充与用户当前希望播放的歌曲(即在用户请求暂停音乐时播放的歌曲)的名称相关联的时隙。

nlu处理的结果可以被标记以将含义赋予查询。因此,例如,“播放滚石乐队的歌曲”可能会产生以下结果:{域}音乐、{意图}播放音乐、{艺术家姓名}“滚石乐队”、{媒体类型}歌曲以及{歌曲名称}“妈妈的小帮手”。作为另一个示例,“播放滚石乐队的歌曲”可能会产生:{域}音乐、{意图}播放音乐、{艺术家姓名}”滚石乐队”、{媒体类型}歌曲。

然后,可以将nlu处理的输出(其可以包括标记的文本、命令等)发送到命令处理器290,该命令处理器可以作为系统100的一部分位于相同或单独的服务器120上。目的地命令处理器290可以基于nlu输出来确定。例如,如果nlu输出包括播放音乐的命令,则目的地命令处理器290可以是音乐播放应用程序,诸如位于音频设备110或音乐播放器中的应用程序,其被配置为执行音乐播放命令。服务器可以配置对应于包括在话语中的命令的数据(其可以被称为话语命令数据)。依据系统配置,话语命令数据可以由nlu260创建并从其输出,在这种情况下,命令可以由命令处理器290(位于服务器120、设备110或位于其他地方)执行,或者话语命令数据可以由命令处理器290创建并从其输出,在这种情况下,话语命令数据可以被发送到下游部件。

现在转到对音频数据111内的语音的识别,例如,系统100可以使用各种技术来确定要处理的语音的开始和结束。为了说明的目的,在系统100中,语音的起点被描述为由设备110确定,而语音的端点被描述为由服务器120确定(在从设备110接收到对应的音频数据之后),但是在不背离本公开的情况下,不同的部件可以执行起点确定/端点确定。

一旦在由设备110接收到的音频中检测到语音,设备就可以执行唤醒词检测以确定用户何时打算向设备110发出命令。如上所述,唤醒词是设备110被配置为辨识由设备110检测到的各种音频输入中的特殊单词。因此,唤醒词通常与将要由设备110和/或整个系统100执行的命令相关联。在检测到唤醒词之后,设备110可以向服务器120发送与话语对应的音频数据(其可以包括唤醒词本身)。然后,服务器120可以对音频数据111执行语音处理,直到检测到端点(下面讨论),并且还可以执行包括在话语中的任何结果命令。

为了确定音频命令的开始或结束,可以使用许多技术。在一个实施方案中,系统可以确定说出的单词中的暂停,并且可以将这些暂停解释为对话中的潜在中断。因此,尽管这里的讨论可以涉及确定或声明端点,但是,系统所做的是基于这里所描述的各种考虑因素来估计口头命令已经结束(即,到达端点)。对话中的中断可以被认为是话语之间的中断,并且因此被认为是话语的开始(起点)或结束(端点)。也可以使用语音/语音特征来检测话语的开始/结束。还可以使用其他技术来确定话语的开始(也被称为“起点确定”)或话语的结束(端点确定)。起点确定/端点确定可以基于,例如,沉默/非语音音频帧的数量,例如,连续的沉默/非语音帧的数量。例如,一些系统可以使用基于能量的或基于声学模型的话音活动检测(vad)技术。这样的技术可以基于音频输入的各种量化方面,诸如音频输入的一个或多个帧之间的频谱斜率;一个或多个频谱带中的音频输入的能量级别(诸如音量、强度、幅度等);过零率;一个或多个频谱带中的音频输入的信噪比;或其他量化方面,来确定语音是否存在于音频输入中。可以将这些因素与一个或多个阈值进行比较,以确定是否发生了有资格作为起点/端点的语音中断。这样的阈值可以根据用户输入来设置,或者可以由设备来设置。在一些实施方案中,起点确定/端点确定可以被进一步配置成确定音频输入在至少阈值持续时间内具有满足阈值的能量级别。在这样的实施方案中,可以忽略可能对应于相对不太可能包括语音的突发性噪声的相对较短持续时间的高能量音频输入。起点确定/端点确定可以将能量级别与能量级别阈值(并且可选地与阈值持续时间)进行比较,以确定是否满足能量级别阈值。

在某些实施方案中,可以应用隐马尔可夫模型(hmm)或高斯混合模型(gmm)技术来将音频输入与语音存储装置中的一个或多个声学模型进行比较,该声学模型可以包括对应于语音、噪音(诸如环境噪音或背景噪音),或沉默/非语音的模型。还可以使用其他技术来确定语音是否在输入音频数据中开始/结束。

可以使用各种机器学习技术来确定上文所讨论的话语的开始或结束。这样的技术可以包括,例如,神经网络(诸如深度神经网络和/或递归神经网络)、推理引擎、经训练的分类器等。经训练的分类器的示例包括支持向量机(svm)、神经网络、决策树、与决策树组合的adaboost(“自适应增强”的缩写)以及随机森林。作为示例重点介绍svm,svm是一种具有相关联学习算法的受监督的学习模型,所述学习算法分析数据和辨识数据中的模式,并且通常用于分类和回归分析。给定一组训练示例,每个训练示例标记为属于两类之一,svm训练算法构建一个模型,所述模型将新的示例指派到一个类别或另一个类别,从而使其成为一个非概率性二元线性分类器。可以构建更复杂的svm模型,其中训练集识别两个以上的类别,其中svm确定哪个类别与输入数据最相似。可以映射svm模型,使得单独类别的示例被明显的间隙分开。新的示例然后被映射到该同一空间,并基于它们落在间隙的哪一侧来预测属于的类别。分类器可以发布指示数据最接近地匹配哪一个类别的“分数”。分数可以提供数据与类别的匹配程度的指示。

为了应用机器学习技术,需要对机器学习过程本身进行培训。对机器学习部件(例如,在这种情况下,第一或第二模型中的一个)进行训练需要为训练示例建立“基本实况”。在机器学习中,术语“基本实况”是指用于监督学习技术的训练集的分类的准确性。可以使用各种技术来训练模型,包括反向传播、统计学习、监督学习、半监督学习、随机学习或其他已知技术。在训练期间,可以使用许多不同的训练示例话语。

样本话语音频的训练示例,与关于话语开始、话语结束、暂停的存在/长度等的标记的基本实况一起,可以被用于训练机器学习模型以供在运行时使用以做出这样的确定。此外,可以识别代表潜在话语的暂停的长度和语义内容的标签,并将其插入训练数据中以供训练模型时使用。在运行时处理期间,表示语音中暂停长度的模型和语义标签可以用于确定,例如,在确定话语的结束之前系统应当等待更多语音的可能性。依据所述确定,调整在确定话语的开始之前可以处理的非语音的帧的数量。检测到的语音之前的非语音帧的数量可以确定设备/系统何时确定话语的开始或结束。

足以将暂停限定为起点/端点的暂停的长度可以取决于说话者的身份。如果系统被配置为执行说话者识别(本领域已知的技术),则系统可以识别说话者并且调整暂停长度足以相应地确定端点。系统还可以被配置为学习不同说话者的暂停倾向并相应地调整其端点确定处理。例如,在系统训练/注册期间,说话者在话语之间或话题之间的暂停倾向可被记录并用于训练系统的端点确定处理。这些倾向也可以在运行时被记录下来,并用来进一步调整系统。不同的暂停长度也可以针对不同的所说的语言来配置,因为暂停长度可能根据所说的语言而变化(例如会话式英语中的暂停可能与会话式西班牙语中的暂停不同)。话语的开始/结束还可以由语音的各种特征来确定,所述语音的各种特性包括可由设备的音频和/或语音处理部件确定的语音的音调、韵律、音量、节奏、重音、语调、倒频谱等。例如,语音的升调或降调可以指示新的话语,命令的结束等。该系统可训练语音特征(其可能或可能不与说话者的身份相关),以指示话语何时结束,并且从而何时应由系统标记语音的结束。这些技术可以用于修改/定制上面讨论的语言模型,使得语言模型中的预期暂停可以基于说话者的身份。

使用上面描述的各种技术,起点确定/端点确定可以确定置信度水平,其置信度值对应于所讨论的点的位置(即,发生起点确定/端点确定的音频数据中的点)代表话语/命令的开始/结束。置信度分数可以取决于诸如用于确定标记、暂停的长度、说话者身份等的技术的因素。例如,如果置信度水平满足置信度水平阈值,则可以确定检测到的沉默足够(例如,语音中的暂停的长度超过阈值),语音存在于音频输入中,并且话语开始/结束可以被标记。然而,如果置信度水平不满足置信度水平阈值,则系统可以确定在音频输入中不存在语音。

一旦检测到唤醒词/开始点,设备110就可以开始将音频数据发送到服务器120。服务器120将持续对音频数据进行语音处理,直到检测到端点。系统100在对话语进行语音处理时考虑从起点到端点的音频数据。

传统上,用于端点确定的过程与上面讨论的用于起点确定的过程类似。端点确定和起点确定之间的一个区别是,在端点确定期间,系统对正在对其进行端点确定的话语内容有一定的了解。因此,在没有预先的语音时有时可能会进行起点确定,而当有预先的语音(即,正在检测其端点的话语的语音)时,进行端点确定。

此外,目前的vad或仅仅依赖于暂停长度的其他技术的一个缺点是,它们难以区分中间话语暂停和真正表示话语结束的暂停。此外,当前的系统在嘈杂环境下可能会遇到困难,因为将噪声与语音分离会影响正确的暂停检测。

提供了一种在确定话语的端点时利用语音内容的语音处理系统。本系统在确定端点时使用来自声学模型和语言模型的信息来考虑语音的内容。本系统改进目前的vad或其他仅依靠暂停长度的技术,并且从而改进系统区分中间话语暂停和话语结束暂停的能力。端点检测器可以基于由语音辨识引擎258确定的不同假设来确定端点。为了声明端点的目的,系统基于个别假设,确定多个活动语音假设的预期暂停长度,以及实际暂停长度是否匹配平均预期暂停长度。通过考虑活动假设(包括句末),系统可以更有力地区分预期的句内暂停持续时间和句末暂停持续时间。

为了理解在端点确定期间声学模型数据和语言模型数据的结合,下面将提供关于语音辨识引擎258的详细操作的一些进一步的数据。

如上所述,在语音辨识期间,asr模块250/语音辨识引擎258可以利用声学模型253来确定与输入的音频数据特征向量匹配的可能的音素或其他语音单元。可能的音素和相关的状态/状态转换(例如hmm状态)可以形成为遍历潜在音素的网格的路径。每条路径均表示可能与由特征向量表示的音频数据匹配的音素的进展。一个路径可以与一个或多个其他路径重叠,这取决于针对每个音素计算出的辨识分数。某些概率与从一种状态到另一种状态的每个转换相关联。还可以为每个路径计算累积路径分数。基于特征向量确定分数的过程可以被称为声学建模。当作为asr处理的一部分来将分数进行组合时,可以将分数相乘(或以其他方式组合)以达到期望的组合分数,或者可以将概率转换为对数域并且相加以辅助处理。

语音辨识引擎258还可以基于语言模型或语法来计算路径分支的分数。语言建模涉及确定可能一起使用以形成相关的单词和句子的单词的分数。语言模型的应用可以改进asr模块250正确地解释包含在音频数据中的语音的可能性。例如,对于发音像“hello”的输入音频,可以通过语言模型调整返回“helo”、“halo”和“yelo”的潜在音素路径的声学模型处理,以基于口头话语中每个单词的语言上下文,调整“helo”(被解释为单词“hello”),“halo”(被解释为单词“halo”)和“yelo”(被解释为单词“yellow”)的辨识分数。

图3示出了声学建模和语言建模之间的关系。如所示,包括在路径302中的每个已处理的音素均与声学模型分数am1到am7相关联。然后,应用语言模型,将路径304中的每个单词均与语言模型分数lm1或lm2相关联。

作为语言建模的一部分(或在asr处理的其他阶段中),语音辨识引擎258可以为了节省计算资源,消减并丢弃(根据语言模型的较低的辨识分数或由于其他原因)具有很小的对应于口头话语的可能性的低辨识分数状态或路径。这样的已消减路径/假设被认为是非活动的。活动假设是仍在语音辨识引擎258考虑中的假设。因此,活动假设可能具有高于某个阈值的置信度分数,因为它们迄今为止都避免了消减。随着asr处理继续,在asr处理的不同点处,随着基于传入音频数据和声学模型处理,其他假设被添加和/或不被视为活动时,可以将不同假设视为“活动”。此外,在asr处理期间,语音辨识引擎258可以对先前处理的话语部分迭代地执行额外的处理。稍后的处理可能并入有较早处理的结果以细化和改进结果。因此,目前正在处理并被认为是系统的潜在输出的路径被认为是活动假设。

语音辨识引擎258可将潜在路径组合成表示语音辨识结果的网格。图4中示出一个样本网格。网格402示出了语音辨识结果的多个潜在路径。大节点之间的路径表示潜在的单词(例如“hello”,“yellow”等),较小节点之间的路径表示潜在的音素(例如“h”、“e”、“l”、“o”和“y”、“e”、“l”、“o”)。为了说明的目的,仅示出了网格的前两个单词的个别音素。节点404和节点406之间的两条路径代表两个潜在的单词选择,“hellohow”或“yellownow”。节点之间的每个路径点(例如潜在的单词)与辨识分数相关联。也可以给网格上的每一路径指派一个辨识分数。语音辨识引擎258可以将最高辨识分数路径作为相关联的特征向量的asr结果返回,其中辨识分数是声学模型分数、语言模型分数和/或其他因素的组合。

图5示出了沿着网格402的不同的潜在路径。如图5所示,路径502导致“hellohoware”,路径504导致“yellownoware”,而路径506导致“yellowwowour”。如可看出,即使在小示例网格402中,也可以有许多这样的路径。图6中示出了这样的路径602-610的示例。语音辨识过程在进行语音处理时考虑成千上万种不同的路径,即假设,这并不罕见。每个假设均可以与一个分数相关联,相对于其他假设进行排序。分数可以基于输入音频数据,来自声学模型的处理,语言模型的训练等。

每个假设均可以包括指示特定假设的话语结束的结束状态。结束状态是由声学模型和/或语言模型用来指示特定假设完成的状态,例如hmm状态。当系统遍历网格并考虑潜在的假设时,系统基于特定假设的置信度分数来考虑话语是否潜在地达到结束状态。话语达到结束状态的可能性可能取决于可能已经达到结束状态的特定假设的总置信度。因此,话语达到结束状态的可能性也可能取决于例如假设的个别词和言语是否继续。例如,“天气怎么样(whatistheweather)”本身可能是一个完整的话语,但也可能跟着额外的单词,诸如“西雅图(inseattle)”、“1月(injanuary)”、“明天(tomorrow)”等。这在图7中示出。图7中所示的所有话语是在已经辨识词语“天气怎么样”之后,系统可能正在积极考虑的示例假设。还有许多其他的示例也是可能的。如果没有其他单词被辨识,则系统可以确定已经达到了结束状态,并且可以选择702作为最高得分的话语。然而,额外的单词可能会导致系统丢弃702,并且替代地考虑剩余的假设。因此,当系统处理更多的单词时,个别假设可能变得更可能或更不可能(或者完全放弃,成为非活动假设)。反之,暂停持续时间越长,系统就越有可能在此刻选择一个完整的假设,并丢弃尚未达到结束状态的假设。在传统的处理期间,可能难以区分句内暂停和句末暂停。例如,当说“天气怎么样”时,用户可能在暂停之后添加额外的信息,例如“天气怎么样[暂停]西雅图”,或者“天气怎么样[暂停]西雅图[暂停]明天”。在基于hmm的asr系统中,句末的概率由语言模型的结束状态建模。例如,为确定特定假设的端点,如果声学模型已经辨识了一定数量的非语音帧,则相应的假设可以指示结束状态,认为该假设的先前的单词指示完整的话语。

使用语音辨识引擎258的端点检测器可以利用假设信息。如下面详细描述的,随着系统网格中向前进行,可以通过考虑整个暂停持续时间以及在asr引擎考虑中的活动假设来确定已经达到端点的可能性。由于不同的假设可能对应于不同的体验的停顿持续时间(例如,由于就某些帧是否包括语音或不包括语音而论,特定的假设不同),可能需要跨多个活动假设考虑暂停持续时间。

asr模块250可以跟踪接收到的音频帧的数量,所述音频帧不包括语音或者不包括被认为是语音的足够音频特征=。这样的帧可以被认为是非语音或暂停帧。可以通过比较来自与该帧相关联的一个或多个特征向量的数据与一个或多个阈值来确定非语音或暂停帧,以确定特征向量是否代表可能对应于要被处理的语音的音频或者可能对应于诸如噪声、沉默、背景谈话(即,不被处理的语音)的其他音频的音频。因此,非语音/暂停帧是其中相应帧的音频数据被确定为不对应于用于asr处理的话语的帧。可以使用机器学习技术(诸如在此描述的那些技术)来训练模型以确定输入音频数据何时匹配非语音/暂停帧。可以将对非语音帧的跟踪并入到由声学模型和/或语言模型进行的处理中,例如,通过在活动假设结束处添加一个或多个节点/路径,其中这样的节点/路径表示一定持续时间的非语音,例如,一个或多个非语音/暂停帧。这样的节点/路径可以被认为是非语音节点/路径,或者暂停节点/路径。这样的暂停节点/路径可以表示包括停顿或非语音的一定持续时间的音频。这样的节点/路径可以与也可以包括其他非语音的其他节点/路径(诸如语义标签、状态指示符或其他非语音项目)区分开。

可选地或另外地,asr模块250可以运行一个或多个计数器,例如,每个假设一个计数器,所述计数器计数由该假设预测的紧接在前面的非语音帧的数量。系统可以在处理期间参考这样的计数器以确定有多少非语音与特定的假设相关联。当遇到一个或多个暂停节点/路径时,特别是在暂停节点/路径不跟踪正在进行的暂停的持续时间的情况下,系统也可以参考这样的计数器。计数器将向系统指示暂停持续了多长时间。在预测确实包括用于处理的语音的帧时,可以重置该特定假设的计数器。此外,还可以将音素路径/节点添加到假设中,使得假设的结束不再是与非语音相关联的路径和/或节点。例如,如果第一假设预测非语音帧,则与第一假设相关联的计数器可以被设置为1,并且/或者,可以将路径/节点添加到指示非语音的第一假设的结尾处。如果第一假设预测另外五个非语音帧,则计数器每次均可以增加1,直到它最终达到6。此外,还可以将非语音路径/非语音节点(即,表示非语音的路径或节点)添加到第一假设的结尾,指示另外五个非语音帧。如果第一假设然后预测包括语音的帧,则可以将计数器重置为零,并可以将音素路径/节点添加到第一假设的结尾。因此,在语音处理中的任何特定点,系统可以查看特定的计数器以确定紧接在特定点之前的由假设预测的非语音的量。系统还可以计数紧接在特定点之前的非语音路径/节点的数量,以便确定由假设预测的非语音的量。单个假设相对于asr处理中的当前点的暂停持续时间也可以被计算为假设已经处于紧接在当前点前面的非语音状态的连续帧的数量,或者如果假设目前处于语音状态,则为零。用于确定/估计针对特定假设预测/看到的非语音的其他方法也是可以的。此外,还可以使用非语音持续时间的其他量度(例如,帧之外)。

系统可以基于如假设所预测的非语音来确定端点。例如,系统可以确定单个假设(例如,最高得分假设)显示非语音(例如,超过阈值的一定量的非语音),因此,系统可以声明端点。然而,也可期望基于由许多不同假设预测的非语音来作出端点确定决策,从而平滑了异常假设的任何潜在影响。因此,替代基于单个假设的单个暂停持续时间来作出端点确定决定,系统可以确定预期暂停持续时间,所述预期暂停持续时间是通过考虑多个假设,并且基于与每个相应的暂停持续时间的相应假设相关联的置信度,潜在地对每一相应的暂停持续时间进行加权,计算出的估计的暂停持续时间。因此,为跨多个假设获得话语的预期暂停持续时间,系统可以考虑每一个别假设的概率或分数,并使用假设的相应概率来对每一假设的暂停持续时间进行加权。然后,系统可以将所有经加权的暂停持续时间分组,以确定在考虑中的音频数据的总暂停持续时间。此总暂停持续时间可称为预期暂停持续时间。因此,通过给假设指派一个概率并计算活动假设的暂停持续时间的加权平均值,系统可以导出预期暂停持续时间。系统还可以通过仅对当前处于语言模型结束状态的假设来计算预期暂停持续时间,来在话语结束处定义预期暂停持续时间。如下所述,当在结束状态下假设的总预期暂停持续时间和/或预期暂停持续时间超过特定阈值时,系统可确定端点,从而允许系统完成语音处理,并返回整个话语的辨识结果。可以例如由与asr模块250通信的端点确定模块890来执行预期暂停持续时间、处于结束状态下的假设的预期暂停持续时间的确定,以及其他端点确定。

如上所述,基于给定解码图/网格,对每个音频帧、asr搜索空间进行扩展,所述给定解码图/网格包括声学模型(am)分数和语言模型(lm)分数两者。声学分数和语言分数沿着个别假设的解码路径累积。为了当前的目的,假设xt={x1,x2,x3,...,xt}是直到时间(或音频帧)t的音频帧的序列,并且假设i=[1,nt]是时间t处的第i个活动假设的状态序列。对于任何给定时间t,nt是活动假设的数量。假设的后验(即置信度)可以表示为:

其中是使用由asr模块生成的并由之前的状态进行归一化的后验的声学分数。是语言模型概率和hmm跃迁概率的乘积。表示第i个假设的暂停持续时间。可以用帧或时间单位(毫秒等等)来度量。也可以被定义为使成立的最大整数n,其中sns表示所有非语音状态的集合。因此,如果在时间t-n,假设i看到语音,那么,在时间t-n+1开始看到非语音。因此,在时间t(即进行确定的时间),假设i已经看到n个时间单位的非语音。给定假设的暂停持续时间可以通过由解码器保存的解码图的回溯导出。解码图中的每个弧的输入标签可被映射到表示依赖于情境的电话的hmm状态,因此可被进一步映射到语音或非语音情况。非语音帧表示暂停,并且这样的帧可以累加,以在特定时间处到达特定假设i的暂停持续时间。如上所述,一旦该假设遇到语音帧,该假设的l就可以被重置为零。

在一个实施方案中,对于最高得分语言模型(lm)假设i=最高得分lm假设,系统可以确定体验的暂停持续时间,从而计算出如果超过了特定阈值,称为tend,并且最高得分lm假设处于结束状态(stop∈send或),则系统可以声明端点。因此,为了作出端点决定,端点确定模块890可以只考虑处于语言模型结束状态的假设,并且在这些假设中,端点确定模块可以选择最佳得分假设。如下面的等式2中所示的,如果所选择的假设是总体最佳假设,并且如在下面的等式3中所示的,如果总体最佳假设的暂停持续时间超过阈值,则端点确定模块890确定端点已经到达。

暂停持续时间阈值tend可以是可调的,并且因此被配置为被确定为实现关于端点检测的某个期望的系统性能的值。在某些情况下,当语言模型不能正确预测句子结尾时,可能会出现边缘情况。在这种情况下,最佳非句子结尾假设的概率持续占上风,端点检测器不会触发。如果总体最高得分(即最佳)假设的暂停持续时间超过阈值,这种情况可以通过交替地触发端点检测来解决,而不管最高得分假设是否处于结束状态。下面的等式4描述了这种交替的结束状态检测。

其中选择t使得t>tend。等式2和等式3的端点确定可以与等式4的端点确定结合使用,使得等式4充当等式2和等式3的退路,从而防止当语言模型从未达到结束状态时系统从不声明端点的情况。

所描述的基于语言模型的最高得分假设确定端点的方法在考虑语言模型对输入话语的操作的同时提供端点检测的有效方法。

然而,这种方法的一个难点是,上述方法取决于什么假设被认为是最高得分假设,并且最高得分假设可能会在已处理的帧之间快速变化。例如,在基于hmm的asr解码器中,语言模型可以在语音处理引擎258的整个操作过程中校正特定的假设。此外,语音处理引擎258的优化可以导致沿着网格的特定路径的语言模型分数分布呈现非平滑阶梯函数的形式。诸如噪音等其他因素可能有助于在“最高”假设之间的快速切换。为了解决不同假设作为最高得分假设之间的波动以及对端点确定系统的相应的影响,系统可以考虑多个活动假设,以达到基于预期暂停的端点检测,如下所述。尽管以下基于预期暂停的端点检测被描述为使用所有活动假设,但是,也可以考虑活动假设的子集,例如,高于某一分数阈值的活动假设,仅一定数量的活动假设等。这些变化是没有在下面明确讨论,但是应该被认为是所描述的方法的一部分,作为如下文所说明的考虑所有活动假设的替代方案。

如上所述,当确定asr输出时,语音辨识引擎258可以考虑许多活动假设。例如,在asr处理期间,在任何特定的点都可能有几千个假设。每一特定的假设均与分数/概率p相关联。每个特定假设i也均在任何特定时间点检测到一定长度的沉默或非语音,其中l是特定假设i的时间t之前有多少不间断非语音的计数。例如,l可以是在时间t之前的5个不间断非语音帧,在这种情况下,l可以是5(或者如果使用25ms帧,则可以是125ms)。在另一个示例中,如果特定话语的最近帧是包括语音的帧,则l可以是0。系统可以考虑每个假设的相应概率加权的每个活动假设的l的值,以获得特定时刻的暂停的总体图,预期的暂停持续时间。因此,在时间t的预期的暂停持续时间d可以由跨假设的暂停持续时间的总和来表示,其中每个持续时间乘以在该特定状态和音频帧xt中的每个假设i在时间t的归一化概率(即,后验概率)。预期的暂停持续时间函数如下面的等式5所示。

这可以被解释为对所有活动解码假设计算出的暂停持续时间的期望值。通过考虑活动假设来平滑暂停持续时间使得该值对最佳解码假设中的变化较不敏感。因此,等式5的总和加权暂停持续时间可以为在时间t的输入音频的暂停持续时间提供更强健的确定方法。由于所有假设的累积概率通常低于已知数(例如,1、1000,或取决于系统配置的某个其他数),并且任何特定假设的个别概率在该已知数下,因此,等式5的预期暂停持续时间d可以被认为是跨活动假设的加权平均预期暂停持续时间。

虽然等式5的d表示在考虑中的活动假设的预期暂停持续时间,但是,系统还可以考虑在话语结束时的预期暂停持续时间,即计算预期的暂停持续时间,但是仅针对在语言模型中已经达到结束状态的活动假设。在等式6中示出了此预期持续时间dend。

等式6的话语结束dend处的预期暂停持续时间可以被认为是在结束状态下跨活动假设的加权平均预期暂停持续时间。可以理解的是,d≥dend,因为d包括活动假设,但dend仅包括处于结束状态的活动假设。对于话语中间的暂停,dend的值仍然很小。但随着输入音频中的暂停长度的增加,更多的在所考虑中的活动假设将达到结束状态,并且dend的值将收敛于d的值,因此,当所有活动假设都处于结束状态时达到d=dend。

使用以上等式,如果发生两种情况中的任一种,则端点确定模块890可以确定端点:

1.

2.

情况1的第一个条件是话语结束时的预期暂停持续时间dend达到了某一阈值tend。因此,如果在结束状态下若干个活动假设所体验的预期暂停持续时间超过阈值tend,则满足情况1的第一条件。情况1的第二条件是活动假设的预期暂停持续时间(不管假设状态)是否达到了某一阈值t'。因此,如果所有活动假设所体验的预期暂停持续时间超过阈值t',则满足情况1的第二条件。第二条件用作对第一条件的检查,以避免中间话语暂停意外地导致端点被触发。再次参考上面参考图7讨论的示例,如果话语的开始是“whatistheweather[暂停]”,则依据暂停长度,许多假设可能尚未达到结束状态。第二条件保证不会响应于中间话语暂停而过早地声明端点,这可能在语言模型未能正确预测话语的结束时发生。如果情况1的第一条件和第二条件都被满足,则可以声明端点。或者,如果仅满足情况1的第一条件或者如果满足情况1的第二条件,则系统可以声明端点,但是可能优选的是在情况1的两个条件都满足时声明端点。

条件2充当端点确定安全阀,类似于上面参考基于最佳假设的端点确定所讨论的。如果语音辨识引擎258遇到错误,则系统不希望经历从不出现端点的循环。因此,可以配置安全阈值t,使得如果所有活动假设都跨越阈值t,则声明端点。虽然t、t'和tend的值是可配置的以达到期望的系统性能,但可以理解,t大于t'和tend,以便t充当安全阈值。可以使用上面讨论的机器学习技术对开发训练数据集,优化各种阈值。此外,尽管上述技术可以与现有语言模型一起使用,但是,在对语言模型的训练期间,可以优化语言模型,以仔细地选择假设内的结束状态。例如,可以使用具有已知端点的话语训练集合,并且可以训练语言模型,以最小化错过端点的成本函数。其他这样的训练配置也是可以的。

上述基于语言模型的端点确定技术可以与其他端点确定技术(例如,vad技术)结合使用。例如,在处理话语的开始期间,系统可能会经历错误的端点触发。为解决此问题,在语音处理开始期间(即,在一定的持续时间内),系统可以使用vad技术来检查端点,并且可以在该持续时间过去之后切换到如上所述的语言模型技术。

另一种端点确定机制可以使用上述多种机器学习技术。例如,可以训练分类器(诸如svm)或其他模型,以基于最佳假设的暂停和多个活动假设(潜在地包括处于结束状态的活动假设)的预期暂停持续时间来确定端点。可以使用具有表示音频数据、暂停持续时间等的多个不同训练话语/端点的多个支持向量来训练分类器。

图8是概念性地示出可以并入有某些语音接收/处理能力的本地设备110的框图。图9是概念性地示出可协助asr和/或nlu处理的远程设备(例如远程服务器120)的示例部件的框图。系统中可以包括多个这样的远程设备,例如用于asr的一个远程设备,用于nlu的一个远程设备等。在操作中,这些设备中的每一个均可以包括驻留在相应设备(110/120)上的计算机可读指令和计算机可执行指令,这将在下面进一步讨论。

这些设备(110/120)中的每一个均可以包括一个或多个控制器/处理器(804/904),每个控制器/处理器均可以包括用于处理数据和计算机可读指令的中央处理单元(cpu),以及用于存储相应设备的数据和指令的存储器(806/906)。存储器(806/906)可以个别地包括易失性随机存取存储器(ram)、非易失性只读存储器(rom)、非易失性磁阻(mram)存储器和/或其他类型的存储器。每个设备均还可以包括数据存储部件(808/908),用于存储数据和控制器/处理器可执行指令。每个数据存储部件均可以个别地包括一个或多个非易失性存储装置类型,例如,磁存储装置、光存储装置、固态存储装置等。每个设备均还可以通过相应的输入/输出设备接口(802/902)连接到可移除的或外部非易失性存储器和/或存储装置(诸如可移除存储器卡、闪存盘,联网存储装置等)。

用于操作每个设备(110/120)及其各种部件的计算机指令可以由相应设备的控制器/处理器(804/904),在运行时使用存储器(806/906)作为临时“工作”存储装置来执行。设备的计算机指令可以非瞬时的方式存储在非易失性存储器(806/906)、存储装置(808/908)或外部设备中。可选地,除了软件之外或替代软件,可执行指令中的一些或全部可被嵌入相应设备上的硬件或固件中。

每个设备(110/120)均包括输入/输出设备接口(802/902)。如下面将进一步讨论的,各种部件可以通过输入/输出设备接口来连接。另外,每个设备(110/120)均可以包括用于在相应设备的部件之间传送数据的地址/数据总线(824/924)。设备(110/120)内的每个部件还可以直接连接到其他部件,以及(或替代地)通过总线(824/924)连接到其他部件。

参考图8中的语音控制设备110,输入/输出设备接口802连接到各种部件,诸如麦克风818或麦克风阵列、一个或多个扬声器816、支持无线通信的一个或多个天线814。经由天线,输入/输出设备接口802可以经由以下各项连接到一个或多个网络199:无线局域网(wlan)(诸如wifi)无线电、蓝牙和/或无线网络无线电,诸如能够与诸如长期演进(lte)网络、wimax网络、3g网络等的无线通信网络进行通信的无线电。也可以支持诸如以太网的有线连接。通过网络199,语音处理系统可以分布在联网环境中。

设备可包括asr模块250。存储装置808可包括由asr模块250使用的asr模型252。asr模块250可以被配置为识别有限数量的单词,诸如设备的唤醒词,或者可以被配置为执行扩展语音辨识以辨识更大范围的单词。该设备还可以包括有限的或扩展的nlu模块260,其可以包括某些nlu功能或者可以包括扩展的nlu功能,诸如上面参考nlu模块260所描述的。存储装置808还可以包括nlu知识库272和/或实体库282。该设备还可以包括端点确定模块890,以使用如上所述的假设来执行端点确定。该设备还可以包括命令处理器290,用于进一步执行口头命令。

如图9所示,一个或多个服务器120可以包括asr模块250、nlu模块260、端点确定模块890和/或命令处理器290。命令处理器290可以被配置为执行与话语相关联的命令。

如上所述,可以在单个语音处理系统中使用多个设备。在这样的多设备系统中,每个设备均可以包括用于执行语音处理的不同方面的不同部件。多个设备可以包括重叠的部件。设备110和服务器120的部件,如图8和9所示,是示例性的,并且可以位于独立的设备中,也可以全部或部分地作为较大设备或系统的部件来包括。

如图10所示,多个设备(110a-110d和120a-120c)可以包含系统100的部件,并且设备可以通过网络199连接。网络199表示包括数据和/或语音网络的任何类型的通信网络,并且可以使用有线基础设施(例如电缆、cat5、光纤电缆等)、无线基础设施(例如wifi、rf,蜂窝、微波、卫星、蓝牙等)和/或其他连接技术来实现。因此,设备可以通过有线或无线连接而连接到网络199。网络199可以包括本地或专用网络,或者可以包括诸如互联网的广域网络。例如,语音控制设备110a、平板计算机110b、智能电话110c和冰箱110d可以通过无线服务提供商、通过wifi或蜂窝网络连接等连接到网络199。包括其他设备作为网络连接的支持设备,诸如膝上型计算机120a、台式计算机120b和服务器120c。支持设备120可以通过有线连接或无线连接而连接到网络199。联网设备110可以使用一个或多个内置或连接的麦克风818或音频捕获设备捕获音频,其中由asr、nlu或者经由网络199连接的相同设备或另一设备的其他部件(诸如一个或多个服务器120c的asr250、nlu260等)来执行处理。

这里公开的概念可以应用在多个不同的设备和计算机系统内,包括例如通用计算系统、语音处理系统和分布式计算环境。因此,在不脱离本公开的范围的情况下,可以组合或重新布置上述模块、部件和/或过程。上面所描述的任何模块的功能都可以在多个模块之间分配,或者与不同模块组合。如上文所讨论的,任何或全部模块都可以体现在一个或多个通用微处理器中,或者在一个或多个专用数字信号处理器或其他专用微处理硬件中。一个或多个模块也可以体现在由处理单元实现的软件中。此外,还可以从过程中完全省略模块中的一个或多个。

本公开的上述各方面都意在是说明性的。选择它们是为了解释本公开的原理和应用,而并非意图为穷举性的或限制本公开。所公开的方面的许多修改和变化对于本领域技术人员来说可能是显而易见的。计算机和语音处理领域的普通技术人员应该认识到,这里描述的部件和工艺步骤可以与其他部件或步骤或者部件或步骤的组合互换,并且仍然实现本公开的益处和优点。此外,对于本领域技术人员而言显而易见的是,可以在没有本文公开的一些或全部特定细节和步骤的情况下实施本公开。

所公开的系统的各方面可以被实现为计算机方法或者被实现为诸如存储器设备或非暂时性计算机可读存储介质的制品。计算机可读存储介质可以是计算机可读的并且可以包括用于使计算机或其他设备执行在本公开中描述的过程的指令。计算机可读存储介质可以由易失性计算机存储器、非易失性计算机存储器、硬盘驱动器、固态存储器、闪存驱动器、可移除磁盘和/或其他介质来实现。另外,模块和引擎中的一个或多个的部件可以固件或硬件的形式来实现,诸如声学前端256,尤其包括模拟和/或数字滤波器(例如,作为固件被配置到数字信号处理器(dsp)的滤波器)。

除非另有明确说明,或者在所使用的上下文中以其他方式理解,否则本文使用的条件语言,诸如“可以”、“可能”、“例如”等等是通常旨在传达某些实施方案包括,而其他实施方案不包括某些特征、元素和/或步骤。因此,这样的条件语言通常并不意味着以任何方式要求一个或多个实施方案的特征、元素和/或步骤,或者一个或多个实施方案必然包括用于在有或者没有作者输入或提示的情况下决定是否包括或将在任何特定实施方案中执行这些特征、元素和/或步骤。术语“包括”、“具有”等是同义词,并且以开放式的方式包含性地使用,并且不排除附加的元素、特征、动作、操作等等。此外,术语“或”以其包含的含义(而不是其独有意义)使用,使得当用于例如连接元素列表时,术语“或”表示列表中的一个、一些或全部元素。

连接性语言,诸如短语“x、y和z中的至少一个”,除非另有明确规定,用于与上下文一起要被理解为用于一般传达,项目、术语等等可以是x、y或z中的任何一个,或其组合。因此,这样的连接性语言通常并非意图暗示某些实施方案要求x中的至少一个、y中的至少一个以及z中的至少一个每一个都存在。

如在本公开中所使用的,除非另有特别说明,否则术语“一”或“一个”可以包括一个或多个项目。此外,短语“基于”意图表示“至少部分地基于”,除非另有特别说明。

条款

1.一种用于在自动语音辨识(asr)处理期间确定端点的计算机实现的方法,所述方法包括:

接收表示语音的音频数据;

对所述音频数据执行asr处理以确定多个假设;

针对所述多个假设中的每一个,确定所述相应假设对应于所述音频数据的相应概率;

针对所述多个假设中的每一个,确定紧接在第一点前面的非语音音频帧的相应数量;

针对所述多个假设中的每一个,通过将相应假设的所述概率乘以所述相应假设的非语音音频帧的数量来确定加权暂停持续时间;

通过对所述多个假设中的每一个的所述加权暂停持续时间求和来确定累积预期暂停持续时间;

确定所述预期暂停持续时间超过阈值;以及

将所述第一点指定为对应于可能的端点。

2.根据条款1所述的计算机实现的方法,其还包括:

确定第二多个假设,其中:

所述第二多个假设是所述多个假设的子集,以及

所述第二多个假设中的每一个均在相应的结束状态下;

通过对所述第二多个假设中的每一个的所述加权暂停持续时间求和来确定第二预期暂停持续时间;以及

确定所述第二预期暂停持续时间超过第二阈值。

3.根据条款1所述的计算机实现的方法,其中确定每一相应的假设的非语音音频帧的所述数量包括:针对每一个假设,确定紧接在所述第一点之前的连续非语音节点的数量。

4.根据条款1所述的计算机实现的方法,其中确定每一相应的假设的非语音音频帧的所述数量包括:针对每一个假设,保持紧接在所述第一点之前的连续非语音帧的数量的计数器。

5.一种计算机实现的方法,其包括:

对音频数据执行语音辨识处理以确定至少一个假设;

确定所述至少一个假设的暂停,其中所述暂停紧接在所述音频数据中的第一点前面;以及

确定所述语音的端点出现在所述音频数据中的所述第一点处。

6.根据条款5所述的计算机实现的方法,其中所述至少一个假设包括来自多个假设当中的具有最高概率的最高得分假设。

7.根据条款5所述的计算机实现的方法,其中所述至少一个假设包括多个假设,并且所述方法还包括:

针对所述多个假设中的每一个,确定紧接在所述第一点前面的相应的暂停持续时间;以及

通过对所述多个假设中的每一个的所述暂停持续时间求和来确定对应于所述第一点的所述音频数据的预期暂停持续时间,以及

将所述预期暂停持续时间与阈值进行比较。

8.根据条款7所述的计算机实现的方法,其还包括:

针对所述多个假设中的每一个,确定对应于每个相应假设的概率;以及

在确定所述预期暂停持续时间之前,将每一暂停持续时间乘以所述对应假设的所述概率。

9.根据条款8所述的计算机实现的方法,其还包括:

确定第二多个假设,其中:

所述第二多个假设是所述多个假设的子集,以及

所述第二多个假设中的每一个均在相应的结束状态下;

通过对所述第二多个假设中的每一个的所述暂停持续时间求和来确定第二预期暂停持续时间;以及

确定所述第二预期暂停持续时间超过第二阈值。

10.根据条款5所述的计算机实现的方法,其中确定所述暂停包括确定紧接在所述第一点前面的连续非语音帧的数量。

11.根据条款10所述的计算机实现的方法,其中确定非语音音频帧的所述数量包括保持紧接在所述第一点之前的连续非语音帧的数量的计数器。

12.根据条款10所述的计算机实现的方法,其中确定非语音音频帧的所述数量包括确定紧接在所述第一点之前的连续非语音节点的数量。

13.一种计算系统,其包括:

至少一个处理器;

存储器,其包括可操作以由所述至少一个处理器执行以使所述系统执行一组动作的指令,所述一组动作包括:

对音频数据执行语音辨识处理以确定至少一个假设;

确定所述至少一个假设的暂停,其中所述暂停紧接在所述音频数据中的第一点前面;以及

确定所述语音的端点出现在所述音频数据中的所述第一点处。

14.根据条款13所述的计算系统,其中所述至少一个假设包括来自多个假设当中的具有最高概率的最高得分假设。

15.根据条款13所述的计算系统,其中所述至少一个假设包括多个假设,并且所述一组动作还包括:

针对所述多个假设中的每一个,确定紧接在所述第一点前面的相应的暂停持续时间;以及

通过对所述多个假设中的每一个的所述暂停持续时间求和来确定对应于所述第一点的所述音频数据的预期暂停持续时间,以及

将所述预期暂停持续时间与阈值进行比较。

16.根据条款13所述的计算系统,所述一组动作还包括:

针对所述多个假设中的每一个,确定对应于每个相应假设的概率;以及

在确定所述预期暂停持续时间之前,将每一暂停持续时间乘以所述对应假设的所述概率。

17.根据条款16所述的计算系统,所述一组动作还包括:

确定第二多个假设,其中:

所述第二多个假设是所述多个假设的子集,以及

所述第二多个假设中的每一个均在相应的结束状态下;

通过对所述第二多个假设中的每一个的所述暂停持续时间求和来确定第二预期暂停持续时间;以及

确定所述第二预期暂停持续时间超过第二阈值。

18.根据条款13所述的计算系统,其中确定所述暂停包括确定紧接在所述第一点前面的连续非语音帧的数量。

19.根据条款18所述的计算系统,其中确定非语音音频帧的所述数量包括保持紧接在所述第一点之前的连续非语音帧的数量的计数器。

20.根据条款18所述的计算系统,其中确定非语音音频帧的所述数量包括确定紧接在所述第一点之前的连续非语音节点的数量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1