用于电子设备的虚拟代理通信
2020-01-07

用于电子设备的虚拟代理通信

用于虚拟代理之间通信的方法和装置,其中虚拟代理与经至少一个网络连接的电子设备的用户相关联。第一用户可以指示相关联的第一虚拟代理调用和与第二用户关联的第二虚拟代理的通信会话。为了调用该通信会话,第一虚拟代理可以向第二虚拟代理发送传出通信并且该传出通信可以指示第二虚拟代理为了第一用户执行至少一个动作。与不同用户相关联的虚拟代理可以另选地在缺少用户交互的情况下彼此通信以执行协作动作。

在一些实施例中,传入通信可以包括多个请求并且接收用户的虚拟代理可以根据这些请求执行多个动作。例如,传入通信可以包括“告诉Dave会议将推迟并且当他读到该信息时让我知道。”响应于这个传入通信,接收用户(即,Dave)的虚拟代理被指示来执行两个动作。第一个动作是指示接收用户所安排的会议将推迟,第二个动作是监视接收用户的行为,以确定接收用户何时阅读了关于会议被推迟的消息。响应于确定接收用户已经访问了该消息,接收用户的虚拟代理可以向发出请求的虚拟代理发送响应消息,以履行传入通信中的第二个请求。因而,在这个例子中,第一用户的虚拟代理可以为了第一用户控制第二用户的虚拟代理的行为以执行动作(在这种情况下,是监视接收用户的行为)。

在一些实施例中,根据本发明一些实施例的代理到代理的通信可以被用来便利需要不同用户的多个虚拟代理之间协调的任务。例如,用户可能想与他的朋友Megan和Ben在对所有三个用户都方便的时间共进晚餐。不是利用向Megan和Ben当中每一个人的独立请求进行通信,用户可以如下指示用户的虚拟代理:“如果Megan和Ben在周六晚上有时间的话,请安排与他们的晚餐。”作为响应,用户的虚拟代理可以基于用户的联系人信息确定Megan和Ben的联系信息并且向Megan和Ben的虚拟代理发送传出通信,以便基于他们当中每个人的所存储的用户数据确定他们在周六晚上是否以及何时有时间吃晚饭。在传出通信中,用户的虚拟代理可以基于虚拟代理可以在发送传出通信之前访问的用户的排程信息包括一个或多个建议的时间。响应于向Megan和Ben的虚拟代理发送传出通信,用户的虚拟代理可以从Megan和Ben的虚拟代理接收指示他们的可用性(可以参加)的响应通信并且虚拟代理可以继续协商对所有用户都相互可接受的时间。在确定了可接受的时间之后,每个用户的虚拟代理可以更新对应用户的排程信息并且向用户发送晚餐已经安排好的通知。

如上面简要讨论的,电子设备102可以存储用户数据112,该数据描述特定于特定用户或电子设备的信息。例如,用户数据112可包括(但不限于)联系人信息、日历信息、用户偏好信息、行为历史信息和位置信息。在一些实施例中,用户数据112还可以包括媒体内容信息,诸如与特定用户帐户或设备关联的音乐或图片数据。在一些实施例中,至少一些用户数据112可以在电子设备102可经由至少一个网络访问的位置相对电子设备102远程存储。例如,至少一些用户数据112可以存储在电子设备102可经由网络160访问的网络存储装置150中。相对电子设备远程存储的数据常常被称为存储“在云中”的数据,并且这种数据常常可由同一用户从多个设备访问。用户数据112被存储的特定方式不是本发明实施例的限制方面,因为用户数据112可以存储在电子设备102可访问的任何合适的位置。

一旦接收到,与第二用户关联的虚拟代理就可以解释传出通信中的信息,以提醒第二用户条件的发生。如上面所描述的,被接收的通信可以包括诸如到识别第一用户的当前位置的地图应用的链接的附加信息。响应于从第一用户接收到通信,第二用户的虚拟代理可以解释该通信,以便在第二用户的电子设备上显示地图,从而示出第一用户的当前位置和/或估计的到达时间。如以上所讨论的,如果第二用户的电子设备不包括能够解释所接收的通信以便例如显示第一用户位置的地图的兼容虚拟代理,则仍然可以利用常规通信应用提醒第二用户,所述常规通信应用诸如基于文本的应用(例如,电子邮件或文本消息传输应用)。

电子设备102可以配置为从用户接收输入,以执行一个或多个功能。为了接收用户输入,电子设备102可以包括输入接口104,输入接口104包括但不限于键盘接口(例如,QWERTY键盘)、触摸屏接口和诸如麦克风的语音接口。在包括语音接口的实施例中,所接收的语音输入可以发送到自动语音识别(ASR)引擎(未示出),以识别所接收的语音输入的内容。ASR引擎可以作为电子设备102的一部分而被包括和/或ASR引擎可以与电子设备102远程定位并且可以利用任何合适的通信介质(例如,一个或多个网络)来与电子设备102通信。在一些实施例中,电子设备102可以与一个或多个本地ASR引擎以及一个或多个远程定位的ASR引擎关联,由此至少一些接收到的语音输入被这一个或多个本地ASR引擎处理,并且至少一些接收到的语音输入被这一个或多个远程定位的ASR引擎处理。这种分布式ASR系统的例子是本领域技术人员已知的。利用连接电子设备102和ASR引擎的一个或多个通信介质(例如,一个或多个网络)发送到这一个或多个远程ASR引擎的、用于识别的语音输入可以利用相同或不同的通信介质从远程定位的ASR引擎返回到电子设备102。

发明内容

如上面简要讨论的,电子设备102可以存储用户数据112,该数据描述特定于特定用户或电子设备的信息。例如,用户数据112可包括(但不限于)联系人信息、日历信息、用户偏好信息、行为历史信息和位置信息。在一些实施例中,用户数据112还可以包括媒体内容信息,诸如与特定用户帐户或设备关联的音乐或图片数据。在一些实施例中,至少一些用户数据112可以在电子设备102可经由至少一个网络访问的位置相对电子设备102远程存储。例如,至少一些用户数据112可以存储在电子设备102可经由网络160访问的网络存储装置150中。相对电子设备远程存储的数据常常被称为存储“在云中”的数据,并且这种数据常常可由同一用户从多个设备访问。用户数据112被存储的特定方式不是本发明实施例的限制方面,因为用户数据112可以存储在电子设备102可访问的任何合适的位置。

如果用于预期接收方的联系人信息是基于发送方的用户数据识别的,则虚拟代理可以至少部分地基于识别出的联系人信息产生传出通信。在一些实施例中,如果虚拟代理没有从发送方的用户数据唯一地识别出预期的接收方,则虚拟代理可以提示用户提供更多信息来解决歧义。

发明内容

用于电子设备的虚拟代理通信

用于虚拟代理之间通信的方法和装置,其中虚拟代理与经至少一个网络连接的电子设备的用户相关联。第一用户可以指示相关联的第一虚拟代理调用和与第二用户关联的第二虚拟代理的通信会话。为了调用该通信会话,第一虚拟代理可以向第二虚拟代理发送传出通信并且该传出通信可以指示第二虚拟代理为了第一用户执行至少一个动作。与不同用户相关联的虚拟代理可以另选地在缺少用户交互的情况下彼此通信以执行协作动作。

不是仅仅指示用户不可用,在一些实施例中,传出通信还可以包括附加的信息,以通知发送传入消息的用户何时不可用的用户可用于通信。例如,响应于确定用户不可用于接收传入通信,用户的虚拟代理可以与用户的用户数据(例如,排程信息)交互,以确定用户何时下次可用于通信。在咨询用户数据之后,虚拟代理可以在传出消息中包括指示重新安排通信的一个或多个时间偏好的信息。通过建议重新安排通信的时间,发送传入通信的用户可以能够选择对双方用户都方便的时间。在发送传出通信之后,过程前进到动作316,在那里两个用户的虚拟代理可以发送一个或多个进一步的通信,以便基于他们的排程信息协商双方用户都相互可接受的时间。

在一些情况下,传出通信的内容可以包括包含多于一种类型信息的请求。例如,如果用户输入是“预期John何时到达比赛?”,则发送方的虚拟代理可以理解,为了确定John到达比赛的预期到达时间,发送方的虚拟代理将需要知道John的位置、“比赛”的位置以及基于例如John的当前速度知道John在其当前位置和比赛位置之间要行进多长时间。在这个例子中,发送方的虚拟代理可以尝试通过识别用户有可能通过用户输入中的一个或多个词指什么来确定发送方的意图。例如,虚拟代理可以通过与发送方的用户数据(例如,发送方的联系人信息)交互来尝试识别预期的接收方John。如果虚拟代理不可以识别预期的接收方,则虚拟代理可以提示用户提供更多信息。虚拟代理还可以至少部分地基于发送方的用户数据尝试发现“比赛”的预期意义。例如,虚拟代理可以与发送方的排程信息交互,以确定是否存在对应于一类比赛(例如,棒球比赛、足球比赛,等等)的所安排事件。基于这种调查,虚拟代理可以确定“比赛”的标识并且比赛的对应位置也有可能由虚拟代理基于所安排事件中的信息来推断。

响应于用户对动作314中的提醒的响应,或者如果在动作312中确定委托给虚拟代理的任务类型不需要用户提醒,过程前进到动作316,在那里确定是否有至少一个其它用户应当被提醒条件的发生。如果在动作316中确定传出通信应当发送到至少一个其它用户,则过程前进到动作318,在那里通信被发送到所述至少一个其它代理。

虚拟代理可以以任何合适的方式解释所接收的通信,以确定通信的内容,并且本发明的实施例在这方面没有限制。例如,当传入消息包括文本时,虚拟代理可以确定是否有任何文本对应于指示通信中所包括的请求类型的一个或多个触发用词。触发用词可以与以上结合调用代理通信会话和确定传出通信的内容所讨论的触发用词相同或不同。通过确定传入通信是否包括特定的触发用词,虚拟代理可以确定如何继续处理传入通信中的请求。例如,如果关于位置信息的触发用词包括在传入信息中,则虚拟代理可以执行关于基于位置的请求的一个或多个动作,包括如以下所描述的提示用户对共享用户的位置做出确认。其它类型的请求包括(但不限于)安排请求、用户内容交换请求、以及包括多种类型信息(例如,位置信息和排程信息)的请求。

—些实施例针对在虚拟代理之间通信的方法,其中每个虚拟代理与用户关联,该方法包括:从第一用户接收输入;由与第一用户关联的第一虚拟代理确定是否调用和与第二用户关联的第二虚拟代理的通信会话;以及响应于确定调用该通信会话而向第二虚拟代理发送传出(outgoing)通信。

发明人认识并理解到,虽然常规的虚拟代理对于帮助用户诸如发起呼叫或搜索万维网上的内容的各种任务是有用的,但是常规虚拟代理的功能可以通过使与一个用户关联的虚拟代理和与其它用户关联的虚拟代理交互来进行改进,以执行协作动作,诸如找出另一用户的位置、安排与另一用户的会议以及在用户之间共享联系人信息或其它数据。为此,本发明的一些实施例用于通过使代理到代理的通信能够执行一个或多个动作来改进虚拟代理的功能。

在一些实施例中,与一个用户相关联的虚拟代理可以调用和与另一用户相关联的虚拟代理的通信会话,以执行一个或多个动作。虚拟代理之间的通信会话可以响应于用户输入而被调用以便在前台执行一个或多个动作,和/或虚拟代理之间的通信会话可以在没有用户输入的情况下被自动调用以便在后台无需用户输入地执行一个或多个动作。在本文的公开内容中,与调用通信会话的虚拟代理相关联的用户被称为“发送方”,与从发送方的虚拟代理接收通信的虚拟代理相关联的用户被称为“接收方”。此外,发送方的电子设备在本文中常常被称为“发送设备”,而接收方的电子设备在本文中常常被称为“接收设备”。但是,应当认识到,任何电子设备都可以发送和接收通信并且这个术语不限制任何特定设备的功能。

如从以上描述应当清楚的是,本发明的提供与访问用户数据关联的代理到代理的通信以及许可和隐私偏好的实施例允许进行常规虚拟代理实现不会预期并通常不可以实现的功能。本文所提供的例子仅仅是作为由本发明实施例提供的功能的例子讨论的,并且可以受益于至少两个虚拟代理之间协调的任何其它功能也是可能的。

如果用于预期接收方的联系人信息是基于发送方的用户数据识别的,则虚拟代理可以至少部分地基于识别出的联系人信息产生传出通信。在一些实施例中,如果虚拟代理没有从发送方的用户数据唯一地识别出预期的接收方,则虚拟代理可以提示用户提供更多信息来解决歧义。

本发明的各种方面可以单独地或者组合地或者以前面所描述的实施例中未具体讨论的各种布置使用,并且因此其应用不限于前面描述中所阐述或附图中所说明的部件的细节和布置。例如,一个实施例中所描述的各方面可以以任何方式与其它实施例中所描述的各方面组合。

具体实施方式

电子设备102还包括被配置为经网络160向其它电子设备(例如,手机130和平板计算机140)和网络存储装置150发送通信以及从它们接收通信的通信接口120。通信可以利用任何合适的协议和任何适合的消息格式经网络160发送,因为本发明的实施例不受所采用的特定网络实现细节的限制。

在一些实施例中,ASR引擎可以配置为利用一个或多个固定的或动态生成的语法和/或词汇来识别语音输入。另选地,一些实施例可以允许自由形式的输入来使用户能够以更自然的方式向虚拟代理讲话并且ASR引擎可以利用例如自然语言理解(NLU)模型来识别用户在说的任何事情。在包括基于NLU模型的语音识别的实施例中,虚拟代理可以基于NLU结果尝试推断用户想要执行的动作。应当认识到,实现语音输入识别的特定方式不限制本发明的实施例,因为任何合适的语音识别实现都可以使用。

返回到图2的过程,如果在动作220中确定用户不打算调用与另一虚拟代理的通信会话,则过程前进到动作222,在那里基于用户输入执行动作。例如,如果用户输入是“电影院在哪里?”,则用户的虚拟代理可以确定,虽然输入包括触发词“在哪里”,但是词“电影院”不涉及另一用户。因而,虚拟代理可以确定与另一虚拟代理的通信会话不是要执行的适当动作,并且作为代替,虚拟代理可以执行诸如对用户位置附近的电影院的web搜索的另一动作,或者某个其它合适的动作。