使用任务帧建立多模式协同对话的制作方法

文档序号:13477211阅读:176来源:国知局
使用任务帧建立多模式协同对话的制作方法



背景技术:

能够接收为用户执行任务的请求的数字助理应用的流行性不断增长。这些应用中的很多应用正被并入个人计算机、笔记本计算机、移动设备以及其他类似类型的设备中。随着用户继续增加他们对数字助理应用的依赖,用户对数字助理应用可以做什么的期望也将继续增长。此外,可用于托管数字助理应用的各种设备也在不断增长。因此,对数字助理应用的功能的改进是实现进步的有用的领域。

已经关于这些和其他一般考虑做出了示例。此外,虽然已经讨论了相对具体的问题,但是应当理解,这些示例不应当仅限于解决在背景中确定的具体问题。



技术实现要素:

本公开总体上涉及在完成任务时利用任务帧的系统和方法。任务帧是包含表示特定任务的参数和状况信号并且捕获对任务的当前状态的组合的系统理解的数据结构。当用户请求客户端设备上的数字助理应用执行任务时,数字助理应用将请求发送到服务器。服务器处理输入以确定任务。基于输入,在可能的程度上获取并且填充针对所确定的任务的任务帧。将更新后的任务帧发送到客户端设备,其中客户端设备基于任务帧确定其需要执行的任何动作。客户端设备执行所确定的动作,并且更新参数的值以及任务的状况。将更新后的任务帧以及任何附加输入返回到服务器,其中服务器处理任务帧和任何附加输入。服务器更新任务帧参数的值和任务的状况,并且将任务帧返回到客户端设备。这个过程继续直到系统能够完成任务。通过使用任务帧实现对任务完成过程的很多改进。提供本发明内容以便以简化的形式介绍一些概念,这些概念下面在具体实施方式中进一步描述。本发明内容不是旨在标识所要求保护的主题的主要特征或基本特征,也不旨在用于限制所要求保护的主题的范围。

附图说明

参考以下附图描述非限制性和非穷尽性示例。

图1描绘了用于接收对客户端设备的输入的环境。

图2描绘了用于利用具有任务帧的数字助理应用的系统。

图3示出了利用具有任务帧的数字助理应用的系统的示例。

图4a描绘了用于结合数字助理应用来利用任务帧的方法。

图4b描绘了用于结合数字助理应用来利用任务帧的方法。

图5描绘了用于结合数字个人助理应用来利用任务帧的示例性流程图。

图6描绘了用于结合数字助理应用来利用任务帧的示例性流程图。

图7是示出可以实践本公开的示例的计算设备的示例物理部件的框图。

图8a和8b是可以实践本公开的示例的移动计算设备的简化框图。

图9是其中可以实践本公开的示例的分布式计算系统的简化框图。

图10示出了用于执行本公开的一个或多个示例的平板计算设备。

具体实施方式

在下面的具体实施方式中,参考附图,附图形成具体实施方式的一部分,并且在附图中通过说明的方式示出了具体实施例或示例。可以组合这些方面,可以利用其他方面,并且可以在不脱离本公开的精神或范围的情况下进行结构改变。因此,下面的具体实施方式不应当在限制意义上来理解,并且本公开的范围由所附权利要求及其等同物限定。

本公开总体上涉及改进智能数字助理应用背后的技术,诸如由华盛顿州的雷德蒙德的微软公司提供的cortana数字助理应用。随着数字助理的普及,其用户要求更多的信息和任务由数字助理来完成。用户类似地需要对他们的请求的更准确、更快速和无错误的结果。这样的扩展的请求和期望可能会对数字助理的功能造成潜在的压力。此外,用户正在采用越来越多的设备来访问数字助理应用,使得期望能够提供有效地设计的框架以与这些设备中的每个设备通信。因此,在本公开中提供了用于处理来自用户的、对数字助理的请求的改进的系统和方法。

除了其他之外,改进的功能是由客户端设备能够与服务器协同地确定和完成用户请求的任务导致的。协同方面通过使用任务帧来实现。如本公开中所使用的,任务帧是包含表示特定任务的参数和状况信号并且捕获对任务的当前状态的组合的系统理解的特定数据结构。任务帧内的参数可以是所需参数或可选参数。不同的任务可以具有表示针对每个不同任务的细节的预定义的任务帧。

示例架构中的任务帧的一般形式的一个示例如下:

在以上示例任务帧中,任务帧具有针对特定任务的位置或统一资源标识符(uri)以及与该任务相关联的特定动作。任务帧还可以具有任务的版本或任务帧的版本。任务帧还具有任务的状况或状态。状况的值在任务的不同阶段可以不同,并且值的类型在不同的任务之间可以不同。例如,“任务状况”的某些值包括“正在进行”、“已完成”、“已取消”和“提示确认”以及其他类似的状况。

此外,对于n个参数,任务帧具有被指示为<参数1>、<参数2>到<参数n>的一系列参数。这些参数中的每个参数具有相应的值,并且参数可能是所需参数或可选参数。所需参数是完成任务所必要的参数。例如,在任务是呼叫某人的情况下,该人的联系人信息是所需参数。可选参数是完成任务非必要的参数,但是可以用于完成任务(如果可用)。例如,与诸如餐厅的位置是否具有酒吧相关的参数可以是餐厅预约任务中的可选参数。作为另一示例,在发送电子邮件任务中,可选参数可以包括抄送行中的名称、附件或消息的优先级。

参数结构的一个示例可以如下:

在参数的这个示例形式中,角色指示参数在特定任务中扮演的角色。例如,参数可以是人或位置。值字段允许存储单个实体,并且结果字段允许存储实体列表。如本申请中所使用的,值和结果字段通常可以被称为参数的值。

参数可以包括一个或多个任务帧实体。每个实体可以表示为用于示例架构的以下示例形式:

在实体表示的以上示例中,实体的名称与实体的位置或uri一起被包括。实体的版本也可以被包括。实体的状态也被包括。状态的值在不同实体之间可以不同。例如,“实体状态”的一些值包括“已填充”、“不确定”、“请求改变”和“提示”。

任务帧在客户端与服务器之间共享。通过在客户端与服务器之间共享任务帧,一个或多个客户端设备和服务器可以在更新任务帧并且解析任务帧的参数或实体时作为合作伙伴来操作。这样的设计的一个益处是参数或实体的解析可能发生在最有用的数据所驻留的地方。例如,给定语音输入“打电话给bob”,服务器可能不是用于准确地确定“bob”是谁的最佳部件,因为用户的联系人列表可能没有驻留在服务器上。相反,在该示例中,客户端设备处于用于解析实体“bob”的最佳位置,因为用户的联系人列表驻留在客户端设备上。客户端设备和服务器也通过传递任务帧来同步其状态。通过跟踪任务帧本身内的任务的状态,可以使任务和差异的重复等最小化。

任务帧的共享使用还允许客户端设备和服务器以可重复的可扩展方式取决于特定情况而承担不同的角色。例如,用于选择特定任务的后续步骤的策略的所有权可以驻留在客户端上,或者例如在瘦客户端的情况下在服务器上。用户界面创建也可以驻留在客户端或服务上。在具有中央服务器的系统中,服务器能够在不同客户端正在使用不同模式的情况下并行地支持不同模式,而无需自己改变任务帧。此外,服务器能够在以不同模式操作的任务之间交换信息。

此外,通过为每个任务定义任务帧,任务帧能够在所有输入模态上操作。例如,可以以可扩展的方式处理每个输入模态,诸如语音、触摸、文本等,因为每个输入模态可以直接记录在任务帧中。

转到附图,图1描绘了用于向客户端设备提供输入的环境100。环境100包括用户102和客户端设备104。客户端设备104可以是任何合适的设备,诸如下面参考图7-10描述的那些设备。环境100中的用户102可以通过向设备中说话来向客户端设备104中提供输入,如图1所示。用户102还可以通过来自使用软键盘或其他类型的文本输入设备的文本输入来向客户端设备104中提供输入。用户还可以通过由例如触摸屏特征、运动检测或客户端设备上的相机识别的手势来向客户端设备104提供输入。用于向客户端设备104提供输入的很多选项对于本领域技术人员来说是已知的,并且在此被考虑。在接收到来自用户102的输入之后,执行数字助理应用的客户端设备104确定用户102已经请求了什么并且执行所请求的任务。此外,如下所述,执行所请求的任务涉及使用任务帧。另外,如下所述,执行所请求的任务也可以涉及使用其他部件,诸如基于网络的服务和部件。

环境100可以随着用户102访问诸如膝上型计算机或个人计算机的单独的客户端设备而改变。环境100也可以随着用户102改变位置而改变。例如,客户端设备104可以是诸如智能电话的移动设备。用户102可能希望在多个环境中在客户端设备104上执行语音识别功能。环境的变化可以由客户端设备104测量或确定,其然后可以由数字助理应用在执行用户102请求的任务时使用。

图2描绘了用于利用具有任务帧的数字助理应用的系统200的示例。图2描绘了客户端设备203和服务器212的更详细的视图。客户端设备203可以包括诸如客户端设备104的客户端设备。此外,客户端设备203和服务器212可以包括关于图7-10描绘和描述的一个或多个设备。客户端设备203具有输入接收模块202、输出模块204和数字辅助应用206。如本文中所使用的,“模块”包括被配置为执行本文中所描述的过程和功能的硬件、软件、或硬件和软件的组合。此外,如本文中所使用的,“应用”包括当由一个或多个处理器执行时执行本文中所描述的过程和功能的指令。在数字助理应用206内是客户端任务帧处理模块208。客户端设备203的输入接收模块202被配置为从用户收集输入。所收集的输入可以为语音形式,其中用户向客户端设备203提供话音输入。输入也可以是文本输入,其中用户将输入键入到客户端设备203中。输入也可以为由输入接收模块202识别的触摸或手势的形式。当输入接收模块202从用户接收到输入时,输入被提供给数字助理应用206。数字助理应用可以确定输入是否可以本地处理,或者输入应当被提供给服务器212。通常,从用户到数字助理应用206的初始输入将为执行任务或动作的请求的形式。在输入指示请求任务或动作的情况下,数字助理应用206经由通信链路216将输入发送到服务器212。通信链路216可以通过本领域技术人员已知的任何方式来实现,诸如无线或因特网连接。

在从客户端设备203接收到用户输入之后,服务器212处理输入以确定所请求的任务的类型以及请求的其他特征,诸如所请求的任务的参数。在示例中,在输入形式为语音的情况下,服务器212执行语音识别过程以产生到服务任务帧处理模块214的可识别输入。服务任务帧处理模块214处理输入以确定所请求的任务。所请求的任务的确定也可以通过使用预测模型210来实现。在确定所请求的任务之后,服务任务帧处理模块214获取与所确定的任务相对应的任务帧。服务任务帧处理模块214然后使用预测模型210在可能的和可识别的程度上填充获取到的任务帧中的参数的值。对于每个参数,参数的状态也可以由服务任务帧处理模块214来输入。任务本身的状况或状态也由服务任务帧处理模块214更新。在服务任务帧处理模块214将如特定任务所需的或可选的参数和其他数据字段的值输入到任务帧中之后,服务任务帧处理模块214将任务帧发送到客户端设备104,其在客户端设备104处由数字助理应用206处理。

从服务器212发送的任务帧由客户端任务帧处理模块208处理。通过处理任务帧,客户端任务帧处理模块208确定数字助理应用206需要采取哪些动作。例如,任务帧可以指示数字助理应用206需要请求对任务的确认,或者数字助理应用206需要从用户请求所需参数的值,诸如时间或地点。在示例中,任务帧数据字段将指示需要向用户输出的确切文本。如果客户端任务帧处理模块208确定需要向用户输出信息,则输出模块204输出所确定的信息。输出的格式也可以在任务帧中被标识。例如,在某些情况下,通过显示屏将信息呈现为视觉输出可能更有用。在其他情况下,通过扬声器或耳机将输出呈现为音频可能更有用。输出格式可以基于可用的输入格式和其他上下文。

在任务帧指示响应于输出而需要用户输入的情况下,输入由输入接收模块202接收并且由数字助理应用206和客户端任务帧处理模块208处理。附加输入可以由任何类型的输入模态来提供,而不管对于初始输入使用的输入模态如何。例如,如果初始输入由语音提供,则附加输入可以是触摸、手势、文本、语音或任何其他模态。通过使用任务帧,可以轻松地处理和跟踪这些不同的模态。在处理来自用户的附加输入时,客户端任务帧处理模块208基于输入来更新任务帧。例如,如果任务帧中缺少所需参数的值,并且从用户请求输入,则可以使用所接收的输入来更新参数的值。参数的值可以更容易地由客户端任务帧处理模块208填充,其中输入为文本形式或者从列表中选择选项或项目的触摸或手势。在输入是诸如文本或触摸的类型并且客户端任务帧处理模块208能够更新任务帧中的相关联的参数的值的情况下,客户端任务帧处理模块208更新参数的值。客户端任务帧处理模块208还更新参数的字段以指示输入为文本输入还是触摸输入的形式。客户端任务帧处理模块208还将任务帧的状况字段更新为适当的值,以指示已经从用户接收到输入。在处理和更新任务帧的数据字段之后,更新后的任务帧被发送到服务器212。

在输入为语音形式的情况下,客户端设备104可能不具有本地的语音识别能力。因此,在输入为语音形式的情况下,客户端任务帧处理模块208可以更新参数的输入类型。在完成任务帧的处理和更新之后,输入的语音音频与更新后的任务帧一起被发送到服务器212用于由服务器212识别和处理。

在从客户端任务帧处理模块208接收到更新后的任务帧之后,服务任务帧处理模块214处理更新后的任务帧。在还接收到语音音频的情况下,预测模型210识别该语音以向服务任务帧处理模块214提供所识别的语音的可用形式。如果任务帧状况指示任务完成,则服务器212不再进行关于这个任务的进一步的动作。如果任务状况指示任务未完成并且需要进一步的动作,则服务器212更新服务器212能够更新的需要更新的参数值。服务任务帧处理模块214类似地更新任务帧的状况和更新后的参数值的状况。服务器212然后将更新后的任务帧发送回客户端设备104,其中上述过程自身重复直到任务完成。

虽然服务器212被描绘为单个元件,但是图2所示的服务器212的功能可以由多个服务器和联网服务来实现,如本领域技术人员将理解的。作为示例,服务器212的语音识别特征可以由一个服务跨一个或多个设备来执行,并且服务器212的任务帧处理特征可以由另一服务跨一个或多个设备来执行。

图3示出了用于在用于利用具有任务帧的数字助理应用的系统中使用的服务器324的示例。服务器324可以包括如关于图2描述的服务器212。此外,并非在服务器324中描绘的所有元件都是使用任务帧完成任务所必要的。元件可以是可选的,或者某些元件的功能可以组合成其他元件。如图3所示,来自客户端的输入由服务器324接收。来自客户端的初始输入通常是对数字助理应用执行任务的请求。来自客户端的输入首先被查询处理器302接收,查询处理器302处理请求以确定由来自客户端的输入指示的特定查询。在输入还包括任务帧的情况下,诸如在其中客户端已经从用户请求附加信息并且更新先前从服务器324接收到的任务帧的场景中,任务帧预处理器304分析接收到的任务帧以初步标识更新后的参数值、任务的状况、参数的状态、以及服务器324需要采取的任何动作。任务帧预处理器还可以获取与接收到的任务帧相对应的本地存储的任务帧并且覆盖在接收到的任务帧中已经更新的字段。

基于任务帧中的数据或缺少任务帧的接收,可以使用单轮预测模型306或多轮预测模型308来分析输入并且确定可以是从输入中提取的参数值。在讨论数字助理应用的使用时,单轮可以是指其中输入不需要附加后续信息的场景。多轮场景是其中从用户预期或需要多轮输入以完成任务的场景。因此,在第一轮已经完成并且用户已经提供了已经被发送到服务器324的附加输入之后,更有可能利用多轮预测模型308。虽然基于不同的模型,但是单轮预测模型306和多轮预测模型308每个可以用于预测从客户端接收的输入的域、意图和槽(slot)。在一些示例中,可以实现单轮预测模型306和多轮预测模型308,并且所执行的分析的结果可以由合并模型310合并。适于执行这样的分析的过程在2014年12月1日提交的题为“contextuallanguageunderstandingformulti-turnlanguagetasks”的美国专利申请no.14/556,874中公开,其全部内容通过引用并入本文。

然后,语言理解模块312可以从合并模块获得结果,并且确定从客户端接收的输入的最可能的理解。基于该确定,槽承转(carryover)模块确定是否存在在多轮场景中应当从前一轮承转的任何槽(诸如参数或实体)要在当前任务帧中使用。例如,不同的任务帧可以在多轮场景中使用,并且来自一个任务帧的参数可以被承转到针对第二任务的任务帧。例如,如果在第一轮中,用户请求“获得到denver的驾驶方向”,则将确定针对“denver”的槽,并且针对获得方向的任务的任务帧将被获取和用值为“denver”的目的地参数来更新。如果在后续轮中,用户然后询问“天气如何”,则槽承转模块314能够承转“denver”的槽,使得数字助理应用能够了解用户正在请求denver的天气。在任务帧的上下文中,槽承转模块能够将参数从驾驶方向任务帧导入到针对获取天气的任务的任务帧中。帧参数也能够在除了槽承转模块314之外的机制之间被承转。例如,在其中服务器324中不存在槽承转模块314的示例中,槽承转功能可以由任务帧更新器316基于规则或其他模型来实现。在这样的示例中,任务帧更新器316在任务帧参数之间直接承转实体,而不参考任何槽。

任务帧更新器316更新在来自客户端的输入中标识的任务帧的参数,其中那些参数已经以某种程度的确定性被确定,诸如其中用户输入文本,选择了选项,或者语音被容易地识别,或简单的语音,如“是”或“否”。任务帧更新器316还更新任务帧的状况以及任务帧中的参数的状态。

如果实体或参数需要被解析以填充任务帧中的参数的值,也可以利用解析器318。例如,在解析器318中,可以存在用于地点实体的解析器、用于人实体的解析器、用于日历实体的解析器、以及用于提醒实体的解析器等。每个解析器能够通过应用预测模型和使用正在被解析的实体特有的数据库信息来缩小实体可能性以确定正确的实体。例如,地点解析器可以引用已知地点列表的数据库。解析器318的输出通常是可以针对其执行某种动作的更具体的实体或实体列表。例如,使用诸如邮政地址、纬度和经度坐标、开放时间等项目来完成的特定商店例如允许完成到商店的引导。

任务模块320基于对前述模块和模型的分析来确定所请求的任务。所请求的任务的标识可以通过使用预测模型来完成。在确定所请求的任务时,任务模块320获取与所请求的任务相关联的预定义的任务帧。任务模块320还为任务帧填充其能够填充的参数的值,如由诸如解析器318的先前模型和模块所确定的。一旦任务帧已经被获取,任务模块320还将任务帧的状况更新为适当的状况。

如果存在要对特定客户端或对特定任务执行或应用的附加策略,则策略模块322也可以被实现。例如,在任务为安排要在稍后的日期发送的电子邮件的情况下,可以存在在发送电子邮件之前的稍后的日期需要来自用户的确认而不是自动发送电子邮件的策略。策略要求也可以被包括在任务帧中。

在示例中,任务帧用作在服务器324中描绘的所有部件的主引用。任务帧为任务的状态和该任务的参数提供单个来源。通过将服务器324中的部件绑定到任务帧中的数据,通过具有针对每个特定任务的单个主引用而不是使每个部件尝试跟踪特定任务的状态或每个任务的实体和参数的状态、以及被包括在任务帧中的与特定任务相关的其他参数和信息来改进服务器324的整体性能。

虽然服务器324被描绘为单个元件,但是图3所示的服务器324的功能可以由多个服务器和联网服务来实现,如本领域技术人员将理解。作为示例,服务器324的语音识别特征可以由一个服务跨一个或多个设备来执行,并且服务器324的任务帧处理特征可以由另一服务跨一个或多个设备来执行。

图4a描绘了用于结合数字助理应用来利用任务帧的方法400。在示例中,方法400由诸如客户端设备104的客户端设备来执行。虽然该方法被示出并且被描述为按照序列执行的一系列动作,但是应当了解和理解的是,该方法不受序列的限制。例如,如本领域技术人员将理解的,一些动作可以以与本文中所描述的不同的顺序发生。此外,一些动作可以与另一动作同时发生。此外,在某些情况下,实现本文中所描述的方法可能不需要所有动作。此外,本文中所描述的动作可以是可以由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行线程等。此外,该方法的动作结果可以存储在计算机可读介质中,显示在显示设备上,等等。

如图4所示,在操作402,从用户接收输入。输入可以为任何形式,诸如文本、触摸或手势、或语音。来自用户的初始输入通常是对于数字助理执行任务的请求。后续输入可以旨在提供完成任务所需要的附加信息,或者后续输入也可以旨在发起新任务,确认当前任务,或取消当前任务。后续输入不需要与初始输入的形式相同。例如,初始输入可以是语音,并且后续输入可以是触摸或手势。在操作404,将所接收的输入发送到服务器。服务器可以是用于执行诸如语音识别等服务的一个或多个服务器。服务器还负责在从在操作402接收的输入确定适当的任务之后获取和填充任务帧。

在操作404,从服务器接收任务帧。在操作402处接收到的输入是请求发起新任务的情况下,接收到的任务帧特定于所请求的任务。在输入是正在进行的任务的多轮场景中的后续轮的情况下,任务帧可以是客户端已经接收到其先前形式的更新后的任务帧。通过比较任务帧中的状况值,可以从任务帧序列中区分新的任务帧。

在操作408处理所接收的任务帧。处理任务帧包括分析任务帧中的数据字段,包括状况值。在处理接收到的任务帧时,确定需要执行的附加动作。例如,在操作410,确定完成在任务帧中标识的任务是否需要更多的输入。

如果在操作410确定不需要附加用户输入,则在操作412完成任务。完成任务可以涉及将任务的结果呈现给用户。也可能需要采取特定的任务特定的最终化动作来完成任务。例如,在任务是将联系人添加到联系人列表的情况下,用于完成任务的动作可以包括将联系人添加到客户端设备上的联系人列表,并且向用户呈现任务已经完成的指示。作为另一示例,在任务是发起呼叫的情况下,完成任务必要的动作包括发起话音呼叫应用以根据请求发起呼叫。在示例中,完成针对任务的动作所需要的所有参数(诸如联系人信息)被包含在任务帧本身中。在完成任务所需要的任何操作之后,任务帧状况可以被更新以指示任务完成。更新后的任务帧也可以在操作420中被发送到服务器。

如果在操作410确定需要附加输入来完成任务,则针对附加信息提示用户。用于提示用户的所需参数被包括在任务帧中。在示例中,任务帧的字段明确地提供要输出给用户的确切文本。在操作418,接收响应于提示的来自用户的输入,并且基于该信息更新任务帧。此外,任务帧的状况也被更新,并且更新后的参数的状态也可以被更新。在更新任务帧之后,在操作420将更新后的任务帧发送到服务器。方法400的部分将继续,直到任务完成。例如,当在操作420中将更新后的任务帧发送到服务器之后,服务器可以处理和更新任务帧并且返回另一更新后的任务帧。在操作406接收该更新后的任务帧,并且方法400的其余部分从操作406继续,直到任务完成。

图4b描绘了用于结合数字助理应用来利用任务帧的方法450。在示例中,方法400由具有诸如服务器212、服务器324或多个服务器的组合的至少一个服务器的服务来执行。在操作452,从客户端设备接收输入。输入可以包括任何类型的输入,诸如语音、触摸或文本。通常,初始输入旨在请求数字助理应用执行任务。在操作454,处理输入以确定所请求的任务。这个确定可以通过使用诸如预测语言理解模型的预测模型来实现。在确定适当的任务时,在操作456获取与所确定的任务相对应的任务帧。然后在操作458进一步处理输入,以填充获取到的任务帧的参数的值。例如,可以使用预测模型和语言理解模型来分析输入,以确定在接收到的输入中的槽或实体。然后将所确定的槽或实体映射到获取到的任务帧中的参数的适当值。如果存在特定于任务或客户端的任何附加策略,则在操作460可以应用附加策略。

一旦已经从接收到的输入尽可能地填充了任务帧,则在操作462将任务帧发送到客户端。客户端处理任务帧,并且如果需要,从用户请求附加输入并且更新任务帧。在操作464接收更新后的任务帧和由客户端收集的任何输入。如果任务尚未完成,则重复方法450的部分。例如,再次处理在操作464中接收的输入以填充剩余的参数。也更新任务帧并且将其再次返回到客户端。这个过程继续,直到任务完成。

图5描绘了用于结合数字助理应用来利用任务帧的示例性流程图500。图5所示的特定示例性流程图用于设置在特定时间呼叫联系人的提醒。如图所示,客户端接收502输入“提醒我明天早上打电话给john”作为口头输入。该输入然后被发送到服务504。服务504可以包括诸如服务器212和324的一个或多个服务器、以及附加部件或服务器。服务504处理输入以确定适当的任务并且获取相应的任务帧。服务504还通过通过预测模型实现的自然语言理解算法来填充可能的参数值。一旦填充了可能的参数值并且更新了状况和状态,则任务帧为任务帧506a。

任务帧506a指示任务的位置为“任务://提醒/创建/”。在任务帧506a中还提供了多个参数。任务的状况的值为“正在进行”,表示任务尚未完成。标题参数具有多个值。标题参数的值为“打电话给john”。参数的状态为“已填充”,表示参数的值已经被填充。参数的来源的值为“口头”,表示从其中得出参数的输入是口头输入。联系人参数也具有若干值。例如,基于口头输入的自然语言处理,联系人名称被确定为“john”。没有id与联系人相关联,因此id的值为空。联系人参数的状态为“已填充”,并且来源是“说出”,因为联系人名称“john”是从口头输入中得出的。时间参数也具有若干值。时间的值为“2014-07-04tmo”,表示提醒发生的时间。参数的状态是“已填充”,并且来源是“说出”,因为提醒发生的时间是从口头输入中得出的。

客户端接收任务帧506a,并且数字助理应用从任务帧506a中理解联系人尚未被有效地解析,部分地是因为联系人没有id。数字助理应用在驻留在客户端设备上的用户的联系人列表中寻找508联系人并且用“john”的联系人信息来更新任务帧506a。在更新任务帧时,客户端还可以应用关于“早上”或“明天”的适当时间的本地策略。基于本地策略或者用户设置或习惯,客户端设备可以确定“明天”或“早上”对应于上午8:00。基于该确定,客户端更新任务帧506a的时间参数。该策略也可以被认为是来源。例如,来源的值可以被更新为“tmodefault”,与用于处理“明天”作为输入的默认策略相对应。对任务帧506a的更新产生更新后的任务帧506b。

从任务帧506b可以看出,联系人和时间参数已经被更新。联系人参数的名称值已经被更新为“johnnave”,并且id值已经被更新为“yi298033”。由于联系人参数现在已经基于用户的联系人列表被确定,因此联系人参数的来源值现在为“联系人”。附加的“客户端更新”字段也在联系人参数中被示出,其指示是否需要客户端输入。布尔值为真表示需要客户端更新或输入。

在需要客户端更新的情况下,任务帧还可以包括如由“lg”或“语言生成”参数指示的要由数字助理应用执行的操作。在更新后的任务帧506b中,“lg”的值为“对提醒或取消进行提示”,其指示数字助理应用提示用户确认提醒或取消任务。

基于更新后的任务帧506b和由数字助理应用对更新后的任务帧506b的处理,客户端设备提示510用户确认提醒或取消任务。提示用户的动作可以包括向用户呈现问题“我应当设置提醒?”并且呈现诸如“是”或“否”的选项。

在图5所描绘的特定示例中,用户用“是”进行响应,其由客户端设备接收512。基于输入“是”,客户端设备更新516任务并且将更新后的任务帧发送到服务504。对任务帧的更新包括更新任务帧状况以指示当前任务已经被确认,以及在一些示例中指示从客户端的角度来看任务完成。取决于特定客户端设备和特定任务,可以在本地创建和存储任务。例如,在客户端设备是智能电话的情况下,提醒任务可以在本地完成和存储,使得提醒将发生而不管客户端是否连接到服务504。在其他示例中,提醒可以被完成并且存储在服务504处,使得无论用户在提醒时将哪个客户端设备连接到服务504,用户仍然会收到提醒。在其他示例中,任务将被完成并且存储在客户端设备和服务504两者上。在图5所描绘的示例中,该过程可以在更新516任务帧并且将其发送到其中任务帧被最终化的服务之后结束和完成。

在其他示例中,如图5所示,服务可以更新任务帧506b以形成另一更新后的任务帧506c。从任务帧506c可以看出,已经为创建提醒任务调用了子任务“完成”。这个子任务的位置在任务帧中在任务帧506c的第一行中指示,它显示为“任务://提醒/创建/完成”。该子任务是完成由用户请求的提醒的创建。因为子任务是完成提醒任务的创建,所以子任务的状况仍然为“正在进行中”。完成子任务的参数已经从父创建子任务中被承转。更新后的任务帧506c被发送到客户端设备,其中客户端设备处理任务帧506c并且完成提醒任务的创建。在完成提醒任务时,客户端设备向用户显示518完成的提醒。然后,客户端设备将任务帧506c的状况更新为“完成”,并且在一些示例中,将更新后的任务帧发送回服务504。

尽管图5所描绘的示例是对于特定的提醒任务,但是应当理解,类似的流程图和任务帧适用于不同的任务。此外,提醒任务的特定任务帧是提醒任务帧的一个示例。例如,提醒任务帧的另一任务帧可以如下:

这个提醒任务帧具有多个参数(这些参数取决于示例可以是所需参数或可选参数)并且在一些情况下还具有其他参数。例如,条件参数确定触发提醒的条件类型。条件参数“提醒条件类型”的值由以下表示,并且可以是若干不同的值:

时间的提醒条件类型表示在特定时间应当触发提醒,到达位置条件表示当客户端设备到达特定位置时应当触发提醒,离开位置类型表示当客户端设备离开特定位置时应当触发提醒,而人类型表示当与某个人联系时应当触发提醒。其他类型的“没有”和“无效”表示需要从用户请求条件类型。条件类型通常从请求创建提醒任务的初始用户输入得出。例如,用户可以口头请求将提醒设置为一定时间或某个地点。语音输入由语言理解系统分析以确定特定条件类型,并且任务帧基于该确定被更新。

取决于提醒条件类型,一些参数可能变为所需参数,而其他参数可以是可选参数。例如,在条件类型为时间的情况下,提醒任务帧中的时间参数变为所需参数,而位置参数变为可选参数。可选参数是完成任务非必要的参数。在基于时间的提醒的特定示例中,时间是所需参数,因为提醒的时间对于完成任务是必要的。然而,基于时间的提醒的位置信息对于完成任务不是必要的。

提醒任务帧中的“未解析”参数存储从用户输入确定的但是尚未被解析为特定实体的数据。例如,如果用户声明名称“john”,则“未解析的联系人名称”的值可以为“john”。一旦“john”被解析为特定联系人,则“人”或其他联系人参数被更新。

如上所述,通过将完成任务所需要的所有信息存储在任务帧中,可以由数字助理应用完成更有效和协同的任务过程。参考提醒任务示例,多个部件包括语音识别器、语言理解系统和数字助理应用、以及潜在的跨多个设备的其他部件都能够通过使所需要的信息位于由部件共享和引用的任务帧中来一起工作。

图6描绘了用于结合数字助理应用来利用任务帧的示例状态图。图6所描绘的特定示例是针对提醒任务的状态图。在该示例中,客户端设备已经接收到口头输入“提醒我明天早上8点打电话给我妈妈”。客户端设备已经将该输入发送到要处理的服务。服务已经将任务帧602返回到客户端设备。基于任务帧,客户端设备向用户显示示例用户界面604。用户界面604询问用户“关于这个提醒你?”,提供有关提醒的详细信息,并且呈现用户可以选择的选项,包括是、否、取消和进行改变。在示例中,用户还能够将输入作为语音提供给所选择的选项,或者提供附加信息。

如图所示,如果用户选择是,则可以完成任务并且可以将任务的状况改变为完成。如果用户选择取消,则取消任务并且将任务的状况更新为取消。如果用户选择否,则该选项被解释为请求改变并且更新任务状况以反映已经请求改变。如果用户响应“将它改为早上9点”,则时间参数将与任务状况和参数状态一起被更新。如果用户响应改变标题和时间的请求,则更新标题和时间参数以及任务状况和参数状态。如果用户响应“不,改变标题”,则用针对新的标题的请求来提示用户。当从用户接收到新的标题时,更新任务帧中的相应参数以及任务的状况和参数的状态。

图7是示出可以实践本公开的示例的计算设备700的物理部件(例如,硬件)的框图。下面描述的计算设备部件可以具有用于例如客户端或服务器的语音识别应用713的计算机可执行指令、和/或用于例如客户端或服务器的数字助理应用711的计算机可执行指令,计算机可执行指令可以被执行以采用本文中所公开的方法。数字助理应用711可以在诸如客户端设备104或客户端设备203的客户端上。数字助理应用711的部件也可以在诸如服务器212或服务器314的服务器上。类似地,语音识别应用713可以在诸如服务器212或服务器314的服务器上。语音识别应用713或其部件也可以在诸如客户端设备104或客户端设备203的客户端设备上。计算设备部件还可以存储一个或多个任务帧715,诸如在客户端与服务器(诸如客户端设备104或客户端设备203与服务器212或服务器314)之间共享的任务帧715。在基本配置中,计算设备700可以包括至少一个处理单元702和系统存储器704。取决于计算设备的配置和类型,系统存储器704可以包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪速存储器、或这样的存储器的任何组合。系统存储器704可以包括操作系统705和适于运行诸如关于图1-6所讨论的这样的数字助理应用的软件应用720的一个或多个程序模块706。例如,操作系统705可以适合于控制计算设备700的操作。此外,本公开的示例可以结合图形库、音频库、语音数据库、语音合成应用、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定的应用或系统。该基本配置在图7中用虚线708内的部件来示出。计算设备700可以具有附加的特征或功能。例如,计算设备700还可以包括附加数据存储设备设备(可移除和/或不可移除的),诸如例如磁盘、光盘或磁带。图7中用可移除存储设备709和不可移除存储设备710示出了这样的附加存储装置。

如上所述,系统存储器704中可以存储有多个程序模块和数据文件。当在处理单元702上执行时,程序模块706(例如,数字助理应用711或语音识别应用713)可以执行各种过程,包括但不限于本文中所描述的示例。可以根据本公开的示例来使用并且特别地用于生成屏幕内容和音频内容的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片呈现应用、绘图、消息应用、映射应用、语音到文本应用、文本到语音应用、和/或计算机辅助应用程序、智能助理应用等。

此外,本公开的示例可以在电路中实践,电路包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路,或者在包含电子元件或微处理器的单个芯片。例如,本公开的示例可以经由片上系统(soc)来实践,其中图7所示的部件中的每个部件或多个部件可以集成到单个集成电路上。这样的soc器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都被集成(或“烧录”)到芯片基板上作为单个集成电路。当经由soc进行操作时,本文中所描述的关于客户端切换协议的能力的功能可以经由在单个集成电路(芯片)上与计算设备700的其他部件集成的应用特定逻辑来操作。本公开的示例也可以使用能够执行逻辑操作(诸如例如and、or和not)的其他技术来实践,其他技术包括但不限于机械、光学、流体和量子技术。此外,本公开的示例可以在通用计算机内或者在任何其他电路或系统中实践。

计算设备700还可以具有一个或多个输入设备712,诸如键盘、鼠标、笔、声音或话音输入设备、触摸或滑动输入设备等。这样的输入设备可以结合输入接收模块202来使用。还可以包括一个或多个输出设备714,诸如显示器、扬声器、打印机等。这样的输出设备可以结合输出模块204来使用。上述设备是示例,并且可以使用其他设备。计算设备700可以包括允许与其他计算设备718的通信的一个或多个通信连接716。合适的通信连接716的示例包括但不限于rf发射机、接收机和/或收发器电路;通用串行总线(usb)、并行和/或串行端口。

本文中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器704、可移除存储设备709和不可移除存储设备710都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括ram、rom、电可擦除只读存储器(eeprom)、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或者可以用于存储信息并且可以由计算设备700访问的任何其他制品。任何这样的计算机存储介质可以是计算设备700的一部分。计算机存储介质不包括载波或者其他传播或调制的数据信号。计算机存储介质可以被计算机存储设备存储,结合到计算机存储设备中,或者结合计算机存储设备来使用。

通信介质可以由计算机可读指令、数据结构、程序模块、或者诸如载波或其他传输机制的调制数据信号中的其他数据来实施,并且包括任何信息传递介质。术语“调制数据信号”可以描述以使得能够在信号中对信息进行编码的方式来设置或改变一个或多个特性的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、射频(rf)、红外和其他无线介质的无线介质。

图8a和8b示出了移动计算设备800,例如移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等,通过其可用实践本公开的示例。在一些示例中,客户端可以是移动计算设备。参考图8a,示出了用于实现示例的移动计算设备800的一个示例。在基本配置中,移动计算设备800是具有输入元件和输出元件两者的手持式计算机。移动计算设备800通常包括显示器805以及允许用户向移动计算设备800中输入信息的一个或多个输入按钮810。移动计算设备800的显示器805还可以用作输入设备(例如,触摸屏显示器)。如果包括,则可选的侧面输入元件815允许进一步的用户输入。侧面输入元件815可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代示例中,移动计算设备800可以包含更多或更少的输入元件。例如,在一些示例中,显示器805可以不是触摸屏。在又一替代示例中,移动计算设备800是便携式电话系统,诸如蜂窝电话。移动计算设备800还可以包括可选的小键盘835。可选的小键盘835可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种示例中,输出元件包括用于示出图形用户界面(gui)的显示器805、视觉指示器820(例如,发光二极管)和/或音频换能器825(例如,扬声器)。在一些示例中,移动计算设备800包括用于向用户提供触觉反馈的振动换能器。在另一示例中,移动计算设备800包括用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口)。

图8b是示出移动计算设备的一个示例的架构的框图。也就是说,移动计算设备800可以并入系统(例如,架构)802以实现一些示例。在一个示例中,系统802被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传输客户端、游戏、文本到语音应用和媒体客户端/播放器)的“智能电话”。在一些示例中,系统802被集成为计算设备,诸如集成的个人数字助理(pda)和无线电话。

一个或多个应用程序866可以被加载到存储器862中并且在操作系统864上或与操作系统864相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息传输程序、文本到语音应用等。系统802还包括存储器862内的非易失性存储区域868。非易失性存储区域868可以用于存储在系统802断电的情况下不应当丢失的持久信息。应用程序866可以在非易失性存储区域868中使用和存储信息,诸如电子邮件或有电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统802上,并且被编程为与驻留在主机计算机上的对应同步应用进行交互以将存储在非易失性存储区域868中的信息保持为与存储在主机计算机上的对应信息同步。应当理解,其他应用可以被加载到存储器862中并且在移动计算设备800上运行,包括用于将任务帧用作数字助理应用(例如,和/或可选的数字助理应用711)的一部分的指令。

系统802具有电源870,电源870可以被实现为一个或多个电池。电源870还可以包括外部电源,诸如ac适配器或电源对接支架,其用于对电池进行补充或再充电。

系统802还可以包括执行发送和接收射频通信的功能的无线电装置872。无线电装置872经由通信运营商或服务提供商来支持系统802与“外部世界”之间的无线连接。去往和来自无线电装置872的传输在操作系统864的控制下进行。换言之,无线电装置872接收的通信可以经由操作系统864传播到应用程序866,反之亦然。

视觉指示器820可以用于提供视觉通知,和/或音频接口874可以用于经由音频换能器825产生可听见的通知。在所示示例中,视觉指示器820是发光二极管(led),并且音频换能器825是扬声器。这些设备可以直接耦合到电源870,使得当被激活时,它们在由通知机制指定的持续时间内保持打开,即使处理器860和其他部件可能关闭以节省电池电力。led可以被编程为无限期地保持打开,直到用户采取动作来指示设备的通电状况。音频接口874用于向用户提供可听见的信号并且从用户接收可听见的信号。例如,除了耦合到音频换能器825之外,音频接口874还可以耦合到麦克风以接收可听见的输入,诸如以支持电话对话或者捕获用于语音识别的语音。根据本公开的示例,麦克风还可以用作音频传感器以支持控制通知。系统802还可以包括使得板载相机830的操作能够记录静止图像、视频流等的视频接口876。

实现系统802的移动计算设备800可以具有附加的特征或功能。例如,移动计算设备800还可以包括诸如磁盘、光盘或磁带的附加数据存储设备(可移除和/或不可移除的)。图8中由非易失性存储区域868示出了这样的附加存储装置。

如上所述,由移动计算设备800生成或捕获并且经由系统802存储的数据/信息可以本地存储在移动计算设备800上,或者数据可以存储在任何数目的存储介质上,存储介质可以由设备经由无线电装置872或者经由移动计算设备800和与移动计算设备800相关联的单独计算设备(例如,诸如因特网的分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由移动计算设备800经由无线电装置872或经由分布式计算网络来访问。类似地,这样的数据/信息可以根据公知的数据/信息传输和存储装置(包括电子邮件和协同的数据/信息共享系统)容易地在计算设备之间传送以进行存储和使用。

图9示出了如上所述的用于处理从诸如计算设备904、平板计算机906或移动设备908的远程来源在计算系统处接收的数据的系统的架构的一个示例。显示在服务器设备902处的内容可以存储在不同的通信信道或其他存储类型中。例如,各种文档可以使用目录服务922、web门户924、邮箱服务926、即时消息存储装置928或社交网站930来存储。数字助理应用711可以由与服务器902通信的客户端来使用。与服务器通信的客户端还结合数字助理应用711来存储和利用任务帧715。服务器902可以通过网络915提供数据去往和来自客户端计算设备,诸如个人计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)。例如,服务器902可以向客户端提供任务帧715,并且从客户端接收回任务帧715。数字助理应用711的部件也可以驻留在服务器902上。服务器902可以包括服务器212或服务器324或其组合。作为示例,上述计算机系统可以在个人计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)中实施。计算设备的这些示例中的任何一个可以从存储装置916获得内容,以及接收可用于在图形发起系统处预处理或者在接收计算系统处后处理的图形数据。

图10示出了可以执行本文中所公开的一个或多个示例的示例性平板计算设备1000。平板计算设备1000可以包括客户端设备124或客户端设备203。此外,本文中所描述的示例和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和获取、以及各种处理功能可以通过诸如因特网或内联网的分布式计算网络彼此远程地操作。用户界面和各种类型的信息可以经由板载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元来显示。例如,用户界面和各种类型的信息可以在墙壁表面上显示和交互,在墙壁表面上投影有用户界面和各种类型的信息。可以实践本发明的示例的多个计算系统的交互包括键击输入、触摸屏输入、话音或其他音频输入、手势输入,其中相关联的计算设备配备有用于捕获和解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能等。

从前面的讨论应当理解,本公开的示例至少提供一种包括至少一个处理器和在通信上耦合到至少一个处理器的存储器的系统,存储器编码计算机可执行指令,计算机可执行指令在由至少一个处理器执行时执行方法,该方法包括在客户端处接收初始输入,其中输入请求数字助理应用执行任务;向服务发送初始输入;接收针对任务的任务帧,任务帧包括任务的状况和用于完成任务一个或多个所需参数;并且处理任务帧以确定下一动作。本公开的示例还提供了,如果处理任务帧确定需要附加输入,则提示用户进行附加输入;接收附加输入;基于所接收的附加输入更新针对一个或多个任务帧参数的一个或多个值;并且更新任务帧的状况。示例还提供了一个或多个任务帧参数,各个具有指示从其接收参数的来源的值以及指示任务帧参数的状态的值,并且对于更新后的一个或多个任务帧参数中的每个任务帧参数,更新任务帧参数的状态。示例还提供了一种包括至少一个处理器和在通信上耦合到至少一个处理器的存储器的系统,存储器编码计算机可执行指令,计算机可执行指令在由至少一个处理器执行时执行方法,该方法包括从客户端接收输入;处理输入以确定请求的任务;获取与请求的任务相对应的预定义的任务帧,其中预定义的任务帧包括任务帧的状况和用于完成请求的任务的一个或多个所需参数;处理输入以确定针对一个或多个任务帧参数的一个或多个值;使用所确定的参数值更新任务帧;并且向客户端发送任务帧。示例进一步提供了从客户端接收更新后的任务帧;从客户端接收附加输入;处理来自客户端的附加输入以确定针对更新后的任务帧的一个或多个参数的一个或多个值;更新针对更新后的任务帧的一个或多个参数的一个或多个值;并且向客户端发送回更新后的任务帧。

上面参考根据本公开的示例的方法、系统和计算机程序产品的框图和/或操作说明来描述本公开的示例。框中记载的功能/动作可以不按照任何流程图所示的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序来执行。

此外,为了保护用户的隐私,在本文中所公开的系统和方法中使用之前,可以首先匿名化用户的或来自用户的或由于用户的输入而产生的潜在地机密的数据的任何聚合。这样的匿名化可以包括去除可以将待使用的结果与个体用户联系在一起的一些或所有元数据或其他数据。所需要的匿名化的级别可以由用户选择或定制。

本申请中提供的一个或多个示例的描述和说明不旨在以任何方式限制或约束所要求保护的本公开的范围。本申请中提供的示例、示例和细节被认为足以传达所有权,并且使得其他人能够制作和使用所要求保护的本公开的最佳模式。此外,术语“示例性”和“说明性”仅用于说明示例,而不是指示一个示例必然比任何其他示例更有用或有益。所要求保护的本公开内容不应当被解释为限于本申请中提供的任何实施例、示例或细节。无论组合还是单独示出和描述,不同的特征(结构和方法两者)旨在被选择性地包括或省略以产生具有特定特征集合的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想不脱离所要求保护的本公开内容的更广范围的落入在本申请中实施的总体发明概念的更广泛方面的精神内的变化、修改和替代实施例。

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