使用长尾语音命令的任务发起的制作方法

文档序号:14136874阅读:352来源:国知局
使用长尾语音命令的任务发起的制作方法

本申请涉及使用长尾语音命令的任务发起。



背景技术:

交互式助理模块是安装在诸如智能电话、平板电脑、车载导航系统、独立语音激活产品和智能手表之类的计算设备上的软件过程,以提供用户友好的界面用于用户发出自然语言命令和/或参与与交互式助理模块的对话、手势、面部表情等。用户经常使用自己的语音发出自然语言命令,但交互式助理模块也可以响应于其他模态,诸如各种形式的文本输入。现有的交互式助理模块采用的语法往往使用所谓的“规范性语言学”方法开发,这些方法涉及应当如何使用语言,而不是实际如何使用语言。因此,现有的语法只能在用户发出基于语音的命令时提供有限的灵活性。如果用户的语音命令偏离现有语法太多——例如,因为用户发出所谓的“长尾”语音命令——则语音命令可能不被识别。可以创建任意的基于语音的触发(即基于语音的触发)和响应动作之间的关联,但这可能需要用户手动创建这样的关联,例如使用图形用户界面或通过参与与交互式助理模块的大量对话。此外,发出的语音命令和基于语音的触发之间的轻微偏差可能导致基于语音的触发不被识别。



技术实现要素:

本说明书一般涉及用于利用现有的基于语音的触发和跨越用户群体使用的响应动作之间的关联以自动确定响应于在客户端设备从用户接收的给定语音命令(例如,长尾语音命令)要采取哪些响应动作的各种技术。在各种实施方式中,可以在诸如智能电话、智能手表、车辆计算系统(例如,导航系统,车辆媒体控制系统等)的客户端设备的音频输入设备(例如,麦克风)处接收用户的语音命令。在一些实施方式中,给定的语音命令可以被转换成包括一个或多个令牌的文本,例如使用各种自然语言处理技术。然而,为了本公开的目的,将不会详细讨论该转换。

在各种实施方式中,可以在先前由一个或多个其他用户使用的基于语音的触发的所谓的“描述性语言学库”中搜索与给定的语音输入(语法上和/或语义上)类似的基于语音的触发。如本文和其他地方所使用的,与“规范性语言学”相反,“描述性语言学”是指当语言实际上在给定时间使用时语言特征的语法、分类和排列的研究,而“规范性语言学”指的是应当如何使用语言。因此,描述性语言学库实际上可以定义一种或多种用语言演化的语法来处理通过使用规范性语言学方法创建的语法可能不会被捕获的俗语、俚语和/或各种方言。

在各种实施方式中,描述性语言学库可以包括在每个基于语音的触发和响应于基于语音的触发执行的一个或多个响应动作之间的一个或多个关联。例如,一个或多个在先用户可能已经在诸如“backtothemines(返回工作岗位)”的基于语音的触发和诸如启动导航app以找到到用户的办公室的最快的路线(例如,最低交通、最短距离等)之类的响应动作之间创建了关联。在各种实施方式中,现有的基于语音的触发和响应动作之间的这些关联可以具有除了别的以外基于已经创建和/或利用了这种关联的用户数量的强度或权重。因此,例如,诸如“ineedapickmeup(我需要提神)”的单个基于语音的触发可以与多个响应动作相关联,例如(通过交互式助理模块)流式传输启发性音乐、说出当天的笑话、找到最近的咖啡吧,等等。这些关联中的每一个可以具有基于例如该短语用于触发相应的响应动作的次数、基于语音的触发被用于触发一个特定的响应动作相对于另一个的百分比等的强度。

基于从用户接收到的给定语音命令(以及其他下面描述的可能的信号),可以从描述性语言学库中选择基于语音的触发。在一些实施方式中,该选择可以基于是基于给定语音命令和所选择的基于语音的触发而计算的语义和/或句法相似性度量。然后,可以由用户的客户端设备选择和执行与所选择的基于语音的触发相关联的一个或多个当前响应动作。

在一些实施方式中,用户的客户端设备可以安装有与在另一客户端设备上用于执行与所选择的基于语音的触发相关联的响应动作所使用的完全相同的应用(或者是相同应用的不同版本)。在这种情况下,可以启动该相同的应用来执行响应动作。然而,在其他实施方式中,用户的客户端设备可能没有安装该完全相同的应用。在这种情况下,客户端设备可以分析安装在客户端设备上的多个应用以识别一个或多个“类似”应用来执行响应动作。“类似”应用可以是执行相同或相似功能但可由不同开发者等发布的应用。例如,不同的地图应用能够提供实时导航。不同的电子邮件应用能够允许用户读取、发送和接收电子邮件。不同的用户可能会使用不同的日历应用(本地的和/或在线的)。不同的媒体应用能够播放本地存储的和/或从互联网源流式传输的音乐和/或视频。等等。

类似地,在一些实施方式中,发出的基于语音的命令中的一个或多个词项/令牌可能不适用于特定用户和/或语境。在这种情况下,可以例如通过解析器模块68确定更可直接适用的“类似”词项。例如,假设发出语音命令的客户端设备位于与先前使用现有的基于语音的触发的客户端设备不同的地理区域中。在这种情况下,在客户端设备发出的基于语音的命令的一个或多个词项可以被映射/匹配到与响应于现有的基于语音的触发而返回的不同的“类似”词项/令牌。假设用户说:“isurecouldgoforsomewaffles.(我想去吃华夫饼)”。如果用户位于国家的一个地区,可能流行第一华夫饼餐厅连锁店,因此可能被用作发出的请求的参数和/或作为响应而返回。然而,如果用户位于流行第二华夫饼餐厅连锁店的国家的另一个地区,则可以替代地使用该第二华夫饼餐厅连锁店。也可以对时间(例如,不同时区中的用户)、人、活动等采用类似的技术。例如,特定词项和/或短语可以指一个区域中的第一活动和另一区域中的第二活动。假设用户对他或她的语音激活的独立设备说“iwanttowatchsomefootball(我想看football)”。在美国,词项“football”可以例如通过解析器模块68匹配到与美式规则橄榄球相关联的基于语音的触发。然而,如果这个命令是在世界其他地方发出的,那么词项“football”可能匹配到在美国称为“soccer”而在其他地方被称为“football”的运动相关的基于语音的触发。

在各种实施方式中,可以由用户提供与执行一个或多个当前响应动作的客户端设备相关联的反馈。该反馈可以用于加强和/或削弱本地在用户的客户端设备和/或在描述性语言学库中的现有基于语音的触发和响应动作之间的关联。以这种方式,系统可以随着时间“学习”在不同地区的不同用户使用什么口语、方言和/或俚语词项/短语来触发各种响应动作。系统学习得越多,其语法越健壮,系统可能会更好地被配置为响应特定用户的长尾语音命令来发起一些响应动作。

假设用户说“ineedapick-me-up(我需要提神)”。基于响应于描述性语言学库的最佳匹配的基于语音的触发而执行的先前的响应动作,用户的客户端设备可以打开音乐播放应用到播放鼓舞性和/或随遇而安的音乐的流媒体音乐站台。然而,用户可以通过立即关闭音乐播放应用或者通过明确地提供否定反馈(例如,响应于诸如“isthiswhatyouwantedwhenyousaidyouneededtopick-me-up?(当你说你需要提神时,这是你想要的吗?)”),来提供否定的反馈。基于这样的反馈,所选择的基于语音的触发和响应动作之间的关联可能被削弱。这可能在客户端设备本地和/或远程地发生,例如在描述性语言学库中。在一些实施方式中,可以使用用户替代地发起的替选响应动作(例如,找到至最近的咖啡吧的路线指引)以在基于语音的触发“ineedapick-me-up(我需要提神)”和替选响应动作之间创建新的关联(或加强现有关联)。

在一些实施方式中,除了语义/句法相似性度量之外和/或替代,还可以使用其他信号,以将个人使用的给定语音命令与一个或多个基于语音的触发和/或响应动作相匹配。在一些实施方式中,可以考虑用户和/或由用户操作的客户端设备的一个或多个属性(例如,用户的“语境”)。例如,描述性语言学库中可能存在关于“crankuptheair”和各种响应动作之间的多个关联。然而,可以使用来自用户的客户端设备的一个或多个信号来消除各种关联之间的歧义。假设用户智能电话的一个或多个传感器检测到用户在车辆中行驶,或者用户向在车辆计算系统上操作的交互式助理模块发出命令。在这种情况下,基于语音的触发“crankuptheair(打开空调)”可以匹配到诸如打开车辆空调的响应动作。作为对比,如果用户的智能电话的一个或多个传感器检测到用户在家,则基于语音的触发“crankuptheair”可以与诸如调整用户家中的智能恒温器以打开家里的空调的响应动作匹配。

因此,在一些实施方式中,方法可以包括:在客户端设备处从用户接收给定语音命令;从先前在用户群体中使用的基于语音的触发的库中选择所选择的基于语音的触发,其中所述库包括每个基于语音的触发以及先前响应于所述基于语音的触发执行的一个或多个响应动作之间的一个或多个关联,并且其中所述选择至少部分地基于所述给定语音命令和所选择的基于语音的触发之间的相似性度量;确定在所述库中与所选择的基于语音的触发相关联的一个或多个响应动作;由所述客户端设备基于所述一个或多个响应动作选择要由所述客户端设备执行的一个或多个当前响应动作;由所述客户端设备执行所述一个或多个当前响应动作;由客户端设备从用户接收与执行一个或多个当前响应动作的客户端设备相关联的反馈;以及基于所述反馈来改变所选择的基于语音的触发和所述一个或多个响应动作之间的关联的强度。

在各种实施方式中,一个或多个当前响应动作可以与一个或多个响应动作相同。在各种实施方式中,一个或多个当前响应动作可以类似于一个或多个响应动作。在各种实施方式中,所选择的基于语音的触发包括与给定语音命令中的一个或多个词项或令牌类似的一个或多个词项或令牌。在各种实施方式中,该方法还可以包括分析安装在客户端设备上的多个应用,以识别用于执行一个或多个当前响应动作的一个或多个应用。

在各种实施方式中,改变可以包括基于所述反馈来削弱所选择的基于语音的触发和所述一个或多个响应动作之间的关联。在各种实施方式中,改变可以包括基于所述反馈来加强所选择的基于语音的触发和所述一个或多个响应动作之间的关联。

在各种实施方式中,相似性度量可以是句法相似性度量。在各种实施方式中,相似性度量可以是语义相似性度量。在各种实施方式中,可以进一步基于使用客户端设备的一个或多个传感器检测到的用户的语境,从基于语音的触发的库中选择所选择的基于语音的触发。

在各种实施方式中,确定与库中所选择的基于语音的触发相关联的一个或多个响应动作可以包括从在所述库中与所选择的基于语音的触发相关联的多个候选响应动作中选择至少一个响应动作。在各种实施方式中,可以基于使用客户端设备的一个或多个传感器检测到的用户的语境来选择至少一个响应动作。

在各种实施方式中,给定语音命令未能指定所述一个或多个当前响应动作所需的至少一个参数,并且所述方法还包括基于使用所述客户端设备的一个或多个传感器检测到的所述用户的语境,识别用作所述至少一个参数的值。在各种实施方式中,给定的语音命令未能指定所述一个或多个当前响应动作所需的至少一个参数,并且所述方法还包括基于与所述用户相关联的个人库,识别用作所述至少一个参数的值。

在另一方面,一种方法可以包括:从用户群体接收多个基于语音的触发和响应于所述基于语音的触发而在由所述用户群体中的用户操作的客户端设备处执行的当前响应动作;在库中存储所述基于语音的触发和所述响应动作之间的关联,其中,所述关联被用户群体认可;在给定的客户端设备处,接收由给定用户提供的新的语音命令;从基于语音的触发的所述库中,选择所选择的基于语音的触发,其中,所述选择至少部分地基于所述新的语音命令和所选择的基于语音的触发之间的相似性度量;确定在所述库中与所选择的基于语音的触发相关联的一个或多个响应动作;基于所述一个或多个响应动作,选择要由所述给定客户端设备执行的一个或多个当前响应动作;由所述客户端设备从所述用户接收与执行所述一个或多个当前响应动作的所述给定客户端设备相关联的反馈;和基于所述反馈,改变所选择的基于语音的触发和所述一个或多个响应动作之间的关联的强度。

此外,一些实施方式包括一种包括存储器和一个或多个可操作以执行存储在存储器中的指令的处理器的装置,其中指令被配置为执行上述任何方法。一些实施方式还包括存储可由一个或多个处理器执行以执行上述任何方法的计算机指令的非暂时计算机可读存储介质。

应当理解,本文更详细地描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开的最后的要求保护的主题的所有组合都被认为是本文公开的主题的一部分。

附图说明

图1图示出了计算机系统的示例架构。

图2是示例分布式语音输入处理环境的框图。

图3是图示出使用图2的环境处理语音输入的示例方法的流程图。

图4图示出了如何在特定场景中实现本文所描述的技术的示例。

图5是图示出实践本文所述的技术的示例方法的流程图。

具体实施方式

现在转向附图,其中相似的附图标记在整个几个视图中表示相似的部件,图1是示例计算机系统10中的电子组件的框图。系统10通常包括至少一个处理器12,其经由总线子系统14与这些外围设备通信。外围设备可以包括存储子系统16,其包括例如存储器子系统18和文件存储子系统20、用户接口输入设备22、用户接口输出设备24、和网络接口子系统26。输入和输出设备允许用户与系统10进行交互。网络接口子系统26提供到外部网络的接口,并且耦合到其他计算机系统中的对应接口设备。

在一些实施方式中,用户界面输入设备22可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板的指示设备、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统的音频输入设备、麦克风、和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入计算机系统10或通信网络的所有可能类型的设备和方式。

用户接口输出设备24可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备、或用于创建可见图像的一些其它机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括从计算机系统10向用户或另一机器或计算机系统输出信息的所有可能类型的设备和方法。

存储子系统16存储提供本文描述的部分或全部模块的功能的编程和数据结构。例如,存储子系统16可以包括用于执行下文所公开的方法的选择的方面的逻辑。

这些软件模块通常由处理器12单独执行或与其他处理器组合执行。在存储子系统16中使用的存储器子系统18可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)28和存储固定指令的只读存储器(rom)30。文件存储子系统20可以为程序和数据文件提供持久存储器,并且可以包括硬盘驱动器、软盘驱动器以及关联的可移动介质、cd-rom驱动器、光学驱动器、或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统20存储在存储子系统16中,或者在由处理器12可访问的其他机器中。

总线子系统14提供用于允许系统10的各个组件和子系统按预期彼此通信的机制。虽然总线子系统14被示意性地示出为单个总线,总线子系统的替选实施方式可以使用多个总线。

系统10可以是变化的类型,包括移动设备、便携式电子设备、嵌入式设备、台式计算机、膝上型计算机、平板电脑、独立式语音激活的产品(例如,智能扬声器)、可穿戴设备、工作站、服务器、计算群集、刀片服务器、服务器场或任何其他数据处理系统或计算设备。此外,由系统10实施的功能可以分布在通过一个或多个网络彼此互连的多个系统中,例如在客户端-服务器,对等或其他联网布置中。由于计算机和网络的不断变化的性质,图1所示的系统10的描述仅旨在作为为了说明一些实施方式目的的特定示例。系统10的许多其他配置可能具有比图1所示的计算机系统更多或更少的组件。

下面讨论的实施方式可以包括实现本文公开的功能的各种组合的一个或多个方法。其他实施方式可以包括存储可由处理器执行的指令以执行诸如本文所述的一种或多种方法的方法的非暂时计算机可读存储介质。再其他实施方式可以包括包含存储器和可操作以执行存储在存储器中的指令以执行诸如本文所述的一种或多种方法的方法的一个或多个处理器的装置。

可以基于在特定实施方式中实现的应用来识别下面描述的各种程序代码。然而,应当理解,以下的任何特定程序命名仅用于方便。此外,考虑到计算机程序可以被组织到例程、规程、方法、模块、对象等中的无限次的方式,以及可以在位于典型的计算机内的各种软件层(例如,操作系统、库、api、应用、小应用等)之间分配程序功能的各种方式,应当理解,一些实施方式可以不限于本文所描述的程序功能的特定组织和分配。

此外,应当理解,可以由任何程序代码执行或在任何例程、工作流等中执行的本文描述的各种操作可以被组合、拆分、重新排序、省略、顺序或并列执行、和/或补充其他技术,因此,一些实施方式不限于本文描述的特定操作序列。

图2图示出了示例分布式语音输入处理环境50,例如用于与诸如在线语义处理器54的在线服务通信的语音使能设备52一起使用。在下文讨论的实施方式中,例如,将语音使能设备52描述为诸如蜂窝电话或平板计算机的移动设备。然而,其他实施方式可以使用各种其他语音使能设备,因此下文中对移动设备的引用仅仅是为了简化下面的讨论的目的。无数其他类型的语音使能设备可以使用本文描述的功能,包括例如膝上型计算机、手表、头戴式设备、虚拟或增强现实设备、其他可穿戴设备、音频/视频系统、导航系统、汽车以及其他车辆系统、独立的语音激活设备等。此外,许多这样的语音设备可以被认为是资源约束的,因为特别是当与可以将几乎无限的计算资源用于个别任务的在线或基于云的服务的能力相比时,基于技术或其他原因,这些设备的存储器和/或处理能力可以是受约束的。一些这样的设备也可以被认为是离线设备,只要这样的设备可以能够在至少一部分时间上“离线”并且不连接到在线服务,例如基于这样的设备可能经常在普通使用下经历临时网络连接中断的期望。

一些实施方式中的在线语义处理器54可以被实现为采用云基础设施的基于云的服务,例如,使用运行适合于处理来自多个用户的大量请求的软件的高性能计算机的服务器场或群集。在线语义处理器54可以不限于基于语音的请求,并且还可以能够处理其他类型的请求,例如基于文本的请求、基于图像的请求等。在一些实施方式中,在线语义处理器54可以处理基于语音的请求,例如设置警报或提醒,管理列表,经由电话、文本、电子邮件等发起与其他用户的通信,或执行可以通过语音输入发起的其他动作。为了本公开的目的,基于语音的请求和其他形式的语音输入可以统称为语音命令,无论语音命令是否寻求发起搜索、提出问题、发出命令等。一般来说,因此,例如包括一个或多个词或短语的任何语音输入可以被认为是所图示实施方式的语境中的语音命令。

在图2的实施方式中,由语音使能设备52接收的语音输入由语音使能应用(或“app”)处理,其在图2中采用交互式助理模块56的形式。在其他实施方式中,语音输入可以在语音使能设备52的操作系统或固件内处理。所示实施方式中的交互式助理模块56包括语音动作模块58、在线接口模块60、和渲染/同步模块62。语音动作模块58接收定向到交互式助理模块56的语音输入,并且协调对语音使能设备52的用户的语音输入的分析和一个或多个动作的执行。在线接口模块60提供与在线语义处理器54的接口,包括将语音输入转发到在线语义处理器54并接收对其的响应。渲染/同步模块62例如经由视觉显示、说出的音频、或适合于特定的语音使能设备的其他反馈接口,来管理对用户的响应的渲染。此外,在一些实施方式中,模块62还处理与在线语义处理器54的同步,例如,每当响应或动作影响在基于互联网的搜索服务中为用户维护的数据(例如,其中语音输入请求创建维护在基于云的日记中的约会)时。

交互式助理模块56可以依靠各种中间件、框架、操作系统和/或固件模块来处理语音输入,包括例如流式传输语音到到文本模块64,和包括解析器模块68、对话管理器模块70和动作构建器模块72的语义处理器模块66。

流式传输语音到文本模块64接收语音输入的音频记录,例如以数字音频数据的形式,并将数字音频数据转换为一个或多个文本单词或短语(在本文中也称为“令牌”)。在所图示实施方式中,模块64也是流式传输模块,使得语音输入在逐个令牌的基础上以实时或接近实时的方式转换为文本,使得令牌可以有效地与用户的讲话同时地、并因此在用户发出完整的说出的请求之前从模块64输出。模块64可以依赖于一个或多个本地存储的离线声学和/或语言模型74,其一起对在语言中的音频信号和语音单元之间的关系连同语言中的词序列进行建模。在一些实施方式中,可以使用单个模型74,而在其他实施方式中,可以支持多个模型,例如支持多种语言、多个扬声器等。

尽管模块64将话音转换为文本,但是为了制定适当的响应,模块66尝试辨别模块64输出的文本的语义或意义。例如,解析器模块68依赖于一个或多个离线语法模型76将文本映射到特定动作,并且识别约束这些动作的性能的属性,例如这些动作的输入变量或参数。在一些实施方式中,可以使用单个模型76,而在其他实施方式中,可以支持多个模型,例如,以支持不同的动作或动作域(即,诸如通信相关动作、搜索相关动作、音频/视频相关动作、日记相关动作、设备控制相关动作等的相关动作的合集)。如下面将要进一步讨论的那样,“个人描述性语言学库”77可以包括在模型76中,供交互式助理模块56使用以执行本文描述的技术。另外,在一些实施方式中,“类似”响应动作和/或语音命令参数可由解析器模块68确定,例如使用一个或多个模型76和/或个人描述性语言学库77。

作为示例,离线语法模型76可以支持诸如具有提醒类型参数的“设置提醒”的动作,所述提醒类型参数指定要设置的提醒的类型、指定与提醒相关联的一个或多个物品的物品参数、以及指定激活提醒并提醒用户的时间的时间参数。解析器模块68可以接收令牌的序列,诸如“remindmeto(提醒我)”,“pickup(取)”,“bread(面包)”和“afterwork(在工作后)”,并将令牌序列映射到利用被设置为“shoppingreminder(购物提醒)”的提醒类型参数、被设置为“bread”的物品参数、被设置为“5:00pm”的时间参数来设置提醒的动作,使得当天下午5:00,用户收到“buybread(购买面包)”的提醒。

解析器模块68还可以与管理与用户对话的对话管理器模块70一起工作。在这种场境下,对话框是指与两个个体之间的对话相似的语音输入和响应的集合。因此,模块70保持对话的“状态”,以实现在处理随后的语音输入时使用的在先前的语音输入中从用户获得的信息。因此,例如,如果用户说“remindmetopickupbread,(提醒我取面包)”,可以产生响应来说“ok,whenwouldyouliketobereminded?(好的,什么时候想提醒)”,使得随后的语音输入“afterwork”将被绑回到原始请求来创建提醒。在一些实施方式中,模块70可以被实现为交互式助理模块56的一部分。

动作构建器模块72从解析器模块68接收表示语音输入解释的解析文本,并且生成一个或多个响应动作或“任务”连同任何相关联的参数用于由交互式助理模块56的模块62进行处理。动作构建器模块72可以依赖于一个或多个离线动作模型78,其中包含用于从解析文本创建动作的各种规则。应当理解,一些参数可以作为语音输入被直接接收,而一些参数可以以其他方式确定,例如基于用户的位置、人口统计信息,或者基于用户特有的其他信息。例如,如果用户说“remindmetopickupbreadatthegrocerystore(提醒我在杂货店取面包)”,在没有诸如用户的当前位置、用户在工作和家庭之间的已知路线、用户的常规杂货店等的附加信息的情况下,位置参数可能是不可确定的。

如上所述,在一些实施方式中,交互式助理模块56可以从用户接收语音命令,并且使用各种离线和在线资源来发起一个或多个响应任务。当用户向交互式助理模块56提供长尾语音命令以发起任务时,动作构建器模块72可将长尾语音命令(语义和/或句法地)与一个或多个现有的基于语音的触发相匹配,并且可以选择和执行(或导致执行)一个或多个响应动作。

应当理解,在一些实施方式中,模型74、76和78可以组合成更少的模型或分成附加的模型,如模块64、68、70和72的功能。此外,模型74-78在本文中被称为离线模型,只要模型本地存储在语音使能设备52上,并且由此当设备52不与在线语义处理器54通信时可以离线访问。此外,尽管模块56在此被描述为是交互式助理模块,这并不意味着限制。在各种实施方式中,在语音使能设备52上操作的任何类型的app可以执行本文所描述的技术,以响应于用户发出的长尾语音命令来执行响应动作。

在各种实施方式中,在线语义处理器54可以包括用于处理语音输入的补充功能,例如,使用基于语音的查询处理器80,其依赖于各种声学/语言、语法和/或动作模型82,包括在本文其他地方更详细地描述的所谓的“描述性语言学库”84。应当理解,在一些实施方式中,特别是当语音使能设备52是资源约束设备时,基于语音的查询处理器80和由此使用的模型82可以实现比语音使能设备52本地更复杂和计算资源密集型语音处理功能。

在一些实施方式中,可以采用多个基于语音的查询处理器80,每个基于语音的查询处理器80充当用于一个或多个个人助理模块56的基于在线对应物。例如,在一些实施方式中,用户生态系统中的每个设备可以被配置为操作与用户相关联的交互式助理模块56的实例(例如,配置有用户偏好、与相同的交互历史相关联等)。取决于用户当时正在操作的设备,基于语音的查询处理器80的单个以用户为中心的在线实例可以被交互式助理模块56的这些多个实例中的每一个访问。

在一些实施方式中,可以支持在线功能和离线功能,例如,使得无论何时设备与在线服务通信都可以使用在线功能,而当没有连接存在时使用离线功能。在其他实施方式中,可以将不同的动作或动作域分配给在线功能和离线功能,并且在其它实施方式中,仅当离线功能不能充分地处理特定语音输入时,才可以使用在线功能。然而,在其他实施方式中,不能使用互补的在线功能。

例如,图3图示出了可由语音使能设备52执行以处理语音输入的语音处理例程100。例程100通过接收语音输入(例如,以数字音频信号的形式)开始于块102。在该实施方式中,做出初始尝试将语音输入转发到在线搜索服务(块104)。如果不成功,例如,由于缺乏连接或缺乏来自搜索服务的响应,块106将控制传递给块108以将语音输入转换为文本令牌(块108,例如,使用图2的模块64)、解析文本令牌(块110,例如,使用图2的模块68)、并且从解析的文本构建动作(块112,例如,使用图2的模块72)。然后将所得到的动作用于执行客户端渲染和同步(块114,例如使用图2的模块62),并且语音输入的处理完成。

返回到块106,如果将语音输入转发到在线搜索服务的尝试成功,则块106绕过块108-112,并将控制直接传递到块114以执行客户端侧渲染和同步。然后完成语音输入的处理。应当理解,在其他实施方式中,如上所述,可以在在线处理之前尝试离线处理,例如,当语音输入可以在本地处理时避免不必要的数据通信。

图4示意性地示出了交互式助理模块56可以如何单独地或与对应的在线基于语音的处理器80结合地确定响应于长尾语音命令422“icoulduseaboost.(我能用刺激。)”而执行什么动作的示例场景420。语音命令422可以首先与例如以前在整个用户群体中使用的多个现有的基于语音的触发进行比较,其可以或可以不被存储在描述性语言学库84中形成声学/语言语法和动作模型82的一部分,以选择与语音命令422最佳匹配的一个或多个基于语音的触发。例如,在图4中,三个最相似的基于语音的触发是“ineedapick-me-up”(4241),“ineedmotivation(我需要激励)”(4242)和“wakemeup(叫醒我)”(4243)。库84可以包含许多其他基于语音的触发,但是为了说明的目的,这些三个在图4中示出。

每个基于语音的触发424通过边缘连接到语音命令422,并且每个边缘用相应的相似性度量来描绘。例如,第一基于语音的触发4241具有与语音命令422的0.8的相似性得分,第二基于语音的触发4242具有与语音命令422的0.7的相似性得分,且第三基于语音的触发4243具有与语音命令422的0.6的相似性得分。如上所述,可以以各种方式计算这些相似性度量,并且可以反映语音命令422和基于语音的触发4241-3之间的语义和/或句法相似性。

在基于语音的触发4241-3之下是相关联的候选响应动作426。基于语音的触发4241-3和响应动作4261-7之间的关联可以存储在上述描述性语言学库84中,例如作为连接数据库字段、作为不同的行(例如,每个候选响应动作一行)、和/或使用其他技术。第一基于语音的触发4241包括三个候选响应动作:找到咖啡吧(例如通过启动导航应用)4261;播放音乐(例如,流式传输鼓舞性音乐,播放用户最喜欢的歌曲等)4262;以及讲笑话(例如,交互式助理模块“说出”随机选择的笑话或当天的笑话)4263。第二基于语音的触发4242包括两个候选响应动作:复述鼓舞性或激励性的引言(例如,交互式助理模块“说出”随机选择的引言或当天的引言)4264;以及播放音乐4265.第三基于声音的触发4243包括两个候选响应动作:找到咖啡吧4266;以及播放音乐4267。

在一些实施方式中,当用户发出语音命令422时,可以选择与语音命令422最相似的(即,具有最大的相似性度量)基于语音的触发424,而不需要进一步考虑。如果将这种技术应用于图4的场景420,则可以选择第一基于语音的触发4241,因为它具有最高的相似性得分(0.8)。然后,可以从候选响应动作4261-3中选择相关联的响应动作426。

在一些实施方式中,可以选择先前由最多数量的先前用户执行的响应动作、或由最大百分比的先前用户执行的响应动作。在其他实施方式中,可以例如使用语音使能设备52的一个或多个传感器来检测用户的语境,并且使用用户的语境来选择要执行的候选响应动作426。例如,如果客户端设备检测到在早上在用户在通勤到其办公室时用户发出了语音命令422,则交互式助理模块56可能最有可能执行找到咖啡吧(4261)的动作。然而,如果用户已经在其办公室(因此不太可能离开去获取咖啡),则交互式助理模块56可以执行播放音乐(4262)的响应动作。如果用户在深夜,例如当用户不太可能想要咖啡或播放音乐时,发出语音命令422,交互式助理模块56可以执行讲笑话(4263)的响应动作。作为另一示例,如果用户的客户端设备检测到(例如,使用位置坐标传感器、公共wi-fi连接、最近的活动历史等)用户刚刚消费了咖啡、或者位于或刚走出咖啡吧,交互式助理模块56可以从考虑中消除找到咖啡吧(4261)的响应动作。

在一些实施方式中,可以至少部分地基于与当先前用户响应于基于语音的触发424触发响应动作426时与先前用户的语境的相似性来确定用户语境对执行哪个响应动作的影响。因此,例如,当先前用户早上说“ineedapick-me-up”的时候,他们可能最经常意味着他们想要咖啡,而当先前用户在晚上说同样的事情时,他们可能会更频繁意味着他们需要被振奋(例如,使用笑话)。

附加地或替选地,在一些实施方式中,用户的语境(例如由客户端设备的一个或多个传感器确定)可以用于从多个基于语音的触发424中进行选择。假设给定用户的当前语境,没有与第一个基于语音的触发相关联的候选响应动作是有意义的。在这种情况下,即使与第二基于语音的触发相比,第一基于语音的触发可能产生与用户发出的语音命令更大的相似性度量,也可以选择第二基于语音的触发。

图5图示出了适合于利用基于语音的触发和跨越用户群体使用的响应动作之间的现有关联以自动确定响应于在客户端设备从用户接收到的给定语音命令要采取哪个响应动作的例程550。可以由处理基于语音的查询的相同服务、或者可以是完全不同的服务,来执行例程550。

例程550的块552-556类似于图3所示的例程100的各种块。在块552,语音命令例如以数字音频信号的形式被接收。在块554,语音输入被转换为文本令牌(例如,使用图2的模块64和/或模型82)。在块556,文本令牌可以被解析(例如,使用图2的模块68和/或模型82)。

在块558,可以至少部分地基于在块552处接收的语音命令和所选择的基于语音的触发之间的相似性度量来从描述性语言学库84中选择现有的基于语音的触发。如本文其他地方所述,这种相似性度量可以指示语义和/或句法相似性。在一些实施方式中,当选择基于语音的触发时,也可以考虑发出语音命令的用户的语境。

在块560处,可以确定与在块558处选择的基于语音的触发相关联的一个或多个响应动作。在一些实施方式中,基于语音的触发可以与多个不同的候选响应动作相关联(如图4中的情况)。在一些这样的实施方式中,用户的语境可以用于从多个候选响应动作中选择候选响应动作。在其他实施方式中,可以选择最常执行的响应动作(例如,响应于该基于语音的触发由最大数量的客户端设备执行的响应动作,或响应于该基于语音的触发由所有客户端设备的最大百分比执行的那些)。

在块562,可以基于在块560处确定的响应动作,由在块552处接收到语音命令的客户端设备,来选择要执行的一个或多个当前响应动作。例如,可以分析安装在发出语音命令的客户端设备上的多个应用,以识别一个或多个应用来执行一个或多个当前响应动作。在一些实施方式中,如果安装相同的应用,则一个或多个当前响应动作可以与所述一个或多个响应动作相同。另一方面,如果在发出语音命令的客户端设备上没有安装相同的应用,则在一些实施方式中,一个或多个当前响应动作可以类似于在块560确定的一个或多个响应动作。“类似”响应动作可以包括使用“类似”应用而不是与先前的响应动作完全相同的应用执行的那些响应动作。

在一些实施方式中,响应动作可能需要一个或多个参数。在可选块563,这些参数可以由交互式助理模块来选择。在某些情况下,这些参数可能由用户明确提供(例如,“i’dlikealargethin-crustsausagepizzafromhypotheticalpizza(我想要一个来自hypotheticalpizza的大型薄皮香肠比萨饼)”)。在一些实施方式中,用户甚至可能被提示参数。例如,基于语音的触发可以随着时间被添加到描述性语言学库84中,其包括用户通常使用的词项和短语(所谓的“固定内容”)以及特定参数的组合,所述特定参数是指特定实体/数据(所谓的“暂态内容”)。例如,一个常见的基于语音的触发可以是“ordermea<size><crusttype><topping>pizzafrom<location>.”当用户发出命令“ordermeapizza(给我定个披萨)”时,该命令可能是与上述基于用户语音的触发相匹配,并且用户可以例如被交互式助理模块提示提供缺失的参数(例如,“whatkindofcrust?(什么样的皮)”、“whatsize?(什么尺寸?)”、“whattopping?(什么配料?)”等)。

在其他情况下,可以由交互式助理模块自动选择一个或多个响应动作所需的参数,例如,基于用户的语境、先前的用户语音命令等。例如,假设用户发出语音命令“ordermeapizza”。交互式助理模块可以搜索用户的比萨饼订购历史(例如,使用经由电子邮件发送的电子收据、或更具体的过去语音命令)来自动选择一种比萨来安排订单。在某些情况下,可以使用类似的技术来识别订购比萨的餐馆。在其他实施方式中,交互式助理模块可以确定用户的当前位置(例如,从内置于用户电话或手表中的位置坐标传感器),并且可以选择最近的比萨餐馆、用户先前订购的最近的比萨餐馆、用户最常订购的比萨餐馆等等。

在块564,交互式助理模块可以执行在块562处选择的一个或多个当前响应动作(如果适用,则在块563处选择参数)。在块566,可以接收关于在块564处的当前响应动作的执行的用户反馈。根据情况,反馈可以被认为是肯定的、否定的或在某些情况下取决于环境是中立的。例如,如果当前的响应动作包括从用户那里请求与当前响应动作相关的某种输入(例如,完成当前响应动作所需的参数),并且用户提供请求的输入,这可能被认为是肯定的反馈。如果当前的响应动作包括渲染某种媒体内容(例如,播放视频、播放音乐等),并且用户消费内容(例如,如检测到用户没有关闭或最小化媒体播放器),这也可以被认为是肯定的反馈,或者在某些情况下是中立反馈。在一些实施方式中,交互式助理模块可以提示用户提供反馈,例如在执行响应动作之前作为许可请求或在执行响应动作之后作为反馈请求。如果用户提供执行响应动作的许可或提供赞成反馈,这可以被认为是肯定的反馈。

相反,如果当前的响应动作包括从用户那里请求与响应动作相关的某种类型的输入(例如,完成响应动作所需的参数),并且用户拒绝提供所请求的输入,则该可能被认为是否定的反馈。如果当前的响应动作包括渲染某种媒体内容(例如播放视频、播放音乐等),并且用户快速关闭或最小化媒体播放器,这也可以被认为是否定的反馈。如上所述,在一些实施方式中,交互式助理模块可以提示用户提供反馈,例如在执行响应动作之前或之后。如果用户拒绝执行响应动作的许可或提供否定反馈,这可以被认为是否定反馈。

在块568,交互式助理模块可以确定在块552处接收到的语音命令是否是新的语音命令(即,不精确地匹配存储在描述性语言学库84中的基于语音的触发)。如果答案为否,则方法550可以进行到块570。在块570处,可以基于在块566处接收的反馈,改变在块558处选择的基于语音的触发和在块560处确定的响应动作之间的关联的强度。例如,如果用户响应于当前响应动作的执行而提供肯定反馈,则可以例如以1来递增对应于该关联的计数。类似地,如果用户响应于当前响应动作的执行而提供否定的反馈,则可以例如以1来递减对应于关联的计数。在其他实施方式中,用于触发相关语音命令的基于语音的触发的另一实例可以被添加到数据库,例如作为新记录。附加地或替选地,基于在块566处接收到的反馈是肯定还是否定的,可以相应地递增或递减分配给基于语音的触发和在块560处确定的响应动作之间的关联的权重。

在块572,可以确定在块562处选择并且在块564处执行的当前响应动作是否是类似的响应动作,诸如与在块560处确定的响应动作相似性动作“类似”,与在块560处确定的相同响应动作相反。例如,如果客户端设备具有安装的相同应用,并且因此能够执行与在块558处选择的基于语音的触发相关联的完全相同的响应动作,则块572处的答案可以是否。然而,如果客户端设备没有安装相同的应用,而是使用提供类似功能的类似应用来执行响应动作,则块572的答案可以是否。

如果块572处的答案为否,则方法550可以结束。然而,如果块572处的答案为是,那么方法550可以进行到块574。在块574处,基于语音的触发和在块564使用类似的应用执行的当前响应动作之间的新的关联可以被添加到描述性语言学库84。在一些实施方式中,这可以是基于语音的触发和在块570处执行的现有响应动作之间现有关联的改变的补充。在其他实施方式中,如果由客户端设备执行的当前响应动作并不确切(或足够)与已经与所选择的基于语音的触发相关联的那些相同,则可以省略块570。

回到块568,如果由用户发出的语音命令不能精确地匹配描述性语言学库84中现有的基于语音的触发,则方法550可以进行到块576。在块576,在块552接收的语音命令可以作为新的基于语音的触发来添加到描述性语言学库84。方法550然后可以进行到块574,在该点处,可以将新添加的基于语音的触发和在块564执行的当前响应动作之间的关联添加到描述性语言学库。

尽管上面描述的实施方式涉及可供用户群体使用的演进描述性语言学库84,但这并不意味着限制。在一些实施方式中,如上所述,可以为特定用户(或一组用户,诸如同事、家人、朋友等)维护“个人”描述性语言学库77。“个人”描述性语言学库77可以被本地存储在一个或多个由为其维护该库的用户操作的客户端设备中,但这不是必需的。在一些实施方式中,个人描述性语言学库77可以被存储在其他地方(例如,在云上),例如,作为仅对该用户可用的描述性语言学库84的一部分。

在一些实施方式中,个人描述性语言学库77可以以与上述“全局”描述性语言学库84类似的方式使用,但也可以提供特定于特定用户(或用户组)的附加功能。当用户作为语音命令的一部分使用特定词项时,用户可以定义(手动地或随着时间从不同语音命令学习)该具有特定含义的特定词项。

例如,用户可以发出诸如“sendthefollowingmessagetotheteam:xxxxx.(向团队发送以下消息:xxxxx)”之类的语音命令。在此语境中的“team(团队)”可以被识别为用户先前(例如,手动地或通过先前的语音命令自动地)定义的其他用户的特定集合,并且在一些情况下可以包括可以用于与团队成员对应的特定标识符(电子邮件地址、用于接收短信的电话号码、绰号等)。

作为另一示例,用户的联系人可以基于它们与用户和/或彼此的关系而自动地与各种词项相关联。例如,也是用户家庭成员的联系人可以自动地与说出的单词“family(家庭)”相关联。也是用户的同事的联系人可以自动地与说出的单词“co-workers(同事)”相关联。因此,当用户发出命令“sendmyprofilepictomyfamily,(将我的简档图片发送给我的家人)”,交互式助理模块可以自动将词项“family”与作为用户家庭成员的用户的联系人相关联。

另外或替选地,“个人”描述性语言学库77可用于填充一个或多个响应动作的各种参数(即,暂态内容),如上文关于图5的块563所述。假设用户发出声音命令,“takemetothecoffeebar.(带我去那个咖啡吧)”。更通用的命令“takemetoacoffeebar(带我去咖啡吧)”可能会触发响应动作,诸如打开导航应用,路线指引到最近的咖啡吧。然而,用户发出的命令提到“thecoffeebar(那个咖啡吧)”,这暗示用户心中有一个特定的咖啡吧。在这种情况下,交互式助理模块可以在用户的个人描述性语言学库77和/或用户的特定语境中搜索基于语音的触发,以识别当用户说“thecoffeebar”时用户指哪个咖啡吧。然后可以触发导航应用,路线指引到该特定的咖啡吧,无论是否有其他更近的咖啡吧。

应当理解,改进的设备性能是上述描述的一个方面。例如,在允许识别其他模糊的用户语音命令时,减少了由用户重新发出的语音命令的数量和/或由系统发出的澄清问题。这减少了客户端-服务器模型中的带宽和数据使用,并减少了对客户端或本地设备中的计算资源、内存使用情况和电池使用的需求。此外,一旦长尾语音命令成功地与动作相关联,该命令将来可以快速执行(对于该用户和/或其他用户),减少对服务器设备的计算和通信需求。

尽管本文已经描述和示出了几种实施方式,但是可以使用用于执行功能和/或获得结果的各种其他手段和/或结构和/或本文所述的一个或多个优点,并且每个这样的变化和/或修改被认为在本文描述的实施方式的范围内。更一般来说,本文描述的所有参数、尺寸、材料和配置旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的具体应用。本领域技术人员将认识到或者能够使用不超过常规实验来确定本文所述的具体实施方式的许多等同物。因此,应当理解,前述实施方式仅以举例的方式渲染,并且在所附权利要求及其等同物的范围内,可以以除了与具体描述和权利要求相同的方式之外的方式实践实施方式。本公开的实施方式涉及本文所述的每个单独特征、系统、制品、材料、工具包和/或方法。此外,如果这些特征、系统、制品、材料、工具包和/或方法不相互矛盾,则两个或更多个这样的特征、系统、制品、材料、工具包和/或方法的任何组合都包括在本公开的范围内。

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