计算助理的延迟响应

文档序号:1590945 发布日期:2020-01-03 浏览:15次 >En<

阅读说明:本技术 计算助理的延迟响应 (Computing delayed responses of an assistant ) 是由 亚里夫·阿丹 弗拉迪米尔·武什科维奇 贝沙德·贝扎迪 于 2018-05-14 设计创作,主要内容包括:一种示例方法包括:由在一个或多个处理器处执行的计算助理接收在计算设备处说出的话语的表示;基于所述话语,识别由所述计算助理要执行的任务;响应于由计算助理确定任务的完全执行将花费超过于阈值时间量,输出向所述计算设备的用户通知所述任务的完全执行将不会立即执行的合成语音数据,以供由可操作地连接到所述计算设备的一个或多个扬声器进行回放;并由所述计算助理执行任务。(An example method includes: receiving, by a computing assistant executing at one or more processors, a representation of an utterance spoken at a computing device; identifying, based on the utterance, a task to be performed by the computing assistant; in response to determining, by a computing assistant, that full execution of a task will take more than a threshold amount of time, outputting, for playback by one or more speakers operatively connected to the computing device, synthesized speech data that informs a user of the computing device that full execution of the task will not be performed immediately; and performing a task by the computing assistant.)

计算助理的延迟响应

背景技术

一些计算平台可以提供用户界面,用户可以从该用户界面与虚拟的计算助理(例如,也称为“智能助理”或简称为“助理”)聊天、说话或否则进行通信,以使助理输出有用的信息、响应用户的需求或否则执行某些操作以帮助用户完成各种现实或虚拟任务。不幸的是,由此类助理执行的某些操作可能无法立即执行,从而使请求用户怀疑助理是否正常运行或是否发生错误。

发明内容

通常,本公开的技术可以使得在一个或多个处理器处执行的虚拟计算助理(例如,也称为“智能助理”或简称为“助理”)能够向用户通知对口语或口头请求的满意度不会是立即的。例如,计算设备可以经由麦克风接收与用户话语相对应的声学输入(例如,音频数据)。基于声音输入,计算助理可以(例如,使用语音识别)识别要执行的任务。如果计算助理确定任务的完全执行将花费比阈值时间量更长,则计算设备可以使用一个或多个扬声器输出向请求用户通知该任务的完全执行不会是立即的合成语音数据。以此方式,与仅执行任务而不向用户通知响应将被延迟相反,计算助理可以防止用户重新陈述话语。通过防止用户重新陈述话语,计算助理可以避免执行重复的任务,并且避免确定话语是重复还是要执行的新任务,这可以(例如,通过减少处理要求和/或功耗)改善计算助理的功能。

因此,通过减少对用户与设备交互的影响,可以缓解与响应时间相关的技术限制。特别地,可以避免重复的话语,其会影响诸如处理负荷、功耗和网络使用之类的技术方面。此外,该方法可以避免在已经识别任务后出现其他用户话语;在助理进行任务选择方面,这种其他话语可能没有任何有益用处,实际上可能会通过使用例如不一致的术语而引起歧义。这样,可以在助理解释用户请求上实现改进。

在一个示例中,一种方法,包括:

由在一个或多个处理器处执行的计算助理接收在计算设备处说出的话语的表示;

基于所述话语,识别要由所述计算助理执行的任务;

响应于所述计算助理确定所述任务的完全执行将花费超过阈值时间量,输出向所述计算设备的用户通知所述任务的完全执行将不会立即执行的合成语音数据,以由可操作地连接到所述计算设备的一个或多个扬声器进行回放;以及

由所述计算助理执行所述任务。

在另一示例中,一种计算系统,包括:至少一个处理器;以及包括指令的存储器,所述指令在被执行时使所述至少一个处理器执行计算助理,所述计算助理被配置为:接收在可操作地连接到计算设备的一个或多个麦克风处说出的话语的表示;基于所述话语,识别要由所述计算助理执行的任务;响应于确定所述任务的完全执行将花费超过阈值时间量,输出向所述计算设备的用户通知所述任务的完全执行将不会立即执行的合成语音数据,以由可操作地连接到所述计算设备的一个或多个扬声器进行回放;以及执行所述任务。

在另一示例中,一种计算机可读存储介质存储指令,所述指令在被执行时使计算系统的一个或多个处理器执行计算助理,所述计算助理被配置为:接收在可操作地连接到计算设备的一个或多个麦克风处说出的话语的表示;基于所述话语,识别要由所述计算助理执行的任务;响应于确定所述任务的完全执行将花费超过阈值时间量,输出向所述计算设备的用户通知所述任务的完全执行将不会立即执行的合成语音数据,以由可操作地连接到所述计算设备的一个或多个扬声器进行回放;以及执行所述任务。

在附图和以下描述中阐述了一个或多个示例的细节。根据说明书和附图以及根据权利要求书、本公开的其他特征、目的和优点将是显而易见的。

附图说明

图1是示出根据本公开的一个或多个方面的执行示例虚拟助理的示例系统的概念图。

图2是示出根据本公开的一个或多个方面的被配置为执行示例虚拟助理的示例计算设备的框图。

图3是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。

图4是示出了根据本公开的一个或多个方面的被配置为执行示例虚拟助理的示例计算设备的框图。

具体实施方式

图1是示出根据本公开的一个或多个方面的执行示例虚拟助理的示例系统的概念图。图1的系统100包括:图1包括经由网络130与搜索服务器系统180和计算设备110通信的数字助理系统160。虽然系统100被示为分布在数字助理系统160、搜索服务器系统180和计算设备110之间,但是在其他示例中,归因于系统100的特征和技术可以由计算设备110的本地组件在内部执行。类似地,数字助理系统160可以包括某些组件并执行在以下描述中否则归因于搜索服务器系统180和/或计算设备110的各种技术。

网络130表示用于在计算系统、服务器和计算设备之间传输数据的任何公共或专用通信网络,例如,蜂窝、Wi-Fi和/或其他类型的网络。数字助理系统160可以经由网络130与计算设备110交换数据,以提供当计算设备110连接至网络130时计算设备110可访问的虚拟助理服务。数字助理系统160可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。计算设备110可以经由网络130与搜索服务器系统180交换数据,以访问由搜索服务器系统180提供的搜索服务。

网络130可以包括一个或多个网络集线器、网络交换机、网络路由器或任何其他网络设备,它们可操作地相互耦合,从而提供系统160和180与计算设备110之间的信息交换。计算设备110、数字助理系统160和搜索服务器系统180可以使用任何适当的通信技术跨网络130发送和接收数据。计算设备110、数字助理系统160和搜索服务器系统180可以各自使用各自的网络链路可操作地耦合到网络130。将计算设备110、数字助理系统160和搜索服务器系统180耦合到网络130的链路可以是以太网或其他类型的网络连接,并且这样的连接可以是无线和/或有线连接。

数字助理系统160和搜索服务器系统180表示任何合适的远程计算系统,例如一个或多个台式计算机、膝上型计算机、大型机、服务器、云计算系统等,它们能够向和从诸如网络130的网络发送和接收信息。数字助理系统160托管虚拟助理服务(或至少提供对其的访问)。搜索服务器系统180托管搜索服务(或至少提供对其的访问)。在一些示例中,数字助理系统160和搜索服务器系统180表示经由云提供对它们各自的服务的访问的云计算系统。

计算设备110代表一个或多个单独的移动或非移动计算设备。计算设备110的示例包括移动电话、平板电脑、膝上型计算机、台式计算机、服务器、大型机、机顶盒、电视、可穿戴设备(例如,计算机手表、计算机眼镜、电脑手套等)、家庭自动化设备或系统(例如,智能恒温器或家庭助理设备)、个人数字助理(PDA)、游戏系统、媒体回放器、电子书阅读器、移动电视平台、汽车导航或信息娱乐系统或被配置为执行或访问虚拟助理并且经由网络(例如网络130)接收信息的任何其他类型的移动、非移动、可穿戴和不可穿戴计算设备。

数字助理系统160和/或搜索服务器系统180可以经由网络130与计算设备110通信,以使计算设备110访问由数字助理系统160提供的虚拟助理服务和/或向计算设备110提供对搜索服务器系统180提供的搜索服务的访问。在提供虚拟助理服务的过程中,数字助理系统160可以经由网络130与搜索服务器系统180进行通信,以获得用于向用户提供虚拟助理服务信息以完成任务的搜索结果。

在图1的示例中,数字助理系统160包括远程助理模块122B和用户信息数据存储124B。远程助理模块122B可以将用户信息数据存储124B保存为数字助理系统160经由网络130提供(例如,给计算设备110)的虚拟助理服务的一部分。计算设备110包括用户界面设备(UID)112、用户界面(UI)模块120、本地助理模块122A和用户信息数据存储124A。本地助理模块122A可以将用户信息数据存储124A保存为在计算设备110本地执行的虚拟助理服务的一部分。远程助理模块122B和本地助理模块122A可以统称为助理模块122A和122B。本地数据存储124A和远程数据存储124B可以被统称为数据存储124A和124B。

模块120、122A,122B和182可以使用在计算设备110、数字助理系统160或搜索服务器系统180之一处驻留和/或执行的软件、硬件、固件或硬件、软件和固件的混合来执行所描述的操作。计算设备110、数字助理系统160和搜索服务器系统180可以使用多个处理器或多个设备执行模块120、122A,122B和182。计算设备110、数字助理系统160和搜索服务器系统180可以将模块120、122A,122B和182执行为在底层硬件上执行的虚拟机。模块120、122A,122B和182可以作为操作系统或计算平台的一项或多项服务来执行。模块120、122A,122B和182可以在计算平台的应用层作为一个或多个可执行程序执行。

计算设备110的UID 112可以用作计算设备110的输入和/或输出设备。可以使用各种技术来实现UID 112。例如,UID 112可以用作使用存在敏感输入屏幕的输入设备,存在敏感输入屏幕例如是电阻式触摸屏、表面声波触摸屏、电容性触摸屏、投射电容式触摸屏、压敏屏幕、声脉冲识别触摸屏或另一种存在敏感型显示器技术。

UID 112可以用作使用麦克风技术、红外传感器技术或用于接收用户输入的其他输入设备技术的输入设备。例如,UID 112可以使用内置麦克风技术来检测UI模块120和/或本地助理模块122A为完成任务而处理的语音输入。作为另一示例,UID 112可以包括可以从计算设备110的用户接收触觉输入的存在敏感显示器。UID 112可以通过检测来自用户的一个或多个手势(例如,用户用手指或手写笔触摸或指向UID 112的一个或多个位置)来接收触觉输入的指示。

UID 112可以用作输出(例如,显示)设备并且将输出呈现给用户。UID 112可以用作使用任何一个或多个显示设备的输出设备,显示设备例如是液晶显示器(LCD)、点矩阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、电子墨水或能够向计算设备110的用户输出可见信息的类似的单色或彩色显示器。UID 112可以用作使用扬声器技术、触觉反馈技术或其他用于向用户输出信息的输出设备技术的输出设备。UID 112可以呈现与本地助理模块122A和/或远程助理模块122B提供的虚拟助理有关的用户界面。UID 112可以呈现与在计算设备110上执行和/或可从计算设备110访问的计算平台、操作系统、应用和/或服务的其他功能(例如,电子邮件、聊天、在线服务、电话、游戏等等)相关的用户界面。

UI模块120可以管理与计算设备110的UID 112和其他组件的用户交互,包括与数字助理系统160进行交互,以便经由UID 112提供助理服务。UI模块120可以使UID 112当计算设备110的用户查看输出时输出用户界面和/或在UID 112处提供输入。在不同的时间以及当用户和计算设备110位于不同的位置时,UI模块120和UID 112可以在用户与用户界面交互时从用户接收一个或多个输入指示(例如,语音输入、手势输入等)。UI模块120和UID112可以解释在UID 112处检测到的输入,并且可以将与在UID 112处检测到的输入有关的信息中继到例如本地助理模块122A和/或在计算设备110处执行的一个或多个其他相关平台、操作系统、应用和/或服务,以使计算设备110执行功能。

UI模块120可以从在计算设备110和/或一个或多个远程计算系统(例如系统160和180)处执行的一个或多个相关平台、操作系统、应用和/或服务接收信息和指令。另外,UI模块120可以充当在计算设备110处执行的一个或多个相关联的平台、操作系统、应用和/或服务与计算设备110的各种输出设备(例如,扬声器、LED指示器、音频或触觉输出设备等)之间的中介,以利用计算设备110产生输出(例如,图形、灯光、声音、触觉响应等)。

搜索模块182可以执行对被确定为与搜索模块182(例如,基于与计算设备110相关联的上下文信息)自动生成或搜索模块182从数字助理系统160或计算设备110(例如,作为虚拟助理正在代表计算设备110的用户完成的任务的一部分)接收到的搜索查询相关的信息的搜索。搜索模块182可以基于搜索查询来进行互联网搜索,以识别与来自各种信息源(例如,存储在本地或远程存储到搜索服务器系统180中)的搜索查询相关的信息(例如,天气或交通状况、新闻、股票价格、运动分值、用户排程表、运输排程表、零售价格等)。在执行搜索之后,搜索模块182可以将从搜索(例如,搜索结果)返回的信息输出到数字助理系统160或计算设备110。

计算设备110的本地助理模块122A和数字助理系统160的远程助理模块122B可以各自执行本文所述的相似功能,以自动执行被配置为为用户执行各种任务的助理。远程助理模块122B和用户信息数据存储124B代表示例虚拟助理的服务器侧或云实现,而本地助理模块122A和用户信息数据存储124A代表示例虚拟助理的客户端侧或本地实现。

模块122A和122B(统称为“助理模块122”)可各自包括各自的软件代理,这些软件代理被配置为执行智能个人助理,该智能个人助理可以为诸如计算设备110的用户之类的个人执行任务或服务。助理模块122可以基于来自各种信息源(例如,本地存储在计算设备110、数字助理系统160上,或通过搜索服务器系统180提供的搜索服务获得)的)的用户输入(例如,在UID 112处检测到)、位置感知(例如,基于上下文)和/或访问其他信息(例如,天气或交通状况、新闻、股票价格、运动分值、用户排程表、运输排程表、零售价格等)的能力来执行这些任务或服务。助理模块122提供的助理可以被认为是通用助理,因为该助理能够执行多种任务。助理模块122可以执行人工智能和/或机器学习技术,以代表用户自动识别并完成一个或多个任务。

助理模块122提供的各个助理可以被配置为在执行操作的过程中执行一个或多个任务,以满足计算设备110的用户的口语或口头请求。例如,助理模块122提供的助理可以用计算设备110的一个或多个麦克风接收声音输入(例如,音频数据),该声音输入对应于请求执行特定任务的计算设备110的用户的话语(例如,“make a reservation for fourpeople at La'French Spot at 7:30tomorrow night(明天晚上7:30在La'French Spot为四个人预订)”)。

助理模块122提供的助理可以分析音频数据以识别与口头话语相对应的任务。例如,由助理模块122提供的助理可以利用语音识别来确定“make a reservation for fourpeople at La'French Spot at 7:30tomorrow night(明天晚上7:30在La'French景点为四个人预订)”的口头话语对应于具有以下参数的预约任务:宴会大小为4,日期:明天,时间:7:30pm,地点:La'French Spot。

在一些示例中,所识别的任务的完成可能需要完成一个或多个子任务。一些示例子任务包括但不限于与除了计算设备110的用户以外的人交互(例如,通过使用合成语音发出呼叫)、进行预订、购票、计算、与一个或多个计算系统交互、执行搜索查询、创建或修改日历事件等。例如,完成预订任务可能需要:执行搜索查询以识别请求中的餐厅的第一子任务;以及,在识别的餐厅实际进行预订的第二子任务。在一些示例中,例如在特定任务的完成对请求用户而言不容易显而易见的情况下(例如,与其中某物在请求用户附近物理地移动或变化的某些家庭自动化操作相反),助理可以执行通知请求用户该任务已完成的子任务。例如,进行预约任务可以包括通知请求用户已经进行了预约的第三子任务。

助理模块122提供的助理可以执行所识别的任务。例如,继续进行预订示例,由助理模块122提供的助理可以通过向搜索服务器系统180输出找到靠近用户的当前位置(如果助理预测用户在预订时将要出行,则接近用户的预测位置)的被称为“La'French Spot”的餐馆来执行在请求中识别餐馆的子任务。在识别出餐厅之后,助理模块122提供的助理可以执行在所识别的餐厅实际进行预订的子任务。作为一个示例,如果所识别的餐厅使用(例如,经由网络130)由助理可访问的电子预订系统,则助理可以经由电子预订系统以电子方式提交预订请求。作为另一个示例,由助理模块122提供的助理可以(例如,使用由搜索服务器系统180所识别的联系信息)向所识别的餐厅发出呼叫。一旦助理完成了实际进行预订的子任务,助理就可以向发出请求用户输出已经进行了预订的指示。例如,助理可以使计算设备110的一个或多个扬声器输出合成语音数据,该数据说明“your reservation for fourpeople at La'French Spot tomorrow at 7:30pm is confirmed(确认您明天下午7:30在La'French Spot预订了四个人)”。

在一些示例中,由助理模块122提供的助理可能不能立即完成所识别的任务的执行。例如,由助理模块122提供的助理可能不能在阈值时间量(例如500毫秒、1秒,2秒、5秒、10秒、30秒等)内完成所识别的任务的执行(或所识别任务的所有子任务的完全执行)。换句话说,在用户提供口头话语时和在助理可以完成执行基于口头话语识别的任务时之间可能存在延迟。在延迟期间,用户可能担心助理模块122提供的助理无法运行或未收到原始请求。这样,用户可以重新陈述话语,这可以使由助理模块122提供的助理执行重复的任务和/或必须确定新话语是不需要其他动作的原始话语的重复还是执行新任务的请求。

根据本公开的一种或多种技术,如果不能立即(例如,在可配置的阈值时间量之内)执行任务的完全执行,则助理模块122提供的助理可以输出任务的完全执行不会立即执行的指示。例如,由助理模块122提供的助理可以输出向用户通知该任务的完全执行不会立即完成的合成语音数据,以供可操作地连接至计算设备110的一个或多个扬声器回放。以此方式,与仅执行任务而不向用户通知响应将被延迟相反,由助理模块122提供的助理可以防止用户重新陈述话语。通过防止用户重新陈述话语,由助理模块122提供的助理可以避免执行重复的任务并且避免确定话语是重复的还是要执行的新任务,这可以改善由助理模块122提供的助理的功能(例如,通过减少处理要求和/或功耗)。

由助理模块122提供的助理可以确定任务的完全执行将不是立即的,其中,任务的完全执行将花费比阈值时间量(例如500毫秒、1秒、2秒、5秒、10秒、30秒等)长的时间。助理可以基于多种因素来确定任务的完全执行是否需要比阈值时间量更长,这些因素包括但不限于完全执行所识别的任务所需的估计时间量、识别的任务类型等。

作为一个示例,由助理模块122提供的助理可以确定任务的完全执行所需的估计时间量。如果估计时间量长于阈值时间量,则由助理模块122提供的助理可以确定任务的完全执行不会立即完成。在一些示例中,助理可以基于完全执行与所识别的任务相同类型的任务的历史时间来确定估计时间量。例如,在所识别的任务是从流行的票务代理网站预订票的情况下,助理可以基于助理过去从流行的票务代理网站预订票所花费的时间来确定完全执行所识别的任务所需的估计时间量。在一些示例中,助理可以基于附加的上下文信息来确定估计时间量。例如,在所识别的任务是流行的票务代理网站预订票的情况下,助理可以基于票的发行日期、特定组/动作/活动的受欢迎程度、票务代理指示的等待时间、队列长度等的一个或多个来确定估计时间量。

作为另一个示例,助理可以响应于确定任务(或组成子任务)不适合立即执行而确定任务的完全执行将花费超过阈值时间量。例如,可以预先确定一个或多个任务不适合立即执行(例如,因为一个或多个任务的执行可能不一定能够立即执行)。由助理模块122提供的助理可访问的任务数据存储可以指示哪些任务不适合立即执行。一些可能不适合立即执行的示例任务包括但不限于与计算设备用户以外的其他人进行交互、进行预订、购票、需要大量计算的任务(例如,使用大量机器学习模型)、与一个或多个预先确定为慢的计算机系统进行交互以及需要发生未来事件的任务(例如,必须等到票实际发售、提供当前正在进行的体育比赛的最终分值等等)。如上所述,助理完全执行一项任务可能涉及多个子任务的执行。这样,如果特定任务的一个或多个子任务不适合立即执行,则助理可以确定特定任务的完全执行将花费超过阈值时间量。

在一些示例中,阈值时间量(例如,用于确定任务的完全执行是否将不立即执行的阈值)可能不是用户可调整的。在一些示例中,阈值时间量可以是用户可调的。例如,用户可以提供指定阈值时间量的输入。这样,与不同用户相关联的助理在确定是否向其各自的用户警告该任务的完全执行不会立即执行时可能会使用不同的阈值时间量。

在一些示例中,阈值时间量对于每个任务或每种任务类型可以是相同的。例如,当确定订购票任务的完全执行是否将立即执行时以及当确定搜索查询任务的完全执行是否将立即执行时,助理可以使用相同的阈值。在一些示例中,阈值时间量可以取决于任务。例如,助理当确定复杂任务(例如,订购票任务)的完全执行是否将立即执行时可以使用第一阈值,而在确定简单任务(例如搜索查询任务)的完全执行将立即执行时可以使用第二阈值(例如,其比第一阈值短)。作为示例,由于用户期望执行更复杂的任务会有一些延迟,当确定复杂任务的执行不是立即执行的(例如,“working(正在工作)”的合成语音)时,助理可以输出不同的指示(即延迟通知),而对于被确定为要花费较少时间的较简单的任务(例如,在互联网连接不佳或网站瘫痪的情况下),助理可以使用较短的阈值来触发延迟通知。

助理模块122提供的助理可以能够实现对任务中等执行的修改。例如,在输出向计算设备110的用户通知任务的完全执行将不立即执行的合成语音数据之后但是在实际完成任务的完全之前,助理可以利用计算设备110的一个或多个麦克风来接收对应于计算设备110的用户请求对当前正在执行的任务的执行的修改(例如,“change the reservation tofive people(将预定改变为五个人)”)的话语的声音输入(例如,音频数据)。一些示例修改包括但不限于改变预订或购票的时间和/或日期、改变预订或购票中包括的人数。

助理然后可以基于话语来修改任务的执行。例如,如果助理当前正在与进行预订的餐馆通话,则该助理可以输出合成语音数据作为与餐馆的员工进行的对话的一部分,以供与该餐馆相关联的设备可操作地连接的一个或多个扬声器进行回放,该餐馆接受请求预订5人(与原来的4人相反)的预订。

助理模块122提供的助理可以使用户能够检查当前正在执行的任务的状态。作为一个示例,在输出向计算设备110的用户通知任务的完全执行不会立即执行的合成语音数据之后但是在实际完全任务的执行之前,助理可以利用计算设备110的一个或多个麦克风来接收声音输入(例如,音频数据),其对应于请求当前正在执行的任务的执行的状态的计算设备110的用户的话语(例如,“have the tickets been booked yet(已经预订了票)”)。响应于接收到话语请求状态,助理可以输出合成语音数据(其向用户通知执行任务的状态),以供可操作性地连接至计算设备110的一个或多个扬声器回放。在一些示例中,向用户通知任务的执行状态的合成语音数据可以包括对助理预测直到任务的执行完成的时间多长的估计(例如,“about five more minutes(大约再五分钟)”)。作为另一示例,由助理模块122提供的助理可以查询用户是否他们想要接收任务的执行状态的定期更新。例如,由助理模块122提供的助理可以输出合成语音数据“shall I provide an update every fewhours(我应当每隔几个小时提供一次更新吗)?”或类似者。作为另一示例,由助理模块122提供的助理可以使计算设备110显示该助理正在执行任务的视觉指示器。例如,在执行任务时(例如,在向计算设备110的用户通知该任务的完全执行将不会立即执行之后),由助理模块122提供的助理可以使计算设备110打开灯或其他视觉指示器,其指示助理正在执行任务。

助理模块122提供的助理可以使用户能够取消或退出当前正在执行的任务。作为一个示例,如果在检查当前正在执行的任务的状态之后用户确定该任务将不会足够快地完成,则用户可以口头或以其他方式向计算设备110提供输入以使由助理模块122提供的助理取消或退出任务。作为另一示例,如果由助理模块122提供的助理确定当前正在执行的任务的完全执行将花费太长时间(例如,如果直到任务变得无关紧要之前不会出现完全执行),则助理可以输出询问用户是否他们希望助理继续执行任务或取消或退出任务的合成语音数据。作为另一示例,如果在执行任务之前,由助理模块122提供的助理确定用于任务的完全执行的估计时间量将花费太长的时间(例如,长于阈值),则助理可以输出指示估计时间量并且询问用户他们是否希望助理执行任务或取消任务的合成语音数据。

由远程助理模块122B和本地助理模块122A提供的各个助理可以在执行用于支持与计算设备110的用户的对话的操作的过程中,自动创建、生成或否则维护在对话期间所获得的信息的个人记录,将个人记录存储为特定于用户的值,以结构化和语义的方式分别存储为用户信息数据存储124B和用户信息数据存储124A。数据存储124B和124A可以分别使由远程助理模块122B和本地助理模块122A执行的相应助理能够快速访问个人信息(例如,特定于用户的值)以完成实际任务、虚拟任务或否则响应于计算设备110的用户的即时或未来需求。为了便于描述,主要从由本地助理模块122A执行的角度描述本公开的技术。

助理模块122A和122B可以将用户信息数据存储124A和124B维护为助理模块122A和122B一起或分别提供给计算设备110的虚拟助理服务的一部分。助理模块122提供的助理可以在执行用于支持与计算设备110的用户的对话的操作的过程中,维护从对话中自动剔除的信息的个人记录,并以结构化和语义的方式将个人记录存储为用户信息数据存储124A和124B。数据存储124A和124B可以使由助理模块122A和122B执行的助理能够快速访问个人信息以完成现实任务、虚拟任务,或者否则响应于计算设备110的用户的即时和/或未来需求。

助理模块122A和122B仅在首先从用户接收这样做的明确许可之后才可以保留与计算设备110的用户相关联的个人记录。因此,用户可以完全控制助理如何收集和使用有关用户的信息,包括权限设置和自动化操作使用历史记录。例如,在保留与计算设备110的用户相关联的信息之前,助理模块122A和122B可以使UI模块120经由UID 112呈现用户界面,该UID 112请求用户选择框、单击按钮,陈述语音输入或否则向用户界面提供特定输入,该特定输入由助理模块122A和122B解释为助理模块122A和122B收集并利用用户的个人信息的明确肯定的同意。

助理模块122A和122B可以在将个人信息存储在数据存储124A和124B之前,将维护的信息加密或否则视为保存为个人记录,以删除用户的实际身份。例如,信息可以由助理模块122A和122B处理,使得当存储在数据存储124A和124B中时,任何可个人识别的信息都将从用户的个人记录中删除。

助理模块122A和122B可以使UI模块120经由UID 112呈现用户界面,计算设备110的用户可以从UID 112修改信息或从存储在数据存储124A和124B的个人记录中删除信息。例如,用户界面可以提供计算设备110的用户可以在其处提供输入以将修改或移除个人信息的特定部分的命令传达给助理模块122A和122B的区域。以这种方式,计算设备110的用户可以完全控制由助理模块122A和122B在数据存储124A和124B处保留的信息。

数据存储124A和124B存储的个人记录中的每个条目可以与预定义模式相关联,该预定义模式可以由助理模块122A和122B快速遍历或解析以找到助理模块122A和122B在当前时间需要的信息以了解用户需求并帮助用户完成任务。一旦个人信息已经被记录为特定于用户的一个或多个值,则助理模块122A和122B可以快速使用存储在数据存储124A和124B中的信息来完成任务。如果没有正在进行的任务,则助理模块122A和122B可以为用户提供助理可以在未来如何使用该信息来帮助用户的示例。用户随后可以在UID 112处提供输入以命令助理模块122A和122B忘记或修改该信息。

数据存储124A和124B存储的值可以是文本值(例如,人名、地名、实体的其他文本描述符)、数值(例如,年龄、身高、体重、其他生理数据、其他与实体相关联的数字信息)或指向特定于用户的值的指针(例如,指向在用户的知识图谱中的实体的存储器中的位置、指向地址簿中的联系人的存储器中的位置等)。换句话说,特定于用户的值可以采用多种形式,并且特定于由记录模式定义的个人记录的字段。该值可以指示特定于用户的实际信息,或者可以是可以从中检索特定于用户的信息的位置的引用。

通过访问数据存储124A和124B,可以将由助理模块122提供的助理视为对用户是个性化的。例如,由助理模块122提供的助理可能能够使用特定于请求用户的信息来执行任务,而其他用户通常无法获得该信息。

图2是示出根据本公开的一个或多个方面的被配置为执行示例虚拟助理的示例计算设备的框图。下面将图2的计算设备210描述为图1的计算设备110的示例。图2仅示出了计算设备210的一个特定示例,并且计算设备210的许多其他示例可以在其他实例中使用,并且可以包括示例计算设备210中包括的组件的子集,或者可以包括图2中未示出的附加组件。

如在图2的示例中所示,计算设备210包括用户界面设备(UID)212、一个或多个处理器240、一个或多个通信单元242、一个或多个输入组件244、一个或多个输出组件246以及一个或多个存储组件248。UID 212包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。计算设备210的存储组件248包括UI模块220、助理模块222、搜索模块282、一个或多个应用模块226、上下文模块230、用户信息数据存储224、用户识别模块232、动作识别模块234和授权模块236。

通信信道250可以互连组件212、240、242、244、246和248中的每一个,以进行组件间通信(物理地、通信地和/或可操作地)。在一些示例中,通信信道250可以包括系统总线、网络连接、进程间通信数据结构或用于传递数据的任何其他方法。

计算设备210的一个或多个通信单元242可以通过在一个或多个网络(例如,图1的系统100的网络130)上发送和/或接收网络信号经由一个或多个有线和/或无线网络与外部设备(例如,图1的系统100的数字助理系统160和/或搜索服务器系统180)通信。通信单元242的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、GPS接收器或可以发送和/或接收信息的任何其他类型的设备。通信单元242的其他示例可以包括短波无线电装置、蜂窝数据无线电装置、无线网络无线电装置以及通用串行总线(USB)控制器。

计算设备210的一个或多个输入组件244可以接收输入。输入的示例是触觉、音频和视频输入。在一个示例中,计算设备210的输入组件242包括存在敏感输入设备(例如,触摸屏、PSD)、鼠标、键盘、语音响应系统、相机、麦克风或用于检测来自人或机器的输入的任何其他类型的设备。在一些示例中,输入组件242可以包括一个或多个传感器组件、一个或多个位置传感器(GPS组件、Wi-Fi组件、蜂窝组件)、一个或多个温度传感器、一个或多个运动传感器(例如,加速度计、陀螺仪)、一个或多个压力传感器(例如、,气压计)、一个或多个环境光传感器以及一个或多个其他传感器(例如,红外接近传感器、湿度计传感器等)。仅举几个其他非限制性示例,其他传感器可以包括心率传感器、磁力计、葡萄糖传感器、嗅觉传感器、罗盘传感器、步数计数器传感器。

计算设备110的一个或多个输出组件246可以生成输出。输出的示例是触觉、音频和视频输出。在一个示例中,计算设备210的输出组件246包括存在敏感显示器、声卡、视频图形适配器卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或用于产生对人或机器的输出的任何其他类型的设备。

计算设备210的UID 212可以类似于计算设备110的UID 112,并且包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。显示组件202可以是屏幕,在此信息由UID 212显示,而存在敏感的输入组件204可以检测到显示组件202处和/或附近的对象。扬声器组件208可以是扬声器,UID 212从其回放可听信息,而麦克风组件206可以检测到在显示组件202和/或扬声器组件208处和/或附近提供的可听输入。

虽然被示为计算设备210的内部组件,但是UID 212也可以表示与计算设备210共享数据路径以发送和/或接收输入和输出的外部组件。例如,在一个示例中,UID 212表示位于计算设备210的外部包装内并物理连接到计算设备210的外部包装(例如,移动电话上的屏幕)的计算设备210的内置组件。在另一个示例中,UID 212表示位于计算设备210的包装或外壳的外部并且与计算设备210的包装或外壳物理分离的计算设备210的外部组件(例如,监视器、投影仪等,其与计算设备210共享有线和/或无线数据路径)。

作为一个示例范围,存在敏感输入组件204可以检测在显示组件202的两英寸或更短范围内的物体,例如手指或手写笔。存在敏感输入组件204可以确定显示组件204的在其检测到物体的位置(例如,[x,y]坐标)。在另一个示例范围中,存在敏感输入组件204可以检测到距离显示组件202六英寸或更少的物体,其他范围也是可能的。存在敏感输入组件204可以使用电容、感应和/或光学识别技术来确定由用户的手指选择的显示组件202的位置。在一些示例中,如关于显示组件202所述,存在敏感输入组件204还使用触觉、音频或视频刺激向用户提供输出。在图2的示例中,UID 212可以呈现用户界面(诸如图形用户界面)。

扬声器组件208可以包括内置在计算设备210的外壳中的扬声器,并且在一些示例中,可以是内置在一组可操作地耦合到计算设备210的有线或无线耳机中的扬声器。麦克风组件206可以检测在UID 212处或附近发生的可听输入。麦克风组件206可以执行各种噪声消除技术以去除背景噪声并从检测到的音频信号中隔离用户语音。

计算设备210的UID 212可以检测到二维和/或三维手势作为来自计算设备210的用户的输入。例如,UID 212的传感器可以检测到在UID 212的传感器的阈值距离之内的用户的运动(例如,移动手、手臂、钢笔、手写笔等)。UID 212可以确定运动的二维或三维矢量表示并将矢量表示与具有多维的手势输入(例如,手波、捏、鼓掌、笔触等)相关联。换句话说,UID 212可以检测多维手势,而无需用户在UID 212输出用于显示的信息的屏幕或表面处或其附近做出手势。而是,UID 212可以检测在传感器处或附近执行的多维手势,该传感器可以位于或可以不位于UID 212输出用于显示的信息的屏幕或表面附近。

一个或多个处理器240可以实现功能和/或执行与计算设备210相关联的指令。处理器240的示例包括应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器以及配置为用作以下部分的任何其他硬件:处理器、处理单元或处理设备。模块220、222、226、230和282可以由处理器240操作以执行计算设备210的各种动作、操作或功能。例如,计算设备210的处理器240可以检索并执行由存储组件248存储的指令,其使处理器240执行操作模块220、222、226、230和282。指令在由处理器240执行时可以使计算设备210在存储组件248内存储信息。

计算设备210内的一个或多个存储组件248可以存储用于在计算设备210的操作期间进行处理的信息(例如,计算设备210可以存储在计算设备210处的执行期间由模块220、222、226、230和282访问的数据)。在一些示例中,存储组件248是暂时存储器,这意味着存储组件248的主要目的不是长期存储。计算设备210上的存储组件248可以被配置用于作为易失性存储器短期存储信息,并且因此如果断电则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。

在一些示例中,存储组件248还包括一个或多个计算机可读存储介质。在一些示例中,存储组件248包括一个或多个非暂时性计算机可读存储介质。存储组件248可以被配置为存储比通常由易失性存储器存储的信息量更多的信息量。存储组件248可以进一步被配置用于作为非易失性存储空间长期存储信息,并且在通电/断电周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)的形式。存储组件248可以存储与模块220、222、226、230和282以及数据存储224相关联的程序指令和/或信息(例如,数据)。存储组件248可以包括被配置为存储与模块220、222、226、230和282相关联的数据或其他信息的存储器以及数据存储224。

UI模块220可以包括图1的计算设备110的UI模块120的所有功能,并且可以执行与UI模块120类似的操作,该UI模块120用于管理计算设备210在例如UID 212处提供的用户界面,以促进计算设备110的用户与助理模块222之间的交互。例如,计算设备210的UI模块220可以从助理模块222接收信息,该信息包括用于输出(例如,显示或回放音频)助理用户界面的指令。UI模块220可以通过通信信道250从助理模块222接收信息,并且使用该数据来生成用户界面。UI模块220可以在通信信道250上发送显示或可听输出命令以及相关联的数据,以使UID 212在UID 212处呈现用户界面。

在一些示例中,UI模块220可以接收对在UID 212处检测到的一个或多个用户输入的指示,并且可以将关于用户输入的信息输出到助理模块222。例如,UID 212可以检测到来自用户的语音输入,并且将关于语音输入的数据发送到UI模块220。UI模块220可以将语音输入的指示发送到助理模块222以用于进一步解释。助理模块222可以基于语音输入确定检测到的语音输入代表助理模块222执行一个或多个任务的用户请求。

应用模块226代表在计算设备210上执行并可以从其访问的所有各种单独的应用和服务,这些可以由诸如助理模块222之类的助理访问以向用户提供信息和/或执行任务。计算设备210的用户可以与和一个或多个应用模块226相关联的用户界面进行交互,以使计算设备210执行功能。应用模块226的许多示例可以存在并且包括健身应用、日历应用、搜索应用、地图或导航应用、运输服务应用(例如,公共汽车或火车跟踪应用)、社交媒体应用、游戏应用、电子邮件应用、聊天或消息传递应用、互联网浏览器应用或可以在计算设备210上执行的任何其他应用。

计算设备210的搜索模块282可以代表计算设备210执行集成的搜索功能。搜索模块282可以由UI模块220、一个或多个应用模块226和/或助理模块222调用以代表它们进行搜索操作。当被调用时,搜索模块282可以执行搜索功能,诸如生成搜索查询并基于跨各种本地和远程信息源生成的搜索查询来执行搜索。搜索模块282可以将执行的搜索的结果提供给调用组件或模块。也就是说,响应于调用命令,搜索模块282可以将搜索结果输出到UI模块220、助理模块222和/或应用模块226。

上下文模块230可以收集与计算设备210相关联的上下文信息以定义计算设备210的上下文。具体地,上下文模块230主要由助理模块222用来定义计算设备210的上下文,该上下文指定计算设备210以及计算设备210的用户在特定时间的物理和/或虚拟环境的特征。

如在整个公开中所使用的,术语“上下文信息”用于描述上下文模块230可以用来定义计算设备以及计算设备的用户在特定时间可能会体验的虚拟和/或物理环境特征的任何信息。上下文信息的示例很多,并且可以包括:由计算设备210的传感器(例如,位置传感器、加速计、陀螺仪、气压计、环境光传感器、接近传感器、麦克风和任何其他传感器)获得的传感器信息、计算设备210的通信模块发送和接收的通信信息(例如,基于文本的通信、音频通信、视频通信等)以及与在计算设备210执行的应用相关联的应用使用信息(例如,与应用相关的应用数据、互联网搜索历史、文字通信、语音和视频通信、日历信息、社交媒体帖子及相关信息等)。上下文信息的其他示例包括从计算设备210外部的发送设备获得的信号和信息。例如,上下文模块230可以经由计算设备210的无线电或通信单元接收从位于商人的物理位置之处或附近的外部信标发送的信标信息。

助理模块222可以包括图1的计算设备110的本地助理模块122A的所有功能,并且可以执行与用于提供助理的本地助理模块122A类似的操作。在一些示例中,助理模块222可以在本地(例如,在处理器240处)执行以提供助理功能。在一些示例中,助理模块222可以充当计算设备210可访问的远程助理服务的界面。例如,助理模块222可以是图1的数字助理系统160的远程助理模块122B的界面或应用程序接口(API)。助理模块222除上下文模块230和/或搜索模块282提供的任何信息之外,还可以依赖于存储在数据存储224中的信息来执行助理任务。

助理模块222提供的助理可以被配置为在执行操作的过程中执行一个或多个任务,以满足计算设备210的用户的口语或口头请求。例如,助理模块222提供的助理可以使用计算设备210的一个或多个麦克风接收对应于请求执行特定任务的计算设备210的用户的话语的声学输入(例如,音频数据)。助理模块222提供的助理可以分析音频数据以识别与口头话语相对应的任务。

根据本公开的一种或多种技术,如果不能立即(例如,在可配置的阈值时间量之内)执行任务的完全执行,则由助理模块222提供的助理可以输出任务的完全执行不会立即执行的指示。例如,由助理模块222提供的助理可以输出向用户通知该任务的完全执行将不会立即执行的合成语音数据,以供可操作地连接至计算设备210的一个或多个扬声器回放。以此方式,与仅执行任务而不向用户通知响应将被延迟相反,由助理模块222提供的助理可以防止用户重新陈述话语。通过防止用户重新陈述话语,由助理模块222提供的助理可以避免执行重复的任务,并且避免确定话语是重复的还是要执行的新任务,这可以(例如,通过减少处理要求和/或功耗)改善由助理模块222提供的助理的功能。

图3是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。下面在图1的系统100的上下文中描述图3。例如,根据本公开的一个或多个方面,本地助理模块122A在计算设备110的一个或多个处理器处执行时可以执行操作302-312中的一个或多个。并且在一些示例中,根据本公开的一个或多个方面,远程助理模块122B在数字助理系统160的一个或多个处理器处执行时可以执行操作302-312。仅出于举例说明的目的,下面在图1的计算设备110的上下文中描述图3。

在操作中,计算设备110可以接收由计算设备110的一个或多个麦克风生成的音频数据,该音频数据表示说出的话语(302)。例如,响应于识别出说出的触发短语,计算设备110可以接收表示由用户计算设备110提供的口头话语的音频数据。

计算设备110可以基于音频数据来识别要执行的任务(304)。例如,如果话语是用户说“book me and my wife tickets to the later performance of Les Joyeux onour anniversary(为我和我的妻子预订在我们周年纪念日的Les Joyeux的以后演出)”,则计算设备110可以识别预订票任务,该预订票任务具有下述子任务:识别周年纪念日、识别在识别的周年纪念日的Les Joyeux的以后演出的时间、预订票并向用户确认预订。

计算设备110可以确定任务的完全执行是否将花费超过阈值时间量(306)。作为一个示例,计算设备110可以确定用于任务的完全执行(例如,所有子任务的完全执行)的估计时间量。如果估计时间量大于阈值时间量,则计算设备可以确定任务的执行将花费超过阈值时间量。作为另一示例,计算设备110可以确定任务或任何子任务是否不适合立即执行。在上面预订Les Joyeux的票中,计算设备110可以确定实际预订票的子任务包括与剧院的雇员交互的计算助理,并且涉及与计算设备110的用户之外的人交互的任务或子任务不适合立即执行。

响应于确定任务的完全执行将花费超过阈值时间量(308的“Yes(是)”分支),计算设备110可以输出向用户通知任务的完全执行将不会立即执行的合成语音数据,以供可操作地连接到计算设备110的一个或多个扬声器回放。例如,合成语音数据可能会指出“I amworking on booking the tickets and will let you know when the booking iscomplete(我正在预订票,并在预订完成时通知您)”。

在一些示例中,向用户通知该任务的完全执行将不会立即执行的合成语音数据可以是指示对话语的部分或较低置信度响应且计算助理将在未来以完全或更高的置信度响应跟随的合成语音数据。例如,在任务是搜索查询的情况下,合成语音数据可以指示对搜索查询的部分或较低置信度响应。

计算设备110可以执行任务(310)。例如,计算设备110可以咨询用户信息数据存储124A以确定用户的周年纪念日是6月9日,向搜索服务器系统180输出请求以查找在确定的周年纪念日何时执行Les Joyeux,预订在确定的周年纪念日上进行最新表演的票,并向用户确认预订。

图4是示出了根据本公开的一个或多个方面的被配置为执行示例虚拟助理的示例计算系统的框图。下面将图4的助理服务器系统460描述为图1的数字助理系统160的示例。图4仅示出了助理服务器系统460的一个特定示例,并且助理服务器系统460的许多其他示例可以在其他实例中使用,并且可以包括在示例助理服务器系统460中包括的组件的子集,或者可以包括在图4中未示出的附加组件。

如在图4的示例中所示,助理服务器系统460包括用户一个或多个处理器440、一个或多个通信单元442以及一个或多个存储组件448。存储组件448包括助理模块422、搜索模块482、上下文模块430和用户信息数据存储424。

处理器440类似于图2的计算系统210的处理器240。通信单元442类似于图2的计算系统210的通信单元242。存储设备448类似于图2的计算系统210的存储设备248。通信信道450类似于图2的计算系统210的通信信道250,并且因此可以互连组件440、442和448中的每一个,以进行组件间通信。在一些示例中,通信信道450可以包括系统总线、网络连接、进程间通信数据结构或用于传递数据的任何其他方法。

助理服务器系统460的搜索模块482与计算设备210的搜索模块282类似,并且可以代表助理服务器系统460执行集成的搜索功能。也就是说,搜索模块482可以代表助理模块422执行搜索操作。在一些示例中,搜索模块482可以与诸如搜索服务器系统180之类的外部搜索系统对接,以代表助理模块422执行搜索操作。被调用时,搜索模块482可以执行搜索功能,例如生成搜索查询和根据跨各种本地和远程信息源生成的搜索查询执行搜索。搜索模块482可以将执行的搜索的结果提供给调用组件或模块。即,搜索模块482可以将搜索结果输出到助理模块422。

助理服务器系统460的上下文模块430类似于计算设备210的上下文模块230。上下文模块430可以收集与诸如图1的计算设备110和图2的计算设备210之类的计算设备相关联的上下文信息,以定义计算设备的上下文。上下文模块430可以主要由助理模块422和/或搜索模块482用来定义对接和访问由数字助理系统160提供的服务的计算设备的上下文。上下文可以指定计算设备和计算设备的用户在特定时间的物理和/或虚拟的环境的特性。

助理模块422可以包括图1的本地助理模块122A和远程助理模块122B以及2的计算设备210的助理模块222的所有功能。助理模块422可执行与远程助理模块122B类似的操作,以提供经由助理服务器系统460可访问的助理服务。也就是说,助理模块422可充当可以通过网络与助理服务器系统460通信的计算设备可访问的远程助理服务的界面。例如,助理模块422可以是图1的数字助理系统160的远程助理模块122B的界面或API。助理模块422除上下文模块430和/或搜索模块482提供的任何信息之外,还可以依赖于存储在数据存储424中的信息来执行助理任务。

助理模块422提供的助理可以被配置为在执行操作的过程中执行一个或多个任务,以满足计算设备(例如,图1的计算设备110)的用户的口语或口头请求。例如,由助理模块422提供的助理可以使用计算设备的一个或多个麦克风接收对应于计算设备的用户请求特定任务的执行的话语的声学输入(例如,音频数据)。助理模块422提供的助理可以分析音频数据以识别与口头话语相对应的任务。

根据本公开的一种或多种技术,如果不能立即(例如,在可配置的阈值时间量内)执行任务的完全执行,则由助理模块422提供的助理可以输出任务的完全执行不会立即执行的指示。例如,由助理模块422提供的助理可以输出向用户通知该任务的完全执行将不会立即完成的合成语音数据,以便由可操作地连接至计算设备的一个或多个扬声器进行回放。以此方式,与仅执行任务而不向用户通知响应将被延迟相反,由助理模块422提供的助理可以防止用户重新陈述话语。通过防止用户重新陈述话语,由助理模块422提供的助理可以避免执行重复的任务并且避免确定话语是重复的还是要执行的新任务,这可以(例如,通过减少处理要求和/或功耗)改善由助理模块422提供的助理的功能。

以下示例可以说明本公开的一个或多个方面:

示例1.一种方法,包括:由在一个或多个处理器处执行的计算助理接收在计算设备处说出的话语的表示;基于所述话语,识别要由所述计算助理执行的任务;响应于由所述计算助理确定所述任务的完全执行将花费超过阈值时间量,输出向所述计算设备的用户通知所述任务的完全执行将不会立即执行的合成语音数据,以由可操作地连接到所述计算设备的一个或多个扬声器进行回放;以及由所述计算助理执行所述任务。

示例2.根据示例1所述的方法,还包括:确定所述任务的完全执行的估计时间量,其中,确定所述任务的完全执行将花费超过所述阈值时间量包括确定所述估计时间量大于所述阈值时间量。

示例3.根据示例2所述的方法,其中,确定所述估计时间量包括:基于用于与所述识别的任务相同类型的任务的完全执行的历史时间来确定用于所述识别的任务的完全执行的估计时间量。

示例4.根据示例1至3中的任一项所述的方法,其中,输出向所述计算设备的所述用户通知所述任务的完全执行将不会立即执行的所述合成语音数据包括:输出包括用于所述任务的完全执行的所述估计时间量的合成语音数据,以由可操作地连接到所述计算设备的所述一个或多个扬声器进行回放。

示例5.根据示例1至4中的任一项所述的方法,还包括:确定所述任务的完全执行涉及所述计算助理执行一个或多个子任务;以及响应于确定所述一个或多个子任务中的至少一个在任务数据存储中被标记为不适合立即执行,确定所述任务的完全执行将花费超过所述阈值时间量。

示例6.根据示例5所述的方法,其中,确定所述任务的完全执行涉及所述计算助理执行一个或多个子任务包括:确定所述任务的完全执行涉及所述计算助理执行与除所述计算设备的所述用户之外的人进行交互的子任务;以及基于所述任务数据存储,确定与除所述计算设备的所述用户之外的所述人进行交互的所述子任务不适合立即执行。

示例7.根据示例6所述的方法,其中,与除所述计算设备的所述用户之外的所述人进行交互包括:由所述计算助理输出合成语音数据作为与除所述计算设备的所述用户之外的所述人的对话的一部分以由可操作地连接到与除所述计算设备的所述用户之外的所述人相关联的设备的一个或多个扬声器进行回放。

示例8,根据示例5所述的方法,其中,在所述任务数据存储中标记为不适合立即执行的子任务包括以下中的一个或多个:所述计算助理与除所述计算设备的用户以外的人交互的子任务;所述计算助理进行预订的子任务;所述计算助理购票的子任务;需要大量计算的子任务;所述计算助理与一个或多个预定为慢的计算系统交互的子任务;以及要求发生未来事件的子任务。

示例9.根据示例1-8的任意组合的方法,其中,所述话语是第一话语,其中,向所述计算设备的所述用户通知所述任务的完全执行将不会立即执行的所述合成语音数据在第一时间被输出,并且其中,所述方法还包括:所述计算助理在比所述第一时间晚的第二时间接收在所述计算设备处说出的第二话语的表示,所述第二话语包括对所述任务的执行状态的请求;以及输出向所述计算设备的所述用户通知所述任务的所述执行状态的合成语音数据,以由可操作地连接到所述计算设备的所述一个或多个扬声器进行回放。

示例10.根据示例1-9的任意组合的方法,其中,所述话语是第一话语,所述方法还包括:由所述计算助理在所述任务的执行完成之前,接收在所述计算设备处说出的第三话语的表示,所述第三话语包括修改所述任务的一个或多个参数的请求;以及由所述计算助理执行具有所述修改的一个或多个参数的所述任务。

示例11,根据示例10所述的方法,其中,修改所述任务的一个或多个参数的所述请求包括以下中的一个或多个:改变预订或购票的时间的请求;以及改变在预订或购票中包括的人数的请求。

示例12.根据示例1-11的任意组合的方法,其中,输出向所述计算设备的所述用户通知所述任务的完全执行将不会立即执行的所述合成语音数据包括:输出指示对所述话语的部分或较低置信度响应并且所述计算助理将来将以完全或较高置信度响应进行跟进的合成语音数据以由可操作地连接到所述计算设备的一个或多个扬声器进行回放。

示例13.根据示例12所述的方法,其中,识别所述任务包括:基于所述话语来识别搜索查询,并且其中,指示对所述话语的所述部分或较低置信度响应的所述合成语音数据包括指示对所述搜索查询的部分或较低置信度响应的合成语音数据。

示例14.根据示例1-13的任意组合的方法,其中,所述计算助理是能够执行除所述识别的任务以外的任务的通用计算助理。

示例15.根据示例1-14的任意组合的方法,其中,所述计算助理是针对所述用户个性化的。

示例16.根据示例1-15的任意组合的方法,还包括:在所述计算设备上并且在所述任务的完全执行之前显示所述助理正在执行所述任务的视觉指示器。

示例17.一种计算系统,包括:通信模块;至少一个处理器;以及,包括指令的至少一个存储器,所述指令在被执行时使至少一个处理器提供被配置为执行示例1-16的任意组合的方法的助理。

示例18.一种计算系统,包括:通信模块;以及用于执行示例1-16的任意组合的方法的装置。

示例19.一种计算机可读存储介质,包括指令,所述指令在被执行时使计算系统的至少一个处理器执行示例1-16的任意组合的方法。

在一个或多个示例中,可以以硬件、软件、固件或其任意组合来实现所描述的功能。如果以软件实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且可以由基于硬件的处理单元执行。计算机可读介质可以包括:一个或多个计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质;或者,通信介质,包括例如根据通信协议的任何有助于将计算机程序从一个地方转移到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于:(1)有形计算机可读存储介质,其是非暂时性的;或者(2)通信介质,例如信号或载波。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁性存储设备、闪存或可以用于以指令或数据结构形式存储所需程序代码并且可以由计算机访问的任何其他存储介质。而且,任何连接都适当地称为计算机可读介质。例如、如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外、无线电和微波)从网站、服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波之类的无线技术。但是,应该理解,一个或多个计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是相反针对非瞬态有形存储介质。本文所使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,一个或多个处理器例如是一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成处理器或执行器分立逻辑电路。因此,本文所使用的术语“处理器”可以指任何前述结构或适合于实现本文所述技术的任何其他结构。另外,在一些方面,可以在专用硬件和/或软件模块内提供本文描述的功能。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。

本公开的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的多种设备或装置中实现。在本公开中描述各种组件、模块或单元以强调被配置以执行所公开的技术的设备的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在硬件单元中或由与合适的软件和/或固件结合的互操作的硬件单元的集合提供,该集合包括如上所述的一个或多个处理器。

已经描述了各种实施例。这些和其他实施例在所附权利要求的范围内。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:间隔件和硬盘驱动器装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!