个人助理模块的非确定性任务发起的制作方法

文档序号:13210919阅读:197来源:国知局
个人助理模块的非确定性任务发起的制作方法

本发明涉及个人助理模块,特别是涉及个人助理模块的非确定性任务发起。



背景技术:

个人助理模块是安装在诸如智能电话、平板电脑、车辆导航系统和智能手表之类的计算设备上的软件过程,以向用户提供用户友好的界面以发出自然语言命令。用户经常使用他们的语音发出自然语言命令,但是个人助理模块也可以响应于其他模态,诸如各种形式的文本输入。现有的个人助理模块可能缺乏足够的智能来再调用用户的先前声明和/或偏好。因此,如果用户发出能够以多种方式潜在地响应的歧义声明(例如,请求、语句、命令),则个人助理模块可能需要从用户请求附加信息以确定如何继续。假设用户对她的电话说词语“呼叫bob”,但在用户的电话簿中有多个与姓名“bob”匹配的联系人。在用户电话上操作的个人助理模块可以询问用户指的是哪个bob和/或是拨打bob的家庭电话还是工作电话。或者,假设另一个用户对他的智能手表说词语“提醒我明天拿起杂货”。在用户的智能手表上或在与智能手表进行通信的智能电话上操作的个人助理模块可能询问用户希望使用哪个应用(例如,日历、任务列表、社交网络应用)来设置提醒。对这样的附加信息的请求由于多种原因(不只是与对该信息的请求和处理相关联的计算资源的花费)可能是不期望的。



技术实现要素:

本说明书一般涉及用于减少个人助理模块从用户请求附加信息以识别响应于接收到的声明要采取哪个响应动作或者哪些参数应当被提供作为用于响应动作的输入的需求的各种技术。这些技术可以因此减少用于确定对用户的声明的响应动作所需的计算资源的花费。例如,通过排除或减少请求附加信息的需求,可以减少用于请求并处理附加信息所需的用户的设备的组件和/或网络上的负载。这样的组件可以包括屏幕、扬声器、麦克风、触敏输入设备和/或任何相关联的处理器。而且,在一些情况下,例如,当用户正在驾驶时,设备请求响应可能对用户不是特别适当。因此,在这样的情况下,减少对附加信息的请求的需求可能对于用户特别有益。

在一些实施方式中,可以向个人助理模块提供对在用户与一个或更多个计算设备之间的交互历史的访问,所述一个或更多个计算设备共同形成由用户操作的计算设备的协作“生态系统”(例如,她的电话、平板电脑、智能手表、汽车导航系统等)。当用户发出声明时,个人助理模块可以发起非确定性任务发起过程,该非确定性任务发起过程识别多个候选响应动作,所述多个候选响应动作潜在地将响应于用户的声明。例如,如果用户发出声明,则个人助理模块可以发起识别潜在地将响应于用户声明的多个候选响应动作的非确定性任务发起过程。在一些实施方式中,基于交互历史和/或诸如用户的过去/当前场境的其他信息信号,个人助理模块可以确定所述多个候选响应动作将响应于用户声明的概率。在各种实施方式中,“声明”可以指对响应动作的用户请求,或者简单地指由用户发出的语句,一个或更多个动作可能潜在地响应于该语句。例如,用户可以简单地陈述“我饿了”,并且候选响应动作可以包括发起与餐馆相关的一个或更多个应用,诸如餐馆评论应用、预订应用等等。

然后,可以至少基于概率非确定性地(例如,推测地)选择(例如,利用至少一些机会的要素)所述多个候选响应动作中的单一一个。例如,如果候选a具有对用户声明作出响应的51%的机会,并且候选b具有对用户声明作出响应的49%的机会,则大约51%的时间可能会选择候选a,并且大约49%的时间可能会选择候选b。通过仅选择单个响应动作,用户不会被多个响应动作淹没。相反,向用户呈现单个选择,用户可以接受或拒绝该选择。用户对单个非确定性选择的响应动作的接受或拒绝可以是对于在将来针对该响应动作(或足够类似的响应动作)确定的概率的强反馈。

因此,在一些实施方式中,一种方法可以包括:由一个或更多个处理器识别在计算设备处接收的用户声明;由所述处理器中的一个或更多个基于所述用户声明来识别多个候选响应动作,所述多个候选响应动作能够由所述计算设备响应于所述用户声明而发起;由一个或更多个所述处理器非确定性地选择所述多个候选响应动作中的响应于所述用户声明要在所述计算设备上排他地发起的单个候选响应动作;以及由一个或更多个所述处理器在所述计算设备上排他地发起所述单个候选响应动作。

在各种实施方式中,该方法还可以包括由一个或更多个所述处理器基于在用户与用户操作的一个或更多个计算设备之间的交互历史来确定每一个候选响应动作的发起将响应于用户声明的概率。在各种实施方式中,非确定性选择可以至少部分地基于所述多个候选响应动作的概率。

在各种实施方式中,该方法还可以包括:基于在发起所选择的动作之后在用户和计算设备之间的一个或更多个交互,由一个或更多个处理器改变与已发起的响应动作相关联的概率。在各种实施方式中,在用户和计算设备之间的所述一个或更多个交互可以包括拒绝所选择的响应动作和手动发起替代候选响应动作。在各种实施方式中,所述改变可以包括将与所选择的响应动作相关联的概率改变与在所选择的响应动作和替选候选响应动作之间的相似性的度量成反比的量。通过改变与候选响应动作相关联的概率,系统可以长时间地在正确预测要发起哪个响应动作方面甚至更有效。这样,将减少与不正确的响应动作的发起相关联的计算资源的花费。

在各种实施方式中,概率还可以至少部分地基于用户的当前场境。在各种实施方式中,用户的当前场境可以是由计算设备确定的用户的当前位置和/或在用户的当前位置处的当前时间。在各种实施方式中,与至少一个候选响应动作相关联的概率可以基于在用户的当前场境与当用户在过去发起所述至少一个响应动作时用户的场境之间的相似性的度量。

在各种实施方式中,所述多个候选响应动作可以包括安装在计算设备上的多个软件应用。在各种实施方式中,用户声明可以包括发起电话呼叫的请求,并且所述多个候选响应动作包括安装在计算设备上的多个电话应用。在各种实施方式中,用户声明可以包括发送消息的请求,并且所述多个候选响应动作包括安装在计算设备上的多个消息收发应用。在各种实施方式中,用户声明可以包括设置提醒的请求,并且所述多个候选响应动作可以包括安装在计算设备上的包括提醒功能的多个应用。在各种实施方式中,用户声明可以包括发起与姓名的通信的请求,并且所述多个候选响应动作包括用户的包括姓名的多个联系人。

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

应当理解,在此更详细地描述的前述构思和附加构思的所有组合被设想作为这里公开的主题的一部分。例如,出现在本公开内容的结尾处的所要求保护的主题的所有组合被设想作为本文所公开的主题的一部分。

附图说明

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

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

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

图4示出了个人助理模块对用户声明的响应可如何被非确定性地选择多个方面的示例。

图5是示出个人助理模块的非确定性任务发起的示例方法的流程图。

具体实施方式

在下文讨论的实施方式中,可以向个人助理模块(也称为“智能个人助理”或“移动助理”)提供对在用户与由用户操作的设备(例如,她的电话、平板电脑、智能手表、汽车导航系统等)的生态系统中的一个或更多个计算设备之间的交互历史的访问。当用户发出声明(通常但不一定使用话音)时,个人助理模块可以发起非确定性任务发起过程,该非确定性任务发起过程识别多个候选响应动作,所述多个候选响应动作可以响应于用户的声明。基于交互历史,在一些实施方式中,移动助理可以确定所述多个候选响应动作将响应于用户的声明的概率。

然后,在一些情况下,至少部分地基于概率,可以非确定性地选择(例如,推测地,利用至少一些机会的要素)所述多个候选响应动作中的单一一个。例如,如果候选动作a具有响应于用户声明的51%的机会,并且候选响应动作b具有响应于用户声明的49%的机会,则接近51%的时间可能会选择候选响应动作a,并且接近49%的时间可能会选择候选响应动作b。在其他实施方式中,可以仅预先选择具有满足一个或更多个阈值的概率的那些候选,然后可以从剩余候选中非确定性地选择响应动作(例如,完全随机或基于概率随机)。通过仅选择单个响应动作,用户不会被多个响应动作淹没。相反,向用户呈现用户可以接受或拒绝的单个选择。

基于在非确定性选择的响应动作的发起之后与计算设备的用户交互,可以改变与所选择的响应动作相关联的概率。例如,如果响应动作是打开因特网通话应用并预拨号特定用户的号码而不实际发起呼叫,并且用户点击“通话”按钮来发起呼叫,则可能导致与该动作相关联的概率增加。相比之下,如果用户通过在不完成呼叫的情况下关闭因特网通话应用来拒绝因特网通话应用,则可以减小与该响应动作相关联的概率。

以下讨论关于所选实施方式的进一步细节。然而,应当理解,可以设想其他实施方式,因此本文公开的实施方式不是排他的。

现在转到附图,其中在几个视图中同样的附图标记表示同样的部件,图1是示例计算机系统10中的电子部件的框图。系统10通常包括经由总线子系统14与多个外围设备进行通信的至少一个处理器12。这些外围设备可以包括:存储子系统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,该分布式语音输入处理环境50例如用于与语音使能设备52一起使用,该语音使能设备52与诸如在线语义处理器54的在线服务进行通信。在下文讨论的实施方式中,例如,语音使能设备52被描述为诸如蜂窝电话或平板计算机的移动设备。然而,其他实施方式可以利用各种各样的其他语音使能设备,因此以下对移动设备的引用仅仅是为了简化下面的讨论的目的。无数其他类型的语音使能设备可以使用本文描述的功能,其他类型的语音使能设备包括例如膝上型计算机、手表、头戴式设备、虚拟或增强现实设备、其他可佩戴设备、音频/视频系统、导航系统、汽车和其他车辆系统等。此外,许多这样的语音使能设备可以被认为是资源受限的,因为这些设备的存储器和/或处理能力可能基于技术、经济或其他原因而被限制,特别是当与在线或基于云的服务能够将几乎无限的计算资源用于单个任务的能力相比时。一些这样的设备也可以被认为是离线设备到如下程度:例如基于这样的设备在正常使用下可能时常经历暂时网络连接中断,这样的设备能够在至少一部分时间“离线”操作并且不与在线服务连接。

在一些实施方式中的在线语义处理器54可以例如使用运行适于处理来自多个用户的大量声明的软件的高性能计算机的服务器群或簇被实现为采用云基础设施的基于云的服务。在线语义处理器54可以不限于基于语音的声明,并且还可以能够处理其他类型的声明,例如基于文本的声明、基于图像的声明等。在一些实施方式中,在线语义处理器54可以处理基于语音的声明,例如设置警报或提醒、管理列表、经由电话、文本、电子邮件等发起与其他用户的通信或执行可经由语音输入发起的其他动作。为了本公开的目的,基于语音的声明、声明和其他形式的语音输入可以统称为基于语音的声明,而不管基于声音的声明是否试图发起搜索,提出问题,发出命令,或者甚至包括关于用户的个人偏好的例如在用户和个人助理模块之间的空闲聊天。因此,一般来说,任何语音输入(例如包括一个或更多个词或短语)可以被认为是在所示实施方式的场境内的基于语音的声明。

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

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

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

虽然模块64将话音转换为文本,但是为了制定适当的响应的目的,模块66尝试辨别由模块64输出的文本的语义或含义。解析器模块68例如依赖于一个或更多个离线语法模型76来将文本映射到特定动作并且识别限制这些动作的执行的属性,例如,对于这样的动作的输入变量。在一些实施方式中,可以使用单个模型76,而在其他实施方式中,可以支持多个模型,例如以支持不同的动作或动作域(即,相关动作例如通信相关动作、搜索相关动作、音频/视觉相关动作、日历相关动作、设备控制相关动作等的集合)。

作为示例,离线语法模型76可以支持诸如“设置提醒”的动作,该动作具有指定要设置什么类型的提醒的提醒类型参数、指定与提醒相关联的一个或更多个项目的项目参数以及指定激活提醒并提醒用户的时间的时间参数。解析器模块64可以接收诸如“提醒我到”、“拾取”、“面包”和“下班后”之类的令牌序列,并将令牌序列映射到设置提醒的动作,该提醒具有被设置到“购物提醒”的提醒类型参数、被设置到“面包”的项目参数和时间参数“5:00pm”,使得在那天5:00pm,用户接收到“购买面包”的提醒。

解析器模块68还可结合管理与用户的对话的对话管理器模块70来工作。在该场境中,对话是指与两个个体之间的交谈类似的一组语音输入和响应。模块70因此维持对话的“状态”,以使得在处理随后的语音输入时能够使用在先前语音输入中从用户获得的信息。因此,例如,如果用户要说“提醒我拾取面包”,则可以生成回答说“确定,您希望何时提醒?”,使得随后的“工作后”的语音输入将被绑回到创建提醒的原始请求。在一些实施方式中,模块70可以被实现为个人助理模块56的一部分。

动作构建器模块72从解析器模块68接收表示语音输入解释的解析的文本,并且生成一个或更多个响应动作或“任务”连同任何相关联的参数,以由个人助理模块56的模块62处理。动作构建器模块72可以依赖于包含用于从解析的文本创建动作的各种规则的一个或更多个离线动作模型78。在一些实施方式中,例如,动作可以被定义为函数f,使得f(it)=au,其中t表示输入解释的类型,并且u表示输出动作的类型。f可以因此包括彼此映射的多个输入对(t,u),例如,作为f(it)=au,其中it是类型t的输入原变量,并且au是类型u的输出模块自变量或参数。应当理解,一些参数可以被直接接收作为语音输入,而一些参数可以以其它方式(例如基于用户的位置、人口统计信息或者基于用户特有的其他信息)来确定。例如,如果用户要说“提醒我在杂货店拾取面包”,则在没有诸如用户的当前位置、用户在工作和家之间的已知路线、用户的常规杂货店等的附加信息的情况下位置参数可能不可确定。

如上所述,在一些实施方式中,个人助理模块56可以从用户接收命令,并使用各种离线和在线资源来发起一个或更多个响应动作。当用户向个人助理模块56提供语音输入以发起任务时,动作构建器模块72可以识别可能潜在地响应于用户声明的多个候选动作。尽管可以向用户提供(例如,经由语音对话)从多个候选响应动作选择的机会,但是如果用户已经从事其他活动(例如驾驶),则这可能不是理想的。此外,如果存在若干候选响应动作,则呈现它们全部可能以太多信息和/或选择使用户分心,这可能导致用户避免将来与个人助理模块56交互。

因此,在一些实施方式中,个人助理模块56可以发起非确定性任务发起过程,该非确定性任务发起过程从具有响应于用户声明的对应概率的多个候选响应动作中非确定性地选择响应于用户声明由语音使能设备52排他地发起的单个响应动作。因此,当用户作声明时,在几乎没有或没有来自用户的附加输入的情况下自动发起动作。

在各种实施方式中,与所述多个候选响应动作相对应的概率可以至少部分地基于在用户与由用户操作的设备(诸如语音使能设备52)的生态系统的一个或更多个计算设备之间的交互历史。在各种实施方式中,可以随后基于在发起所选择的任务之后在用户和语音使能设备52(或生态系统的其他设备)之间的一个或更多个交互而改变与所选择的响应动作相关联的概率。

应当理解,在一些实施方式中,模型74、76和78可以组合成更少的模型或分成附加模型,其可以是模块64、68、70和72的功能。此外,模型74-78在本文中被称为离线模型,只要模型被本地存储在语音使能设备52上并且因此当设备52不与在线语义处理器54通信时可离线访问。此外,虽然模块56在本文中被描述为个人助理模块,这不意味着限制。在各种实施方式中,在语音使能设备52上操作的任何类型的应用可以执行本文所描述的技术,以响应于用户声明和查询非确定性地选择和/或调用响应动作。

在各种实施方式中,在线语义处理器54可以包括用于例如使用依赖于各种声学/语言、语法和/或动作模型82的基于语音的查询处理器80处理语音输入的补充功能。将明白,在一些实施方式中,特别是当语音使能设备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而执行的一个或更多个响应动作的示例场景420。在该示例中,用户声明422包括呈口语短语“let’sreachouttojohn(让我们联系约翰)”的形式的语音输入。响应于用户声明422,多个候选响应动作4241-n和4261-m可以例如由动作构建器模块72和/或个人助理模块56来识别。每一个候选响应动作424/426具有满足用户声明422的相关联的概率。

假设发出的用户声明422的用户具有名为“john(约翰)”或“jon(乔恩)”的多个联系人,则用户声明422对于用户正在指代哪个“john”是不明确的。因此,候选响应动作424的第一“级”包括在用户的联系人列表(或社交网络或其他源)中具有姓名“john”或“jon”的联系人。第一联系人4241约翰·亚当斯(johnadams)具有响应用户声明422的20%的概率。第二联系人4242约翰·布拉德利(johnbradley)具有响应用户声明422的15%的概率。第三联系人4243乔恩·克拉克(jonclarke),具有响应于用户声明422的5%概率。联系人424n约翰·真力时(johnzenith)具有响应用户声明422的40%的概率。在各种实施方式中,一个或更多个未描述的联系人可具有当与如图4所示的那些一起包括(虽然这不是需要的)时加起来为100%的概率。

使用本文所描述的技术,个人助理模块56可以至少基于这些概率,响应于用户声明422非确定性和排他性地选择单个联系人424。因此,johnadams将有20%机会被选择,johnzenith将有40%机会被选择等等。因此,如果用户十次提供相同的用户声明422,则机会是将两次选择johnadams,将四次选择johnzenith,并且剩余的四个实例将分布在剩余的联系人424中。在其他实施方式中,可以丢弃具有未能满足一个或更多个阈值的概率的候选,并且可以从剩余候选中非确定性地(例如,完全随机或基于概率而随机)选择响应候选。

在图4的示例中,用户声明422“let’sreachouttojohn”对于如何联系约翰(john)也是模糊的。语音使能设备52可能具有安装的可能潜在地响应于用户声明422的各种应用4261-m。因此,候选响应动作的第二“级”包括候选应用426,这些候选应用426被安装在语音使能设备52上,并且如果这些候选应用426被发起,则这些候选应用426可能潜在地响应于用户声明422。在图4中,首先选择联系人,然后选择应用。然而,这并不意味着限制,并且可以在其他实施方式和/或场景中在联系人之前选择应用。此外,特定应用和联系人中的一个的选择可影响与特定应用和联系人中的另一个的下游选择相关联的概率。

在该示例中,第一候选应用4261是“电话应用a”,其可以是通常在智能电话上找到的标准蜂窝电话应用。它具有60%的相关概率。第二候选应用4262是“电话应用b”,其可以是使用ip语音(“voip”)或其他类似技术以促进电话交谈的所谓的“因特网电话”应用。它具有5%的相关概率,这表明用户很少使用电话应用b4262作为通信的模式。第三候选应用4263是短消息收发服务(“sms”)应用。它具有20%的相关概率。另一候选应用426m是社交网络应用,用户可以使用该社交网络应用来发送社交网络消息。它具有5%的相关概率,这再次表明用户很少使用它作为通信的模式。

与候选联系人424的情况一样,个人助理模块56可以至少部分地基于那些概率来非确定性地选择单个应用426以响应于用户声明422而排他地发起。因此,有60%的机会将自动发起电话应用a,并且有20%的机会将自动发起sms应用4263。剩余应用426具有相对低的概率,因此不太可能被自动发起(并且在一些实施方式中可以完全从考虑中消除)。因此,如果用户十次提供相同的用户声明422,则机会是电话应用a4261将被选择六次,sms应用4263将被选择两次,并且剩余的两个实例将被分布在剩余的应用426中。当然,如上所述,与候选响应应用4261-m相关联的概率可能受到非确定性地选择哪个联系人424的影响。例如,如果johnbradley是非确定性选择的并且用户通常通过sms应用4263与johnbradley通信,则可以增加与sms应用4263相关联的概率。

可以基于各种信息信号来确定与候选响应动作(例如,424、426)相关联的概率。在一些实施方式中,它们可以至少部分地基于在用户与由用户操作的一个或更多个计算设备(诸如先前提及的设备的“生态系统”)之间的交互历史。在用户与一个或更多个计算设备之间的交互历史可以包括可以一起存储或单独存储的用户交互的各种记录。例如,用户的交互历史可以包括一个呼叫日志(如果存在多个替代呼叫应用则多于一个呼叫日志)、文本消息历史、电子邮件历史(例如,收件箱和已发送邮件)以及与安装在由用户操作的设备的生态系统中的一个或更多个上的各种应用的用户交互的其他记录。

作为示例并再次参考图4,例如可以从呼叫日志、文本消息历史、电子邮件历史等确定:当发出用户声明422的用户发起与具有姓名“john”或“jon”的联系人列表中的任何人的通信时,johnzenith历来是用户指定的最受欢迎的“john/jon”(由40%概率反映),随后是johnadams,然后是johnbradley,然后是jonclarke等等。例如,在最后n次用户已经联系到“john/jon”时,johnzenith可能40%的时间已经是目标,johnadams20%的时间等等。类似地,可以从相同或不同的源确定:当用户发起与任何人的通信时,他或她最经常使用电话应用a(例如,发起与另一个用户的联系的最后n个实例中的60%)来如此进行,然后sms应用等等。

在一些实施方式中,可以至少部分地基于与被认为充分类似的另一任务相关联的一个或更多个信息信号来确定与一个响应动作相关联的概率。例如,在计算与图4的候选联系人4241-n相关联的概率时,当确定与使用另一个应用发起与特定联系人的联系相关联的概率时,可以共同地考虑与该特定联系人的任何形式的在先联系(例如使用电话应用a的先前电话呼叫、使用sms应用发送的先前文本等)。假设用户发出声明“消息bob”,但是在用户的消息收发历史中没有检测到先前的消息收发活动,特别是响应于向“消息bob”的个人助理模块的声明。然而,存在用户响应于对“呼叫bob”的个人助理模块的先前用户声明而将呼出呼叫放到姓名为“bobsmith”的联系人的记录。消息收发和呼叫响应动作可以在下述方面被认为足够相似:响应于“消息bob”声明,个人助理模块可以计算应当通过消息发送bobsmith来履行声明的概率。

除了原始流行度之外,或者代替原始流行度,在各种实施方式中,可以至少部分地基于多近在用户的交互历史中检测到响应动作(或足够类似的响应动作)确定与候选响应动作相关联的概率。假设用户在历史上在发出声明“呼叫john”之后比“johnadams”更经常地选择“johnzenith”。然而,假设用户在最近的实例中(例如,在最近一周)已经比“johnzenith”更经常地选择“johnadams”。在一些实施方式中,这可以被考虑以计算略微大于其他情况的与“johnadams”相关联的概率。

与候选响应动作(例如,424、426)相关联的概率也可响应于各种信号随时间改变。在一些实施方式中,与非确定性选择的响应动作相关联的概率可以基于在发起所选择的任务之后在用户和生态系统的一个或更多个语音使能设备52之间的一个或更多个交互而改变。假设johnadams(4241)是非确定性选择的,并且电话应用a(4261)是非确定性地发起的,其中johnadams的电话号码被预拨号。进一步假设用户按下“通话”以发起呼叫。该用户交互可以被解释为正反馈,这可能因此导致分配给johnadams和电话应用a的未来概率增加。同样,如果用户拒绝以预拨号johnadams的号码来实例化电话应用a,而是手动拨打新号码,则该交互可以被解释为导致相同概率减少的负反馈。

在各种实施方式中,可以基于各种测量来确定与候选响应动作相关联的概率可以响应于正或负反馈而被改变的量。在一些实施方式中,与非确定性选择的响应动作相关联的概率可以被改变与在非确定性选择的响应动作和例如在拒绝非确定性选择的任务之后由用户手动发起的替代响应动作之间的相似性的度量成反比的量。假设用户发出“设置提醒以明天早上取出垃圾”的请求,并且非确定性地选择的响应动作是用于在用户的工作日历中创建的条目。进一步假设用户拒绝该响应动作,而是在她的个人日历中手动定义明天早上取出垃圾的条目。因为这两个任务——在工作日历中创建提醒对在个人日历中创建提醒——有点类似,所以用户拒绝前者而支持后者的事实可能仅以相对小的量影响与每一个任务相关联的概率。相比之下,如果用户拒绝了前者而支持在完全不同的非日历相关的任务提醒应用(例如,与操作系统相关联)中手动设置任务,则概率可能受到更大的影响。

可以使用各种技术来确定在两个候选响应动作之间的“相似性”。在一些实施方式中,可以从每一个候选响应动作提取各种特征以形成特征向量。然后可以使用诸如kullback-leibler(“kl”)发散度、余弦相似性(有时称为“软余弦度量(softcosinemeasure)”)、levenshtein距离等各种算法将候选响应动作特征向量彼此进行比较,以确定它们之间的相似性的度量。

在一些实施方式中,可以附加地或替代地基于与用户的当前和/或过去场境相关联的信息信号来确定与候选响应动作相关联的概率。在各种实施方式中,用户的当前场境可以包括用户的当前位置(例如,由语音使能设备52上的gps传感器提供的位置坐标)、用户的位置处的当前时间、用户的日历上的当前安排的条目、用户的社交网络状态和/或可以从各种传感器确定的其他信号。例如,语音使能设备52可以配备有加速度计,该加速度计揭示用户在正在移动的汽车中或在飞机中。附加地或替代地,用户的场境可以包括当前安装和/或运行/不运行在语音使能设备52上的一个或更多个应用。

假设用户发出由图4中的用户声明422表示的语音命令到语音使能设备52。进一步假设sms应用4263已经在后台打开,并且用户最近已经与johnbradley发短信。sms应用4263已经打开的事实可能导致该应用响应于用户声明422的概率增加(例如,从图4中描绘的20%增加到更高的概率)。类似地,用户最近与johnbradley发短信的事实也可以增加与johnbradley的候选联系人4242相关联的概率(例如,从图4中描绘的15%到对应更高的概率)。因此,可能更可能的是sms应用4263将被非确定性地选择为与将是基于图4中所描绘的概率的情况的情况相比向johnbradley草拟文本消息(也是非确定性地选择)。

作为另一示例,假设当用户发出对“呼叫大卫(calldavid)”的请求时,用户通常指的是居住在相同时区中的davidsmith。然而,假设用户已经旅游到遥远时区,并且用户具有另一个名为davidjones的联系人,其居住在该遥远时区中。通常,非确定性地发起对davidsmith的呼叫的概率可能高于非确定性地发起对davidjones的呼叫的概率。然而,基于可以基于来自语音使能设备52的一个或更多个信号(诸如用户的当前位置和/或时间)确定的用户的当前场境,非确定性地发起对davidjones的呼叫的概率可以增加。因此,当用户在davidjones的时区旅行时,“呼叫大卫(“calldavid)”的用户请求可能更可能导致对davidjones而不是davidsmith的呼叫被非确定性地发起。反之亦然,当用户在家时,“呼叫大卫”的用户请求可能更可能导致对davidsmith而不是davidjones的呼叫被非确定性地发起。

除了对应的时区之外,与联系人相关联的其他信息信号可以用于确定那些联系人是在发出给个人助理模块的歧义声明中用户所指示者的概率。例如,假设具有两个名为“sven”的联系人的用户发出对“呼叫sven”的请求。一个sven联系人通常可以被偏好(即被分配较高的概率),但是如果用户具有在不久的将来与另一个sven安排的会见,则所述另一个sven的概率可能在会议之前、期间以及可能在会议之后的某个时间至少暂时升高。类似地,如果一个sven具有即将到来的生日或者计划在特定航班上到达城镇,则该sven的概率可以至少暂时相对于另一个sven升高。

在一些实施方式中,与至少一个响应动作相关联的概率可以基于在用户的当前场境与当用户在过去发起所述至少一个响应动作(或足够类似的任务)时用户的场境之间的相似性的度量。假设用户通常在周内呼叫同事davidsmith,并在周末呼叫同胞davidjones。如果用户在该星期期间发出声明“呼叫dave”,则用户的场境可以更类似于用户呼叫davidsmith的先前实例,从而增加了与davidsmith的呼叫将被非确定性地发起的概率。同样,如果用户在周末期间发出声明,则用户的场境可以更类似于用户呼叫davidjones的先前实例。这可能增加与davidjones的呼叫将被非确定性地发起的概率。

也可以执行更复杂的场境比较以确定概率。在一些实施方式中,可以从先前和当前场境中提取特征,并且比较特征以确定相似性的度量。类似于上面对备选候选响应动作,可以采用各种技术(包括但不限于kl发散度、余弦相似性、levenshtein距离等)来计算在场境之间的相似性的度量。例如,在发出声明时,与用户的当前场境对应的特征向量可以与在多个候选响应动作中的每一个的先前执行期间为用户的场境生成的特征向量进行比较。具有与表示用户的当前场境的特征向量最相似的特征向量的候选响应动作可以被认为具有最高的响应机会,并且因此可以被分配最高的概率。具有与表示用户的当前场境的特征向量最不相似的特征向量的候选响应动作可以被认为具有最低的响应机会,并且因此可以被分配最低的概率。等等。

图5示出了适合于由个人助理模块执行以非确定性地选择和/或发起潜在地响应于用户声明的一个或更多个任务的例程550。例程550可以由处理基于语音的查询的相同服务来执行,或者可以是完全不同的服务。

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

在框558处,可以例如通过个人助理模块56发起非确定性任务发起过程(例如,子例程)以非确定性地选择和/或发起响应于在块556处识别的声明的动作。在块560处,非确定性任务发起过程可以识别(或者可以请求动作构建器模块72识别)可能潜在地响应于在块556处识别的用户声明的多个动作作为候选。例如,如果用户声明包括术语“呼叫”,则在语义上与呼叫的动作相关的任何应用(例如一个或更多个电话应用)可以被识别作为潜在响应候选。

在可选框562处,可确定与在框560处识别的所述一个或更多个候选响应动作相关联的一个或更多个概率。如上所述,这些概率可以基于各种信息信号,诸如用户交互历史、用户的当前场境、用户先前发起候选响应动作时的用户场境等等。在框564处,在一些情况下,至少部分地基于在框562处确定的概率,可以在语音使能设备52上非确定性地选择和/或发起单个响应动作。

在框566处,可以分析在用户和语音使能设备52(和/或形成用户的生态系统的一部分的其他计算设备)之间的随后的交互历史。在框568处,可以作为响应,例如响应于随后的用户声明,对应地改变与一个或更多个候选响应动作相关联的一个或更多个概率。如前所述,随后交互历史可以包括例如用户接受或拒绝非确定性发起的响应动作。

除了由该用户操作的计算设备的存储器之外,或者替代那些计算设备的存储器,在用户和由该用户操作的计算设备的生态系统之间的交互历史可以被保存在各种存储器位置中。例如,在一些实施方式中,一个或更多个交互历史记录可以例如与一个或更多个基于语音的查询处理器80相关联地存储在云上。在这个意义上,当在一个计算设备处提供用户声明时,生态系统的一个或更多个其他计算设备和/或存储在云上的记录可以被查阅,并用来将概率分配给候选响应动作。用户的随后交互历史还可以被存储在这些各种位置中的一个或更多个中以供将来使用。通过在云上存储至少一些交互历史记录,那些记录可在用户的生态系统的所有计算设备上可用。这可能导致用户在所有她的设备上获得更一致的体验。此外,当用户向她的生态系统添加新设备时,在该新设备上操作的个人助理模块可以立即访问用户的交互历史。

尽管本文所描述的实施方式已经主要演示了电话和消息收发响应动作的使用,但这并不意味着限制。本文描述的技术可以用于将概率分配给各种其他类型的响应动作。例如,当用户说“在xx处为我设置警报”时,可以分析用户与她的生态系统的计算设备的先前交互,以确定她的相对于警报设置的习惯。基于那些习惯和诸如日期、时间和位置的各种其他信息信号,可以非确定性地选择警报时间以供用户接受或拒绝。

在一些实施方式中,如果与所有可能的候选响应动作相关联的概率不能满足某个阈值(例如,>15%),则表明几乎没有任何特定响应动作将是正确的信心。在这种情况下,个人助理模块56可以从用户请求附加信息。在一些实施方式中,可以使用本文描述的技术来选择在这种情况下提供给用户的一个或更多个提示。例如,可以具体向用户提示信息以消除具有最高相关概率的两个或更多个候选响应动作之间的歧义。并且如上所述,在其他实施方式中,只有具有满足一个或更多个阈值(或只有n个最高概率候选)的概率的候选响应动作可以被包括在从中非确定性地选择一个候选的候选池中。

另外,在一些实施方式中,与非确定性选择的响应动作相关联的概率可以影响响应动作如何被发起和/或呈现给用户。例如,如果概率满足某个相对高的阈值(例如>95%),则可以完全发起响应动作(例如,可以进行呼叫)。如果概率不满足该阈值,则可以较小程度地发起响应动作(例如,可以打开电话应用并预拨号码,但是直到用户按下“通话”才可以发出呼叫)。

虽然本文已经描述和示出了若干实施方式,但是可以使用用于执行功能和/或获得结果和/或本文所述的一个或更多个优点的各种其它手段和/或结构,并且这样的变体和/或变型被认为在本文所描述的实施方式的范围内。更一般地,本文所述的所有参数、尺寸、材料和配置意在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于具体应用或使用本教导的应用。本领域技术人员将认识到或者能够使用至多常规实验来确定本文所述的具体实施方式的许多等同物。因此,应当理解,前述实施方式仅以示例的方式给出,并且在所附权利要求及其等同物的范围内,可以以与具体描述和要求保护的方式不同的方式实现实施方式。本公开的实施方式涉及本文所述的每一个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这些特征、系统、制品、材料、套件和/或方法不相互不一致,则两个或更多个此类特征、系统、制品、材料、套件和/或方法的任何组合被包括在本公开的范围内。

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