用于暂停和恢复虚拟助理的系统、方法以及装置与流程

文档序号:22323427发布日期:2020-09-23 02:01阅读:141来源:国知局
用于暂停和恢复虚拟助理的系统、方法以及装置与流程



背景技术:

人类可以使用此处称为“自动助理”(也称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“会话式代理”等)的交互式软件应用参与人机对话。例如,人类(当他们与自动助理交互时可以被称为“用户”)可以使用口头自然语言输入(即,话语)和/或通过提供文本(例如,键入的)自然语言输入来提供命令和/或请求,在一些情况下所述口头自然语言输入可以被转换成文本并且然后被处理。一些自动助理可以响应于命令而执行多个动作,从而使自动助理响应于接收到特定口头命令而承担例程。不幸的是,一旦自动助理已经开始指导例程中涉及的动作的执行,用户可能无法停止例程。在用户试图在执行当前例程的同时使自动助理执行另一动作或例程的情况下,这可能是有问题的。结果,在自动助理可以开始另一个动作或例程之前必然将会有延迟。此外,将浪费在执行初始例程上所花费的任何处理资源和功率。



技术实现要素:

本公开总体上针对用于允许用户中断由自动助理正在执行的例程以节省否则将被浪费执行用户不再感兴趣的例程的计算资源的方法、装置和计算机可读介质(暂时性和非暂时性)。自动助理可以由一个或多个用户预先配置或者可配置,以执行包括要在自动助理的指导下执行的动作集合的例程。例如,自动助理可以响应于用户提供诸如“助理,请执行我早晨的例程”的口头命令而执行与用户的典型的早晨例程相关联的动作集合。与“早晨例程”相对应的动作集合可以包括:打开物联网(iot)设备以提供可听新闻报道、打开家里的灯、并使平板设备显示当天的时间表。为了停止该例程,可以修改通过其执行例程的体系结构以处理用于中断例程的命令。

用于允许自动助理执行例程的系统可以包括例程管理引擎和状态管理引擎,它们均与可以包括每个例程的状态信息的数据库通信。例程管理引擎可以标识由自动助理执行的例程,以便可以更新数据库以反映每个例程的状态。该系统还可以包括状态管理引擎。状态管理引擎可以处理修改由自动助理执行的例程的请求,并且可以更新数据库以指示例程是否是来自用户的请求的主题。与特定例程有关的任何应用可以被委派有在数据库中检查确定例程是否已被修改的更新的任务。

例如,用户可以向自动助理提供用于执行“早晨例程”的命令。自动助理可以使例程管理引擎写入和/或修改数据库中的一个或多个条目,以指示例程已被初始化。因为自动助理可以作为在一个或多个设备处执行的一个或多个应用或脚本进行操作,所以每个应用或脚本都可以被委派有检查数据库以确定例程是否已被修改的任务。在一些实施方式中,当例程包括第三方应用或设备时,第三方应用或设备也可以被委派有在数据库中检查对例程的变化的任务。例如,在用户已经最初提供发起命令“助理,请开始我的早晨例程”之后,用户可以提供用于停止例程的命令,诸如“助理,停止”。因为用户还没有提供关于应该停止什么的任何描述,所以自动助理可以使得执行搜索以标识要停止的候选例程。

为了标识候选例程,自动助理可以使状态管理引擎访问数据库以标识由自动助理执行的例程。自动助理可以使用场境数据来确定将被修改的候选例程。例如,自动助理可以确定提供停止命令的用户是否对应于初始化由状态管理引擎标识的例程的用户。以这种方式,自动助理可以确保被修改的例程是先前由提供停止命令的用户初始化的例程。

在一些实施方式中,场境数据可以包括由自动助理、自动助理可访问的应用、自动助理可访问的一个或多个设备和/或可以收集场境数据的任何其他应用或设备生成的数据。场境数据可以包括标识用户的数据、与命令相关联的时间、用户在其处提供命令的位置、用户向其提供命令的设备、用户的时间表、与提供命令的用户相关联的其它用户和/或可以被用于标识用户与自动助理进行交互的场境的任何其他信息。例如,可以至少基于提供停止命令的用户的名称和初始化例程的用户的名称之间的相关性,来选择在数据库处标识并由用户先前初始化的例程作为候选例程。可替选地或另外,可以选择在数据库处标识并且先前在还接收到停止命令的设备处初始化的例程作为候选例程。

状态管理引擎可以基于所标识的候选例程生成状态管理请求。可以将状态管理请求提供给数据库,以便提供用户已请求停止候选例程的指示。在一些实施方式中,响应于数据库接收到状态管理请求,可以通过状态管理请求来修改与候选例程相关联的状态标识符,以指示候选例程已被停止。以这种方式,当自动助理和/或已委派有检查数据库的任务的任何其他应用访问数据库时,候选例程将与状态标识符相关联,该状态标识符指示例程已被停止。作为响应,自动助理和/或与候选例程相关联地操作的其他应用将终止执行与候选例程相关联的动作。

在一些实施方式中,例程可以由一个或多个设备和/或一个或多个应用执行。例如,可以在自动助理的指导下执行例程,但是可以通过各种不同的应用和/或不同的设备来执行与例程相关联的动作。包括在线预订到目的地的搭便车的动作的例程可以涉及自动助理访问或调用第三方应用,该第三方应用可以命令驾驶员驱车到用户的位置并将用户驱车送到目的地。第三方应用可以被委派有访问数据库的任务,以定期检查例程的状态。如果用户选择通过向自动助理发出停止命令来停止例程,则第三方应用可以通过访问数据库来确认停止命令。响应于确定用户已经为例程发出停止命令,第三方应用可以取消第三方应用正在执行的操作,反转(reverse)第三方应用所做的任何变化,并且/或者以其它方式执行用于停止完成例程的部分所必要的任何任务。

当自动助理以各种不同的方式指导例程的执行时,用户可以修改例程。例如,用户可以发出用于停止例程的停止命令。用户还可以发出用于暂停例程的暂停命令。这样,用户随后可以通过向自动助理发出恢复命令来恢复已暂停的例程。在一些实施方式中,用户可以发出用于反转在例程期间在自动助理的指导下已经执行的一个或多个动作的倒带(rewind)命令。例如,当例程包括在用户家里修改iot设备的设置并且用户在例程期间发出倒带命令时,可以在初始化例程之前将iot设备的设置恢复到先前的设置。这样,用户无需等待直到反转设置之前例程完成。这可以节省受影响的设备处的计算资源和/或功率,尤其是当所修改的设置对应于将增加受影响的设备处的功率的过程时。例如,如果设置包括修改家里的温度,则与如果例程被留下以完成相比,改变家里的温度涉及的任何电器都可以更快地恢复其设置,从而节省以其它方式被施加以完成例程的能源。通常,通过允许用户中断该例程,可以保护网络和计算资源,至少因为可以随时停止为促进该例程而执行的动作。

在一些实施方式中,提供一种由一个或多个处理器执行的方法,该方法包括:在自动助理界面处接收与用于自动助理应用发起包括在自动助理应用的指导下要执行的动作集合的例程的执行的请求相对应的例程命令;响应于接收到例程命令,向数据库提供第一例程写入请求,其中,第一例程写入请求被配置成使数据库处的例程状态标识符指示例程正在进行中;在自动助理界面处,接收来自用户的中断请求;响应于从用户接收到中断请求,向数据库提供第二例程写入请求,该第二例程写入请求被配置成修改例程状态标识符以指示例程至少被暂时中断;以及当响应于数据库接收到第二例程写入请求而在数据库处对例程状态标识符进行修改时:使例程的动作集合中的一个或多个动作至少被暂时中断。

在其他实施方式中,提供了一种由一个或多个处理器执行的方法,该方法包括:响应于自动助理应用接收到来自用户的输入命令,从自动助理应用接收例程写入请求,该例程写入请求标识与由自动助理应用响应于接收到输入命令发起的动作集合相对应的例程;响应于接收到例程写入请求,为该例程生成例程状态,其中该例程状态与该例程的标识符相关联并且被配置成在例程期间可修改;从自动助理应用接收状态读取请求,其中在执行例程期间并响应于自动助理应用从用户接收到例程中断请求而接收状态读取请求;响应于接收到状态读取请求,标识由自动助理应用正在执行的例程的标识符;向自动助理应用提供由自动助理应用执行的例程的标识符;从自动助理应用接收状态写入请求,该状态写入请求被配置成至少暂时中断正在执行的例程;响应于接收到状态写入请求,修改例程状态;以及响应于下一个例程状态请求而提供修改后的例程状态,其中,提供修改后的例程状态导致例程至少暂时地被中断。

在其他实施方式中,提供了一种由一个或多个处理器执行的方法,该方法包括:接收执行与在自动助理应用所采用的例程中的动作集合相关联的动作的请求,其中,该请求响应于在自动助理界面处接收到输入命令而在计算设备处被接收;响应于接收到执行动作的请求而发起动作;向自动助理应用可访问的数据库提供写入请求,其中,该写入请求被配置成向数据库提供动作正在进行的指示;使读取请求被提供给数据库,该读取请求被配置成确定例程的状态标识符,其中状态标识符被配置成在例程期间是可修改的;基于读取请求,确定例程的状态标识符响应于自动助理应用接收到中断请求而已经被修改;以及当动作正在进行时:响应于确定例程的状态标识符已被修改,至少暂时中断动作。

通过使例程至少暂时地被中断,这些和其他方法能够防止消耗至少那些为了促进例程所使用的计算和网络资源。这样,可以通过相应地减少资源使用来改善功耗效率。例如,在例程包括例如音频或视频输出的一个或多个输出的情况下,例程的中断或终止可以防止此类输出所需的不必要功率消耗。类似地,在例程包括网络通信(查询或指令到远程设备的传输)的情况下,例程的中断或终止可以防止此类通信所需的不必要的功率消耗。在每种情况下,都可以保护例程输出的计算、确定和控制所需的处理资源以及相关联的处理器功耗。如果允许例程完成,则例程的中断或终止可以进一步保护将用于保留例程所采取的动作的那些计算和网络资源。这可以包括用于处理指示例程的反转的至少一个另外的用户输入的资源,并且可以包括用于处理用于单独地反转例程执行的多个动作的多个用户输入的资源。

本文公开的技术的这些和其他实现方式可以可选地包括以下特征中的一个或多个。在一些实施方式中,向数据库提供第二例程写入请求可以包括从存储在数据库处的其他标识符中选择例程状态标识符,其他标识符对应于能够由自动助理应用执行的不同例程。在一些实施方式中,修改例程状态标识符可以包括生成例程状态标识符的指示该动作集合中的至少一个动作已经被停止的值。在一些实施方式中,动作集合包括与第三方应用相关联的第三方动作。在一些实施方式中,当第三方动作在接收到中断请求之前已经完成时:可以修改例程状态标识符以指示完成第三方动作。在一些实施方式中,一种方法可以包括向用户提供指示例程已经停止并且第三方动作已经完成的通知。在一些实施方式中,自动助理界面可以是计算设备的一部分,并且例程状态标识符可以存储在单独的计算设备处提供的数据库处。

在一些实施方式中,一种方法可以包括响应于接收到例程命令而生成场境数据;以及响应于接收到中断请求,基于场境数据标识例程状态标识符。在一些实施方式中,标识例程的标识符可以包括执行查询以从存储在数据库处的其他标识符中选择标识符,其中其他标识符可以对应于能够由自动助理应用执行的不同例程。在一些实施方式中,修改例程状态可以包括:生成例程状态的指示动作集合中的至少一个动作已经被停止的值。在一些实施方式中,动作集合可以包括与第三方应用相关联的第三方动作。在一些实施方式中,一种方法可以包括:当在接收到状态写入请求之前已经完成第三方动作时:修改例程状态以指示完成第三方动作。

在一些实施方式中,一种方法可以包括使自动助理应用向用户提供指示例程已经停止并且第三方动作已经完成的通知。在一些实施方式中,例程中断请求可以在计算设备的自动助理界面处被接收,并且例程状态可以被存储在单独的计算设备处提供的数据库处。在一些实施方式中,标识例程的标识符可以基于自动助理应用可用的场境数据来执行。在一些实施方式中,该动作可以是与第三方应用相关联的第三方动作。在一些实施方式中,一种方法可以包括:当在自动助理应用接收到中断请求之前已经完成第三方动作时,使状态标识符被修改以指示第三方动作被完成。在一些实施方式中,一种方法可以包括使自动助理应用向用户提供指示第三方动作已经完成的通知。在一些实施方式中,使读取请求被提供给数据库可以包括在执行动作期间向数据库提供多个读取请求。在一些实施方式中,一种方法可以包括:当动作已经完成并且例程的状态标识符指示例程已经被反转时,使得执行单独的动作以撤消该动作。在一些实施方式中,一种方法可以包括确定例程的状态标识符已经被修改以指示例程将继续;并且使得完成动作。

另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中所述指令被配置成使执行前述方法中的任意一个方法。一些实施方式进一步包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行任何前述方法的计算机指令。

将会理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1图示用于允许用户初始化和中断在自动助理的指导下执行的例程的系统。

图2提供图示用户可以如何中断自动助理执行的例程从而使例程的各种动作被中断的状态图。

图3图示用于管理自动助理可访问的数据库以便允许在例程的执行期间修改由自动助理执行的例程的方法。

图4图示用于控制自动助理至少暂时中断自动助理正在执行的例程的方法。

图5图示用于中断在自动助理的指导下执行动作的设备和/或应用处执行的动作的方法。

图6是示例计算机系统的框图。

具体实施方式

图1图示用于允许用户初始化和中断在自动助理104的指导下执行的例程的系统100。系统100可以包括远程设备112,诸如服务器设备102,其可以托管自动助理104。在一些实施方式中,自动助理104可以被托管在服务器设备102和/或能够托管助理应用的一个或多个计算设备处。例如,在一些实施方式中,自动助理104可以被托管在客户端设备116和/或服务器设备102处。由自动助理104执行的过程和/或功能可以由服务器设备102执行,或者分布在单独的设备上。例如,用户可以在客户端设备116的助理界面118上提供输入,诸如语音命令或文本输入。来自用户的输入可以通过诸如专用网络(例如,对等网络)或公共网络(例如,互联网)的网络114从客户端设备116发送到服务器设备102。当输入是语音命令或来自用户的其他可听输入时,可以在语音到文本引擎108处接收输入,该语音到文本引擎108可以是自动助理104的一部分或与自动助理104分离。语音到文本引擎108可以将输入转换为文本,其可以由自动助理104解析以确定自动助理104如何可以充分响应来自用户的输入。

自动助理104可以采用一种或多种机器学习算法来学习或以其他方式适应用户请求、偏好和/或用户如何以其它方式与自动助理104交互。一个或多个用户与自动助理104之间的交互可以被存储为例程数据110、用户数据106和/或场境数据122,其均可以存储在服务器设备102和/或客户端设备116处。例程数据110可以例如提供对应数据,其标识从一个或多个用户接收到的一个或多个输入以及将由自动助理104执行的一个或多个例程。一个例程可对应于要由自动助理104、单独的应用、与服务器设备102分离的设备和/或能够与自动助理104进行交互的任何其他应用和/或设备执行的动作集合。

例程可以在自动助理104的指导下执行,并且可以在例程执行期间由一个或多个用户控制。例程的状态可以存储在远程设备136处,该远程设备可以包括数据库138。数据库138可以包括例程标识符140、状态标识符142、用户数据144和/或场境数据146。最初,当用户请求初始化例程时,助理界面118可以接收到命令。可选地,客户端设备116可以生成和/或存储用户数据106和/或场境数据122,该用户数据106和/或场境数据122可以与用于初始化例程的命令相关联。自动助理104可以确认在助理界面118处接收到的命令,并为该例程生成例程数据110。在一些实施方式中,自动助理104可以从用户接收命令并且执行查询以标识与该命令相对应的例程。此后,当例程已被标识时,自动助理可以使例程管理引擎124访问数据库138并修改与该例程相关联的状态标识符142,以指示该例程是活动的。

当用户在助理界面118处初始化例程时,自动助理可以标识与该例程相关联的动作集合,并相应地授权该动作集合中的每个动作。例如,动作集合中的至少一个动作可以由托管在单独的计算设备128上的应用130执行。因此,自动助理104可以与应用130通信以使应用130开始执行该动作。自动助理104可以对应用130可选地委派任务以在执行动作期间一次或多次(例如,周期性地)访问数据库138,以确定与例程相关联的状态标识符142是否已被修改。在一些实施方式中,当存储在数据库138处的状态标识符142已经被修改时,应用130可以存储例程状态134并且更新例程状态134。如果例程状态134在动作执行期间改变,则可以根据例程状态134的变化来修改与应用130正在执行的动作相关联的任何动作数据132。例如,如果应用130已经被委派有执行诸如改变用户家里的电器的设置的动作的任务,动作数据132可以对应于应用的所改变的设置。如果用户发出命令来停止与该动作相关联的例程,则可以将动作数据132修改为恢复到电器在发起动作之前或在初始化例程之前所具有的设置。

当用户在自动助理104已经初始化例程之后尝试停止例程时,用于停止例程的命令可能未显式地标识该例程。因此,为了标识用户正在参考的例程,自动助理104可以使用用户数据106和/或场境数据122以标识将响应于来自用户的命令而停止的候选例程。例如,当用户初始化例程时,可以在客户端设备116处收集用户数据106和/或场境数据122,并将其提供给服务器设备102和/或远程设备136。结果,数据库138可以标识多个例程以及可以与多个例程中的每个例程相关联的任何用户数据144和/或场境数据146。当用户在助理界面118处提供中断命令时,自动助理104可以接收该中断命令,并使例程管理引擎124标识候选例程。

可以基于中断命令、与每个例程相关联的用户数据144、与每个例程相关联的场境数据146和/或可以与该例程相关联的任何其他数据来标识候选例程。例如,场境数据146可以标识与例程相关联的时间戳,并且因此候选例程可以是由自动助理104初始化的最新的例程。可替选地,场境数据146可以标识例程被初始化的设备和/或位置,并将该设备和/或位置与用户提供中断命令的最新设备和/或位置进行比较。因此,将被中断命令中断或以其他方式修改的候选例程可以是在用户提供中断命令的相同设备和/或相同位置处初始化的例程。例如,如果用户在蜂窝设备处初始化例程,并且其后在同一蜂窝设备处提供中断命令,则场境数据146将提供蜂窝设备与例程之间的对应关系。然后可以由例程管理引擎124标识该对应关系,该例程管理引擎124可以选择该例程作为要由中断命令修改的候选例程。

当已经标识出候选例程时,状态管理引擎126和/或自动助理104可以向数据库138提供写入请求,以便修改与候选例程相关联的状态标识符142。状态管理引擎126可以例如修改与候选例程相关联的状态标识符142以指示该例程已经被停止。结果,已经被委派有执行动作以便促进例程的任务的任何应用和/或设备都可以确认例程已经在用户的指导下被停止。在一些实施方式中,用户可以向助理界面118提供中断命令,以使例程的状态以各种不同的方式被修改。例如,用户可以提供中断命令以倒带例程,暂停例程,停止例程,将例程延迟直到已经满足某些条件和/或修改例程的任何其他方面。

在一些实施方式中,用户可以提供使例程延迟直到满足某些条件的中断命令。用户可以在中断命令中指定条件。例如,当用户离开其办公室时,用户可以提供初始命令以初始化诸如“助理,请开始我的家例程”的例程。作为响应,自动助理104可以授权对“家例程”的动作。此后,用户可以具有阻止他们在他们期望回家的时间回家的另一项承诺。为了停止由用户初始化的例程,至少直到用户到家为止,用户可以提供中断命令,诸如“助理,请将该例程延迟到我到家为止”。作为响应,例程管理引擎124可以标识用户正在参考的例程,并修改与该例程相关联的状态标识符142,以指示该例程已经被延迟到用户到家为止(例如,“status_identifier=home_routine.delay-until_location:home”)。

与例程相关联的场境数据146可以将用户的位置标识为在他们的办公室。当用户到家时,自动助理104可以更新场境数据146并修改所存储的用户的位置以指示该用户在家。状态管理引擎126可以确认用户已经到家,并且修改状态标识符142以指示例程是活动的。作为响应,已经被授权动作以便促进例程的任何应用和/或设备可以响应于状态标识符142从延迟变成活动的继续执行它们授权的动作。以此方式,用户不必在回到家时向自动助理104重复初始命令(例如,“助理,开始家例程”)以开始例程。这可以节省计算资源,因为不必重新处理语音命令音频,并且不必将动作重新授权给执行例程时所涉及的每个应用和/或设备。

图2提供状态图200,该状态图示出用户204可以如何中断自动助理208执行的例程,从而使例程的各个动作被中断。最初,用户204可以向自动助理208提供输入命令216,该自动助理208可以托管在一个或多个计算设备212上。输入命令216可以对应于可以连接到计算设备212或与计算设备212通信的自动助理界面上的自然语言输入。此外,输入命令216可以对应于对自动助理208执行包括动作集合的例程的请求。该例程可以在自动助理208处诸如由用户204或自动助理208的制造商来预先配置。响应于接收到输入命令216,自动助理208可以将写入请求222提供给单独的计算设备214。计算设备214可以托管数据库210,该数据库210可以被自动助理208,和/或可以被委派有执行动作以便促进完成例程的任务的任何其他应用和/或设备访问。例如,可以托管在计算设备220上的第三方应用218可以访问数据库210,同时执行由自动助理208指配给第三方应用218的动作。术语“第三方”可以指代与最初制造和/或配置自动助理208的实体不同的实体。

响应于接收到输入命令216,自动助理208可以初始化例程动作224。这些动作可以对应于由输入命令216标识和/或由自动助理208标识的例程。当自动助理208初始化例程动作224时,自动助理208还可以向数据库210提供写入请求222。写入请求222可以使在数据库210处提供标识已经在自动助理208处初始化的例程的条目。在一些实施方式中,写入请求222可以修改在数据库210处提供的例程的状态以指示该例程现在正在进行中。当例程包括要由第三方应用218执行的动作时,自动助理208可以向第三方应用218提供开始动作命令226。在一些实施方式中,通过提供开始动作命令226,当第三方应用218正在执行指配给其的动作时,自动助理208可以委派第三方应用218任务以检查例程的状态。例如,当第三方应用218正在执行动作时,第三方应用218可以向数据库210提供读取请求228。响应于读取请求228,第三方应用218可以标识例程的状态。在当将读取请求228提供给数据库210时的状态图200的时刻,例程的状态可以被指示为“活动的(active)”。

当第三方218正在执行动作并且自动助理208指导例程的执行时,用户204可以向自动助理208提供中断请求230。中断请求230可以是用于停止该程序、暂停例程、倒带例程、将例程延迟直到特定时间或直到满足条件为止的命令、和/或可以中断例程的任何其他命令。响应于接收到中断请求230,自动助理208可以向数据库210提供写入请求232。写入请求232可以使存储在数据库210中的例程的状态从“活动”变为“已停止(stopped)”或对应于中断请求230的任何其他状态标识符。此外,响应于接收到中断请求230,自动助理208可以中断例程动作234,以便自动助理208和/或已被委派有执行动作的任务的任何其他应用或设备停止进一步执行动作。

因为第三方应用218已被委派有在数据库210中检查例程状态的变化的任务,所以第三方应用218可以在执行动作期间向数据库210提供读取请求236。结果,将通知第三方应用218例程的状态已从活动状态变成不同的状态,诸如“已停止”。响应于确定例程的状态已经改变,第三方应用218可以中断其动作238,直到自动助理208接收到进一步的指令,并且/或者例程的状态在数据库210处已经改变。可选地,自动助理208可以向用户提供通知240,其指示例程的状态已改变,并且因此,根据中断请求230已经中断为了促进例程而执行的动作。例如,如果用户204提供停止该例程的请求,则通知240可以确认该例程的状态已改变为“已停止”。

图3图示用于管理自动助理可访问的数据库以便允许在例程的执行期间修改由自动助理执行的例程的方法300。方法300可以由能够与数据库交互和/或托管数据库的一个或多个应用和/或设备执行。方法300可以包括响应于自动助理接收到来自用户的输入命令而接收例程写入请求的操作302。例程写入请求可以标识包括要在自动助理的指导下执行的动作集合的例程。输入命令可以是被提供给计算设备的自动助理界面的自然语言输入。自动助理界面可以是例如麦克风、相机、触摸显示器、外围设备和/或可用于与设备应用通信的任何其他界面。在一些实施方式中,输入命令可以是与用于使用户准备飞行的例程相对应的口头自然语言输入。例如,用户可以提供输入命令,诸如“助理,请为我的飞行做准备”。输入命令可以对应于包括动作集合的例程,其可以包括诸如在用户的家中设置恒温器、下载播客供用户在飞行期间收听以及在线预订去机场的搭便车的动作。恒温器可以由自动助理控制,播客的下载可以通过第三方应用执行,搭便车的在线预订也可以通过第三方应用执行。因此,为了执行例程,自动助理将与其他应用和设备进行交互。另外,自动助理可以为例程所涉及的每个应用和设备委派任务,以在数据库中检查对例程的状态的更新。

方法300还可以包括响应于接收到例程写入请求而为例程生成例程状态的操作304。例程状态可以与该例程的标识符相关联,并且可以被配置成在例程期间可修改。例如,例程标识符可以是“飞行例程”,至少基于用户经由对自动助理界面的输入命令初始化的例程的名称。在一些实施方式中,例程标识符可以与例程状态相关联地存储在数据库中,该例程状态可以标识例程的状态和/或与该例程相对应的动作集合中的一个或多个动作。例如,当例程最初由用户初始化时,例程状态可以是“活动的”或“进行中(inprogress)”。

方法300进一步包括从自动助理和/或状态管理引擎接收状态读取请求的操作306。可以在执行例程期间接收状态读取请求,并且可以响应于自动助理从用户接收到例程中断请求而接收状态读取请求。可以在数据库处接收状态读取请求,以便使自动助理和/或与例程相关联的任何其他应用或设备标识正在自动助理指导下进行或正在执行的例程。例行中断请求可以对应于在自动助理界面处接收到的口头自然语言输入。例行中断请求可以例如是“助理,停止准备我的飞行”。为了标识用户正在参考的例程,自动助理可以使状态读取请求被提供给数据库。在一些实施方式中,状态读取请求可以由状态管理引擎生成,该状态管理引擎可以被自动助理和/或可以与例程相关联的任何其他应用或设备访问。例如,自动助理可以将例行中断请求从语音转换为文本,并将与文本相对应的命令提供给状态管理引擎。作为响应,状态管理引擎可以向数据库提供请求以标识正在进行的例程。

方法300还可以包括响应于接收到状态例程请求标识在自动助理的指导下正在执行的例程的标识符的操作306。例如,状态管理引擎可以生成状态例程请求,以标识与术语“飞行”相关联的例程。如果飞行例程是与术语“飞行”相关的唯一例程,则状态管理引擎将能够在数据库中快速标识飞行例程。但是,如果存在多个与术语“飞行”相关联的例程,则状态管理引擎可以使用场境数据过滤该例程。这样,状态管理引擎可以根据未决的例程与场境数据的相似性对未决的例程进行排序,并标识出与用户打算修改或停止的例程最接近匹配的例程。

方法300可以进一步包括将由自动助理执行的例程的标识符提供给自动助理的操作308。标识符可以包括一个或多个标识符,该标识符允许自动助理确定例程的名称、例程的状态和/或可以与由自动助理执行的例程相关联的任何其他信息。提供标识符可以包括允许在数据库处访问标识符。

方法300还可以包括从自动助理和/或状态管理引擎接收被配置成使在自动助理的指导下执行的例程被至少暂时中断的状态写入请求的操作310。例如,状态写入请求可以包括用于修改例程的状态的指令。如果用户已经提供用于停止该例程的例程中断请求,则状态写入请求可以配置成修改例程的状态以指示该例程已停止或已被指示停止。

方法300可以进一步包括响应于接收到状态写入请求而修改例程的状态的操作312。例程的状态可以从“活动的”修改为“已停止”。以这种方式,已被委派有访问数据库以确定例程的状态的任务的任何应用或设备都将能够确认例程已停止或已被指示停止。这样可以节省计算资源,否则如果用户在例程进行的同时无法停止该例程将浪费该计算资源。

方法300还可以包括响应于下一个例程状态请求而提供修改后的例程状态的操作314。例程状态请求可以由自动助理、应用、设备和/或可以与该例程相关联的任何其他设备或应用提供。例如,例程状态请求可以由第三方应用提供,该第三方应用已被委派有用户在线预订从他们家到机场的搭便车的任务。当第三方应用接收或标识修改后的例程状态时,第三方应用可以停止他们正在执行的活动以促进该例程。例如,如果第三方应用正试图与驾驶员联系,则第三方应用可以停止向与驾驶员相关联的远程设备提供查询。可替选地,如果例程状态请求由可以修改用户家的温度的iot设备提供,则iot设备可以响应于确认修改后的例程状态而恢复到先前的温度。

图4图示用于控制自动助理至少暂时中断自动助理正在执行的例程的方法400。方法400可以由能够与自动助理交互或提供自动助理的一个或多个应用或计算设备执行。方法400可以包括在自动助理界面处接收与对自动助理应用发起例程的执行的请求相对应的例程命令的操作402。该例程可以在自动助理的指导下执行,并且包括要由自动助理、一个或多个应用和/或一个或多个计算设备执行的动作集合。自动助理界面可以是连接到用户正在操作的计算设备的设备和/或应用。例如,自动助理界面可以包括麦克风、触摸显示器、外围设备、相机和/或用户可以通过其控制应用或设备的任何其他装置。在一些实施方式中,在自动助理界面处接收到的例行命令可以是“助理,请为聚会做准备”。前述例行命令可以对应于动作集合,其包括修改家中的照明设置、播放聚会播放列表以及设置要上演电影的提醒。动作集合可以包括使一个或多个应用和/或设备执行该动作集合中的动作。

方法400可以进一步包括响应于接收到例程命令向数据库提供第一例程写入请求的操作404。可以由自动助理和/或与自动助理相关联的例程管理引擎来提供第一例程写入请求。可以将第一例程写入请求提供给数据库,以便为用户请求的在自动助理的指导下执行的例程提供记录或标识符。例如,当用户请求自动助理执行“聚会例程”时,第一例程写入请求可以被配置成使在数据库处创建标识“聚会例程”的条目。在一些实施方式中,响应于数据库接收到第一写入请求,还可以在数据库处创建例程状态或情形。例程状态可以是例如“进行中”、“活动的”和/或可以被用于描述例程状态的任何其他标识符。

方法400还可以包括在自动助理界面处接收来自用户的中断请求的操作406。中断请求可以对应于提供给自动助理界面的口头自然语言输入。例如,中断请求可以对应于口头命令,诸如“助理,返回”或“助理,倒带”。前述命令可以使自动助理反转已经执行的动作集合中的任何动作以促进例程而不是停止该例程。这样,用户不仅可以停止例程的继续,而且还可以在初始化例程之前将特定的应用和设备恢复到其操作设置。

方法400可以另外包括响应于从用户接收到中断请求而向数据库提供第二例程写入请求的操作408。第二写入请求可以被配置成修改例程状态标识符以指示例程至少暂时被中断。第二写入请求可以对应于来自用户的口头命令,并且使数据库包括标识例程的状态的条目。例如,第二写入请求可以使与例程相对应的状态标识符从“活动的”改变为“倒带(rewind)”或“还原(revert)”,或者指示该例程已经被反转的任何其他标识符。以这种方式,已经在例程期间被委派有检查例程的状态的任务的任何应用和/或设备可以确认例程的状态的变化。状态的变化可以使负责执行例程的动作的应用和/或设备反转任何已完成的动作。

方法400可以进一步包括当已经修改例程状态标识符时使例程的一个或多个动作至少暂时地被中断的操作408。可以响应于数据库接收到第二例程写入请求而修改例程状态标识符。例如,一个或多个动作可以包括改变家里的照明设置(例如,调暗灯光),因此,响应于例程状态标识符被修改,照明设置可以恢复为照明设置(例如,全开),就像他们收到执行例程的请求之前一样。可替选地,一个或多个动作可以包括设置上映电影的提醒,因此响应于例程状态标识符被修改,该提醒可以不被创建,或者如果被创建,则该提醒可以被删除。

图5图示用于中断在设备或应用处执行的动作的方法500,该设备或应用在自动助理的指导下执行该动作。方法500可以由能够在自动助理的指导下执行例程的一个或多个动作的一个或多个应用和/或设备执行。方法500可以包括接收对执行与自动助理采用的例程中的动作集合相关联的动作的请求的操作502。该请求可以由自动助理提供,该自动助理已经从用户接收要执行例程的命令。例如,自动助理可以在计算设备的自动助理界面处接收口头命令,诸如“助理,请准备晚餐”。作为响应,自动助理可以将口头命令转换为文本,标识与文本相对应的例程,并与被配置成执行动作的任何设备和/或应用通信以便促进所标识的例程。例如,接收到执行该动作的请求的设备可以与向用户的家里在线预订外卖的动作相关联。

方法500可以进一步包括响应于接收到执行动作的请求而发起动作的操作504。发起动作可以包括处理从自动助理和/或用户接收到的数据,与单独的应用和/或设备通信,和/或执行任何其他操作以便促进例程。例如,当动作对应于在线预订外卖时,发起动作可以包括访问用户的账户并提供多种食物选项供用户选择。然后可以将与食物选项相对应的数据提供给自动助理,以便自动助理可以将食物选项呈现给用户,以允许用户从食物选项中进行选择。

方法500可以可选地包括向自动助理可访问的数据库提供写入请求的操作506。写入请求可以向数据库提供动作正在进行的指示。这样,自动助理和/或与例程相关联的任何其他应用和/或设备可以访问数据库并确定所请求的动作正在进行中。例如,响应于接收到初始化例程的请求,自动助理可以向例程中涉及的每个应用和/或设备提供请求,以检查数据库以确定例程的状态或情形是否已经改变。以此方式,如果例程的状态或情形已经改变,则所涉及的每个应用和/或设备可以修改它们已经被指配的一个或多个动作,以便迅速响应对例程的状态或情形的变化。

方法500可以另外包括使读取请求被提供给数据库的操作508。读取请求可以被配置成确定例程的状态标识符。在一些实施方式中,读取请求可以由已经被委派有执行例程的动作的任务的应用和/或设备提供。另外,可以以周期性的间隔和/或响应于完成动作的一个或多个步骤来提供读取请求。如果用户已经向自动助理界面提供中断命令,则可以修改例程的状态标识符,并且因此,读取请求将导致提供诸如“已停止”或“已暂停(paused)”的状态标识符。

方法500可以另外包括基于读取请求确定例程的状态标识符响应于自动助理接收到中断请求而被修改的操作510。例如,自动助理可以接收到中断请求,诸如“助理,请停止。”响应于中断请求,自动助理可以使状态管理引擎向数据库提供写入请求,以修改例程的状态。此后,已经被指配为了促进例程而执行的动作的任何应用和/或设备可以确定例程的状态已经被修改并且可以相应地调整其动作的执行。例如,当例程的状态已被修改以指示例程已停止时,如果动作尚未完成或正在进行中,则每个应用和/或设备可以停止执行相应的动作。

方法500可以进一步包括响应于确定例程的状态标识符已被修改而至少暂时中断动作的操作512。当动作正在进行时,可以执行操作512。例如,当该动作对应于在线预订外卖并且该动作尚未完成时,负责该动作的应用和/或设备可以停止该动作的执行。具体地,如果已经访问用户的账户以确定用户的食物偏好,则已经执行一些动作。但是,因为已修改例程的状态,所以不会采取进一步措施来促进该动作和例程,并且因此可以忽略所确定的任何食物偏好。通过允许用户中断例程,可以保护网络和计算资源,至少是因为可以随时停止为了促进例程而执行的动作。如果自动助理和/或例程中涉及的任何其他应用或设备无法停止执行某些动作以促进例程,则这些动作将浪费资源,尤其是如果用户对使用动作的结果没有兴趣。

图6是示例计算机系统610的框图。该计算机系统610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备通信。这些外围设备可以包括存储子系统624,包括例如,存储器625和文件存储子系统626;接口输出设备620;用户接口输入设备622以及网络接口子系统616。输入和输出设备允许用户与计算机系统610交互。网络接口子系统616提供到外部网络的接口,并耦合到其他计算机系统中的相应接口设备。

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

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

存储子系统624存储提供本文所述的一些或全部模块的功能的编程和数据构造。例如,存储子系统624可以包括执行方法300、方法400、方法500的所选方面和/或实现客户端设备116、远程设备112、服务器设备102、计算设备128、远程设备136、计算设备206、计算设备212、计算设备220、计算设备214和/或本文讨论的任何其他设备或应用中的一个或多个的逻辑。

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

总线子系统612提供一种机制,其用于使计算机系统610的各种组件和子系统按照预期相互通信。尽管总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。

计算机系统610能够是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群、或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图6中描绘的计算机系统610的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算机系统610的许多其他配置可能具有比图6中描绘的计算机系统更多或更少的组件。

在此处描述的系统收集关于用户(或者在此经常被称为“参与者”)的个人信息或可以使用个人信息的情况下,可以向用户提供机会来控制是否程序或者特征收集用户信息(例如,关于用户的社交网络、社会行为或者活动、职业、用户的偏好、或者用户的当前地理位置的信息),或者控制是否和/或如何从可能与用户更加相关的内容服务器接收内容。另外,某些数据在存储或使用之前可以用一种或多种方式处理,使得个人可识别信息被移除。例如,可以对待用户的身份,使得无法为该用户确定任何个人可识别信息,或者可以概括获得地理位置信息的用户的地理位置(诸如城市、邮政编码或州级别),使得无法确定用户的特定地理位置。因此,用户可以控制如何收集有关用户的信息和/或已使用的信息。

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

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