扩展数字个人助理动作提供者的制作方法

文档序号:11635839阅读:202来源:国知局
扩展数字个人助理动作提供者的制造方法与工艺

背景

电子设备现在具有可响应于口述的命令来提供各种特征的话音识别功能。这样的功能的益处有许多。此外,一些设备现在提供可按自然的、对话的方式(通过语音或键入的文本)对用户命令或问题作出响应的数字角色。作为结果,用户与其设备进行交互变得越来越舒适,并且对自然语言命令的使用变得越来越普遍。

仍然存在其中自然语言命令技术难以实行的一些场景。因此,仍有改进的空间。

概述

提供本概要从而以简要形式引入将在下面具体实施例中进一步描述的概念的选择。本概要不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。

一实施例可以是一种控制多个经注册的动作提供者中的哪个动作提供者来执行任务的方法,该方法包括:接收由话筒检测到的口述的表达;对该口述的表达执行话音识别,所述话音识别该口述的表达中的任务;以及,响应于识别出所述任务,并基于经注册的动作提供者的存储的注册以及存储的任务到提供者关联偏好,将所述任务分配给经注册的动作提供者中的特定动作提供者,其中分配所述任务包括选择所述特定动作提供者来执行所述任务,以及向所述特定动作提供者发送执行所述任务的指令。

一实施例可被实现为一种电子设备,包括:处理器;存储经注册的动作提供者的多个存储的注册的存储器,其中所述存储的注册包括指示特定经注册动作提供者所支持的任务的针对该特定经注册动作提供者的存储的注册;存储经注册的动作提供者的多个存储的偏好的存储器,其中所述存储的偏好包括将特定经注册动作提供者指示为被偏好用于特定任务的偏好;识别引擎,所述识别引擎被配置成识别由所述设备的话筒接收到的口述的表达或由所述设备的文本输入硬件接收到的键入的命令中的任务;以及,个人数字助理基础结构服务,所述个人数字助理基础结构服务被配置成基于存储的注册和存储的偏好来控制将所述任务定向到哪个动作提供者来完成。

一实施例可被实现为一个或多个机器可读介质,所述一个或多个机器可读介质包括机器可执行指令,所述机器可执行指令使得电子设备执行一种控制多个经注册的通信动作提供者中的哪个通信动作提供者执行数字个人助理基础结构服务所支持的通信任务的方法,该方法包括:对表达执行话音识别,所述话音识别包括识别所述表达中的支持的通信任务以及联系人名称;以及,基于经注册的通信动作提供者的存储的注册、存储的动作到提供者关联偏好及用于发起针对所述联系人名称的通信任务的联系人信息的可用性,选择特定经注册通信动作提供者,并使用所选择的特定经注册通信动作提供者经由支持的通信任务发起与所述联系人名称所标识的联系人的通信;其中选择特定经注册通信动作提供者包括最初考虑第一通信动作提供者,但响应于确定所述第一通信动作提供者的联系人信息的可用性丢失,选择第二通信动作提供者。

如本文所述的,各种其它特征和优点可按照需要被结合到所述技术中。

附图简述

图1是被配置成控制多个经注册动作提供者中的哪个动作提供者执行任务的示例电子设备的框图。

图2是扩展数字个人助理动作提供者的示例方法的流程图。

图3是控制多个经注册动作提供者中的动作提供者执行任务的示例方法的流程图。

图4是某动作提供者的允许各动作提供者共享数字个人助理基础结构服务的示例注册记录模式的框图。

图5a和5b是示例注册记录的框图。

图6是示出示例任务域的个体任务的框图。

图7是示出音频设备、数字个人助理基础结构服务和动作提供者之间的信息和指令的示例流动的流程图。

图8是示出用于配置数字个人助理以使用第三方扩展来进行消息收发的示例用户界面的屏幕截图。

图9是可用于实现所描述的一些实施例的示例计算系统的图示。

图10是可被用于本文中描述的技术的示例移动设备。

图11是可连同本文中描述的技术来使用的示例云支持环境。

详细描述

示例1–示例概览

本文中的各实施例在各种场景中可用于解决各种技术挑战,包括可扩展性、计算资源节省、改进的对语音命令的用户效率、以及增加的用户交互性能。

在各示例中,动作提供者可向数字个人助理基础结构服务注册。在控制哪个动作提供者将执行用户输入所识别的任务时,经注册的动作提供者可被基础结构服务考虑。

虽然数字个人助理可具有丰富的功能,但它们可限于其设计者构想到了什么。如本文中所描述的,数字个人助理系统的功能可被扩展。可扩展性向更多样的参与动作提供者开放助理功能。例如,出于增加的功能、个人偏好等原因,用户可期望第三方动作提供者。

在缺乏技术方案的情况下,动作提供者分开地提供其自己的数字个人助理功能。作为如本文中所描述的在各动作提供者中共享基础结构的结果,附加的动作提供者可被添加到该系统,但这样的提供者不需要并入其自己的资源和代码来实现数字个人助理,也不需要并入数字个人助理的任何相关的子部分。因此,构造和实现动作提供者所需的总计算资源被减少。对于本地存储的动作提供者,这意味着在电子设备上消耗更少的存储器。

如本文中所描述的,可使用一种注册过程,通过该注册过程,提供者可将数字个人助理基础结构服务在向动作提供者分配任务时可使用的信息传递给该服务。这样的信息可包括支持的动作、要填充的槽、先决条件等。

如本文中所描述的机器学习可最终导致更快的总体任务执行。

本文中的各特征可解决这些问题,使得可导致总的来说更优良的用户体验以及对资源更好的使用。

各种其它特征可被实现并如本文所述地组合。

示例2–与设备的示例高效用户界面及其他效果

如在本文中的示例中描述的,数字个人助理基础结构服务的服务可在各动作提供者之中共享。结果,存储动作提供者所需的总存储量可被减少。在本地动作提供者的情况下,用于存储本地动作提供者的存储器可被减小。

此外,可利用数字个人助理的动作提供者的数目和类型可被扩展。这样的涉及其他动作提供者的参与的开放方法可导致更丰富的功能被电子设备提供。

不同的用户可具有关于他们在完成任务时希望使用哪个动作提供者的不同偏好。如本文中所描述的,数字个人助理基础结构服务可允许任何数目的动作提供者向该服务注册,以利用(例如,插入)该服务所提供的功能,包括用户偏好、槽填充、先决条件、机器学习等。

示例3–实现各技术的示例系统

图1是被配置成控制多个经注册动作提供者172a-n、174中的哪个动作提供者执行任务的示例电子设备150的框图。在该示例中,电子设备150具有监听(例如,话音识别)能力,但设备150也可用文本输入硬件来实现这些技术。

在该示例中,电子设备150包括话筒120、扬声器190,并可具有多个其他硬件传感器。识别器130可识别由话筒120接收到的口述的表达110。如本文中所描述的,这样的表达110可包括任务名、任务参数等。在基于文本输入的系统中,识别器可以是识别由设备的文本输入硬件(例如,键盘、触摸屏等)接收到的键入的命令中的任务的识别引擎。

数字个人助理基础结构服务160可对所识别的任务采取行动、协调这样的任务的执行、并经由扬声器190提供音频反馈195,扬声器190可采取各种音频输出设备中的任一者的形式。它由此可基于存储的注册165以及存储的任务偏好167来控制将任务定向到哪个动作提供者来完成,如本文中所描述的。

如本文中所描述的,数字个人助理基础结构服务160可向动作提供者172a-n、174中的特定动作提供者发送指令180以执行所识别的任务。数字个人助理基础结构服务160可基于各种因素来确定要使用哪个动作提供者172a-n、174。例如,可选择用户默认的动作提供者、显式地指定的动作提供者或推断出的动作提供者(例如,基于先前使用推断的)。

存储的提供者注册165可指示针对动作提供者172a-n、174的各种信息,并指示这些动作提供者的能力。例如,可包括支持的任务、要被填充的参数槽、先决条件等。具有存储的注册的动作提供者被认为是(例如,向数字个人助理基础结构服务注册的)经注册的动作提供者。

任务偏好167可包括该服务所支持的任务和支持任务的特定动作提供者之间的映射。由此,可指示针对某任务的默认的或偏好的动作提供者。如本文中所描述的,机器学习可被采用来修改为特定任务指示的动作提供者。如本文中所描述的,偏好可以是超过任务水平的粒度。例如,对特定联系人、地理位置等的偏好可被支持。

数字个人助理基础结构服务160可基于各种输入(例如,提供者注册165、存储的任务偏好167、显式地指定的提供者、推断出的提供者等)来选择多个经注册的动作提供者172a-n、174中的哪一个将执行被识别的任务。

尽管各组件在分开的框中示出,在实践中,组件边界可改变。例如,各组件可作为设备操作系统、应用、设备等的一部分被提供。其它布置也是可能的,同时仍旧实现所述技术。例如,虽然注册165和偏好167被分开地示出,但可实现其中两者被合并或一者的各部分被复制到另一者中等优化。例如,来自注册165的信息可被放置为使得当经由偏好167找到默认动作提供者时,该信息可被容易地访问(例如,在同一记录等中)。

在实践中,本文中示出的系统(诸如系统100)可以更复杂,具有附加的功能、更多的输入、输出等。在实践中,与位置有关的附加功能(例如,gps、室内定位技术等)可被包括以确定听见口述的命令的设备的当前位置。

系统100和此处描述的其它系统中的任何系统可结合此处描述的硬件组件中的任何组件来实现,诸如计算系统或下面描述的移动设备(例如,包括一个或多个处理器、存储器等)。在本文中描述的任一示例中,输入、输出、偏好、注册、动作提供者及指令可被存储在一个或多个计算机可读存储介质、机器可读介质、或计算机可读存储设备中。此处描述的技术可对操作系统或硬件的细节通用且可在任何各种环境中应用以利用所述特征。

示例4–实现扩展数字个人助理动作提供者的示例方法

图2是扩展数字个人助理动作提供者并可例如在图1所示的系统中实现的示例方法200的流程图。

在210,向数字个人助理基础结构服务注册动作提供者。向数字个人助理基础结构服务注册特定动作提供者可包括存储该特定动作提供者所支持的一个或多个动作的指示。在实践中,可包括附加注册信息,如本文中所描述的。例如,合约指定机制可被用于指示在执行任务时,动作提供者预期什么信息。

在220,由电子设备接收并识别表达中的任务。

可执行如本文中描述的附加动作,诸如确定参数槽丢失、先决条件没有被满足等。

在230,基于如本文中描述的注册和偏好,将任务分配给特定动作提供者。如本文中所描述的,可完成对偏好的动作提供者的显式覆盖。

在240,特定动作提供者执行任务。

方法200和本文中描述的任何其它方法可由存储在一个或多个计算机可读介质(例如,存储或其它有形介质)中、存储在一个或多个机器可读介质、或存储在一个或多个计算机可读存储设备中的(例如,在被执行时,使得计算系统执行该方法的)机器可读或计算机可执行指令来执行。这样的方法可至少部分地由本文中描述的计算系统或设备(例如,移动设备、移动计算设备、游戏控制台、可穿戴计算设备、膝上型计算机、平板设备等)中的任一者来执行。

示例5–实现各技术的示例方法

图3是控制多个经注册的动作提供者中的哪个动作提供者执行任务并可在例如图1所示的系统中实现的示例方法300的流程图。方法300可独立地或结合图2中所示的用于扩展动作提供者(例如,用于执行图2的220和230)的方法执行。注册(框210)可在方法300被执行执行发生。

在310,(例如由电子设备的话筒)接收口述的表达(例如被电子设备的话筒检测到等)。表达包括口述的任务。

在320,对口述的表达执行话音识别,并且话音识别识别口述的表达中的任务。在实践中,口述的任务由任务名或关键词指示。多个任务名或关键词可被映射到同一任务以允许典型的口头表达的变体被用来指示同一任务。

在330,响应于识别出任务,并基于经注册的动作提供者的存储的注册以及存储的任务到提供者关联偏好,将该任务分配给特定提供者。

分配任务可包括选择335特定动作提供者来执行该任务,并向该特定动作提供者发送337执行该任务的指令。用于执行任务的信息(例如,经填充的槽)可被包括在这些指令中。经填充的槽的内容可由在特定动作提供者的注册期间指示的合约指定来决定。如本文中所描述的,多个动作提供者可针对同一任务注册,并且一个动作提供者可针对多于任务注册。

如本文中所描述的,关于槽填充、机器学习、显式覆盖等的附加动作可被执行。

由此,控制哪个动作提供者执行任务可被完成,如所描述的。

示例6—示例任务

在本文中的任一示例中,表达可包括可通过话音识别技术来识别并随后代表用户执行的一个或多个任务。由于这样的任务由数字个人助理基础结构服务支持,它们有时被称为“数字个人助理任务”。任务可具有相关联的任务名,这些任务名可被选为对用户熟悉的(例如,“播放音乐”、“呼叫妈妈”、“向jim发送电子邮件”、“打开厨房的灯”等)。如图所示,任务可包括被包括为口述命令短语的一部分的参数。

实际的底层任务(有时被称为“任务类型”或“任务类别”)可包括消息收发(例如,文本收发、即时消息收发等)、呼叫、电子邮件、笔记(例如,给自身添加笔记)、导航、日历(约会)等。如本文中所描述的,可通过注册来识别并支持任何数目的其他任务或动作(例如,播放音乐、天气、出租车服务、闹钟、提醒、送花、打开灯、打开设备等)。

呼叫可被定义为包括语音和视频呼叫两者,或者其可被认为是分开的任务。

在实践中,可存在多于一种方式来指定任务。例如,“呼叫<联系人名称>”和“我想要与<联系人名称>说话”两者都可被个人数字助理基础结构服务映射到“呼叫”。

在执行任务时,可(例如,用虚拟角色的语音)给出音频指示。例如,可说出诸如“好的,播放音乐”之类的短语。也可提供动作提供者的音频指示(例如,“好的,在<服务>上播放音乐”)。由此,用户意识到任务被识别出,并且将被执行,从而导致用户和设备之间更平滑的交互。

用于取消任务的机制(例如,“取消”按钮或说“不”)可被提供在用户界面中,使得用户可取消任务。

如本文中所描述的,来自经注册应用列表的默认应用可被选择用于特定任务类型。

示例7–示例数字个人助理基础结构服务

在本文中的任一示例中,数字个人助理基础结构服务可采取为多个动作提供者提供数字个人助理功能的服务的形式。例如,数字个人助理基础结构服务可处理语音交互,并选择哪个特定动作提供者将执行任务,即时多于一个动作提供者被注册并支持该任务。

如本文中所描述的,数字个人助理功能可包括执行与用户的对话,诸如询问完成任务所需的附加信息,通知任务是否被合适地识别,传递错误条件等。

在实践中,基础结构可被实现为平台,各种其他提供者可通过注册连接到该平台中,如本文中所描述的。

示例8–示例动作提供者

在本文中的任一示例中,动作提供者可采取各种形式,包括本地应用、远程(例如,基于web的)应用或服务等。动作提供者可向如本文中所描述的数字个人助理基础结构服务注册,并随后(例如响应于用户请求)被分配任务,其随后帮助完成这些任务。例如,安装在设备上的应用可帮助呼叫某人并由此履行呼叫任务。

这样的动作提供者可以是本机的或非本机的,并且本文中描述的系统可支持本机和非本机动作提供者两者的混合(例如,经注册的动作提供者包括非本机动作提供者和本机动作提供者)。由此,如果数字个人助理由第一方提供者提供,则第三方动作提供者可在该电子设备上参与,并利用由该基础结构提供的服务,而无须并入其自己的整个数字个人助理功能。

示例9—示例任务偏好

在本文中的任一示例中,电子设备可存储任务与偏好的动作提供者的关联。这样的偏好可由数字个人助理基础结构服务、操作系统等管理。

由此,偏好可用作任务和动作提供者之间的映射(例如,任务被映射到偏好的动作提供者)。例如,播放音乐任务和音乐服务之间的关联指示音乐服务是偏好的用于播放音乐的动作提供者。

最初可向设备提供(装载)默认的偏好动作提供者(例如,从被安装的那些动作提供者中选出的动作提供者等)。

用户可经由设置图形用户界面、通过语音命令(例如,“总是使用skype来呼叫”、“使得skype成为我的默认呼叫应用”等)来修改偏好的动作提供者指定,或者可基于表达用户的先前使用(例如,历史)来分配动作提供者。

当任务被识别出时,它可随后被分配给偏好的动作提供者,如果该提供者能够执行该任务的话,如本文中所描述的。如果偏好的动作提供者无法胜任,则可向已注册该任务的不同提供者分配该任务以供执行。通过这种方式,用户仍可完成该任务,即使偏好的提供者出于不管什么理由无法胜任。可依据偏好指定次要或其他动作提供者。例如,动作提供者可依据偏好程度来排序。

示例10–执行任务的示例指令

在本文中的任一示例中,向动作提供者发送的执行任务的指令可包括足够的信息以传达该动作提供者将执行该任务。例如,可包括任务名或标识符以及用于执行该任务的任何参数。在接收到这些指令后,动作提供者可执行该任务,或确定在执行该任务之前,进一步交互是合适的,如本文中所描述的。

示例11–示例机器学习

机器学习可在各种场景中被使用。例如,机器学习可基于任务提供者应用所提供的数据来创建选择任务提供者或偏好的任务提供者的固定规则集(例如,决策树、简单试探法等)(例如,无需来自用户的实际行为的输入,诸如用户选择了什么)。

机器学习可被用于基于用户与系统的交互来创建动态规则集。例如,如果观察到用户正使用一个特定的任务提供者来完成特定上下文中的任务(例如,涉及特定用户的),则该系统可学习这样的行为并在将来应用该行为。

机器学习还可基于相似的用户及其与系统的交互来创建动态规则集。例如,可应用众包技术。

在实践中,机器学习决策可取决于各外部因素及其组合。例如,可使用诸如wi-fi是否可用、4g/ltg是否可用、gsm是否可用、用户是否在漫游、4g/lte的数据限制是否被达到等外部因素来构建用于决策作出的上下文。此外,存在可被使用的众多内部因素,诸如联系人是否与一个任务提供者相关联而不与其他任务提供者相关联。

不受监督的机器学习可基于同一用户的相似意图、或基于其他相似用户的观察到的相似意图来推断用户的意图。

机器学习可被用于设置偏好的动作提供者。机器学习可确定特定动作提供者是某任务的偏好动作提供者,并响应于这样的确定,该任务的偏好动作提供者可被改变为该特定动作提供者。

例如,如果用户一贯并重复地为某任务显式指定特定动作提供者,则该动作提供者可被设置为该任务的偏好动作提供者。例如,连续为同一任务指定某动作提供者n次(例如5次等)可导致该动作提供者被设置为针对该任务的默认项。或者,提示可随后被呈现,通过该提示,用户可确认它将是默认项。(例如,“你是否希望<提供者>成为用于消息收发的默认项?”)。也可向用户通知设置已被作出(例如,“好的。我正将<提供者>设置为你偏好的用于消息收发的提供者。将来,你可以只说‘发送消息’来使用<提供者>”)。

由此,该系统可针对特定任务识别出对特定动作提供者的重复、一贯的使用。响应于识别出这样的使用,指示该特定动作提供者的用户偏好可(例如,在下一监听循环发生之前)(例如,在偏好中)被设置为与该特定任务相关联。将来,该任务可被识别出,并且控制哪个动作提供者执行该任务可基于该用户偏好为该特定任务选择该特定动作提供者。

另一机器学习特征可基于动作提供者纠正来实现。例如,如果任务在特定设备上开始,用户可说“不,不是<提供者a>,而是<提供者b>”。该系统可记录这样的纠正,并重复这些纠正,这类似于以上对动作提供者的显式指定。因此,响应于接收提供者纠正表达,该系统可为任务存储动作提供者偏好。

机器学习可考虑任务域(例如,重复且一贯地为域中的各任务指定特定提供者可导致该提供者被设置为该任务域的偏好设备)。

虽然各示例描述了在任务或域级学习偏好动作提供者,但也有可能在更细的粒度级别(例如,联系人或城市级别)这么做,如本文中所描述的。例如,可一贯地使用支持消息收发的特定动作提供者向某个联系人发消息,或者可一贯地使用支持出租车服务的特定动作提供者来请求某个城市中的搭乘车辆。如果特定动作提供者被确定为被偏好用于某任务或联系人,则针对该任务和联系人的偏好提供者可据此被改变。

如本文中所描述的机器学习的益处之一在于它减少了交换数和/或需要被提供以完成任务的信息量。例如,用户可简单地停止在与设备进行交互时显式地陈述动作提供者。最终任务可由此被更快完成。

示例12–示例注册信息

在本文中的任一示例中,动作提供者可提供注册信息来向数字个人助理基础结构服务注册。图4是某动作提供者的允许各动作提供者共享数字个人助理基础结构服务的示例注册记录模式400的框图。动作提供者的能力可通过指示该动作提供者所支持的一个或多个任务等来注册。该示例示出条目名/值对,但其他格式可被支持。

在实践中,动作提供者可(例如,经由应用编程接口)将注册信息传递给数字个人助理基础结构服务并随后适当地更新该信息。可定义用于指定注册信息的模式。

提供者标识符410指示动作提供者的标识符,使得可在处理期间将其与其他提供者区分开。表达的名称420可以是对其执行话音识别的名称(例如表达的名称可在被口述时被识别出)。名称420也可在生成语音(例如,“好的,在<表达的名称>上呼叫<联系人名称>。”)时被使用。名称420可被用作标识符410,和/或其他名称(例如,显示名称)也可被包括。

提供者类型430可被用于指示动作提供者是本地的还是远程的等。

支持的任务440a-n可包括动作提供者可执行的一个或多个任务。支持的任务可通过其任务标识符445来标识。

槽450可指示完成该任务所预期的一个或多个参数(例如,依据名称)。例如,呼叫通常需要电话号码、名称等。如果槽丢失,则数字个人助理基础结构服务可提示(例如,通过接收附加信息)填充槽。也可为槽指定附加信息(例如,参数类型)。也可支持槽的默认值(例如,当前gps位置)。也可支持替换例(例如,槽可被填充地址或名称)。

可支持合约机制,通过该合约机制,可使注册变得可用于请求动作提供者。在向数字个人助理基础结构服务注册时,动作提供者可注册成为该合约的特定版本下的特定任务的提供者。每个特定任务(例如,呼叫提供者合约;版本=1.0)可存在数字个人助理基础结构服务可展示的一个或多个合约。合约指定在调用提供者来完成某动作时,数字个人助理将(例如,在槽中)包括什么信息。因此,服务提供者可简单地指示合约指定,而无需并入用于获得该信息的功能。

对数字个人助理所支持的合约的查询可由提供者向数字个人助理提出,并且动作提供者所支持的合约可由该提供者选择。在针对单个任务有多个支持的合约的情况下,最新近或以其他方式偏好的一个合约可被选择。通过这种方式,随着各增强对提供者和助理作出,兼容性可被维持。

例如,呼叫合约指定可指示数字个人助理将包括联系人名值和联系人姓值,并且可选地还包括当前设备类型、完全转录的用户口述文本等。因此,在提供者向数字个人助理注册时,提供者可指定它在被数字个人助理调用以完成某任务时预期什么。

如果提供者基于个人助理所提供的内容无法解析出联系人,则它可用(例如,数字个人助理可向用户显式或说出的)恰当报错消息来让数字助理知道它无法完成。替换地,动作提供者可决定在动作提供者体验(例如,用户界面等)内直接让用户知道其无法完成其被要求的动作。

先决条件460可指示在任务可被执行之前、动作提供者可被调用之前等的一个或多个先决条件,如本文中所描述的。如果任务注册指示先决条件没有被满足,则数字个人助理基础结构可避免向动作提供者分配任务。

对于相同的动作提供者,槽450和条件460可对不同的任务不同。例如,一个任务可指定特定槽,而另一任务则不指定该特定槽。例如,联系人名称槽可按需被指定用于消息收发和呼叫两者,但消息内容槽可按需仅被指定用于消息收发动作提供者。

示例13—示例合约实现

在本文中的任一示例中,合约机制可被用作动作提供者的注册过程的一部分。例如,动作提供者可提供话音命令定义文件(例如,语音命令定义xml文件等)作为该注册过程的一部分。话音命令定义文件可包括动作提供者正在注册的合约(例如,它可消费并处理的合约)。

表1示出合约注册的示例。动作提供者可调用平台api并提供话音命令定义文件。数字个人助理基础结构服务可随后构建将合约映射到可消费这些合约的经注册动作提供者的内部数据结构。合约可与任务相关联。通过这种方式,任务最终与动作提供者相关联。

表1–用于扩展助理的xml元素

合约指定以及它提供的数据的示例在表2中被示出。预定义合约概括了在该合约被调用时,动作提供者将接收到的键:值对集合。在该示例中,动作提供者将接收到两个键:值对。一个被命名为“contractid(合约id)”,而另一个为“contactname(联系人名称)”。在实践中,合约指定可包括本文中描述的槽信息中的任一者。

表2-dial0(拨号0)的预定义合约指定

当数字个人助理基础结构服务识别出给定的表达的任务时,它交叉参考该数据结构并使用路由过程来选择哪个动作提供者应当处理该任务。例如,任务可被识别出,并且履行该任务的关联合约可被标识出。可继续进行从可消费该合约的各动作提供者之中进行选择,如本文中所描述的。所选的动作提供者被传递(例如基于该表达)将合约信息提供给动作提供者的对象结构。当动作提供者被启动时,它接收(例如,暗示任务的)合约标识符以及关联信息(例如,一个或多个槽)两者。由此,动作提供者可确定它正被调用以消费(例如,与被识别为用户正表达的任务相关联的)特定合约。

示例14–示例共享联系人信息

在本文中的任一示例中,动作提供者可经由跨提供者共享的联系人存储来与数字个人助理共享联系人信息。动作提供者可将其联系人信息的列表添加到公共存储。通过这种方式,用户可集中管理用于跨若干不同的动作提供者与联系人通信的组合的联系人信息。

在动作提供者将联系人列表提交给公共存储后,数字个人助理可包括联系人名称以用于话音识别的目的(例如,通过将这些名称指定给识别器,使得识别器可更容易地识别该列表中的表达的名称)。

示例15—示例否定槽

在本文中的任一示例中,对于其中存在太多信息的情况,可指定否定槽(例如,如果存在x,则采取动作来进行纠正)。这样的场景可对其中指定某电话类型(例如,“家庭”)无意义的通信场景有用。在遇到这样的信息之际,报错消息、确认或替换可被传递以确定如何继续(例如,“我很抱歉,<提供者>不支持家庭号码”。你仍想启动与<联系人>的视频呼叫吗?”)。

示例16—示例先决条件

在本文中的任一示例中,先决条件可采取在动作提供者可执行任务之前将满足的各种形式。先决条件由此用作对动作提供者的约束。先决条件的失败可防止动作提供者被分配任务。这样的约束可以是自施加的或由该系统施加。

例如,动作提供者可指定在接受任务之前存在wi-fi、数据、蜂窝或其他网络连接。类似地,它可指定服务器可操作(例如,该系统在工作)。对于远程服务,一个或多个这样的先决条件可被暗示(例如,即使它不存在于注册记录中,它也可被应用)。

其他先决条件包括地理先决条件(例如,该设备必须在某位置的x公里内、在某地理围栏内等)。

先决条件可以以更细的粒度级别被指定。例如,按联系人或按城市的先决条件可被执行(例如,除非针对联系人的条件被满足,否则任务无法被执行)。例如,如果针对动作提供者的识别的联系人名称(例如,动作提供者所需的用户名称)的动作提供者标识符不存在,或者如果数字证书不存在,则该任务无法用该动作提供者完成。

类似地,可为用户查阅动作提供者的存在信息,并且先决条件可以是该存在信息具有特定状态(例如,用户是活跃或可用的)。如果用户不存在于动作提供者的服务上,则该先决条件失败。

在任务的处理期间,可能确定针对动作提供者的先决条件没有被满足。响应于这样的确定,该任务的次要动作提供者可被标识出,并被用作用于执行该任务的提供者。

处理先决条件可导致总体上更快的任务执行。例如,用户不需要体验第一提供者的失败,并随后选择第二提供者来执行该任务。

由此,如果表达为“呼叫<联系人名称>”并且不存在该联系人的电话号码,则偏好的提供者(例如,电话)可故障转移到存在足够的联系人信息(例如,用户标识符)来发起该呼叫的次要提供者(例如,voip)。相反的方案也可被实现(例如,voip提供者被偏好,但用户标识符不可用或者不存在数据网络连接)。

先决条件可由此对通信动作提供者尤其有帮助。选择特定经注册通信动作提供者可包括最初考虑第一通信动作提供者,但响应于确定所述第一通信动作提供者的联系人信息的可用性丢失(例如,没有被注册、不存在于地址簿中等),选择第二通信动作提供者。

示例17–示例注册记录

图5a和5b是示例注册记录500、550的框图。

在示例500中,提供者“skype”是支持“呼叫”任务的本地应用。先决条件是存在针对联系人的用户标识符。在实践中,消息收发也可被支持,并且用于消息收发的附加槽可以是该消息本身。

在示例550中,提供者“rideshare”是支持出租车任务的远程应用。由于它是搭车共享,该应用在执行槽中所指定的任务之前预期目的地位置。

任何数目的变体是可能的。例如,对鲜花派送任务的注册可指示地址或鲜花提供者标识符是要填充的槽。

“帮我寻找搭乘车辆”任务可等同于出租车服务。要填充的槽可以是目的地(例如,“好的。你想到哪里去?”)。上车位置可默认为当前位置或被显式地指定(例如,“帮我寻找从建筑物117到建筑物8的搭乘车辆”)。

示例18–示例虚拟角色

在本文中的任一示例中,各技术可实现用户能够通过语音或文本输入从一设备参与的虚拟的基于软件的实体以帮助完成给定任务(例如,向某人发送电子邮件、呼叫其地址簿中的某人等)。

这样的虚拟角色可促使用户以自然的方式与电子设备交互,从而导致更放松的语音并由此导致更高效的用户交互。由于虚拟角色系统可帮助用户完成任务,它有时被称为“数字个人助理”。

示例19——示例通信任务

在本文中的任一示例中,任务可以是通信任务(例如,呼叫、视频聊天、消息收发、电子邮件收发等)。在实践中,这样的任务通常包括联系人名称。

由此,当诸如对口述的表达执行话音识别时,联系人名称被识别出。在这样的情况下,分配特定动作提供者来执行任务包括由该特定动作提供者经由通信任务发起与联系人的通信。

示例20–示例显式动作提供者

在本文中的任一示例中,可通过在表达或键入的文本中包括名称(例如,“在skype上呼叫妈妈”)来显式地指定选择的应用。由此,用户可选择期望完成特定任务的应用。

数字个人助理基础结构服务可由此覆盖默认应用,并将该任务分配给显式指定的动作提供者(例如,假设先决条件被满足等)。

在这样的情况下,即使第一动作提供者被指定为被偏好用于某任务,数字个人助理基础结构可接收包括对第二动作提供者的显式指示和该任务的表达,并响应于识别出对第二动作提供者的显式指示,向第二动作提供者发送执行该任务的指令,而不管偏好为何。

示例21—示例任务域

在本文中的任一示例中,任务可被分组成各任务域。图6是示出被分组成各示例任务域610、620、630、640的各支持的个体任务612、622、624、626、632、642、644的框图。

例如,与音乐有关的任务642、644可被分组成语音域640,与日历(约会)有关的任务622、624、626可被分组成日历域620等等。在某域内,动作提供者偏好和行为可变得一致。例如,如果用户希望为特定任务设置偏好的动作提供者,或者如果机器学习改变了偏好,则这样的偏好可跨同一域中的其他任务达到。

类似地,作为个体任务级的替换或补充,动作提供者可如本文中所描述的通过在域级提供支持的任务来注册。

示例22–示例通信流

图7是示出音频设备710(话筒、扬声器等)、数字个人助理基础结构服务720和动作提供者730之间的信息和指令的示例流动的流程图700。

在本文中描述的任一示例中,该过程可开始于包括任务名的初始表达742(例如,“作出呼叫”),该初始表达742被音频设备710接收到、被识别并被传递给服务720。服务720可基于特定的(例如,偏好的)动作提供者的存储的注册来确定针对该任务的参数槽丢失。响应于确定该参数丢失,并在向特定动作提供者发送执行该任务的指令之前,对用于填充参数槽的参数值的提示746可被发送回该硬件(例如,“好的。你想要呼叫谁?”)。

包括所提示的参数的表达的响应748(例如,“dan”)可被音频设备710接收到。可对表达响应执行话音识别,该话音识别识别出口述的参数值。口述的参数值可随后被服务720接收,服务720在分配任务时将该口述的参数值提交给特定动作提供者。服务720可将该任务和参数打包到指令752中,指令752被发送给动作提供者730,动作提供者730随后执行该任务(例如,发起到名为“dan”的联系人的呼叫)。

槽填充也可基于联系人粒度级别。例如,如果联系人具有两个号码(例如,家庭和工作),则附加提示可在将指令752发送给提供者730之前被生成以获得电话类型。然而,也可向动作提供者730提供指令752之后通过将该提示传递回服务720来实现这样的功能。

在实践中,初始口述表达742可包含参数值。如果如此,则将任务分配给特定动作提供者可包括将参数发送给该动作提供者(例如,无需执行提示或作为执行提示的补充)。

如本文中所描述的,各种各样的场景是可能的。通过本文中描述的技术,动作提供者730可不再需要必须包括用于与音频设备进行交互、提供确认等的功能。

如所描述的,动作提供者730甚至在指令752被发送之后,仍可(例如,通过进一步与服务720通信,这可生成提示并接收回答)请求进一步信息。

示例23–示例发现能力

在一些情况下,可能不存在可执行支持的任务的经注册的动作提供者。响应于确定没有支持该任务的经注册的动作提供者,可标识支持该任务的动作提供者。例如,提供者列表可被呈现给用户以供选择。提供者数据库可被查阅以寻找支持该任务的一个或多个提供者。

可安装并注册该动作提供者。随后,可向该动作提供者分配任务。

示例24–示例用户界面

图8是示出用于配置数字个人助理以使用第三方扩展来进行消息收发的示例用户界面800的屏幕截图。

在该示例中,弹出菜单810可被用于选择已经注册并且已在注册信息中指示其支持“消息收发”任务的动作提供者。所选的动作提供者(例如,动作提供者6)可以是第三方动作提供者,如本文中所描述的。

类似地,针对其他任务(例如,“呼叫”)的偏好可由用户通过其他用户界面元素(例如,820)来控制。

随后在执行该任务时被默认使用该显示的动作提供者。如本文中所描述的机器学习可更改默认应用。如果如此,则新的默认应用可在用户界面800中被示出。

随后,当诸如“向dan发消息我在我的路上”之类的口述表达被接收时,数字个人助理基础结构服务可使用经由用户界面800选择的第三方动作提供者(例如,动作提供者6)来向联系人“dan”发送消息。

在本文中的任一示例中,附加或其他用户界面特征可被提供。例如,确认屏幕可被示出以确认该动作。这样的屏幕可示出消息“我在我的路上”、联系人(例如,完整的联系人名称、来自地址簿的图形图片等)、正被使用的动作提供者以及确认该动作的机会。例如,取代直接继续进行以发送该消息,用于“发送”和“取消”的图形按钮可被示出。取代激活图形按钮,音频输入(例如,“发送”或“取消”表达)可被接受。用户界面可建议用户尝试说“发送”或“发送它”,由此向用户提供音频输入可被如此使用的暗示。

替换地,数字个人助理可简单地指示要继续进行的意图并用音频(例如,“好的,在<动作提供者6>上向danh.发送消息”)进行确认。如果动作被不适当地识别,则可提供简短的暂停,通过该简短的暂停,用户可进行取消。

示例25–示例动作提供者选择过程

如本文中所描述的,默认的(偏好的)动作提供者可在每任务的基础上被指定。更细的粒度级别允许默认的每一联系人每一动作(例如,在作出对第一联系人的呼叫时使用一个提供者,但在作出对第二联系人的呼叫时使用不同的提供者)。

由此,如果任务到提供者关联偏好指示针对任务的偏好的动作提供者,则选择特定动作提供者来执行该任务包括为该任务选择该偏好的动作提供者。

对动作提供者的显式指定可覆盖该默认项。

槽可通过进行对话来填充,如本文中所描述的。

如本文中所描述的机器学习可影响哪个动作提供者被选择。

如果动作提供者无法执行该任务(例如,先决条件被丢失),则选择可转而依靠次要或其他提供者。由此,数字个人助理基础结构服务可最初考虑一动作提供者(例如,偏好的动作提供者),但随后基于先决条件的失败而考虑并选择次要的动作提供者。

在一些情况下,如果提供者是可执行该任务的唯一的一个提供者,则可向该提供者提供任务。

示例26–示例场景:对动作提供者的显式指定

在本文中的任一示例中,可支持其中表达包括对动作提供者的显式指定的各种各样的场景。

一个示例涉及特定动作提供者上的呼叫或消息收发。如果足够的信息可用,则该任务可被分配给显式指定的动作提供者。如果该动作提供者没有被注册,则注册该提供者的提议可被呈现(例如,“你希望我将<提供者>注册成为消息收发服务吗?”)。如果肯定的回复被接收到,则注册可继续进行。

类似地,如果动作提供者没有被安装,则安装该动作提供者的提议可被呈现。

例如,表达“在<提供者>上呼叫<联系人名称>”可导致检查该联系人是否具有可接受的联系人信息供该提供者存储在该设备上或对该设备可用。一些提供者要求提供者专用标识符。如果该标识符可用,则该呼叫可继续进行。如果不是这样,则不同的动作提供者可被提议和/或数字个人助理可请求联系人信息(例如,“你知道dan的skypeid吗?”)。

如果先决条件失败(例如,支持该提供者的服务停机),则该过程可转而依靠下一动作提供者,该下一动作提供者被分配给任务。

在一些情况下,太多信息可被指定,从而指示预期信息中导致该任务失败的失配。例如,一些呼叫应用可能不接受某电话类型(例如,“家庭”)。因此“在<提供者>上呼叫<联系人名称>家庭”的表达对于该提供者无意义,因此它可能失败或转而依靠另一呼叫应用(例如,运营商的应用)并查找家庭号码。数字个人助理可呼叫家庭号码或提议呼叫该家庭号码。

如本文中所描述的,对动作提供者的显式指定可导致使得该动作提供者成为针对某任务、联系人等的默认项的机器学习。

示例27–示例场景:没有对动作提供者的显式指定

在本文中的任一示例中,可支持其中表达不包括对动作提供者的显式指定的各种各样的场景。

例如,如果任务被简单地指定,则该任务可被分配给针对该任务的偏好的动作提供者。如果不存在偏好的提供者,则查询可被放置以确定要使用哪个提供者。

如果偏好的动作提供者不可用,则任务可被分配给支持该任务的次要或备用提供者。

如果完成任务所必须的信息仅对特定动作提供者可用,则该任务可被分配给该特定动作提供者。例如,在呼叫或消息收发场景中,如果联系人信息仅对特定动作提供者可用,则该任务可被分配给特定动作提供者。

示例28–示例触发内容

在本文中的任一示例中,动作提供者可指定信息将在条件发生之际被数字个人助理基础结构服务传递给用户。例如,边界(例如,地理围栏)可被指定,使得服务在设备的当前位置落在该边界内(例如,进入某城市、登陆机场等)时传递可用性。

在注册期间,提供者可指定要呈现的条件和内容。响应于确定当前位置落在该边界内,数字个人助理基础结构服务呈现该消息。

示例29–示例话音识别

在本文中的任一示例中,可应用各种话音识别技术。虽然如一些示例所示,语音识别可在设备中执行,但也可恰当地采用外部识别器。

示例30—示例设备

这些技术可支持丰富的设备组合。例如,电话、平板、游戏控制台、可穿戴计算机、台式计算机、膝上型计算机等可被支持。

示例31—示例特征

虽然名为“cortana”的数字个人助理系统的示例有时被使用,但这些技术可被应用于各种数字助理系统中的任一者,并且该数字助理可具有各种名称中的任一者。

虽然一些示例使用微软技术,但取代所述技术,可替换其他技术。

示例32——示例特征概览

数字个人助理可执行一组支持的任务。通常,助理将选取她将与其一起工作以完成这样的任务的默认提供者/应用。但是,不同的用户可能不偏好相同的提供者/应用来完成完全相同的任务。例如,一些用户可能偏好使用skype服务来实现其voip呼叫,而其他人可偏好使用gtalk服务来完成其voip呼叫。

在本文中的任一示例中,应用可以是被安装在设备本地的应用、可从该设备远程地访问的web服务等。

数字个人助理可理解并适应于用户的偏好,并可与用户的选择的提供者/应用一起工作以完成某任务,只要所请求的应用可完成所请求的任务,并且已向该个人助理注册。这些技术可通过提供允许应用注册成为针对数字个人助理可执行的任务的提供者的平台和模式来解决问题。

第三方可扩展数字个人助理的功能,如本文中所描述的。应用可注册为数字个人助理动作提供者。

用户当提到使用各应用来完成特定任务时偏好选择。对于一些用户,whatsapp应用将是用于消息收发体验的偏好应用,而一些用户将依赖于skype来作出其视频呼叫。第三方应用开发者可向反应型代理框架(reactiveagentframework)注册以履行特定cortana动作。

示例33–示例话音和文本输入平台

虽然本文中的一些示例提到了“reactiveagentframework”,但可使用经由数字个人助理来履行用户请求的任何话音和文本输入平台。

示例34—示例功能

各种功能可被提供。例如,该技术可允许应用注册成为数字个人助理可为该用户执行的任务(例如,呼叫、文件收发、记笔记等)的提供者。

可为数字个人助理可执行的常见动作和任务定义模式。

已注册成为任务提供者的应用可经由数字个人助理来将响应提供回给用户。

在请求的任务已被接收到、该请求的任务正被操作并且结果(成功/失败)可被指示时,应用可提供响应。

应用可将各种信息包括在其对数字个人助理的响应中,包括显示文本、要大声朗读的文本、退回应用的深度链接、到网页/网站的链接、将由个人助理呈现的htmlweb内容等。

示例35–示例话音和文本输入平台

任务类别可具有cortana将使用来完成任务的默认应用。在这些示例中,这被称作任务的“系统默认应用”。

当用户卸载其已选为任务的默认/偏好应用的应用时,该任务的系统默认应用可被重置为针对该任务的新默认/偏好应用。

应用可注册多于一个cortana任务。例如,应用可支持音频呼叫和视频聊天两者等。

示例36-示例场景

cortana知道用户的应用。用户可选择针对像笔记、呼叫和消息收发之类的cortana任务要使用哪些应用。

例如,eric是whatsapp的激烈爱好者,并偏好使用whatsapp而非他电话上的运营商支持的sms体验。他可(例如,经由如所描述的图8中的用户界面)选择使用whatsapp应用作为其电话上的默认消息收发应用。虽然作为示例,该示例可使用whatsapp和skype,但在实践中,可使用任何数目的其他应用(例如,动作提供者)。

在该示例中,whatsapp应用(例如,第三方应用)利用并参与该任务提供者基础结构。

示例37—示例特征

所描述的技术可以是reactiveagentframework的可用于装载了cortana的任何设备的特征。该特征可用于与cortana的键入&话音交互两者。

可为cortana动作定义模式:动作的意图x槽定义。可根据动作展示的优先化动作列表(域x意图)以及关联槽列表可被支持。

因此,例如,为了进行消息收发,意图可以是“发送”。槽可包括联系人名、联系人姓、消息。

对于呼叫,意图可以是“呼叫”。槽可包括联系人名、联系人姓、电话号码、电话类型。

对于电子邮件,意图可以是“发送”。槽可包括接收方地址、主题、消息、优先级、抄送列表、密送列表、

对于笔记,意图可以是“创建”。槽可包括该消息。

对于导航,意图可以是“导航”。槽可包括位置地址、位置gps坐标。

对于日历(约会),意图可以是创建、审阅、更新。槽可包括标题、消息、日期时间、被邀请者、位置地址和位置gps坐标。

服务意图x槽信息可被映射到设备上动作模式。

在设备反应型代理上,通用的依赖于平台的实现可被提供用于支持的设备上动作。这是cortana任务的系统默认应用。

通用的依赖于平台的实现可被实现用于将通过用户选择来覆盖的设备上动作。这样可使得能够扩展代理的cortana任务完成动作。

由设备上反应型代理提出的任务完成动作可一直被路由到合适的用户选择的任务提供者。

cortana用户体验可查询并挑选要体现在设置/笔记本用户体验中的经注册的动作提供者。

用于应用的机制可被提供以跨这些应用正在注册的动作列表来为特定槽注册一组实体。例如,在应用注册呼叫动作时,它们可注册其联系人列表。

该流所识别的槽值可变得对任务提供者可用,即使该提供者将不需要特定槽。例如,skype可发现电话类型槽没有用。

当用户卸载其已选为任务的默认/偏好应用的应用时,该任务的系统默认应用可被重置为针对该任务的新默认/偏好应用。

可提供各应用可用于更新它们已注册的动作的槽值的机制。例如,当用户在使用skype时添加/移除联系人时,skype可能想要更新向我们注册的联系人列表。

示例38–示例特征:注册

可以支持各种注册功能。第三方应用可向反应型代理框架注册以处理cortana动作。应用可注册多于一个动作。根据设备,服务(个性化)可知道正在注册特定动作的应用的列表。反应型代理框架可发起该信息到服务的上传。

注册应用(根据唯一的appid)可任选地指定串作为名称标识符(例如,skype移动应用可将“skype”注册为该标识符)。当这个没有被提供时,当应用的名称出现在开始菜单中时,该应用的名称可被用作默认项。

示例39–示例特征:选择/更新任务提供者

cortana可查询经注册的提供者的列表以得到任务完成列表。

用户可为cortana设置中的每一动作选择默认任务提供者。

示例40–示例特征:调用

应用可在前台任务上或在后台任务中处理对任务完成动作的调用。

用户可通过将提供者的名称包括在话音表达或键入的文本中来开始使用该提供者完成任务。

例如,“在skype上呼叫妈妈”可使用skype来完成该动作。“呼叫妈妈”可使用系统默认提供者呼叫应用来完成该动作,除非用户已将skype设置为用于呼叫的默认提供者。

调用可在时间阈值(例如,5秒钟)内被确认。如果不是这样,则任务可被认为已超时。cortana可呈现“对不起。<应用名称>没有响应。让我试一下用<系统默认提供者>来完成这个”,并将尝试使用系统默认提供者来完成该任务。

如果在该系统上用户请求的应用不可用,则cortana可向用户呈现消歧用户界面,其中被注册以处理那个动作的应用列表具有“在商店中查找应用”的链接。用户可使用灵活的选择来挑选其想要用来完成该动作的应用或在商店中查找应用。

该系统可基于过去的使用来推断要使用哪个提供者来完成针对特定联系人的特定动作类型。该系统可基于用户的使用行为来学习用户的习惯和模式。用户可按需覆盖所学习的行为。

例如,如果whatsapp是用户偏好的用于消息收发的提供者,并且用户总是使用sms应用来向john发消息,则该系统可在发生了n次(例如,10次等)后,关联sms应用作为向john发消息的默认提供者。

可经由cortana笔记本(例如,在偏好设置用户界面等中)向用户示出推断出的提供者。

已注册了第三方提供者的特定cortana动作的技巧可包括建议与提供者名称有关的使用的技巧。例如,如果skype是用于呼叫动作的经注册提供者,则“尝试在skype上呼叫john”可被示出。

示例41–示例特征:发现-在商店中并在cortana内

这些技术可帮助用户从应用商店内发现应用提供者。

这些技术可帮助用户从cortana内发现并使用应用提供者。在用户安装也注册为用于cortana动作的提供者的应用时,用户可被通知。

示例42–示例计算系统

图9示出了在其中可实现若干所描述的创新的合适的计算系统或环境900的一般化示例。计算系统900并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。如在此所述的移动设备、可穿戴设备或其它设备可以采用所述的计算系统900的形式。

参考图9,计算系统900包括一个或多个处理单元910、915和存储器920、925。在图9中,该基本配置930被包括在虚线内。处理单元910、915执行计算机可执行的指令。处理单元可以是通用中央处理单元(cpu)、专用集成电路(asic)中的处理器或者任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图9示出中央处理单元910以及图形处理单元或协处理单元915。有形存储器920、925可以是可由(诸)处理单元存取的易失性存储器(例如,寄存器、高速缓存、ram)、非易失性存储器(例如,rom、eeprom、闪存等)或者两者的某一组合。存储器920、925可以适合被(诸)处理单元执行的计算机可执行指令的形式,存储实现此处描述的一个或多个发明的软件980。

计算系统可具有附加的特征。例如,计算系统900包括存储940、一个或多个输入设备950、一个或多个输出设备960以及一个或多个通信连接970。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统900的各组件互连。通常,操作系统软件(未示出)为在计算系统900中执行的其它软件提供操作环境,并协调计算系统900的各组件的活动。

有形存储940可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、cd-rom、dvd或可用于以非瞬态方式储存信息并可在计算系统900内访问的任何其他介质。存储器940可存储用于软件980的指令,所述软件980实现此处描述的一个或多个发明。

(一个或多个)输入设备950可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统900提供输入的另一设备。对于视频编码,(一个或多个)输入设备950可以是相机、视频卡、tv调谐卡或接受模拟或数字形式的视频输入的类似设备,或将视频样本读入计算系统900的cd-rom或cd-rw。(一个或多个)输出设备960可以是显示器、打印机、扬声器、cd刻录机或提供来自计算系统900的输出的另一设备。

(诸)通信连接970允许在通信介质上到另一计算实体的通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、rf或其它载体。

各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统900,计算机可读介质包括存储器920、925、存储940、和以上任意的组合。

各创新可在计算机可执行指令(诸如包括在程序模块中的在(例如最终在硬件中执行的)目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。

术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。

为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级描述,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。

示例43–示例移动设备

在本文中的任一示例中,设备可采用移动设备的形式。图10是描述一示例移动设备1000的系统示意图,该示例移动设备1000包括在1002概括示出的各种任选的硬件和软件组件。该移动设备中的任何组件1002可与任何其他组件通信,但出于容易例示的目的而未示出所有连接。该移动设备可以是各种移动计算设备(例如,蜂窝电话、智能电话、平板、手持式计算机、无人机、个人数字助理(pda)等)中的任一个,并且可允许与诸如蜂窝、卫星或其他网络的一个或多个移动通信网络1004进行无线双向通信。还支持(例如在wi-fi或其他网络上的)ip语音的场景。在此所述的通信设备可以采取所描述的移动设备1000的形式。

图示的移动设备1000可以包括用于执行任务的控制器或处理器1010(例如,信号处理器、微处理器、asic或者其他控制和处理逻辑电路),所述任务诸如信号编码、数据处理、输入/输出处理、功率控制、和/或其他功能。操作系统1012可以控制各组件1002的分配和使用,并且支持一个或多个应用程序1014。应用程序1014可包括公共移动计算应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息收发应用)、或任何其他计算应用。用于访问应用存储的功能性1013还可以用于获取和更新应用1014。

所例示的移动设备1000可包括存储器1020。存储器1020可以包括不可移动存储器1022和/或可移动存储器1024。不可移动存储器1022可以包括ram、rom、闪存、硬盘或者其他公知的存储器存储技术。可移动存储器1024可以包括闪存或订户身份模块(sim)卡,这在gsm通信系统或者其他公知的存储器存储技术中是公知的,诸如“智能卡”。存储器1020可用于存储运行操作系统1012和应用1014的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络被发送至和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据或者其他数据集。存储器1020可用于存储订户标识符和设备标识符,所述订户标识符诸如国际移动订户身份(imsi),所述设备标识符诸如国际移动设备标识符(imei)。这种标识符可以被发射至网络服务器以标识用户和设备。

移动设备1000可支持诸如触摸屏1032、话筒1034、相机1036、物理键盘1038、和/或跟踪球1040等一个或多个输入设备1030,以及诸如扬声器1052和显示器1054等一个或多个输出设备1050。其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以用于多于一个输入/输出功能。例如,触摸屏1032和显示器1054可被组合在单个输入/输出设备中。

无线调制解调器1060可以耦合至天线(未示出)并且可以支持处理器1010和外部设备之间的双向通信,如本领域已知的。调制解调器1060被一般示出,并且可以包括用于与移动通信网络1004通信的蜂窝调制解调器和/或其他基于无线电的调制解调器(例如,蓝牙1064或wi-fi1062等)。无线调制解调器1060通常被配置用于与一个或多个蜂窝网络(诸如,用于在单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(pstn)之间的数据和语音通信的gsm或cdma网络)进行通信。

移动设备1000还可以包括至少一个输入/输出端口1080、电源1082、卫星导航系统接收机1084(诸如全球导航卫星系统(gnss)(例如,全球定位系统或即gps)接收机)、加速度计1086、和/或物理连接器1090,物理连接器1090可以是usb端口、ieee1394(火线)端口和/或rs-232端口。图示的组件1002不是必须的或全包含的,因为任何组件可以被删除且其他组件可以被添加。

示例44–示例云支持环境

在图11的示例环境1100中,云1110为具有各种屏幕能力的连接的设备1130、1140、1150提供服务。所连接的设备1130代表具有计算机屏幕1135(例如,中等尺寸屏幕)的设备。例如,所连接的设备1130可以是诸如台式计算机、膝上型电脑、笔记本、上网本等个人计算机。所连接的设备1140代表具有移动设备屏幕1145(例如,小尺寸屏幕)的设备。例如,连接的设备1140可以是移动电话、智能电话、个人数字助理、平板计算机等。所连接的设备1150代表具有大屏幕1155的设备。例如,所连接的设备1150可以是电视机屏幕(例如,智能电视机)或连至电视机的另一设备(例如,机顶盒或游戏控制台)等等。相连接的设备1130、1140、1150中的一个或多个可包括触摸屏能力。触摸屏可按不同的方式接受输入。例如,电容式触摸屏在对象(例如,指尖或触笔)跨表面上流动的电流扭曲或中断时检测到触摸输入。举另一个示例,触摸屏可以使用光学传感器在来自光学传感器的波束被中断时检测到触摸输入。对于一些触摸屏所检测的输入而言,与屏幕表面的物理接触不是必要的。在示例环境1100中也可以使用没有屏幕能力的设备。例如,云1110可以为没有显示器的一个或多个计算机(例如,服务器计算机)提供服务。

服务可由云1110通过服务提供者1120提供、或通过其他在线服务提供者(未图示)而提供。例如,云服务可被定制成对应于特定相连接的设备(例如,相连接的设备1130、1140、1150)的屏幕大小、显示能力、和/或触摸屏能力。

在示例环境1100中,云1110至少部分地使用服务提供者1120来向各个连接的设备1130、1140、1150提供此处描述的技术和解决方案。例如,服务提供者1120可以为各种基于云的服务提供集中式解决方案。服务提供者1120可以管理对于各用户和/或设备(例如,对于所连接的设备1130、1140、1150和/或它们相应的用户)的服务预订。

示例45–示例实现

尽管以特定的顺序次序描述所公开方法的一些的操作以便于方便呈现,但应当理解,这一描述方式包含重排,除非以下提出的具体语言要求特定的次序。例如,顺序描述的操作可以在一些情况下并行地重排或同时执行。此外,为简洁起见,附图可能不示出所公开的方法可以结合其他方法使用的各种方式。

所公开的方法中的任一个可被实现为存储在一个或多个计算机可读介质(例如,非瞬态计算机可读介质,诸如一个或多个光学介质盘、易失性存储器组件(诸如dram或sram)或非易失性存储器组件(诸如硬驱动器))上并且在计算机(例如,任何可购买的计算机,包括智能电话或包含计算硬件的其它移动设备)上执行的计算机可执行指令。用于实现所公开的技术的计算机可执行指令中的任一个以及在所公开的实施例的实现期间创建和使用的任何数据可被存储在一个或多个计算机可读介质(例如,非瞬态计算机可读介质)上。计算机可执行指令可以是例如专用软件应用或者经由web浏览器或其他软件应用(诸如远程计算应用)访问和下载的软件应用的一部分。这种软件可以例如在单个本地计算机(例如,任何适当的商业可购买计算机)上或者使用一个或多个网络计算机在网络环境(例如,经由互联网、广域网、局域网、客户端-服务器网络(诸如云计算网络)、或者其他这样的网络)中执行。

为清楚起见,仅描述了基于软件的实现方式的特定所选方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何具体的计算机语言或程序。例如,所公开的技术可以通过以c++、java、perl、javascript、adobeflash或者任何其他适当的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。适当计算机和硬件的特定细节是公知的,并且不需要在本公开中详细提出。

而且,基于软件的实施例(包括例如用于使计算机执行所公开方法的任一种的计算机可执行指令)中的任一者可以通过适当的通信手段被上载、下载或远程地访问。这种适当的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括rf、微波和红外通信)、电子通信或者其他这样的通信手段。

所公开的方法、装置和系统不应以任何方式被限制。相反,本公开针对各种公开的实施例(单独和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或它们的组合,所公开的实施例也不要求存在任一个或多个具体优点或者解决问题。

非瞬态计算机可读介质

在此的任何计算机可读介质可以是非瞬态的(例如,存储器、磁性存储、光学存储等等)。

在计算机可读介质中存储

此处描述的存储动作中的任一个可通过存储在一个或多个计算机可读介质(例如,计算机可读存储介质或其他有形介质)中来实现。

被描述为被存储的事物中的任一个可被存储在一个或多个计算机可读介质(例如,计算机可读存储介质或其他有形介质)中。

在计算机可读介质中的方法

此处描述的各方法中的任一方法可通过一个或多个计算机可读介质(例如,计算机可读存储介质或其他有形介质)中(例如,在其上编码)的计算机可执行指令来实现。这样的指令可以使得计算系统执行该方法。此处描述的技术可用各种编程语言来实现。

在计算机可读存储设备中的方法

此处描述的方法中的任一个可由存储在一个或多个计算机可读存储设备(例如,存储器、磁性存储、光学存储等等)中的计算机可执行指令来实现。这样的指令可以使得计算机执行该方法。

其他实施例

条款1.一种控制多个经注册的动作提供者中的哪个动作提供者来执行任务的方法,所述方法包括:

接收由话筒检测到的口述的表达;

对所述口述的表达执行话音识别,所述话音识别识别所述口述的表达中的任务;以及

响应于识别出所述任务,并基于经注册的动作提供者的存储的注册以及存储的任务到提供者关联偏好,将所述任务分配给经注册的动作提供者中的特定动作提供者,其中分配所述任务包括选择所述特定动作提供者来执行所述任务,以及向所述特定动作提供者发送执行所述任务的指令。

条款2.如条款1所述的方法,进一步包括:

确定针对动作提供者的先决条件没有被满足;以及

响应于确定针对所述动作提供者的所述先决条件没有被满足,标识所述任务的次要动作提供者,并使用所述次要动作提供者作为所述特定动作提供者来执行所述任务。

条款3.如条款2所述的方法,其中:

所述先决条件指定存在网络连接。

条款4.如条款1-3中的任一项所述的方法,其中:

所述任务到提供者关联偏好指示针对所述任务的偏好的动作提供者;以及

选择所述特定动作提供者来执行所述任务包括选择针对所述任务的所述偏好的动作提供者。

条款5.如条款1-4中的任一项所述的方法,进一步包括:

接收包括对第二动作提供者的显式指示和所述任务的表达;以及

响应于标识出对所述第二动作提供者的显式指示,将执行所述任务的指令发送给所述第二动作提供者。

条款6.如条款1-5中的任一项所述的方法,进一步包括:

基于所述特定动作提供者的存储的注册,确定所述任务的参数槽丢失;以及

在向所述特定动作提供者发送指令之前,提示用于填充所述参数槽的参数值;

接收另一口述的表达;

对所述另一口述的表达执行话音识别,所述话音识别识别口述的参数值;以及

在将所述任务分配给所述特定动作提供者时,将所述口述的参数值提交给所述特定动作提供者。

条款7.如条款1-6中的任一项所述的方法,其中:

所述话音识别进一步识别所述口述的表达中的参数值;

将所述任务分配给所述特定动作提供者进一步包括将所述参数值发送给所述动作提供者。

条款8.如条款1-7中的任一项所述的方法,进一步包括:

向数字个人助理基础结构服务注册所述特定动作提供者,其中所述注册包括存储所述特定动作提供者所支持的一个或多个动作的指示。

条款9.如条款1-8中的任一项所述的方法,其中:

所述经注册的动作提供者包括非本机动作提供者和本机动作提供者。

条款10.如条款1-9中的任一项所述的方法,进一步包括:

经由机器学习,确定所述特定动作提供者是针对所述任务的偏好的动作提供者;以及

将针对所述任务的偏好的动作提供者改变为所述特定动作提供者。

条款11.如条款1-10中的任一项所述的方法,其中:

对所述口述的表达执行话音识别包括在所述表达中识别联系人的联系人名称;

所述任务包括通信任务;以及

分配所述特定动作提供者来执行所述任务包括由所述特定动作提供者经由通信任务发起与所述联系人的通信。

条款12.如条款9所述的方法,进一步包括:

经由机器学习,确定所述特定动作提供者是针对所述任务和联系人的偏好的动作提供者;以及

将针对所述任务和联系人的偏好的动作提供者改变为所述特定动作提供者。

条款13.如条款1-12中的任一项所述的方法,进一步包括:

响应于确定经注册的动作提供者都不支持所述任务,标识支持所述任务的动作提供者,安装支持所述任务的所述动作提供者,以及注册支持所述任务的所述动作提供者。

条款14.如条款1-13中的任一项所述的方法,其中:

特定经注册动作提供者的存储的注册指示在当前位置落在边界内时将呈现消息;以及

所述方法进一步包括,响应于确定所述当前位置落在所述边界内,呈现所述消息。

条款15.如条款1-14中的任一项所述的方法,进一步包括:

由所述特定动作提供者执行所述任务。

条款16.一种电子设备,包括:

处理器;

存储经注册的动作提供者的多个存储的注册的存储器,其中所述存储的注册包括特定经注册动作提供者的指示所述特定经注册动作提供者所支持的任务的存储的注册;

存储经注册的动作提供者的多个存储的偏好的存储器,其中所述存储的偏好包括将特定经注册动作提供者指示为被偏好用于特定任务的偏好;

识别引擎,所述识别引擎被配置成识别由所述设备的话筒接收到的口述的表达或由所述设备的文本输入硬件接收到的键入的命令中的任务;以及

个人数字助理基础结构服务,所述个人数字助理基础结构服务被配置成基于所述存储的注册和所述存储的偏好来控制将所述任务定向到哪个动作提供者来完成。

条款17.如条款12所述的电子设备,其中:

所述特定经注册动作提供者的存储的注册包括所述特定经注册动作提供者所支持的任务的先决条件;以及

所述数字个人助理基础结构服务被配置成评估所述先决条件并且如果所述先决条件没有被满足则选择不同的动作提供者。

条款18.如条款13所述的电子设备,其中:

所述先决条件指定存在数据连接。

条款19.如条款12-18中的任一项所述的电子设备,其中:

所述个人数字助理基础结构服务支持对针对所述任务的偏好的动作提供者的显式覆盖。

条款20.一个或多个机器可读介质,包括机器可执行指令,所述机器可执行指令使得电子设备执行一种控制多个经注册的通信动作提供者中的哪个通信动作提供者执行数字个人助理基础结构服务所支持的通信任务的方法,所述方法包括:

对表达执行话音识别,所述话音识别包括识别所述表达中的支持的通信任务以及联系人名称;以及

基于经注册的通信动作提供者的存储的注册、存储的动作到提供者关联偏好及用于发起所述联系人名称的通信任务的联系人信息的可用性,选择特定经注册通信动作提供者,并使用所选择的特定经注册通信动作提供者经由支持的通信任务发起与所述联系人名称所标识的联系人的通信;

其中选择特定经注册通信动作提供者包括最初考虑第一通信动作提供者,但响应于确定所述第一通信动作提供者的联系人信息的可用性丢失,选择第二通信动作提供者。

替换方案

来自任何示例的技术可以与在任何一个或多个其他示例中所描述的技术相组合。鉴于可应用所公开的本技术的原理的许多可能的实施例,应当认识到,所示实施例仅是所公开的技术的示例,并且不应被用作是对所公开的技术的范围的限制。相反,本公开的技术的范围由后续的权利要求来覆盖。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。

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