首页 > 乐器声学 专利正文
用于自动语音识别的字词网格扩增的制作方法

时间:2022-02-24 阅读: 作者:专利查询

用于自动语音识别的字词网格扩增的制作方法
用于自动语音识别的字词网格扩增


背景技术:

1.自动语音识别(asr)技术将自然语言输入转换成文本。例如,可以将使用麦克风捕获的音频数据转换成文本。asr系统可以包括第一通解码器部分和第二通重评分器部分,该第一通解码器部分搜遍假设空间并产生捕获的音频数据的候选识别集合,该第二通重评分器部分从候选识别集合中选择生成的文本。
2.人们可以使用交互式软件应用参与人机对话,在本文中,这些交互式软件应用被称为“自动助理”(又称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“助理应用”、“会话代理”等)。例如,人们(他们与自动助理进行交互时可以被称为“用户”)可以使用口头自然语言输入(即,话语)向自动助理提供命令和/或请求,在一些情况下,可以将该口头自然语言输入转换成文本(例如,使用asr技术转换成文本),然后进行处理。


技术实现要素:

3.本文所述实施方式是针对确定包含上下文相关命名实体的捕获的音频数据的文本表示。命名实体(ne)可以包括一个或多个地点、事件、人物和/或附加实体。在许多实施方式中,命名实体引擎可用于扩增由asr引擎的第一通解码器部分生成的捕获的音频数据的候选识别。asr系统可以包括第一通解码器和第二通重评分器。第一通解码器可以确定捕获的音频的候选识别集合。在许多实施方式中,该候选识别集合可以表示为字词网格(即,包含捕获的音频数据的候选识别的无环图)。第二通重评分器可以选择候选识别作为捕获的音频数据的文本表示。根据本文描述的实施方式的ne引擎可以用于基于由第一通解码器生成的字词网格来确定上下文相关命名实体的附加或替代候选识别。在许多实施方式中,ne引擎可以处理上下文相关命名实体的替代候选识别以确定在音频数据中捕获的替代候选识别的似然率。类似地,第二通重评分器可以处理使用第一通解码器生成的候选识别集合以确定在音频数据中捕获的候选识别集合的似然率。可以选择最似然的识别作为对应于捕获的音频数据的文本。在许多实施方式中,ne引擎和第二通重评分器可以并行处理使用第一通解码器生成的字词网格。附加地或替代地,ne引擎可以在第二通重评分器之前或第二通重评分器之后处理字词网格。
4.第一通解码器通常擅长识别可以指示附近存在ne的常用字词。当第一通解码器无法识别ne时,它们很可能将该ne误认为成发音上接近的字词序列。例如,用户可能说出“please play wall

e on my tv(请在我的电视机上播放wall

e)”。asr解码器有可能正确识别出“please play”和“on my tv”。在许多实施方式中,解码器未能识别出ne“wall

e”,而是可能提议发音上接近的候选识别“wally”。命名实体引擎可以利用asr系统的这些属性来用附加和/或替代候选识别扩增字词网格。在许多实施方式中,ne引擎可以标识扩增位置,该扩增位置是asr字词网格中有可能基于载体短语来标识ne的跨度。载体短语是指示ne的可能性的一序列字词和/或占位符非终结令牌。命名实体类型可以包括:歌曲、联系人、播放列表、地点、日历事件、软件应用和/或附加命名实体类型。例如,字词网格的子路径可以被其左边的开始标签(opening tag)(例如,<song>)与其右边的结束标签(closing tag)
(例如,</song>)包围,除了其未标注副本之外。譬如,捕获的音频数据可以包括“please play

hypothetical movie title(假设的电影片名)
’”
。载体短语“play”提供ne“hypothetical movie title”的指示。覆盖短语“hypothetical movie title”的时间间隔可以被标识为扩增位置。
5.附加地或替代地,ne引擎可以标识覆盖扩增位置的音素序列的音素网格表示。在许多实施方式中,可以标识对应于asr字词网格中的候选字词的音素序列。在许多实施方式中,可以标识对应于捕获扩增位置的时间间隔的音素序列。可以部分地基于先前预测的音素来预测音素序列。通过预测扩增位置的时间间隔的音素并排除其余的音频数据,所预测的音素将不会受到音频数据中的附加字词的音素影响。附加地或替代地,可以在预测声学上相似的音素序列时利用相似的替换。此外,可以通过接受远离音素网格k次编辑(例如,插入、删除和/或替换)的音素序列来扩展音素集合。
6.可以将音素网格的一个或多个部分与用户相关联的ne的音素表示相匹配。例如,可以将音素网格与用户联系人的音素表示相比较。当ne的音素表示与一部分音素网格相匹配时,使用asr系统的第一通解码器生成的字词网格可以用扩增位置处的ne来扩增,以生成扩增字词网格。换言之,可以将相匹配的ne作为音频数据的附加候选识别包含在扩增字词网格中。在许多实施方式中,可以使用ne引擎来处理字词网格的扩增部分,并且可以使用asr的第二通重评分器来处理字词网格,以确定每个候选识别的似然率。可以基于最似然的识别来选择捕获的音频数据的文本表示。
7.相应地,各种实施方式阐述了用于处理音频数据输入以生成上下文相关命名实体的文本表示(并以使得语音识别更有效和/或更准确的方式来执行)的技术。即使当ne具有低先前概率(即,用于训练asr系统的训练数据中罕少遇到该ne)或该ne在底层asr系统的词汇表之外时,本文公开的实施方式也会提高在音频数据中捕获的ne的文本表示的准确性。以这些和其它方式,可以对于给定的命名实体执行准确的语音识别,而无需先前利用资源在包括给定命名实体的多个(或甚至任何)训练示例上训练asr系统。另外,准确识别捕获的音频数据无需用户重复被系统错误识别的音频数据(或手动键入对错误识别的校正),从而可以节省系统资源(例如,处理器周期、内存、电池电量和/或计算系统的额外资源)。这会缩短用户输入的持续时间和用户系统对话的持续时间。再者,无需用户重复被系统错误识别的音频数据,可以改善用户体验。
8.提供上述发明内容仅作为对本文公开的一些实施方式的概述。下面详述本公开技术的这些和其它实施方式。
9.应当领会,本文具体描述的上述概念和附加概念的全部组合被视为本文公开主题的一部分。例如,本公开所附的要求保护的主题的全部组合被视为本文公开主题的一部分。
附图说明
10.图1a示出了根据本文公开各种实施方式生成捕获的音频数据的文本表示的示例。
11.图1b示出了可以实现本文公开的各种实施方式的示例环境。
12.图2示出了根据本文公开实施方式使用asr系统的第一通解码器部分生成的示例字词网格。
13.图3示出了根据本文公开实施方式的示例模式标注有限状态转换器。
14.图4示出了根据本文公开实施方式的示例标注字词网格。
15.图5示出了根据本文公开实施方式的示例字词子网格。
16.图6示出了根据本文公开实施方式的示例音素网格。
17.图7示出了根据本文公开实施方式的相似音素替换之后的示例音素网格。
18.图8示出了根据本文公开实施方式的示例音素到实体有限状态转换器。
19.图9示出了根据本文公开实施方式的实体匹配结果的示例。
20.图10示出了根据本文公开实施方式的指示扩增位置的标注字词网格。
21.图11示出了根据本文公开实施方式的示例扩增字词网格。
22.图12是示出根据本文公开实施方式的示例过程的流程图。
23.图13示出了可以实现本文公开实施方式的另一示例环境。
24.图14示出了计算设备的示例架构。
具体实施方式
25.图1a示出了根据多种实施方式利用命名实体(ne)模块来生成音频数据的文本表示的示例。在本图示例中,使用自动语音识别(asr)引擎来处理音频数据102。音频数据102可以是捕获的音频数据,诸如由客户端设备的麦克风捕获的口头自然语言。自动语音识别引擎可以包括解码器部分104以及重评分器部分112。在许多实施方式中,asr引擎可以是大词汇量连续语音识别系统,其包括两通:第一通解码器部分104和第二通重评分器部分112。解码器部分104可以用于生成音频数据的候选识别集合。在许多实施方式中,这些候选识别表示为字词网格106。可以利用多种第一通解码器部分,包括有限状态转换器(fst)、序列到序列神经网络模型和/或附加的第一通部分,它们可以产生表示为字词网格的音频数据的候选识别集合。字词网格是有向无环图,其中每个不同的路径是音频数据的候选文本表示。图2示出了对应于“call emma rose”的捕获的音频数据的示例字词网格200。重评分器部分112可以从由asr引擎的第一通生成的字词网格106中选择音频数据的最似然的文本表示。在多种实施方式中,ne引擎108可用于处理使用asr解码器部分104生成的字词网格106以生成扩增字词网格110。命名实体引擎108可以提高对原本具有低先前概率或在底层asr引擎的词汇表之外的上下文相关命名实体(ne)的识别。扩增字词网格110可以包括命名实体的附加或替代候选识别。图11示出了对应于图2中的字词网格200的扩增字词网格1100。命名实体引擎108可以附加地和/或替代地处理扩增字词网格以确定音频数据的文本表示的最似然的命名实体候选识别。可以将此与使用asr重评分器112所确定的捕获的音频数据的最似然的文本识别相比较,以确定捕获的音频数据114的文本表示。
26.图1b示出了可以实现本文公开实施方式的示例环境。图1b中的示例环境包括客户端设备154以及一个或多个用户界面输入/输出设备152。客户端设备154可以包括自动语音识别引擎156、命名实体引擎160和/或附加或替代的引擎(未绘出)。在许多实施方式中,命名实体引擎158可以包括模式标注模块160、发音恢复模块162、假设恢复模块164和/或附加或替代的引擎(未绘出)。附加地或替代地,客户端设备154可以与命名实体166相关联。在许多实施方式中,命名实体166可以包括命名实体和对应于命名实体的发音的音素网格。另外,命名实体166可以与客户端设备154相关联的用户简档相关联。命名实体166可以本地存储在客户端设备上并且可以供一个或多个引擎用来在客户端设备处本地确定扩增字词网
格。在许多实施方式中,无需将命名实体传输到客户端设备远程的共享计算设备,而是在客户端设备本地存储和处理命名实体166可以给予用户对与其用户简档相关联的命名实体的额外控制。
27.用户界面输入/输出设备152可以例如包括物理键盘、触摸屏(例如,实现虚拟键盘或其它文本输入机制)、麦克风、相机、显示屏和/或扬声器。用户界面输入/输出设备152可以与用户的一个或多个客户端设备154相协作。例如,用户的移动电话可以包括用户界面输入/输出设备154;独立的个人助理硬件设备可以包括用户界面输入/输出设备152;或者第一计算设备可以包括用户界面输入设备152而单独的计算设备可以包括用户界面输出设备152;等等。
28.尽管客户端设备154在图1b中示为与用户界面输入/输出设备152分开,但在一些实施方式中,客户端设备154的全部或多方面可以在也包含用户界面输入/输出设备152的客户端设备上实现。在一些实施方式中,客户端设备154可以包括自动助理(未绘出),并且自动助理的全部或多方面可以在与包含用户界面输入/输出设备152的客户端设备分开的远程计算设备上实现(例如,全部或多方面可以“在云中”实现)。在那些实施方式中的某一些中,自动助理的那些方面可以经由诸如局域网(lan)和/或广域网(wan)(例如,因特网)的一个或多个网络与计算设备进行通信。
29.可以包括用户界面输入/输出设备152的客户端设备154的一些非限制性示例包括以下一项或多项:桌面型计算设备、膝上型计算设备、至少部分地专用于自动助理的独立硬件设备、平板型计算设备、移动电话计算设备、用户车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)或者包括计算设备的用户可穿戴设备(例如,具有计算设备的用户手表、具有计算设备的用户眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代的计算系统。
30.客户端设备154可以包括一个或多个用于存储数据和软件应用的存储器、一个或多个用于访问数据和执行应用的处理器以及其它有助于网络通信的组件。客户端设备154所执行的操作可以分布于多个计算设备当中。例如,在一个或多个位置的一台或多台计算机上运行的计算程序能够通过网络相互耦合。
31.如图1b所示,客户端设备154可以使用asr引擎156和命名实体引擎158来处理音频数据以生成音频数据的预测文本表示。在许多实施方式中,asr引擎156可以包括第一通解码器部分以及第二通重评分器部分。在许多实施方式中,第一通解码器部分可以生成表示为字词网格的音频数据的候选识别集合。第二通重评分器部分可以选择候选识别集合中最似然的文本表示。在许多实施方式中,第二通重评分器部分可以从使用命名实体引擎158生成的扩增字词网格中选择最似然的文本表示。
32.命名实体引擎158可以处理使用asr引擎156的第一通解码器部分生成的字词网格以生成包括上下文相关命名实体的附加候选识别集合的扩增字词网格。在各种实施方式中,命名实体引擎158可以包括模式标注模块160、发音恢复模块162和假设恢复模块164。模式标注模块160可用于标识由第一通解码器生成的字词网格中可能包含ne的部分。附加地或替代地,发音恢复模块162可用于在由模式标注模块160标识为可能包含ne的跨度的时间间隔上构建口头音素的假设。另外,假设恢复模块164可以将已知的ne与使用发音恢复模块162标识的口头音素的假设相匹配,并且可以生成包括匹配ne的附加假设的扩增字词网格。
附加地或替代地,命名实体引擎158可以处理字词网格的扩增部分以选择音频数据的最似然的文本表示。
33.图2示出了根据本文公开实施方式的使用asr系统的第一通解码器部分生成的字词网格200。字词网格200是有向无环图,其中每条路径表示音频数据的候选识别。在许多实施方式中,字词网格200是使用asr系统的第一通解码器部分生成的。例如,字词网格200包括“emma”的两个候选识别:(1)在顶点2与顶点4之间表示“emma”的边,表示“emma”,以及(2)在顶点2与顶点3之间表示“am”的边和在顶点3与顶点4之间表示“a”的边。在本图示例中,字词网格200以顶点0处开始并以顶点6结束。字词网格200包括顶点0与顶点6之间的多种附加顶点,包括顶点1、顶点2、顶点3、顶点4和顶点5。在本图示例中,顶点0与顶点1之间的边表示“<s>”(即,指示音频数据中句子和/或短语开始的令牌)。顶点1与顶点2之间的边由候选识别“call”表示。两个候选识别由顶点2与顶点4之间的边表示。“emma”的第一候选识别表示为顶点2与顶点4之间的边。附加地或替代地,“am”的候选识别表示为顶点2与顶点3之间的边,并且“a”的候选识别表示为顶点3与顶点4之间的边。顶点4与顶点5之间的边是“rose”的候选识别。另外,顶点5与结束顶点之间的边是“</s>”的候选识别(即,指示音频数据中句子和/或短语结束的令牌)。
34.在许多实施方式中,模式标注模块160可以利用模式标注有限状态转换器(fst)来将开始和结束标签(例如,<contacts>

</contacts>)插入到字词网格中,其中开始和结束标签标识有可能包含上下文相关ne的字词跨度。每个标注的跨度可以与实体类型相关联,诸如歌曲、联系人、播放列表和/或附加命名实体类型。给出输入字词网格(诸如图2中的字词网格200),可以生成扩增字词网格,其中有可能包含ne的一个或多个字词的子路径被其左边的开始标签(例如,<song>)与其右边的结束标签(例如,</song>)包围,除了其未标注副本之外。
35.对于每个类别的类型,可以聚合可用信号通知ne存在的载体短语模式列表。载体短语是表示假设ne位置的一序列锚字词和/或占位符非终结令牌。图3示出了根据许多实施方式的示例模式标注有限状态转换器(fst)300。在本图示例中,模式标注fst 300可用于基于音频数据的候选识别中存在载体短语“text”或载体短语“call”来标识ne联系人。图4示出了根据许多实施方式的示例标注字词网格400。在本图示例中,通过使用图3中的模式标注fst 300处理图2中的字词网格200来生成标注字词网格400。除了候选字词识别的未标注副本之外,标注字词网格400指示字词网格200中有可能包含上下文相关ne的跨度。例如,字词网格200中跟随在载体短语“call”之后的部分被复制并且在标注字词网格400中加边界为“<contact>

</contact>”。
36.在许多实施方式中,发音恢复模块162可用于在对应于标注跨度的时间间隔上构建口头音素的假设。这些假设可以表示为音素网格,并且可用于搜索发音上接近的ne。在许多实施方式中,可以使用发音词典来确定每个标注路径的音素网格。但是,这可能将每个路径限制到由asr引擎沿着该特定路径原始提议的字词发音,这可能无法恢复音频数据中所捕获的基础真实音素。
37.发音恢复模块162可以利用与使用asr引擎生成的字词网格中的每个状态相关联的按时间顺序的时间数据。代替检查标注路径内的字词,发音恢复模块162可以考虑由标注路径的端点界定的时间间隔。网格中填充这个时间间隔的任何字词序列都可以用来生成音
素假设。所得的音素网格可以允许相比朴素法(approach)更多的路径。换言之,它可以接受来自任何标注跨度之外的字词的音素序列,和/或它可以接受通过在使用asr引擎生成的字词网格中拓扑上断连的字词的音素序列。图5示出了根据许多实施方式的示例字词子网格500。在本图示例中,字词子网格500显示出从图4中的标注字词网格400中提取的字词。图6示出了根据许多实施方式的示例音素网格600。在本图示例中,音素网格600是基于在图5中的字词子网格500中捕获的候选识别而生成的。例如,音素网格可以包括音素序列

e’、

m’、

@’,表示图5中的字词网格序列

am’、

a’。
38.即使使用时间间隔,音素假设也可以被限制到来自原始字词网格中的字词的发音,其中可能不包含音频数据中所捕获的基础真实音素(特别是稀疏网格和/或嘈杂的音频数据)。在许多实施方式中,发音恢复模块162可以利用附加fst,该附加fst允许声学上接近的音素相互替换。例如,可以根据语言学家所确定的声学特征向量对来自x

sampa音标字母计算音素距离矩阵。可以计算向量之间的l2距离,可以使用距离低于阈值的低距离对作为替换。在许多实施方式中,可以添加规则以将双元音组合或分解成它们的组成元音音素,并将塞擦音组合或分解成它们的爆破音和摩擦音音素。附加地或替代地,机器学习模型可用于确定声学上相似的音素以相互替换。图7示出了根据多种实施方式的相似音素替换之后的示例音素网格700。在本图示例中,通过使用相似音素替换来处理图6中的音素网格600而生成音素网格700。例如,图6中的音素

@’使用相似音素替换来扩展,以包括图7中的

@’、

@`’、

e’、

el’和

{’的附加相似音素。
39.在一些实施方式中,在更困难的情况下,诸如那些具有稀疏填充字词网格和/或嘈杂声音的情况,相似音素替换可能难以确定基础真实音素。发音恢复模块162可以通过接受远离音素网格k次编辑(插入、删除和/或替换)的音素序列来扩展假设音素。在许多实施方式中,接受k次编辑的音素序列能够在所有方向上无差别地扩展音素空间。
40.附加地或替代地,假设恢复模块164可用于基于发音假设网格来从上下文中建议新的ne。例如,假设恢复模块164可用于搜遍ne以将上下文相关ne与使用发音恢复模块生成的音素网格相匹配。附加地或替代地,假设恢复模块164可以使用相匹配的ne来扩增字词网格。
41.可以通过将每个音素网格与专用的基于类的词典fst相组合来执行匹配。一个或多个上下文ne可以被标识为属于一个类别。例如,给定用户的“联系人”类别,ne可能包括用户地址簿中联系人的名字、姓氏和全名。可以构建词典fst来转换一个或多个ne列表中每个ne的发音。在许多实施方式中,上下文匹配可以通过对于标注字词网格的每个标注时间间隔生成匹配网格来执行,该匹配网格包含在该时间间隔期间口述的字词在声音上相似的ne。
42.图8示出了根据许多实施方式的示例音素到实体fst 800。在许多实施方式中,可以使用音素到实体fst(诸如图8中的fst 800)来处理音素网格(诸如图7中的音素网格700)以生成命名实体匹配(诸如图9中的实体匹配结果900)。在许多实施方式中,具有不同时间间隔和/或不同类别类型的ne匹配操作可以并行执行。
43.假设恢复模块164可以附加地或替代地用于使用每个类别的匹配网格来生成扩增字词网格。图10中的字词网格1000示出了图4中的标注字词网格400在标注时间间隔之后被替换为标识标注时间间隔的替换弧。例如,标注字词网格中的与ne相匹配的标注部分(例
如,边“emma”和“rose”)被替换为标注时间间隔的指示“$contact@300

750ms”。附加地或替代地,图11示出了示例扩增字词网格1100,其中图10中标识的标注时间间隔被替换为图9中示出的实体匹配结果。例如,时间间隔的指示“$contact@300

750ms”被替换为联系人“emmarose”。
44.图12是示出根据本文公开实施方式的在捕获的音频数据中确定命名实体的文本表示的过程1200的流程图。为了方便起见,参照执行这些操作的系统来描述该流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如图1b中的客户端设备154的一个或多个组件。此外,尽管过程1200的操作以特定顺序示出,但这并无限制意义。可以重新排序、省除和/或添加一个或多个操作。
45.在框1202处,系统生成捕获的音频数据的字词网格表示。在许多实施方式中,可以使用asr系统的第一通解码器来生成字词网格表示。例如,图2中的字词网格200示出了使用asr引擎的第一通解码器部分生成的字词网格。
46.在框1204处,系统确定载体短语在字词网格中的位置。载体短语:载体短语是表示假设ne位置的一序列锚字词和/或占位符非终结令牌。例如,载体短语“play”可以指示电影ne、歌曲ne和/或附加的可播放媒体ne;载体短语“call”和/或载体短语“text”可以指示联系人ne;等等。在许多实施方式中,可以使用图1b中的模式标注模块160来标识载体短语。可以利用诸如图3中的fst 300的模式标注fst来标识载体短语。
47.在框1206处,系统可以基于载体短语的位置来确定字词网格的扩增位置。在许多实施方式中,可以使用模式标注模块160来确定扩增位置。
48.在框1208处,系统可以从候选上下文相关ne集合中选择上下文相关ne。在许多实施方式中,系统可以确定扩增位置处的候选音素集合。例如,系统可以利用图2中的发音恢复模块162来确定表示在扩增位置处捕获的字词的音素集合;确定表示扩增位置的时间间隔的音素集合;确定与表示扩增位置的音素集合在声学上相似的音素集合;确定远离表示扩增位置的音素集合的k次编辑的音素集合;和/或附加或替代的表示扩增位置的音素集合。在许多实施方式中,可以将所确定的音素集合与候选ne的音素表示相比较。例如,可以将候选ne集合与和特定用户上下文相关的用户简档相关联。
49.在框1210处,系统通过将所选择的上下文相关ne插入到由asr引擎的第一通解码器部分生成的字词网格的扩增位置而扩增字词网格。
50.在框1212处,系统处理扩增字词网格以确定捕获的音频数据的文本表示。在许多实施方式中,系统可以使用asr系统的第二通重评分器部分来处理字词网格,并且可以使用ne引擎来处理字词网格的扩增部分。捕获的音频数据的文本表示可以选自:使用asr系统的第二通重评分器部分处理的候选识别;以及使用ne引擎处理的扩增候选识别。
51.转向图13,示出了可以实现本文公开实施方式的示例环境。图13包括客户端计算设备1302,该客户端计算设备执行自动助理客户端1304的实例。一个或多个基于云的自动助理组件1310可以在一个或多个计算系统(统称为“云”计算系统)上实现,这些计算系统经由总体标为1308的一个或多个局域网和/或广域网(例如,因特网)可通信地耦合到客户端设备1302。
52.通过其与一个或多个基于云的自动助理组件1310交互的自动助理客户端1304的实例可以形成从用户角度看来似乎是用户可以参与人机对话使用的自动助理1300的逻辑
实例。因此应当理解,在一些实施方式中,与在客户端设备1302上执行的自动助理客户端1304互动的用户实际上可以与他或她自己的自动助理1300的逻辑实例互动。为简明起见,本文用作“服务”特定用户的术语“自动助理”常指在用户操作的客户端设备1302上执行的自动助理客户端1304与一个或多个基于云的自动助理组件1310(该基于云的自动助理组件可以在多个客户端计算设备的多个自动助理客户端当中共享)的组合。还应理解,在一些实施方式中,自动助理1300可以响应于来自任何用户的请求,而不考虑用户是否实际上由自动助理1300的那个特定实例“服务”。
53.客户端计算设备1302可以例如是:桌面型计算设备、膝上型计算设备、平板型计算设备、移动智能手机计算设备、独立交互式扬声器、智能电器和/或包括计算设备的用户可穿戴设备(例如,具有计算设备的用户手表、具有计算设备的用户眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代的客户端计算设备。附加地或替代地,客户端计算设备1302的操作可以分布于多个计算设备之间。例如,客户端计算设备1302的一个或多个操作可以分布于移动智能电话于车辆计算设备之间。另外,客户端计算设备1302的操作可以在多个计算设备(该多个计算设备在一些情况下可以通信地耦合)之间重复。作为另一示例,移动智能电话以及车辆接口设备可以各自实现自动助理1300的操作,诸如移动智能电话和车辆接口设备皆包括调用引擎(如下所述)。在各种实施方式中,客户端计算设备1302可以可选地操作一个或多个除了自动助理客户端1304之外的其它应用,诸如消息交换客户端(例如,sms、mms、在线聊天)、浏览器等。在这些各种实施方式中的某一些中,一个或多个其它应用可以可选地与自动助理1304接口(例如,经由应用编程接口),或者包括它们自己的自动助理应用实例(其也可以与基于云的自动助理组件1310接口)。
54.自动助理1300经由客户端设备的用户界面输入和输出设备(未图示)与用户进行人机对话会话。为了保护用户隐私和/或节约资源,在许多场景下,在自动助理将会完全处理口头话语之前,用户必须频繁明确地调用自动助理1300。明确调用自动助理1300可以响应于在客户端设备1302处接收到的某些用户界面输入而发生。例如,可以经由客户端设备1302调用自动助理1300的用户界面输入可以可选地包括客户端设备1302的硬件按钮和/或虚拟按钮的致动。此外,自动助理客户端可以包括一个或多个本地引擎1306,诸如能够操作以检测存在一个或多个口头调用短语的调用引擎。调用引擎可以响应于检测到一个或多个口头调用短语来调用自动助理1300。例如,调用引擎可以响应于检测到诸如“hey assistant(嗨,助理)”、“ok assistant(好的,助理)”和/或“assistant(助理)”的口头调用短语来调用自动助理1300。调用引擎可以连续处理(例如,若未处于“非活动”模式)基于来自客户端设备1302的一个或多个麦克风的输出的音频数据帧流,以监视口头调用短语的出现。在监视口头调用短语的出现时,调用引擎丢弃(例如,在临时存储在缓冲区中之后)不包括口头调用短语的任何音频数据帧。但是,当调用引擎在经处理的音频数据帧中检测到口头调用短语的出现时,调用引擎可以调用自动助理1300。如本文所用,“调用”自动助理1300可以包括使自动助理1300的一个或多个先前非活动的功能被激活。例如,调用自动助理1300可以包括使一个或多个本地引擎1306和/或基于云的自动助理组件1310进一步处理检测到调用短语所基于的音频数据帧和/或一个或多个后续音频数据帧(而在调用之前未发生对音频数据帧的进一步处理)。
55.自动助理1304的该一个或多个本地引擎1306是可选的,并且可以例如包括上述调
用引擎、本地语音到文本(“stt”)引擎(其将捕获的音频转换成文本)、本地文本到语音(“tts”)引擎(其将文本转换成语音)、本地自然语言处理器(其确定音频和/或从音频转换而来的文本的语义)和/或其它本地组件。由于客户端设备1302在计算资源(例如,处理器周期、内存、电池等)方面相对受限,因此本地引擎1306相对于包括在基于云的自动助理组件1310中的任何对应的引擎来说可能功能有限。
56.自动助理客户端1304可以附加地包括内容代理引擎(未图示),自动助理客户端1304能够根据各种多种实施方式来利用该内容代理引擎,包括:生成内容代理,使用内容代理来确定有关用户请求的内容,在未接收用户请求的情况下使用内容代理来确定内容等。
57.相对于任何对应的本地引擎1306,基于云的自动助理组件1310利用云中几乎无限的资源来执行对音频数据和/或其它用户界面输入的更鲁棒和/或更准确的处理。就此重申,在各种实施方式中,客户端设备1302可以响应于调用引擎检测到口头调用短语或检测到对自动助理1300的其它一些明确调用而向基于云的自动助理组件1310提供音频数据和/或其它数据。
58.所示的基于云的自动助理组件1310包括基于云的tts模块1312、基于云的stt模块1314和自然语言处理器1316。在一些实施方式中,自动助理1300的一个或多个引擎和/或模块可以省略、组合和/或实现在与自动助理1300分开的组件中。另外,在一些实施方式中,自动助理1300可以包括附加和/或替代的引擎和/或模块。
59.基于云的stt模块1314可以将音频数据转换成文本,然后可以将该文本提供给自然语言处理器1316。在各种实施方式中,基于云的stt模块1314可以至少部分地基于由分配引擎(未示出)提供的说话者标签和分配的指示来将音频数据转换成文本。
60.基于云的tts模块1312可以将文本数据(例如,由自动助理1300制定的自然语言响应)转换成计算机生成的语音输出。在一些实施方式中,tts模块1312可以将计算机生成的语音输出提供给客户端设备1302以例如使用一个或多个扬声器直接输出。在其它实施方式中,可以将自动助理1300生成的文本数据(例如,自然语言响应)提供给本地引擎1306之一,然后该本地引擎1306可以将文本数据转换成本地输出的计算机生成语音。
61.自动助理1300的自然语言处理器1316处理自由形式的自然语言输入,并且基于该自然语言输入来生成注释输出以供自动助理1300的一个或多个其它组件使用。例如,自然语言处理器1316可以处理自然语言自由形式输入,即文本输入,即通过stt模块1314对于由用户经由客户端设备1302提供的音频数据的转换。生成的带注释的输出可以包括自然语言输入的一个或多个注释以及可选地自然语言输入中的一个或多个用语(例如,全部用语)。在一些实施方式中,自然语言处理器1316配置成标识并注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器1316可以包括一部分配置成用其语法角色注释用语的语音标注器(未绘出)。此外,例如,在一些实施方式中,自然语言处理器1316可以附加地和/或替代地包括配置成确定自然语言输入中的用语之间的句法关系的依存解析器(未绘出)。
62.在一些实施方式中,自然语言处理器1316可以附加地和/或替代地包括实体标注器(未绘出),该实体标注器被配置成注释一个或多个样本中的实体引用,诸如对人(如包括文学人物、名人、公众人士等)、组织、地点(真实和虚构)等的引用。自然语言处理器1316的实体标注器可以注释高粒度级别的实体引用(例如,以实现对诸如人的实体类别的全部引用的标识)和/或低粒度级别的实体引用(例如,以实现对诸如特定人的特定实体的全部引
用的标识)。实体标注器可以依靠于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其它实体数据库进行通信以解析特定实体。
63.在一些实施方式中,自然语言处理器1316可以附加地和/或替代地包括被配置成基于一个或多个上下文提示来分组或“聚类”对同一实体的引用的共引用解析器(未绘出)。例如,可以利用共引用解析器将自然语言输入“i liked hypothetical caf
é
last time we ate there(我喜欢上次我们在那里吃饭的hypothetical caf
é
)”中的用语“there”解析为“hypothetical caf
é”

64.在一些实施方式中,自然语言处理器1316的一个或多个组件可以依赖于来自自然语言处理器1316的一个或多个其它组件的注释。例如,在一些实施方式中,命名实体标注器可以依赖于来自共引用解析器和/或依存解析器的注释来注释对特定实体的全部提及。此外,例如,在一些实施方式中,共引用解析器可以依赖于来自依存解析器的注释来将引用聚类为同一实体。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器1316的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其它相关数据来确定一个或多个注释。
65.图14是可以可选地用于执行本文描述的一个或多个技术方面的示例计算设备1410的框图。在一些实施方式中,客户端计算设备和/或其它组件中的一个或多个可以包括示例计算设备1410的一个或多个组件。
66.计算设备1410通常包括经由总线子系统1412与多个外围设备进行通信的至少一个处理器1414。这些外围设备可以包括例如包括存储器子系统1425和文件存储子系统1426的存储子系统1424、用户界面输出设备1420、用户界面输入设备1422以及网络接口子系统1416。输入设备和输出设备允许用户与计算设备1410进行交互。网络接口子系统1416提供到外部网络的接口并且耦合到其它计算设备中的对应接口设备。
67.用户界面输入设备1422可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板的定点设备、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统、麦克风和/或其它类型输入设备的音频输入设备。一般而言,用语“输入设备”的使用旨在包括将信息输入计算设备1410或通信网络的所有可能类型的设备和方式。
68.用户界面输出设备1420可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(“crt”)、诸如液晶显示器(“lcd”)的平板设备、投影设备或其它用于创建可见图像的机制。显示子系统也可以诸如经由音频输出设备提供非视觉显示。一般而言,用语“输出设备”的使用旨在包括将从计算设备1410向用户或者另一个机器或计算设备输出信息的所有可能类型的设备和方式。
69.存储子系统1424存储提供本文描述的一些或全部模块的功能的编程与数据构造。例如,存储子系统1424可以包括用于执行图13中的一个或多个过程的选定方面以及实施图1b中描绘的各种组件的逻辑。
70.这些软件模块大体上由处理器1414单独执行或结合其它处理器来执行。存储子系统1424中使用的存储器1425可以包括多个存储器,它们包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)1430以及其中存储固定指令的只读存储器(rom)1432。文件存储子系统1426可以为程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd

rom驱动器、光盘驱动器或可移动介质盒。实现某些实
施方式的功能的模块可以由文件存储子系统1426存储在存储子系统1424中或者存储在处理器1414可访问的其它机器中。
71.总线子系统1412提供用于让计算设备1410的各种组件和子系统按预期彼此通信的机制。虽然总线子系统1412被示意性示为单总线,但总线子系统的替选实施方式可以使用多总线。
72.计算设备1410可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器场或者任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图14中描绘的对计算设备1410的说明仅旨在作为特例说明一些实施方式的目的。与图14中描绘的计算设备相比,许多其它配置的计算设备1410可能具有更多或更少的组件。
73.针对本文描述的系统收集有关用户(或如本文常提及的“参与方”)的个人信息或者可以利用个人信息的情况,可以为用户提供控制程序或特征是否收集用户信息(例如,有关用户社交网络、社交动作或活动、职业、用户偏好或用户当前地理位置的信息)或者控制是否和/或如何从可能与用户更相关的内容服务器接收内容的机会。此外,某些数据可以在其被存储或使用之前以一种或多种方式进行处理,以便删除个人身份信息。例如,用户的身份可以被处理成不能针对该用户确定任何个人可标识信息,或者在获得地理位置信息的情况下,可以将用户的地理位置概括化(诸如城市、邮政编码或州级),以便不能确定用户的特定地理位置。因此,用户可以控制如何关于用户收集和/或使用信息。
74.在一些实施方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:使用自动语音识别引擎生成捕获的音频数据的文本表示。在一些实施方式中,生成捕获的音频数据的文本表示包括:生成对应于捕获的音频数据的字词网格,其中,字词网格是表示捕获的音频数据的候选识别的无环图。在一些实施方式中,该方法包括:基于载体短语在字词网格中的位置来确定字词网格中的扩增位置。在一些实施方式中,该方法包括:从候选上下文相关命名实体集合中选择上下文相关命名实体以插入到字词网格的扩增位置,其中,上下文相关命名实体是一部分捕获的音频数据的附加候选识别。在一些实施方式中,该方法包括:通过将所选择的上下文相关命名实体插入到扩增位置来扩增字词网格。在一些实施方式中,该方法包括:处理扩增字词网格以确定捕获的音频数据的文本表示。
75.本文公开技术的这些及其它实施方式可以包括以下特征中的一个或多个特征。
76.在一些实施方式中,基于载体短语在字词网格中的位置来确定字词网格中的扩增位置包括:使用语义模式有限状态转换器来处理字词网格以确定载体短语在字词网格中的位置。
77.在一些实施方式中,从候选上下文相关命名实体集合中选择上下文相关命名实体以插入到字词网格的扩增位置包括:确定对应于扩增位置处的字词网格的候选音素序列集合。在那些实施方式的一些版本中,该方法进一步包括:通过将候选上下文相关命名实体集合中的候选上下文相关命名实体的音素表示与候选音素序列集合中的候选音素序列进行匹配来选择上下文相关命名实体。在那些实施方式的一些版本中,确定对应于扩增位置处的字词网格的候选音素序列集合包括确定对应于扩增位置处的字词网格的候选音素序列集合,而无需确定字词网格中在扩增位置前的字词的候选音素。
78.在一些实施方式中,确定对应于扩增位置处的字词网格的候选音素序列集合包括:对于候选音素序列集合中的每个音素,确定该音素是否具有一个或多个声学上相似的
音素。在那些实施方式的一些版本中,响应于确定出该音素具有一个或多个声学上相似的音素,该方法进一步包括:插入该一个或多个声学上相似的音素作为候选音素序列集合中的一个或多个附加序列路径。
79.在一些实施方式中,确定对应于扩增位置处的字词网格的候选音素序列集合包括:对于候选音素序列集合中的每个候选音素序列,插入一个或多个经编辑的音素序列作为候选音素序列集合中的附加序列路径,其中每个经编辑的音素序列与候选音素序列相距限定的距离。例如,限定的距离可以包括5个距离、3个距离、2个距离、1个距离和/或附加距离。
80.在一些实施方式中,生成对应于捕获的音频数据的字词网格包括:使用自动语音识别引擎的第一通解码部分来生成对应于捕获的音频数据的字词网格。
81.在一些实施方式中,处理扩增字词网格以确定捕获的音频数据的文本表示包括:使用自动语音识别引擎的第二通重评分部分来处理扩增字词网格。
82.在一些实施方式中,上下文相关命名实体是地点、事件或人物。
83.在一些实施方式中,使用训练实例集合来训练自动语音识别引擎,并且其中,上下文相关命名实体不在该训练实例集合中。
84.在一些实施方式中,使用训练实例集合来训练自动语音识别引擎,并且其中,上下文相关命名实体在该训练实例集合中的出现次数低于阈值。例如,阈值可以包括小于5的阈值、小于3的阈值、1的阈值和/或附加阈值。
85.在一些实施方式中,候选上下文相关命名实体集合与用户简档相关联。
86.此外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如,中央处理单元(cpu)、图形处理单元(gpu)和/或张量处理单元(tpu)),其中该一个或多个处理器能够操作以执行存储在相关联的存储器中的指令,并且其中这些指令被配置成使执行本文描述的任何方法。一些实施方式还包括一个或多个存储有计算机指令的暂时性或非暂时性计算机可读存储介质,这些计算机指令能够由一个或多个处理器执行以执行本文描述的任何方法。