通过自动助理在先前对话场境之间的转变的制作方法

文档序号:22626665发布日期:2020-10-23 19:35阅读:129来源:国知局
通过自动助理在先前对话场境之间的转变的制作方法



背景技术:

人类可以使用在此称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人语音助理”、“谈话代理”等)的交互式软件应用参与人机对话。例如,人类-当他们与自动助理交互时他们可以称为“用户”-可以使用自由形式的自然语言输入来提供命令、查询和/或请求。自由形式的自然语言可以包括使用语音识别转换为文本的口头话语和/或键入的自由形式的自然语言输入。

自动助理使用户能够获取信息、访问服务和/或执行各种任务。例如,用户能够执行搜索,规划路线,并且在一些情况下与第三方应用进行交互。可以使用由自动助理和/或第三方应用提供的应用编程接口(api)促进对其的访问的这些第三方应用交互允许用户执行各种动作,诸如从共享出行应用调用汽车、订购商品或服务(例如,披萨)、进行预订等。

自动助理使用语音识别和自然语言处理与用户交谈,其中一些助理还利用机器学习和其他人工智能技术,例如,来预测用户意图。自动助理可能会擅长以自然、直观的方式与用户进行谈话,部分原因是他们了解对话场境。为了利用对话场境,自动助理可以保存来自用户的最新输入、来自用户的问题和/或自动助理提供的响应/问题。例如,用户可能会问“whereistheclosestcoffeeshop?(最近的咖啡店在哪里?)”,自动助理可能会回复“twoblockseast.(向东两个街区。)”。然后,用户可能会问:“howlateisitopen?(营业到什么时候?)”通过至少保存一些形式的对话场境,自动助理能够确定代词“it(它)”指代“coffeeshop(咖啡店)”(即,共同引用解析)。

然而,通过传统的自动助理,如果用户放弃人机对话的一个话题以使自动助理参与另一个不同的话题,则可能会丢失与第一话题相关联的对话场境。如果用户希望接起关于他们停止的第一话题的先前谈话,则可能会迫使用户从头开始重新开始谈话,使得可以重建丢弃的对话场境。对话场境的这种丢失在许多常见用例中对于用户而言在技术上是有问题的,因为如果要重新开始相关谈话,则可能需要用户和助理从头开始重建场境。这可能涉及助理需要第二次接收特定用户输入,并使该重新接收的输入重新存储在计算机存储器中。此外,这种重新输入的收到可能需要重新处理输入的计算机处理能力。另外,可能需要来自例如设备内置电池的电力来为设备内置扬声器和/或麦克风供电,以允许助理在用户重新输入用于重建对话场境的相关信息时提示用户或以其它方式与用户交谈。这种常见用例的一个示例涉及自动助理和第三方应用之间的交互。尽管自动助理能够与第三方应用进行交互,但是它们通常无法复制一些第三方应用的全部功能性,并且因此必须例如使用显示在人机对话的转录中显示的深层链接将用户频繁地转发到第三方应用。当用户从第三方应用返回到自动助理时,先前的对话场境可能会丢失,尤其是在自从先前的人机对话以来大量时间已经流逝的情况下。

如果除了进入第三方应用、完成任务、并且然后例如使用在操作系统上执行的操作系统提供的后退按钮快速返回到自动助理之外用户没有做别的,则这可能没有问题。在这种场景下,自动助理可以简单地持久化最近的对话场境,使得可以无缝地恢复谈话。但是,由于用户通常会多任务处理并处理无数分心的事情,所以返回到助理可能会采取许多不同的路径。在有点类似的情况下,web浏览器的用户经常使用多个选项卡来持久化多个研究线程、思路等。



技术实现要素:

本文描述了用于保存在用户和自动助理之间的人机对话期间生成的多个语义上不同的对话场境的技术。另外,本文中描述了一种用于例如,通过在与和特定对话场境相关联的第三方应用的交互期间提供转变命令使用户能够转变到多个对话场境和/或在多个对话场境之间转变以恢复与自动助理的先前对话的技术。不必将以两个不同对话场境为基础的主题完全无关,以便将对话场境视为“语义上不同”。相反,两个对话场境可能是“语义上不同的”,其中,例如,它们具有与预定义话题库中的不同预定义话题相关的不匹配和/或不重叠的意图等等。

在各种实现中,在人机对话期间生成的对话场境可以包含各种信息。在一些实施方式中,对话场境可以包括基于各种信号检测到的一个或多个用户意图,诸如由用户提供的自由形式的自然语言输入和/或由自动助理提供的自然语言输出。在一些实施方式中,对话场境还可以包括对人机对话会话期间(由用户和/或由自动助理)提及的已知实体(例如,人,地方,事物)的一个或多个引用。

在一些实施方式中,对话场境可以进一步包括可用于满足用户意图的一个或多个插槽值,即,通过填充与用户意图相关联的一个或多个“插槽”。插槽值可以是可用作由自动助理执行的任务的参数的任何值。插槽值可以从各种来源获得。用户可以主动地和/或响应于来自自动助理的征求而提供插槽值。例如,特定第三方应用可能需要一个或多个插槽来满足请求。在一些情况下,用户可以主动地提供所需插槽的值。或者,第三方应用可以使自动助理征求用户尚未为其主动地提供值的任何所需插槽的值。另外,例如,使用由用户操作的计算设备提供的位置坐标、用户偏好、过去在类似情况下使用的插槽值、用户和/或自动助理从最近的陈述中提取的插槽值等,可以自动地确定其它插槽值。

对话场境可以以各种方式保存。在一些实施方式中,可以保存人机对话的整个转录,使得例如可以即时地和/或根据需要通过在保存的转录中检测意图、插槽值、实体等等来重建或恢复对话场境。在一些实施方式中,特别是其中用户使用图形用户界面(“gui”)与自动助理进行交互的那些实施方式中,这可以提供额外的优点,因为用户可以审查转录。在一些情况下,可以用诸如断点、意图、提及的实体等数据来标注转录。另外或可替代地,在一些实施方式中,仅对话场境的核心元素,诸如检测到的意图、插槽值、提及的实体等等可以以各种格式保存,所述各种格式诸如javascript对象表示法(“json”)或其他类似格式。

对话场境可以被保存在各个位置中。在一些实施方式中,对话场境可以在用户所操作的计算设备本地的存储器中被持久化,以与自动助理接洽。这可以引起各种技术益处,诸如关于与自动助理的先前谈话保护用户的隐私,和/或即使在离线时也使用户能够使用本文所述的技术来重新访问先前谈话。附加地或可替代地,在一些实施方式中,对话场境可以远离用户的计算设备,例如,在共同操作的通常被称为“基于云的服务”的一个或多个计算系统的存储器中而被持久化。在各种实施方式中,可以针对各种时间量和/或跨各种事件保存对话场境。例如,在一些实施方式中,对话场境可以跨多个逻辑不同的对话会话而被持久化。附加地或可替代地,在一些实施方式中,可以针对各种时间量,诸如几天、几周或可以由用户自动选择和/或手动设置的其他时间来持久化对话场境。在一些实施方式中,对话场境可以作为堆栈维护在存储器中,其中最新的对话场境从堆栈顶部是“可弹出的”以访问较旧的对话场境。

用户可以使用被保存的对话场境来恢复与自动助理的先前对话。以这种方式,用户能够以直观的方式通过与自动助理的先前谈话来转变或“切换”,而不会丢失先前的线索和/或思维过程,并且不需要重新输入先前提供给助理的信息。在其中触摸屏、电容式触摸板或其他视觉输入/输出(“i/o”)机制可用的一些实施方式中,可以向用户呈现可选元素,诸如“后退按钮”,用户可以操作以转变到先前的对话场境。例如,可以与已经在存储器中与先前对话场境相关联的特定第三方应用同时提供此可选元素。另外或可替代地,在用户口头地参与与自动助理的人机对话的场景下,用户可能会说出一个或多个命令,例如“heyassistant,let'sgobackto<thepriorconversation>(嘿助理,让我们回到<先前的谈话>”),以将自动助理转变回到先前的对话场境。

在一些实施方式中,自动助理可以被配置成向用户呈现可用的过去对话场境的枚举列表,使得用户能够选择他或她希望重新访问的对话场境。例如,在由用户操作的设备具有显示能力的实施方式中,自动助理可以呈现与过去对话场境相关联的过去谈话的可视列表,用户可以例如通过触摸列表项或讲出对列表项的引用中的短语来从可视列表中选择对话场境。在一些实施方式中,可以响应作为自由形式的自然语言输入(诸如“hey@assistant,whatwerewetalkingaboutbefore?(嘿@助理,我们之前在谈论什么?)”)提供的用户命令来呈现可用的先前对话场境的枚举列表。

在一些实施方式中,自动助理可以被配置成生成先前对话场境的摘要,例如,使得可以使用户快速地加快先前谈话的速度。例如,在一些实施方式中,自动助理可以基于对话场境生成自然语言输出。自然语言输出可以传达导致生成对话场境(诸如标识一个或多个意图、插槽值、所提及的实体等)的谈话的各个方面。例如,自动助理可以生成自然语言输出,其提醒用户他们正在讨论的内容、以及已经填充的所有插槽值(例如,比萨配料)。

作为说明性示例,假设用户先前与自动助理接洽来购买尺寸为7的女式正装鞋。进一步假设该用户还被朋友的进行晚餐预订的短信打扰了购物,并且用户与自动助理接洽(即,改变主题)以打开第三方应用以进行晚餐预订。当用户返回到自动助理继续购鞋时,最后一个对话场境将与晚餐预订有关。而不是从头开始重建购鞋谈话,用户可以采用本文所述的技术来恢复在用户被朋友中断时而停止的购鞋谈话。特别地,例如通过按下后退按钮或通过发布一个或多个口头命令,用户可能能够发布一个或多个命令以转变到在用户购鞋时生成的先前对话场境。这可以通过在先前对话场境和与该场境相关的特定第三方应用(诸如第三方购鞋应用)之间的计算机存储器中形成关联来实现。一旦回到购鞋应用中,用户就能够发布转变命令以返回到先前对话场境(即,购买7号尺寸的女式正装鞋)中的助理。这可能涉及按下所显示的或者以其它方式与购鞋应用同时提供的后退按钮。转变命令可以使所存储的购鞋应用和购鞋场境之间的关联被用于恢复助理中的购鞋谈话。类似地,如果用户希望随后返回晚餐预订谈话,则用户一旦回到第三方晚餐预订应用中,就可以发布转变命令以返回到在晚餐预订场境中的助理。这可能涉及按下所显示的或以其他方式与晚餐预订应用同时提供的后退按钮。

在一些实施方式中,基于用户发出的语言,恢复先前对话场境的口头命令可以与先前对话场境匹配。继续上面的示例,用户可能会说出类似“heyassistant,let'sgobacktoshoeshopping(嘿助理,让我们回到鞋店购物)”的话。自动助理可以标识最类似于“购鞋”的先前对话场境,并且可以使用填充的相关意图/插槽值来恢复谈话。

在一些实施方式中,可以例如与对话场境中的变化相关联地将一个或多个断点插入到谈话的转录中。例如,如果用户开始讨论购鞋,但随后将主题改成天气,则可以在转录中插入两个断点,一个断点针对一个对话场境。在一些这样的实施方式中,当用户(例如,通过按下后退按钮)在先前对话场境之间转变时,与所选对话场境相关联的转录的部分可以例如通过使用与该对话场境相关联的断点被加载到屏幕上。以此方式,用户能够查看与用户希望重新访问的话题有关的先前谈话的整个部分。

在各种实施方式中,一种方法可以包括下述:在用户操作的计算设备的一个或多个输入组件处,在用户和由一个或者多个处理器至少部分实现的自动助理之间的人机对话会话期间从用户接收自由形式的自然语言输入的一个或多个实例;基于自由形式的自然语言输入的一个或多个实例来生成第一对话场境,其中,第一对话场境包括用户的一个或多个意图以及与该一个或多个意图相关联的一个或多个插槽值;在生成第一对话场境之后,在一个或多个输入组件处,在用户和自动助理之间的相同人机对话会话或不同人机对话期间从用户接收自由形式的自然语言输入的一个或多个附加实例;基于自由形式的自然语言输入的一个或多个附加实例来生成第二对话场境,其中第二对话场境包括用户的一个或多个附加意图,并且其中第二对话场境在语义上与第一对话场境不同;在一个或多个输入组件处,从用户接收将自动助理转变回到第一对话场境的转变命令;基于第一对话场境,生成自然语言输出,该自然语言输出传达第一对话场境的至少一个或多个意图以及第一对话场境的一个或多个插槽值;以及使自然语言输出呈现在用户操作的相同计算设备或不同计算设备上。

在各种实施方式中,转变命令可以包括由用户发出或键入的自由形式的自然语言输入。在各种实施方式中,转变命令可以包括由用户对可选用户界面元素的选择。在各种实施方式中,可选用户界面元素可以包括后退按钮。在各种实施方式中,后退按钮可以显示在用户操作的计算设备的触摸屏上。在各种实施方式中,由用户操作的计算设备可以是独立交互式扬声器,并且后退按钮被显示在独立交互式扬声器的电容触摸表面上。

在各种实施方式中,自动助理可以使图形用户界面(“gui”)渲染在用户的计算设备上,其中gui呈现在用户和自动助理之间在人机对话期间交换的消息的转录。在各种实施方式中,该方法可以进一步包括:响应于第一对话场境的一个或多个意图,使在用户的计算设备上启动不同的软件应用,其中,使不同的软件应用被启动包括:使与不同的软件应用相关联的另一gui呈现给用户代替自动助理呈现的gui,其中转变命令经由另一个gui的可选元素接收。在各种实施方式中,消息的转录可以包括与第一对话场境相关联的第一断点和与第二对话场境相关联的第二断点,并且转录命令使与第一断点相关联的转录的部分在自动助理呈现的gui中被渲染。

在各种实施方式中,该方法可以进一步包括:在一个或多个输入组件处,从用户接收自动助理提供所保存的对话场境的列表的列表对话场境命令;以及响应于列表对话场境命令:标识至少第一对话场境和第二对话场境;以及使指示至少第一对话场境和第二对话场境的信息呈现在由用户操作的相同计算设备或不同计算设备上。在各种实施方式中,转变命令可以包括由用户选择指示至少第一对话场境和第二对话场境的信息的与第一对话场境相对应的元素。

在另一方面,一种方法可以包括:在由用户操作的计算设备的一个或多个输入组件处,在用户和由一个或多个处理器至少部分实现的自动助理之间的第一人机对话期间从用户接收自由形式的自然语言输入的一个或多个实例;将用户和自动助理之间的第一人机对话的一个或多个所存储的第一参数与由用户从用户和自动助理之间的第一人机对话可访问的第一第三方应用相关联;在计算设备的一个或多个输入组件处,在用户和自动助理之间的第二次人机对话期间从用户接收自由形式的自然语言输入的一个或多个另外实例;以及继在用户和自动助理之间的第二人机对话之后,响应于从用户收到从第一第三方应用转变到自动助理的转变命令,检索与第一第三方应用相关联的所存储的一个或多个第一参数,并且使用检索到的第一参数恢复用户和自动助理之间的第一人机对话。

在各种实施方式中,该方法可以进一步包括使用户和自动助理之间的第一人机对话的一个或多个第一参数被存储在计算机存储器中。在各种实施方式中,检索所存储的一个或多个第一参数可以包括从计算机存储器检索一个或多个第一参数。在各种实施方式中,计算机存储器位于远程服务器中。

在各种实施方式中,存储一个或多个第一参数可以包括创建用于一个或多个第一参数的配置文件,并将配置文件存储在计算机存储器中。在各种实施方式中,一个或多个第一参数指示第一人机对话的场境。在各种实施方式中,一个或多个第一参数可以包括用户在第一人机对话中的一个或多个意图和/或与用户在第一人机对话中的一个或多个意图相关联的一个或多个插槽值。

在各种实施方式中,将第一人机对话的一个或多个所存储的第一参数与第一第三方应用相关联可以包括,响应于收到从第一第三方应用转变到自动助理的转变命令,创建由一个或多个处理器可调用的第一令牌,以检索与第一第三方应用相关联的所存储的一个或多个第一参数。

在各种实施方式中,第一令牌可以包括所存储的一个或多个第一参数与第一第三方应用之间的链接。在各种实施方式中,该方法可以进一步包括:将用户和自动助理之间的第二人机对话的一个或多个第二参数与由所述用户从用户和自动助理之间的第二人机对话可访问的第二第三方应用相关联。在各种实施方式中,响应于从用户收到从第二第三方应用转变到自动助理的转变命令,该方法可以包括检索与第二第三方应用相关联的所存储的一个或多个第二参数,以及使用检索到的第二参数恢复用户和自动助理之间的第二个人机对话。

在各种实施方式中,将第二人机对话的一个或多个所存储的第二参数与第二第三方应用相关联可以包括,响应于收到从第二第三方应用转变到自动助理的转变命令由一个或多个处理器创建可调用的第二令牌,以检索与第二第三方应用相关联的所存储的一个或多个第二参数。在各种实施方式中,第二令牌可以包括所存储的一个或多个第二参数与第二第三方应用之间的链接。

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

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

附图说明

图1是其中可以实现本文公开的实施方式的示例环境的框图。

图2a、2b、2c和2d描绘根据各种实施方式的用户、另一用户和使用该用户的计算设备的自动助理之间的示例对话。

图3a、3b、3c和3d描绘根据各种实施方式的在用户和使用独立的交互式扬声器的自动助理之间的示例对话。

图4描绘图示根据本文公开的实施方式的示例方法的流程图。

图5图示计算设备的示例架构。

图6是示例计算设备的框图。

具体实施方式

现在转到图1,图示其中可以实现本文公开的技术的示例环境。示例环境包括多个客户端计算设备1061-n。每个客户端设备106可以执行自动助理客户端118的相应实例。可以在一个或多个计算系统(统称为“云”计算系统)上实现一个或多个基于云的自动助理组件119,诸如自然语言理解引擎135,所述一个或多个计算系统经由通常在110处指示的一个或多个局域网和/或广域网(例如,因特网)通信地耦合到客户端设备1061-n。

在一些实施方式中,多个客户端计算设备1061-n(这里也简称为“客户端设备”)可以以各种方式彼此相关联,以便于促进本文描述的技术的执行。例如,在一些实施方式中,多个客户端计算设备1061-n可以彼此相关联,这是因为它们是由一个或多个用户(例如,个人、家庭、组织的员工、其他预定义的群组)操作的客户端设备106的协调生态系统的成员。

在一些实施方式中,自动助理客户端118的实例通过其与一个或多个基于云的自动助理组件119的交互可以形成从用户的角度看似乎是自动化助理120的逻辑实例,用户可以参与与该自动化助理120的逻辑实例的人机对话。在图1中描绘这种自动助理120的两个实例。虚线环绕的第一自动助理120a为操作第一客户端设备1061的第一用户(未描绘)服务,并且包括自动助理客户端1181和一个或多个基于云的自动助理组件119。双点划线环绕的第二自动助理120b为操作另一个客户端设备106n的第二用户(未描绘)提供服务,并包括自动助理客户端118n和一个或多个基于云的自动助理组件119。

因此,应当理解,与在客户端设备106上执行的自动助理客户端118接洽的每个用户实际上可以与他或她自己的自动助理120的逻辑实例接洽。为了简短和简单起见,本文中用作“服务”特定用户的术语“自动助理”将指代在由用户操作的客户端设备106上执行的自动助理客户端118和一个或多个基于云的自动助理组件119(可以在多个自动助理客户端118之间共享)的组合。还应该理解,在一些实施方式中,自动助理120可以响应来自任何用户的请求,而不管该自动助理120的特定实例是否实际上“服务”该用户。

客户端设备1061-n可以包括例如下述中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的交互式扬声器、诸如智能电视的智能电器和/或用户的可穿戴设备,该可穿戴设备包括计算设备(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加的和/或替代的客户端计算设备。

每个客户端计算设备1061-n可以操作各种不同的应用,诸如多个消息交换客户端1071-n中的相应一个。消息交换客户端1071-n可以以各种形式出现,并且该形式可以跨客户端计算设备1061-n变化和/或可以在客户端计算设备1061-n的单个上操作多种形式。在一些实施方式中,消息交换客户端1071-n中的一个或多个可以以短消息服务(“sms”)和/或多媒体短信服务(“mms”)客户端、在线聊天客户端(例如,即时通讯、互联网中继聊天或“irc”等)、与社交网络关联的消息传递应用、专用于与自动助理120进行谈话的个人助理消息传递服务等的形式出现。在一些实施方式中,一个或多个消息交换客户端1071-n可以经由网页浏览器(未描绘)或客户端计算设备106的其他应用所渲染的网页或其他资源来实现。

如本文中更详细地描述,自动助理120经由一个或多个客户端设备1061-n的用户界面输入和输出设备参与与一个或多个用户的人机对话会话。在一些实施方式中,响应于用户经由客户端设备1061-n之一的一个或多个用户界面输入设备提供的用户界面输入,自动助理120可以参与与用户的人机对话会话。在那些实施方式中的一些中,用户界面输入被明确地指向到自动助理120。例如,消息交换客户端1071-n之一可以是专用于与自动助理120的谈话的个人助理消息服务并且经由该个人助理消息服务提供的用户界面输入可以被自动提供给自动助理120。此外,例如,可以基于指示自动助理120要被调用的特定用户界面输入,将用户界面输入显式地指向一个或多个消息交换客户端1071-n中的自动助理120。例如,特定用户界面输入可以是一个或多个键入的字符(例如,@automatedassistant)、用户与硬件按钮和/或虚拟按钮的交互(例如,轻击、长按)、口头命令(例如,“heyautomatedassistant(嘿自动助理)”)和/或其他特定用户界面输入。

在一些实施方式中,即使当用户界面输入没有明确地指向自动助理120时,自动助理120也可以响应于用户界面输入而参与人机对话会话。例如,自动助理120可以检查用户界面输入的内容并响应于用户界面输入中存在的某些术语和/或基于其他提示而参与对话会话。在许多实施方式中,用户可以发出命令,进行搜索等,并且自动助理120可以利用语音识别以将话语转换为文本,并且例如通过提供搜索结果、一般信息和/或采取一项或多项响应动作(例如,播放媒体、启动游戏、订购食物等)相应地对文本做出响应。在一些实施方式中,自动助理120可以附加地或替代地对话语做出响应而无需将话语转换为文本。例如,自动助理120可以将语音输入转换为嵌入,转换成实体表示(指示语音输入中存在的一个或多个实体)和/或其他“非文本”表示,并对这样的非文本表示进行操作。因此,本文描述为基于从语音输入转换的文本进行操作的实施方式可以附加地和/或替代地直接对语音输入和/或语音输入的其他非文本表示进行操作。

客户端计算设备1061-n和运行基于云的自动助理组件119的一个或多个计算设备中的每一个可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据并执行应用的一个或多个处理器以及有助于通过网络进行通信的其他组件。由一个或多个客户端计算设备1061-n和/或由自动助理120执行的操作可以分布在多个计算机系统上。自动助理120可以被实现为例如在通过网络彼此耦合的一个或多个位置中的一台或多台计算机上运行的计算机程序。

如上所述,在各种实施方式中,客户端计算设备1061-n中的每一个操作自动助理客户端118。在各个实施例中,每个自动助理客户端118可以包括对应的语音捕获/文本到语音(“tts”)/语音到文本(“stt”)模块114。在其他实施方式中,语音捕获/tts/stt模块114的一个或多个方面可以与自动助理客户端118分离而实施。在各种实施方式中,语音捕获/tts/stt模块114可以基于口头查询来生成语音识别输出。

每个语音捕获/tts/stt模块114可以被配置成执行一个或多个功能:例如,经由麦克风捕获用户的语音;将捕获的音频转换为文本(和/或其他表示或嵌入);和/或将文本转换为语音。例如,在一些实施方式中,因为客户端设备106可能在计算资源(例如,处理器周期、内存、电池等)方面受到相对约束,所以对于每个客户端设备106而言本地的语音捕获/tts/stt模块114可以被配置成将有限数量的不同口语短语(特别是调用自动助理120的短语)转换为文本(或其他形式,诸如较低维度的嵌入)。其他语音输入可以被发送到基于云的自动助理组件119,其可以包括基于云的tts模块116和/或基于云的stt模块117。

基于云的stt模块117可以被配置成利用云的实际上无限的资源来将由语音捕获/tts/stt模块114捕获的音频数据转换为文本(然后可以将其提供给自然语言处理器122)。基于云的tts模块116可以被配置成利用云的实际上无限的资源来将文本数据(例如,由自动助理120制定的自然语言响应)转换为计算机生成的语音输出。在一些实施方式中,tts模块116可以将计算机生成的语音输出提供给客户端设备106以,例如使用一个或多个扬声器来直接输出。在其他实施方式中,可以将由自动助理120生成的文本数据(例如,自然语言响应)提供给语音捕获/tts/stt模块114,其随后可以将文本数据转换为本地生成的计算机生成的语音。

自动助理120(并且特别地,基于云的自动助理组件119)可以包括自然语言理解引擎135、前述的tts模块116、前述的stt模块117以及下面将更详细描述的其他组件。在一些实施方式中,可以在与自动助理120分离的组件中省略、组合和/或实现自动助理120的一个或多个引擎和/或模块。在一些实施方式中,为了保护隐私,诸如自然语言理解引擎135、语音捕获/tts/stt模块114等的自动助理120的一个或多个组件中可以至少部分地在客户端设备106上实现(例如,排除在云之外)。

在一些实施方式中,在与自动助理120的人机对话会话期间,自动助理120响应于客户端设备1061-n之一的用户生成的各种输入来生成响应内容。自动助理120可以(例如,在与用户的客户端设备分离时通过一个或多个网络)提供响应内容,用于作为对话会话的一部分呈现给用户。例如,自动助理120可以响应于经由客户端设备1061-n之一提供的自由形式的自然语言输入来生成响应内容。如本文所使用的,自由形式的自然语言输入是由用户制定的并且不受到呈现以供用户选择的一组选项约束的输入。

如本文中所使用的,“对话会话”可以包括用户和自动助理120(在一些情况下,其他人类参与者)之间的一个或多个消息的逻辑上自包含的交换。自动助理120可以基于各种信号在与用户的多个对话会话之间进行区分,所述各种信号诸如会话之间的时间流逝、会话之间的用户场境的变化(例如,位置、安排的会议之前/期间/之后等)、除了在用户和自动助理之间的对话之外的用户与客户端设备之间的一个或者多个中间交互的检测(例如,用户切换应用一会儿、用户离开然后返回到独立的语音激活产品)、会话之间客户端设备的锁定/睡眠、用于与自动助理120的一个或多个实例对接的客户端设备的变化、用户采用的输入/输出(“i/o”)形态的变化等。

自然语言理解引擎135的自然语言处理器122处理用户经由客户端设备1061-n生成的自然语言输入,并可以生成注释输出(例如,以文本形式)以供自动助理120的一个或多个其他组件使用。例如,自然语言处理器122可以处理由用户经由客户端设备1061的一个或多个用户界面输入设备生成的自然语言自由形式输入。所生成的注释输出包括自然语言输入的一个或多个注释以及可选地包括自然语言输入的一个或多个(例如,全部)术语。

在一些实施方式中,自然语言处理器122被配置成标识和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器122可以包括形态引擎,该形态引擎可以将单个单词分离为词素和/或例如用词素的类别注释这些词素。自然语言处理器122还可以包括语音标注器的一部分,该语音标注器被配置成用术语的语法角色来注释该术语。例如,语音标注器的一部分可以用其语音部分,诸如“名词”、“动词”、“形容词”、“代词”等标记每个术语。此外,例如,在一些实施方式中,自然语言处理器122可以附加地和/或可替换地包括可以被配置成确定自然语言输入中的术语之间的句法关系的依赖性解析器(未描绘)。例如,依存句法解析器可以确定哪些术语修改了其他术语、句子的主语和动词等等(例如,解析树),并且可以对这种依存句法进行注释。

在一些实施方式中,自然语言处理器122可以附加地和/或可替代地包括实体标注器(未描绘),该实体标注器被配置成在一个或多个片段中注释实体引用,诸如对人们的引用(包括例如文学人物、名人、公众人物等)、组织、位置(真实的和虚构的)等等。在一些实施方式中,关于实体的数据可以存储在一个或多个数据库中,诸如知识图(未描绘)中。在一些实施方式中,知识图可以包括代表已知实体的节点(并且在一些情况下,实体属性),以及连接节点并代表实体之间的关系的边缘。例如,“香蕉”节点可以(例如,作为子节点)被连接到“水果”节点,其继而可以被(例如,作为子节点)连接到“生产”和/或“食物”节点。作为另一个示例,称为“hypotheticalcafe”的餐厅可以由节点表示,该节点还包括诸如其地址、所供应食物的类型、营业时间、联系信息等属性。通过边缘(例如,代表子节点与父节点的关系)连接到一个或多个其他节点,诸如“餐厅”节点、“企业”节点、代表餐厅所在城市和/或其中餐厅位于的州的节点等等。

自然语言处理器122的实体标注器可以以较高级别的粒度(例如,以使能够标识对诸如人们的实体类别的所有引用)和/或较低级别的粒度(例如,以使能够标识对诸如特定人员的特定实体的所有引用)注释对实体的引用。实体标注器可以依赖于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其他实体数据库进行通信以解析特定实体。

在一些实施方式中,自然语言处理器122可以附加地和/或可替代地包括被配置成基于一个或多个场境提示来对同一实体的引用进行分组或“聚类”的共同引用解析器(未描绘)。例如,可以利用共同引用解析器以将术语“there(那里)”解析为自然语言输入“ilikedhypotheticalcafelasttimeweatethere(我喜欢我们上次在那里用餐的hypotheticalcafe)”中的“hypotheticalcafe”。

在一些实施方式中,自然语言处理器122的一个或多个组件可以依赖于自然语言处理器122的一个或多个其他组件的注释。例如,在一些实施方式中,在注释对特定实体的所有提及时,命名的实体标注器可以依赖于来自于共同引用解析器和/或依存句法解析器的注释。例如,在一些实施方式中,在聚类对同一实体的引用时,共同引用解析器可能依赖于来自依存句法解析器的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器122的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据来确定一个或多个注释。

自然语言理解引擎135还可以包括意图匹配器136,该意图匹配器136被配置成基于自然语言处理器122的注释输出来确定参与与自动助理120的人机对话会话的用户的意图。尽管在图1中与自然语言处理器122分离地描绘,但是在其他实施方式中,意图匹配器136可以是自然语言处理器122(或更一般而言,包括自然语言处理器122的管道)的组成部分。在一些实施方式中,自然语言处理器122和意图匹配器136可以共同形成前述“自然语言理解”引擎135。

意图匹配器136可以使用各种技术来确定用户的意图。在一些实施方式中,意图匹配器136可以具有对一个或多个数据库137的访问,所述一个或多个数据库137包括例如语法和响应动作(或更一般地,意图)之间的多个映射。附加地或可替代地,在一些实施方式中,一个或多个数据库137可以存储一个或多个机器学习模型,其被训练以基于用户的输入来生成指示用户意图的输出。

可以选择、定制(例如,用手)和/或随着时间的流逝学习语法,例如,以表示用户的最普通意图。例如,一种语法“播放<艺术家>”可以被映射到意图,该意图调用响应动作,该响应动作使得<艺术家>的音乐在用户操作的客户端设备106上播放。另一个语法“[weather|forcast]today([天气|预报]今天)”可以与用户查询(诸如“what’stheweathertoday(今天的天气如何)”和“what’stheforecastfortoday(今天的预报是什么)?”)匹配。如在“播放<艺术家>”示例语法中看到的,一些语法具有可以用插槽值(或“参数”)填满的插槽(例如,<艺术家>)。插槽值可以以各种方式确定。用户通常会主动地提供插槽值。例如,对于语法“ordermea<topping>pizza(为我订购<topping>披萨)”,用户可能会讲出“ordermeasausagepizza(为我订购香肠披萨)”短语,在这种情况下,自动填满插槽<topping>。另外地或可替代地,如果用户调用包括要用插槽值填满的插槽的语法,而无需用户主动地提供插槽值,则自动助理120可以向用户征求这些插槽值(例如,“whattypeofcrustdoyouwantonyourpizza?(您的披萨使用哪种类型的饼皮?)”)。

与(可以手动创建的)许多语法相反,可以例如使用用户和自动助理之间的交互日志来自动训练机器学习模型。机器学习模型可以采用各种形式,诸如神经网络。可以以各种方式对它们进行训练,以根据用户输入预测用户意图。例如,在一些实施方式中,可以提供包括个别训练示例的训练数据。每个训练示例可以包括例如来自用户的自由形式输入(例如,以文本或非文本形式),并且可以通过意图(例如,用手)标记。训练示例可以作为跨机器学习模型(例如,神经网络)的输入应用以生成输出。可以将输出与标签进行比较以确定错误。例如,可以使用诸如梯度下降(例如,随机、批量等)和/或反向传播的技术来使用该误差来训练模型,以调整与模型的隐藏层相关联的权重。一旦通过(通常是非常大的)大量的训练示例对这种模型进行训练,就可以将其用于根据未标记的自由形式的自然语言输入中生成预测意图的输出。

在一些实施方式中,自动助理120可以促进(或“协商”)用户与第三方应用之间的交易。这些第三方应用可能会或可能不会在与操作例如基于云的自动助理组件119的那些计算系统分离的计算机系统上运行。因此,意图匹配器136可以标识的一种用户意图要参与第三方应用。例如,自动助理120可以向披萨递送服务提供对应用编程接口(“api”)的访问。用户可以调用自动助理120并提供诸如“i’dliketoorderapizza(我想订购比萨)”的命令。意图匹配器136可以将该命令映射到语法(在一些情况下可以由第三方添加到数据库137),该语法触发自动助理120与第三方披萨递送服务接洽。第三方披萨递送服务可以向自动助理120提供需要填满的最小数量的插槽列表,以便于履行披萨递送订单。自动助理120可以生成自然语言输出并(经由客户端设备106)将其提供给用户,该自然语言输出向插槽征求参数。

履行引擎124可以被配置成接收意图匹配器136的意图输出以及任何相关联的插槽值(是由用户主动地提供还是从用户那里征求)并履行该意图。在各个实施例中,用户意图的履行可以导致例如由履行引擎124生成/获得各种履行信息。如下面将会描述的,在一些实施方式中,可以将履行信息提供给自然语言生成器(在一些附图中,“nlg”)126,其可以基于履行信息来生成自然语言输出。

因为可以以多种方式履行意图,所以履行信息可以采取各种形式。假设用户要求纯粹的信息,诸如“whereweretheoutdoorshotsof'theshining'filmed?(“theshining”的外景拍摄在哪里拍摄?)”。可以例如通过意图匹配器1s6将用户的意图确定为搜索查询。可以将搜索查询的意图和内容提供给履行引擎124,其如图1中所描绘可以与被配置成在文档和/或其他数据源(例如,知识图等)的语料库中搜索响应信息的一个或多个搜索引擎150通信。履行引擎124可以向搜索引擎150提供指示搜索查询的数据(例如,查询的文本、降维嵌入等)。搜索引擎150可以提供响应信息,诸如gps坐标,或者其他更明确的信息,诸如“timberlinelodge,mt.hood,oregon(俄勒冈州胡德山的森林界线小屋)”。该响应信息可以形成由履行引擎124生成的履行信息的一部分。

附加地或可替代地,履行引擎124可以被配置成例如从自然语言理解引擎135接收用户的意图和由用户提供或使用其他手段确定的任何插槽值(例如,用户的gps坐标、用户偏好设置等)并触发响应操作。响应动作可以包括例如订购商品/服务、启动计时器、设置提醒、发起电话呼叫、播放媒体、发送消息等。在一些这样的实施方式中,履行信息可以包括与履行、确认响应(在一些情况下可以从预定响应中选择)等相关联的插槽值。

如上所述,自然语言生成器126可以被配置成基于从各种来源获得的数据来生成和/或选择自然语言输出(例如,被设计为模仿人类语音的口语单词/短语)。在一些实施方式中,自然语言生成器126可以被配置成接收与履行引擎124履行意图相关联的履行信息作为输入,并基于履行信息生成自然语言输出。附加地或可替代地,自然语言生成器126可以从诸如第三方应用的其他来源接收信息(例如,所需的插槽),其可以用于为用户定制自然语言输出。

对话场境引擎138可以被配置成持久化在用户与自动助理120之间的对话场境并且使该对话场境可用。在一些实施方式中,对话场境引擎138可以在远离客户端设备1061-n的一个或者多个数据库139中持久化(例如,存储)对话场境。附加地或可替代地,对话场境可以存储在一个或多个客户端设备106本地的存储器中,例如,以维护用户隐私和/或使得即使客户端设备106离线也可以实践本文描述的技术。在一些这样的实施方式中,对话场境引擎138可以在客户端设备106上全部或部分地实现。

在各种实施方式中,在人机对话期间生成并由对话场境引擎138管理的对话场境可以包含各种信息。在一些实施方式中,对话场境可以包括例如由意图匹配器136基于各种信号检测到的一个或多个用户意图,诸如由用户提供的自由形式的自然语言输入和/或由例如自然语言生成器126生成的自然语言输出。在一些实施方式中,对话场境还可以包括对在人机对话会话期间(由用户和/或自动助理)提及并且通过前述的实体标注器检测的已知实体(例如,人们、地方、事物)的一个或多个引用。

在一些实施方式中,对话场境可以进一步包括可用于履行用户意图的一个或多个插槽值,即,通过填满与用户意图相关联的一个或多个插槽。如先前所述,可以从各种来源获得插槽值。对话场境引擎138可以各种方式保存对话场境。在一些实施方式中,人机对话的整个转录可以保存在数据库139中或客户端设备106本地的存储器中,使得例如可以实时地和/或根据需要通过检测所保存的转录中的意图、插槽值、实体等来重建对话场境。在一些实施方式中,特别是其中用户使用消息交换客户端107与自动助理120交互的那些实施方式,这可以提供附加的优点,因为用户可以视觉上审查转录。附加地或可替代地,在一些实施方式中,仅对话场境的核心元素,诸如检测到的意图、插槽值,提及的实体等,可以以诸如javascript对象表示法(“json”)或其他类似格式的各种格式来保存。

图1的各个组件,诸如对话场境引擎138,可以配置成执行本公开的选定方面,以保存在用户和自动助理120之间的人机对话期间生成的多个语义上不同的对话场境。另外,本文描述了用于使用户能够转变到多个对话场境和/或在多个对话场境之间转变以恢复与自动助理的先前对话的技术。例如,在一些实施方式中,用户能够以直观的方式转变或“切换”与自动助理120的先前谈话,而不会丢失先前线程和/或思维过程。在其中触摸屏、电容式触摸板或其他视觉输入/输出(“i/o”)机制在客户端设备106上可用的一些实施方式中,可以向用户呈现可选择的元素,诸如“后退按钮”,用户可以操作该可选择的元素以转变到先前对话场境。另外地或可替代地,在用户口头上操作客户端设备106参与与自动助理120的人机对话的场景下,用户可能能够发出一个或多个命令,诸如“嘿助理,让我们返回到<在先谈话>“heyassistant,let'sgobackto<thepriorconversation>”以将自动助理120转变回先前对话场境。

图2a、2b、2c和2d描绘了用户、另一用户和至少部分地在由用户操作的计算设备206上实现的自动助理120之间的示例对话。这些附图图示了本公开的各个方面,特别是用户在多个不同的过去对话场境之间转变以恢复过去谈话的能力。在图2a-d中,客户端设备206包括触摸屏240;各种用户界面按钮281、282、283;文本输入字段288和麦克风图标289。麦克风图标289可以是可操作的,使用户能够提供声音输入,该声音输入可以例如通过语音捕获/tts/stt模块114进行语音识别,并且例如用于填充文本输入字段288。

在图2a中,操作客户端设备206的用户(“you(你)”)(例如,使用输入字段288)提供以下自由形式的自然语言输入:“shopforwomen'sdressshoesinsize7(购买7号尺寸的女式正装鞋)”。在一些实施方式中,因为该陈述句发起新谈话话题,所以可以创建与走秀购物的话题相关联的断点并将其与转录相关联,如标签“bp1”所指示的,该标签包括在图中以用于说明性目的,并且实际上可以或者不可以被渲染在触摸屏240上。自动助理询问“doyouwanttoshopforaspecificcolorshoeorspecificbrand?(您是否想购买特定颜色的鞋子或特定品牌?)”,作为一种为shoe_shopping的预期意图寻找插槽值的方式。用户通过回复“blackcolorshoes(黑色鞋)”来提供插槽值。

此时,另一个名为joe的用户向该用户发送了一条消息,该消息作为转录的一部分出现,并读取:“wanttogotodinnertonightat7:00atvincenzo's?(是否想在7:00在vincenzo餐厅享用晚餐?)”。此时,可以将另一个断点,图2a中的bp2,插入到转录中,以意味着新对话场境的开始,今晚的晚餐。用户回答“yes(是)”,并且作为响应,自动助理插话“wanttobookareservationfor2fordinnertonightat7:00atvincenzo's?(是否想在vincenzo餐厅在今晚7:00预订2人的晚餐?)”。

谈话在图2b中继续。用户对自动助理的进行预订的提议做出肯定答复(“yes”)。一旦履行该意图(使用7:00pm和“vincenzo餐厅”参数进行晚餐预订),自动助理,例如,通过图1中的自然语言输出生成器126生成并输出文本“ihavebookedadinnerreservationforyouandjoefortonightat7:00atvincenzo's(我已经为您和joe预订了今晚7:00在vincenzo餐厅的晚餐)”。然后joe再次插话:“thanks.seeyouthen(谢谢。再见)”。

在这一点上,已经存在在用户和自动助理之间的此谈话期间活动的两个对话场境:一个与涉及购鞋的bp1相关联,另一个与涉及进行晚餐预订的bp2相关联。指示这些对话场境的数据可以例如通过对话场境引擎138在数据库139中被持久化。此后,用户可以通过这些对话场境(以及可能在bp1之前发生的其他对话场境)向后转变,使得用户无需从头开始即可恢复过去谈话。

用户可能能够以各种方式通过这些对话场境向后转变。在一些实施方式中,用户可以通过操作后退按钮(诸如可以由客户端设备206的操作系统提供或可以不提供的图形元素281)来通过过去对话场境来向后切换。在图2b中,用户改为使用用于转变回到购鞋对话场境的自由形式自然语言输入:“heyassistant-backtoshoeshopping(嘿助理-回到购鞋)”。在一些实施方式中,可以将相同断点bp1再次插入到该转录的该部分中,例如,使得与该断点相关联的转录的不同部分可以稍后被重新组装在一起,因为它们与单一对话场境有关。

当转变回到先前对话场境时,提醒用户他们正在与自动助理讨论的内容可能是有益的。因此,在各种实施方式中,在转变回到先前对话场境之后,自动助理120可以生成自然语言输出,该自然语言输出传达转变到对话场境的意图中的至少一个或多个以及转变到对话场境的一个或多个插槽值。然后,自动助理120可以使该自然语言输出呈现在用户操作的相同计算设备或不同计算设备上。例如,在图2b中,自动助理120通过说话“youwereinterestedinblackcolorwomen'sdressshoesinsize7(您对7号黑色的女式正装鞋感兴趣)”来概述过去对话场境。

图2c描绘了一个可替代对话,该对话可能在joe说出“thanks.seeyouthen”之后发生。代替用户主动地转变回到购鞋,该用户改为询问自动助理120,“heyassistant-whatwerewetalkingabout?(嘿助理-我们要谈论什么?)”自动助理120通过输出过去对话场境的枚举列表来答复:“wehavetalkedabout:theweatherforecastfortonight;shoeshopping;anddinnerreservationsfortonight(我们已经谈论过:今晚天气预报;购鞋;以及今晚晚餐预订)”。如图2c所示,这些过去话题中的每一个都可以与断点相关联。在一些实施例中,例如,断点实际上可以被渲染在触摸屏240上,使得用户可以选择一个以转变回到相应对话场境。

然而,在图2d中,用户改为说出:“backtoshoeshopping.wheredidweleaveoff?(回到鞋店。我们在哪儿停止?)”此时,自动助理120再次提供有关过去谈话的摘要自然语言输出,并叙述:“youwereinterestedinblackcolorwomen'sdressshoesinsize7.didyouwanttoshopforaspecificbrand?(您对7英寸的黑色女式正装鞋感兴趣。您是否想购买特定品牌?)”然后,用户回答“allbrandsthatareonsale(正在打折出售的所有品牌))”,并且然后购鞋谈话恢复。

图3a、3b、3c和3d描述了根据各种实施方式的通过由用户301操作的独立交互式扬声器306在用户301和自动助理120之间的示例对话。对话始于用户301向独立交互式扬声器306的自动助理120询问“shopforwomen'sdressshoesinsize7”。对“shop(购买)”和“shoes(鞋子)”的引用允许自动助理120标识“shoeshopping(购鞋)”的第一对话场境。除了标识第一对话场境之外,自动助理120可以将第一断点bp1与第一对话场境相关联。尽管在图3a中将断点表示为“bp1”,但这仅出于说明性目的,并且实际上不可能由用户301讲出。

自动助理120可以询问用户301“doyouwanttoshopforaspecificcolorshoeorspecificbrand(你想要购买特定颜色鞋子还是特定品牌)?”用户301可以通过将搜索范围缩小到“blackcolorshoes(黑色的鞋子)”来响应。此时,自动助理120可能会中断谈话以提供下述陈述句:“reminder:dinnertonightat7:00atvincenzo'swithjoe.wanttomakeareservation?(提醒:今晚7:00和joe一起在vincenzo餐厅。想要进行预订吗?)”这可能是用户301先前为他自己设置以将在此特定时间递送的提醒,或者是其他人(诸如joe)触发的提醒。无论如何,对“dinner(晚餐)”和“reservation(预订)”的引用允许自动助理120标识“dinnerreservation(晚餐预订)”的第二对话场境。除了标识第二对话场境之外,自动助理120还可以将第二断点bp2与第二对话场境相关联。

用户301不再直接处理提醒,而是再次改变主题,并回答“whatistheweatherforecastfortonight(今晚天气预报怎么样)?”这可能是因为,例如,如果天气晴朗,用户301宁愿坐在外面。对“theweatherforecastfortonight(今晚天气预报)”的引用允许自动助理120标识“theweatherforecastfortonight”的第三对话场境。除了标识第三对话场境之外,自动助理120可以将第三断点bp3与第三对话场境相关联。自动助理120可以通过叙述“warmandclearskies(温暖而晴朗的天空)”来回答天气预报。

这种有利的天气预报可能会影响用户做出晚餐预订的决定。例如,用户301可以回答“makethedinnerreservationfortonightatvincenzo'swithpatioseating(今晚在具有露台座位的vincenzo餐厅进行晚餐预订)”,而不是选择在内部进餐。响应于用户301,自动助理120可以与第三方应用交互以进行晚餐预订,并且警告用户“dinnerreservationbookedfortonightat7:00atvincenzo's(预订了今晚7点在vincenzo餐厅的晚餐预订)”。

谈话在图3b中继续。用户301可以请求自动助理120“messagejoe:ibookedadinnerreservationfortonightat7:00atvincenzo'swithpatioseating(消息joe:我预订了今晚7点在具有露台座位的vincenzo餐厅的晚餐预订)”。此外,自动助理120可以通过答复“messagesenttojoe(发送给joe的消息)”来确认请求。假设用户301已经忘记了先前对话场境。如上所述,存在用户301可以采用来返回先前对话场境的多种技术。

在一些实施方式中,并且如在图3b中所图示,用户301可以通过说出“heyassistant-whatwerewetalkingabout?”返回到先前对话场境。作为响应,自动助理120可以提供先前对话场境的枚举列表,诸如“wehavetalkedabout:1)shoeshopping;2)dinnerreservation;and3)theweatherforecastfortonight(我们已经谈论过:1)购鞋;2)晚餐预定;以及3)今晚天气预报)。”如果用户301指定“shoeshopping”,则自动助理120可以通过返回到与第一断点bp1相关联的对话来返回到第一对话场境。如果用户301指定“dinnerreservation”,则自动助理120可以通过返回到与第二断点bp2相关联的对话来返回第二对话场境。如果用户301指定“theweatherforecastfortonight”,则自动助理120可以通过返回到与第三断点bp3相关联的对话来返回到第三对话场境。

如果用户301选择返回到枚举的先前对话场境之一,则自动助理120可以提供特定枚举的对话场境的摘要。例如,用户301可能会说出“backtoshoeshopping.wheredidweleaveoff(返回到购鞋。我们在哪里停止)?”自动助理120可能会回答:“youwereinterestedinblackcolorwomen'sdressshoesinsize7.didyouwanttoshopforaspecificbrand(你对7号黑色的女式正装鞋感兴趣。你想要购买特定品牌)?”用户301可以通过说出如“allbrandsthatareonsale(所有品牌都在出售)”的内容来回答。

图3c描绘了图3b中所描绘的替代对话。在一些实施方式中,并且如图3c中所图示的,用户301可以通过说“heyassistant-whatwerewetalkingabout?”来返回到直接先前对话场境。作为响应,自动助理120可以提供最新对话场境“weweretalkingabouttheweatherforecastfortonight(我们正在谈论今晚天气预报)”。然而,用户301可能想要返回到较早的对话场境,并且可以通过说出“beforethat(在此之前)”来指示这一点。作为响应,自动助理120可以提供较早的对话场境“weweretalkingaboutyourdinnerreservationtonightwithjoe(我们正在谈论今晚和joe的晚餐预订)”。此外,用户301可能想要返回(例如,进一步切换)到甚至更早的对话场境,并且可以通过说出“beforethat”来指示这一点。作为响应,自动助理120可以提供甚至更早的对话场境“weweretalkingaboutshoeshopping(我们正在谈论购鞋)”。以这种方式,用户301可以到达期望的对话场境。

在一些实施方式中,并且如图3d中所图示,用户301可以通过指定“backtoshoeshopping.wheredidweleaveoff?”返回到先前的对话场境。作为响应,自动助理120可以提供先前对话场境的摘要“youwereinterestedinblackcolorwomen'sdressshoesinsize7.didyouwanttoshopforaspecificbrand?”然后,用户可以提供口头输出,其将搜索范围缩小到“allbrandsthatareonsale”。作为响应,自动助理120可以确定“brandxandbrandyarebothhavingasaleonblackcolorwomen'sdressshoesinsize7(黑色女式正装7号鞋中的牌子x和牌子y都在出售)”。基于先前场境的对话可以继续,或者用户301可能已经充分缩小了搜索范围并说出“thanks(谢谢)”。

在图3a-d中,用户301使用口头命令在对话状态之间转变。但是,这不是限制性的。作为替代,用户301可能已经与独立交互式扬声器306上的后退按钮381进行交互。例如,独立交互式扬声器306可以包括基本的显示器-具有被布置在电容式触摸板下面的一个或者多个led,例如,其可以操作以渲染可选的后退按钮。附加地或可替代地,一些独立交互式扬声器可能包括附加触摸屏显示器,其可用于例如渲染后退按钮,或者甚至渲染概述过去对话场境、列出过去对话场境的文本(并且列出的项目可以由用户手动选择)等等。

图4是图示根据本文公开的实施方式的示例方法400的流程图。为了方便起见,参考执行该操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如实现自动助理120的计算系统的一个或多个组件。此外,尽管以特定顺序示出方法400的操作,但是这并不意味着是限制性的。一个或多个操作可能会重新排序、省略或添加。

在框452处,系统可以在用户和自动助理120之间的人机对话会话期间从用户接收自由形式的自然语言输入的一个或多个实例。这种自由形式的输入可以被键入(例如,使用消息交换客户端107)和/或被讲出,并且然后将语音识别为文本。在框454处,系统可以基于自由形式的自然语言输入的一个或多个实例来生成第一对话场境。第一对话场境可以包括例如用户的一个或多个意图以及与一个或多个意图相关联的一个或多个插槽值。

在框456处,系统可以在用户和自动助理120之间的相同人机对话会话或不同人机对话会话期间从用户接收自由形式的自然语言输入的一个或多个附加实例。自由形式的自然语言输入的这些附加实例可能与框452的主题不同的主题有关。在框458处,系统可以基于自由形式的自然语言输入的一个或多个附加实例生成第二对话场境。第二对话场境可以包括用户的一个或多个附加意图,并且可以被认为在语义上与在框454处生成的第一对话场境不同。

在框460处,系统可以从用户接收将自动助理120从第二对话场境转变回到第一对话场境的转变命令。可以使用另一种输入模态,例如,使用后退按钮来讲出或提供该命令。在框462处,系统可以基于第一对话场境生成自然语言输出,该自然语言输出传达第一对话场境的至少一个或多个意图以及第一对话场境的一个或多个插槽值。在框464处,系统可以使自然语言输出被呈现在用户操作的相同计算设备或不同计算设备上。例如,基于云的自动助理组件119可以将自然语言输出的文本传输到语音捕获/tts/stt模块114,该语音捕获/tts/stt模块114可以将文本转换为语音并经由客户端设备106的一个或多个扬声器输出。

在一些实施方式中,可以使用户脱离与自动助理120的谈话,以便与不同的软件应用接洽,在一些情况下,该软件应用可以是用户可以从与自动助理120的人机对话访问的第三方应用。例如,当自动助理120向用户呈现所谓的“深层链接”时这可能发生,用户可选择该“深层链接”来启动不同的软件应用。这样的深层链接可以由自动助理120基于例如在人机对话期间检测到的一个或多个意图或插槽值来呈现。在一些这样的实施方式中,不同的软件应用可以包括图形用户界面,该图形用户界面包括可选择的元素,诸如后退按钮,其是可选择的以转变回到可用于与自动助理120进行交互的界面,其中对话场境为在选择再次活动的深层链接之前是活动的。在其他实施方式中,用户可以操作与不同的软件应用不特定相关的后退按钮,诸如由底层操作系统渲染的后退按钮,以返回。

图5描绘根据各种实施例的用于实践本公开的所选方面的示例方法500。为了方便起见,参考执行该操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件。而且,尽管以特定顺序示出方法500的操作,但这并不意味着是限制性的。一个或多个操作可能会重新排序、省略或添加。

在框552处,系统可以在由用户操作的计算设备的一个或多个输入组件处在用户和由一个或者多个处理器至少部分实现的自动助理之间的第一人机对话期间从用户接收自由形式的自然语言输入的一个或多个实例。该操作可以类似于图4的框452。

在框554处,系统可以将用户和自动助理之间的第一人机对话的一个或多个存储的第一参数与由用户从在用户和自动助理之间的第一人机对话可访问的第一第三方应用相关联。这些参数可以存储在计算机存储器中,该计算机存储器例如位于远程服务器上和/或位于客户端设备本地。在一些实施方式中,存储一个或多个第一参数可以包括创建用于一个或多个第一参数的配置文件并且将该配置文件存储在计算机存储器中。在一些情况下,配置文件可以以诸如json的格式创建,并且实际上可以表示对话内容。作为示例用例,当作为第一人机对话的一部分呈现到第一第三方应用(例如,购鞋应用)的深层链接时,对话场境可能包括一个或多个意图、插槽值、提及的实体等(例如,所需的鞋子尺寸、样式、颜色等)可以与第一第三方应用相关联。

在框556处,系统可以在计算设备的一个或多个输入组件处在用户和自动助理之间的第二人机对话期间从用户接收自由形式的自然语言输入的一个或多个另外实例。此操作可以类似于图4的框456。

继在用户和自动助理之间的第二人机对话之后,并且响应于从用户收到从第一第三方应用转变到自动助理的转变命令,在框558处,系统可以从例如计算机存储器中检索与第一第三方应用相关联的所存储的一个或多个第一参数。在框560处,系统可以使用检索到的第一参数恢复用户和自动助理之间的第一人机对话。这样,用户可以在用户选择到第三方应用的深层链接之前恢复与自动助理的对话。

在一些实施方式中,将第一人机对话的一个或多个存储的第一参数与第一第三方应用相关联可以包括例如响应于收到从第一第三方应用转变到自动助理的转变命令而创建可调用的令牌,以检索与第一第三方应用相关联的存储的一个或多个第一参数。在一些这样的实施方式中,令牌可以采取所存储的一个或多个第一参数与第一第三方应用之间的链接的形式。

图6是示例计算设备610的框图,该示例计算设备610可以可选地用于执行本文所述技术的一个或多个方面。在一些实施方式中,客户端计算设备、用户控制的资源引擎130和/或其他组件中的一个或多个可以包括示例计算设备610的一个或多个组件。

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

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

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

存储子系统624存储提供本文所述的一些或全部模块的功能的编程和数据构造。例如,存储子系统624可以包括执行图4和图5的方法的所选方面以及实现图1中所描绘的各种组件的逻辑。

这些软件模块通常由处理器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