被配置为自动定制动作组的虚拟助手的制作方法

文档序号:19877766发布日期:2020-02-08 06:37阅读:209来源:国知局
被配置为自动定制动作组的虚拟助手的制作方法



背景技术:

一些计算平台可以提供用户界面,用户可以从该用户界面与虚拟、智能、或计算助手(例如,也简称为“助手”)聊天、说话或以其他方式进行通信,以使该助手输出信息,响应用户需求或以其他方式执行某些操作以帮助用户执行动作。例如,计算设备可以利用麦克风来接收与用户话语相对应的语音输入(例如,音频数据)。至少部分地在计算设备处执行的助手可以分析语音输入并且可以基于话语执行动作。助手可以基于话语执行单个动作。助手可以基于针对助手的所有用户的话语执行相同的动作。



技术实现要素:

所公开的主题涉及用于使助手能够自动地为个体用户定制动作组的技术。当助手从特定用户接收到特定命令时,助手确定要执行的定制动作组,并且助手响应于从其他用户接收到相同的特定命令而确定要执行的不同、定制或默认动作组。助手例如基于个人的用户简档文件、历史行为、与助手的过去交互、上下文信息、以及与个体用户相关联的其他信息来定制与该个体用户更相关的动作组。以此方式,助手被配置为自动确定与个体用户特别相关的动作组,并且响应于从那个个体用户接收到命令而仅执行那些特别相关的动作。因此,所描述的技术可以减少在执行看似不相关或不期望的动作(其可能仅对其他用户有用或为其感兴趣)时会以其他方式被消耗的处理能力。另外,通过自动创建定制的动作组,助手可能需要更少的用户输入来创建与命令相关联的动作组,这可以进一步减少计算设备消耗的功率并改善用户体验。此外,在一些示例中,助手可以并行执行多个动作,从而提高了动作被执行的速度。

除了下面的描述之外,可以向用户提供控件,所述控件允许用户进行以下选择:这里描述的助手、计算设备、或计算系统是否可以以及何时可以收集或利用个人信息、以及是否可以以及何时可以从服务器向用户发送内容或通信。另外,在存储或使用某些数据之前,可能会以一种或多种方式处理所述某些数据,以便移除个人可识别信息。例如,可以处理用户的身份,以便无法为该用户确定任何个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置概括化(诸如,达到城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制收集了关于用户的什么信息、如何使用该信息、以及向用户提供什么信息。

在一个示例中,本公开针对一种方法,该方法包括:由在一个或多个处理器处执行的助手来确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组。该方法包括:由所述助手基于所述默认的动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组。该方法进一步包括:由所述助手接收所述特定可听命令的指示。该方法进一步包括:由所述助手确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,由所述助手执行来自所述定制动作组的每个动作。

在另一示例中,本公开针对一种计算设备,该计算设备包括:输出设备、至少一个处理器、和至少一个存储器。存储器包括指令,该指令在被执行时使所述至少一个处理器执行助手,所述助手被配置为:确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;基于所述默认动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;接收所述特定可听命令的指示;确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,执行来自所述定制动作组中的每个动作。

在另一个示例中,本公开针对一种包括指令的计算机可读存储介质,该指令在被执行时使数字助手系统的至少一个处理器执行以下操作:确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;基于所述默认动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;接收所述特定可听命令的指示;确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,执行来自所述定制动作组中的每个动作。

在另一个示例中,本公开针对一种系统,该系统包括用于以下操作的装置:确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;基于所述默认动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;接收所述特定可听命令的指示;确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,执行来自所述定制动作组中的每个动作。

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

附图说明

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

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

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

图4是示出根据本公开的一个或多个方面的被配置为执行示例虚拟助手的示例数字助手服务器的框图。

具体实施方式

图1是示出根据本公开的一个或多个方面的执行示例虚拟助手的示例系统的概念图。图1的系统100包括经由网络130与计算设备110a-110n(统称为“计算设备110”)和计算设备116a-116n(统称为“计算设备116”)通信的数字助手服务器160。尽管系统100被示为分布在数字助手服务器160和计算设备110、116当中,但是在其他示例中,归属于系统100的特征和技术可以由计算设备110、116的本地组件在内部执行。类似地,数字助手服务器160可以包括某些组件并执行各种技术,这些技术在下面的描述中以其他方式归属于计算设备110、116。

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

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

数字助手服务器160表示被配置为执行助手并在网络上通信的任何类型的计算设备。数字助手服务器160的示例包括云计算环境、台式计算机、膝上型计算机、服务器、移动电话、平板计算机、可穿戴计算设备、台面计算设备、家庭自动化计算设备、电视、音响、汽车、或被配置为执行虚拟助手服务的任何其他类型的移动或非移动计算设备。

计算设备110表示与特定用户或用户简档文件相关联的单独的移动或非移动计算设备,并被配置为访问经由网络130提供的虚拟助手服务。在一些情况下,通过与特定的用户相关联,一个或多个计算设备110可以连接到与特定用户相关联或被特定用户频繁访问的特定网络。例如,计算设备110的子集可以位于用户的家庭中并且可以经由家庭网络进行通信。与计算设备110相反,计算设备116表示与其他用户或其他用户简档文件(例如,与计算设备110相关联的特定用户以外的用户)相关联并被配置为访问经由网络130提供的虚拟助手服务的各个移动或非移动计算设备。换句话说,在图1的示例中,计算设备110与特定用户相关联,而计算设备116与其他用户相关联,而不和关联于计算设备110的特定用户相关联。

计算设备110、116的示例包括移动电话、平板计算机、膝上型计算机、台式计算机、服务器、大型机、机顶盒、电视机、可穿戴设备(例如,计算机化的手表、计算机化眼镜、计算机化手套等)、家庭自动化设备或系统(例如,智能恒温器或安全系统)、家用电器(例如,咖啡机、冰箱等)、语音接口或台面家庭助手设备、个人数字助理(pda)、游戏系统、媒体播放器、电子书阅读器、移动电视平台、汽车导航或信息娱乐系统、或任何其他类型的移动、非移动、可穿戴和不可穿戴计算设备。除了以上列出的那些示例之外可以存在计算设备110、116的其他示例。计算设备110、116可以是被配置为访问经由网络130提供的虚拟助手服务的任何设备、组件或处理器。

在图1的示例中,数字助手服务器160包括助手模块122b和用户信息数据存储库124b。计算设备110a包括用户界面组件(uic)112、用户界面(ui)模块120、助手模块122、和用户信息数据存储库124a。尽管未示出,但是计算设备110b-110n和/或计算设备116可以包括与计算设备110a相似的组件和/或模块。

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

计算设备110的uic112可以用作计算设备110a的输入和/或输出设备。可以使用各种技术来实现uic112。例如,uic112可以使用存在敏感的输入屏幕、麦克风技术、红外传感器技术、相机、或用于接收用户输入的其他输入设备技术来用作输入设备。uic112可以用作输出设备,该输出设备被配置为使用任何一种或多种显示设备、扬声器技术、触觉反馈技术、或用于向用户输出信息的其他输出设备技术向用户呈现输出。

ui模块120可以管理与uic112和计算设备110a的其他组件的用户交互,并且可以与数字助手服务器160交互,以便经由uic112提供助手服务。ui模块120可以当计算设备110a的用户观看输出和/或在uic112处提供输入时使uic112输出用户界面。例如,如图1所示,ui模块120可以向uic112发送指令,该指令使uic112在uic112的显示屏上显示用户界面114a或114b(统称为用户界面114)。

用户界面114包括在计算设备110a的个体用户与由助手模块122a提供的助手之间的对话文本。在图1的示例中,用户界面114主要是图形用户界面,然而,在一些示例中,用户界面114可以主要是可听、触觉、或图形、可听或触觉类型的用户界面的组合。换句话说,用户界面114可以包括各种形式的虚拟助手信息,诸如可听的声音、语音通知、振动、文本、图形、内容卡、图像等。

当用户与用户界面114的一个用户界面交互时、在不同时间以及当用户和计算设备110a位于不同位置时,ui模块120和uic112可以从该用户接收一个或多个输入指示(例如,语音输入、触摸输入、非触摸或存在敏感输入、视频输入、音频输入等)。ui模块120和uic112可以解释在uic112处检测到的输入,并且可以将关于在uic112处检测到的输入的信息中继到助手模块122a和/或在计算设备110a处执行的一个或多个其他关联平台、操作系统、应用、和/或服务,以例如使计算设备110a执行动作。

ui模块120可以从在计算设备110a和/或一个或多个远程计算系统(诸如服务器系统160)处执行的一个或多个关联平台、操作系统、应用、和/或服务接收信息和指令。另外,ui模块120可以充当在计算设备110a处执行的一个或多个关联平台、操作系统、应用、和/或服务与计算设备110a的各种输出设备(例如,扬声器、led指示器、音频或触觉输出设备等)之间的中间件,以利用计算设备110a产生输出(例如,图形、灯光、声音、触觉响应等)。例如,ui模块120可以基于ui模块120经由网络130从数字助手服务器160接收的数据,使uic112输出用户界面114。ui模块120可以从数字助手服务器160和/或助手模块122a作为输入接收用于呈现为用户界面114的信息(例如,音频数据、文本数据、图像数据等)以及指令。

助手模块122a和助手模块122b可以作为经由计算设备110访问的虚拟助手服务的一部分共同保存用户信息数据存储库124a和124b。助手模块122b和用户信息数据存储库124b表示示例助手的服务器端或云实现,而助手模块122a和用户信息数据存储库124a表示示例助手的客户端或本地实现。在一些示例中,归属于助手模块122a的一些或全部功能可以由助手模块122b执行,反之亦然。

统称为助手模块122,助手模块122a和助手模块122b各自可以包括软件代理,所述软件代理被配置为执行智能个人助手,所述智能个人助手可以为诸如计算设备110的用户之类的个体执行动作或服务。助手模块122可以基于用户输入(例如,在uic112处检测到的)、上下文感知(例如,基于位置等)、和/或访问来自各种信息源(例如,本地存储在计算设备110、数字助手服务器160处、或经由搜索或其他信息检索服务获得)的其他信息(例如,天气或交通状况、新闻、股票价格、运动成绩、用户时间表、运输时间表、零售价格等)的能力来执行这些动作或服务。助手模块122可以依靠其他应用(例如,第三方应用)、服务、或其他设备(例如,电视机、汽车、手表、家庭自动化系统、娱乐系统等)来执行针对个体的动作或服务。

在接收到明确的用户同意之后,助手模块122可以自动保存与用户相关联的信息、或指向与用户相关联的信息的位置的指针(例如,由位于计算设备110、服务器系统160处的信息源、或由位于网络130上其他位置的任何其他服务器或设备存储的)。助手模块122可以将与用户相关联的信息、或信息的指针保存为用户信息数据存储库124a和124b(统称为“用户信息数据存储库124”)。数据存储库124可以使由助手模块122执行的助手能够快速访问该助手完成现实世界的动作、虚拟动作、或以其他方式响应计算设备110的用户的即时和/或未来需求所需的用户信息。助手模块122可以允许用户撤销对与该用户相关联的信息的副本的访问和/或删除与该用户相关联的信息的副本。

数据存储库124可以包括一个或多个用户简档文件,每个用户简档文件与计算设备110、116的相应用户相关联。例如,用户简档文件可以包括在得到用户许可的情况下在用户和助手之间的对话或交互期间获得的信息、日历信息、联系信息、用户兴趣、用户偏好、以及可以由助手模块122使用的与用户相关联的任何其他信息。用户简档文件的信息源示例可以包括但不限于:电子邮件系统中内置的智能、与助手模块122的用户交互、与用户相关联的设备(例如,计算设备110)上的用户交互和应用使用、或其他信息源。

根据本公开的技术,助手模块122可以提供在计算设备110处执行或可从计算设备110访问的助手。通常,助手模块122可以被配置为执行一个或多个例程,每个例程包括多个动作,并且可以针对不同的用户简档文件定制例程。换句话说,如本文中所使用的,术语“例程”通常是指由助手模块122在大约相同的时间一起(例如,并行或串行地)执行的一组动作。如在整个本公开中所使用的,在大约相同的时间是指在阈值或预定的时间量内,诸如一秒、三十秒、一分钟、五分钟等(例如,与确切的时刻相反)。

助手模块122可以被配置为响应于从特定用户接收到特定命令(例如,“computer,i’mofftowork(计算机,我不上班)”)而执行特定例程,并且可以响应于从特定用户接收到不同命令(例如,“computer,i’mheadedhome(计算机,我要回家了)”)而执行不同的例程。换句话说,不同的命令可以对应于不同的例程。在一些情况下,特定例程可能与多个命令相关联。例如,早上的例程可能与命令“heycomputer,i’mawake(嘿,计算机,我醒了)”或命令“computer,let’sgetthedaystarted(计算机,让我们开始新的一天)”相关联。在一些示例中,每个例程包括可由助手模块122执行的多个动作。因此,在一些示例中,一个或多个助手模块122被配置为响应于接收到特定命令(例如,可听的命令)而执行多个动作。

在一些示例中,助手模块122确定助手模块122被配置为响应于接收到特定命令而执行的默认动作组。换句话说,助手模块122确定与特定命令相关联的例程中包括的默认动作组。助手模块122可以通过从存储设备中检索预编程的一组动作来确定默认动作组。默认动作组可以在工厂进行编程,或可以作为来自应用开发人员的软件更新的一部分被接收。在一些情况下,默认动作组最初与计算设备110和116的所有用户相关联。

助手模块122可以使用机器学习来确定默认动作组。例如,在一些情况下,助手模块122通过分析计算设备110、116的用户使助手模块122一起在不同情况下执行什么动作来确定默认动作组。在不同场景或上下文中最频繁出现的动作可以形成助手模块122确定总体上适用于计算设备110、116的所有用户的默认动作组。

助手模块122可以通过利用机器学习来分析存储在用户信息数据存储库124中的个体用户和/或设备信息来生成与命令相关联的默认动作组。如果用户肯定同意使用或收集此类信息,则助手模块122可以仅分析与计算设备110、116、和/或计算设备110、116的用户相关联的信息。助手模块122可以进一步为个体用户提供撤回同意的机会,并且在这种情况下,助手模块122可以停止收集或以其他方式保留与个体用户或与个体用户相关联的计算设备相关联的信息。数据存储库124内的用户简档文件可以包括用户交互数据,该用户交互数据指示计算设备110和/或116的用户利用某些应用和/或应用特征的频率,请求某些类型的信息(例如,天气、交通),或以其他方式与计算设备110、116和/或助手模块122交互。

助手模块122可以标识计算设备110、116的用户频繁执行的动作,计算设备110、116的用户频繁利用计算设备110、116来执行的动作,或两者。例如,助手模块122b可以至少部分地基于存储在数据存储库124中的过去的用户交互数据(也称为动作使用数据)确定计算设备110、116的用户在早上经常从计算设备110、116请求新闻和天气信息。因此,在一些示例中,助手模块122确定早上例程的默认动作组包括输出新闻和天气信息。因此,助手模块122可以确定与特定命令(例如,与早上例程相关联的命令,诸如“goodmorningcomputer(早上好,计算机)”或“computer,let'sgetthedaystarte(计算机,让我们开始一天)”)相对应的默认动作组包括输出新闻和天气信息。

在一些示例中,助手模块122确定助手模块122被配置为作为例程的一部分执行的定制动作组。助手模块122可以基于默认动作组和与计算设备110的特定用户相关联的用户简档文件来确定定制动作组。如上所述,与用户简档文件相关联的信息可以存储在一个或多个数据存储库124中。在一些示例中,助手模块122可以确定(例如,基于与特定用户相关联的用户简档文件的用户信息)来自与特定命令相关联的默认动作组中的一个或多个动作是否与和该用户简档文件相关联的用户相关。例如,数据存储库124可以包括用于特定用户的用户简档文件,该用户简档文件包括指示用户使计算设备110执行特定动作的程度的用户交互数据。用户交互数据可以指示特定用户很少(例如,每月一次)在早上请求新闻信息,使得助手模块122可以确定新闻信息与该特定用户无关。因此,在一些情况下,助手模块122为该特定用户生成不包括新闻信息的定制活动组。

助手模块122可以确定与特定命令相关联的定制动作组包括默认动作组中不包括的动作。例如,助手模块122可以基于存储在数据存储库124中的用户简档文件中的用户交互数据,确定特定用户每天大约在同一时间(例如,在某个时间的阈值时间范围内)请求交通信息。助手模块122可以基于与特定用户相关联的用户信息将动作添加到定制动作组。例如,助手模块122可以将定制动作组更新为包括启动用户的车辆并输出交通信息。

在一些示例中,助手模块122被配置为响应于接收到特定命令而执行一组动作。例如,助手模块122可以接收用户输入的指示(例如,手势、可听命令等),确定用户输入是否对应于特定命令,并响应于确定用户输入对应于特定命令而执行一组动作(例如,与特定例程相关联的一组动作)。例如,uic112可以检测在存在敏感的显示器处的手势,并且可以将手势的指示发送到助手模块122。助手模块122可以确定该手势是否对应于特定命令。作为另一示例,uic112可以检测音频数据(例如,口头音频命令),并且可以将音频数据的指示发送到助手模块122。助手模块122可以确定音频数据是否包括特定的音频命令(例如,通过对音频数据执行语音识别技术)。在一些示例中,助手模块122被配置为响应于确定音频数据包括特定命令而执行一组动作。

在一些情况下,助手模块122接收命令的指示并确定命令是否源自特定用户。例如,助手模块122可以接收可听命令“computer,tellmeaboutmyday(计算机,告诉我关于我的一天)。”的指示。响应于接收到命令的指示,助手模块122确定命令是否源自特定用户。助手模块122可以基于生物统计(例如,语音、面部或手写识别)来确定命令是否源自特定用户。例如,用户信息数据存储库124a可以包括用于特定用户的语音指纹,并且可以将可听命令的指示与语音指纹进行比较以确定特定用户是否说出了可听命令。例如,助手模块122a可以响应于确定口头命令对应于特定用户的语音指纹来确定特定用户说出了可听命令。在一些示例中,计算设备110a可以在接收命令之前、期间、和/或之后捕获一个或多个图像,并且助手模块122a可以基于一个或多个图像来确定命令是否源自特定用户。例如,助手模块122a可以对至少一个捕获的图像执行面部识别,并且可以响应于确定至少一个捕获的图像包括特定用户的图像来确定该命令源自特定用户。

在一些示例中,助手模块122确定命令不是源自特定用户的。例如,计算设备110可以位于用户的家中,可以接收可听命令“heycomputer,tellmeaboutmyday(嘿,计算机,告诉我关于我的一天)”,并且可以确定(例如,基于语音识别)特定用户没有说出该命令。响应于确定命令不是源自特定用户,助手模块122可以执行来自默认动作组中的一个或多个动作。例如,如用户界面114a所示,当默认动作组包括输出新闻和天气信息时,助手模块122可以使一个或多个计算设备110输出新闻和天气信息。

响应于确定命令源自特定用户,助手模块122可以执行来自与特定用户相关联的定制动作组中的一个或多个动作。例如,当定制动作组包括输出天气和交通信息并启动用户的车辆时,助手模块122可以使一个或多个计算设备110输出天气和交通信息并启动用户的车辆。例如,如用户界面114b所示,助手模块122可以使计算设备110a(例如,可能不具有显示设备的台面家庭助手)以可听见的方式输出天气信息和使得计算设备110b(例如,在车辆内)启动车辆并输出以用于显示(例如,经由车辆内的显示设备)以显示交通信息(例如,交通地图)。

在一些情况下,助手模块122大约同时执行一个或多个动作(例如,默认动作组或定制动作组中的动作)。例如,助手模块122可以大约同时(例如,顺序地)输出新闻和天气信息。

虽然助手模块122被描述为被配置为响应于接收到可听命令而执行一组动作(例如,默认动作组或定制动作组),但是助手模块122可以被配置为响应于检测到触发事件而执行包括在例程中的一组动作。该触发事件诸如是发生计划事件(例如,日历事件、警报等)、接收到预定通知、接收到命令(例如,手势输入、或可听输入)等。例如,当触发事件包括被设置为在计划的时间发生的警报时,助手模块122可以响应于该警报发生而执行与特定例程相关联的一组动作。作为另一示例,当触发事件包括接收到门(例如,车库门)已打开(例如,在用户下班回家后)或关闭(例如,在用户离开去工作时)的通知时,助手模块122可以执行与打开或关闭门相关联的一组动作。助手模块122可以确定助手模块122被配置为响应于检测到触发事件而执行的默认动作组和定制动作组,并且可以响应于检测到触发事件而执行默认或定制动作组。

与每个命令执行一个动作的一些计算设备相反,助手模块122可以响应于接收到单个命令而执行一组动作。以这种方式,助手模块122可以减少执行一组动作所需的命令的数量,这可以减少由一个或多个计算设备执行的处理。此外,通过将一组动作与单个命令相关联,助手模块122可以减少计算设备110a与服务器160之间的网络130上的数据流量(例如,对口头命令执行语音识别)、通信总线上的数据流量(例如,图2的通信通道250)、对内存的调用、电池使用量等。减少执行一组动作所需的命令数量可以通过使助手看起来自然、不那么笨拙、并且对于用户更可取而改善用户体验。通过自动地为个体用户定制一组动作,助手模块122可以仅执行被确定为与用户特别相关的那些动作,这可以减少由一个或多个计算设备执行的处理。此外,通过自动地为个体定制一组动作,助手可以需要更少的用户输入来创建动作组,这可以减少一个或多个计算设备消耗的功率。

在前述方法提供的多个益处当中:(1)通过响应于触发执行一组动作而不是一次一个地执行动作可以减少设备动作的处理复杂度和时间;(2)可以本地存储有意义的信息和与用户相关联的信息,从而减少了用户的设备上对私有数据的复杂且消耗内存的传输安全协议的需求;(3)因为示例助手响应于触发而执行动作组,所以可以从用户接收更少的具体查询或命令,从而减少了对用户设备进行查询重写和其他计算复杂的数据检索的需求;以及(4)因为减少了具体查询和/或命令的数量,所以可以减少网络使用。

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

如在图2的示例中所示,计算设备210包括用户界面组件(uic)212、一个或多个处理器240、一个或多个通信单元242、一个或多个输入组件244、一个或多个输出组件246、以及一个或多个存储组件248。uic212包括输出组件202和输入组件204。计算设备210的存储组件248包括ui模块220、助手模块222、用户信息数据存储库224、和一个或多个应用模块226。

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

计算设备210的一个或多个通信单元242可以通过在一个或多个网络上传送和/或接收网络信号经由一个或多个有线和/或无线网络与外部设备通信。通信单元242的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、全球定位卫星(gps)接收器、或可以发送和/或接收信息的任何其他类型的设备。通信单元242的其他示例可以包括短波无线电、蜂窝数据无线电、无线网络无线电、以及通用串行总线(usb)控制器。

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

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

计算设备210的uic212可以类似于计算设备110的uic112,并且包括输出组件202和输入组件204。输出组件202可以是显示组件,诸如由uic212显示信息的屏幕,并且输入组件204可以是在输出组件202处和/或附近检测物体的存在敏感输入组件。输出组件202和输入组件204可以是扬声器和麦克风对、或一个或多个输入和输出组件(诸如输入组件244和输出组件246)的任何其他组合。在图2的示例中,uic212可以呈现用户界面(诸如图1的用户界面114)。

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

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

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

一个或多个处理器240可以实现功能和/或执行与计算设备210相关联的指令。处理器240的示例包括应用处理器、显示控制器、辅助处理器、一个或多个传感器中枢(hub)、以及被配置为用作处理器、处理单元或处理设备的任何其他硬件。模块220、222和226可以由处理器240操作以执行计算设备210的各种动作、操作或功能。例如,计算设备210的处理器240可以检索并执行由存储组件248存储的指令,所述指令使得处理器240执行操作模块220、222和226。指令在由处理器240执行时,可以使计算设备210将信息存储在存储组件248内,例如,在数据存储库224处。

ui模块220可以包括图1的所有功能ui模块120,并且可以执行与ui模块120类似的作为计算设备210的一部分执行助手的操作。ui模块220可以管理与uic212和计算设备210的其他组件的用户交互。ui模块220可以当计算设备210的用户查看输出和/或在uic212处提供输入时使uic212输出用户界面。

用户信息数据存储库224是图1的用户信息数据存储库124a的示例。用户信息数据存储库224可以包括与计算设备210的相应用户和/或其他计算设备(例如,图1的计算设备116)的用户相关联的一个或多个用户简档文件。在一些示例中,用户简档文件可以包括在用户许可的情况下获得的用户信息。例如,每个用户简档文件可以包括在用户和助手之间的对话或交互期间获得的信息。每个用户简档文件可以包括指示用户的兴趣和/或用户偏好的信息。用户简档文件可以包括用户交互数据,该用户交互数据可以指示用户何时使助手执行某些动作和/或使助手执行某些动作的程度。在一些示例中,用户简档文件可以包括与用户相关联的传记信息,诸如地理位置(例如,用户所居住的城市、州或国家)、用户的年龄、职业等。

应用模块226表示可以由计算设备210执行并且可以被助手访问以向用户提供信息和/或执行任务或动作的各种单独的应用和服务。应用模块226的示例包括健身应用、日历应用、搜索应用、地图、交通、或导航应用、旅行应用(例如,计划、预订、票务等)、社交媒体应用、游戏应用、电子邮件应用、聊天或发消息应用、因特网浏览器应用、或可以在计算设备210处执行的任何其他应用。在计算设备210处执行的助手(诸如助手模块222)可以使应用226执行执行用于执行与助手相关联的动作的指令。换句话说,助手可以依靠应用模块226来代表助手执行一个或多个动作。

助手模块222可以包括图1的助手模块122的所有功能,并且可以执行与助手模块122相似的以下操作:作为计算设备210的一部分执行助手,并保存和访问在用户信息数据存储库224处的用户信息。在一些示例中,助手模块222可以在本地执行(例如,在处理器240处)以提供助手功能。在一些示例中,助手模块222可以充当对于计算设备210可访问的远程助手服务的接口。例如,助手模块222可以是与图1的数字助手服务器160的助手模块122b的接口或应用编程接口(api)。

助手模块222可以被配置为响应于触发事件来执行一组动作,该触发事件诸如是发生调度事件(例如,日历事件,警报等)、接收到预定通知、或接收到命令(例如,手势或可听命令)。例如,助手模块222可以被配置为执行一组动作,所述动作是与特定(例如,可听)命令相关联的例程的一部分。

作为一个示例,早上例程可以与诸如“heycomputer,let'sgetthedaystarted”之类的可听命令相关联,并且用早上例程执行的一组动作可以包括输出新闻信息和交通信息以及冲泡一杯咖啡。下午例程可以与可听命令“computer,i'mheadedhome”相关联,并且用下午例程执行的一组动作可以包括输出交通信息和日历信息(例如,用于当晚晚些时候的事件)。晚上的例程可能与可听命令“okcomputer,whatisgoingontomorrow(好,计算机,明天会发生什么)?”相关联,并且用晚上例程执行的一组动作可以包括输出日历信息(例如,第二天)和调整警报(例如,基于早上会议)。

作为例程的一部分执行的每一组动作可以与一个或多个可听命令相关联。可听命令可能需要也可能不需要来自助手模块222的响应。例如,助手模块222可被配置为响应于接收到请求响应的可听命令(诸如“heycomputer,tellmeaboutmyday。”)而执行一组动作。类似地,助手模块222可以被配置为响应于接收到不包括对响应的请求的可听命令(诸如“heycomputer,i'mgoingtowork(嘿,计算机,我要工作了)。”)而执行一组动作。

助手模块222可以被配置为执行与特定命令相关联的默认动作组。在一些示例中,默认动作组与利用助手的所有用户相关联,并且在其他示例中,与特定命令相关联的默认动作组仅可以与用户子集(例如,计算设备210、110和/或116的用户)相关联。例如,助手模块222可以为用户的第一子集确定与特定命令相关联的第一默认动作组,并为用户的第二(例如,不同于第一)子集确定与同一命令相关联的第二默认动作组。

在一些示例中,助手模块222将用户分组为各种子集。例如,助手模块222可以确定用户的子集为包括彼此相似的用户的类型。例如,助手模块222可以基于存储在用户信息数据存储库(例如,数据存储库224)中的一个或多个用户简档文件来确定计算设备210、110和/或116的一组用户是相似的。例如,响应于确定与相应用户相关联的用户简档文件指示用户来自相似的地理区域(例如,城市、州、国家),具有相似的兴趣,说相同的语言,在相同的年龄段内,具有相似的工作,使计算设备210、116执行类似的动作等,助手模块222可以确定一组用户相似。例如,助手模块222可以确定第一类用户包括居住在英格兰的用户,并且第二类用户用户类型包括居住在法国的用户。

助手模块222可以确定不同类型的用户与不同类型的例程相关联。在一些示例中,助手模块222可以确定(例如,基于存储在用户简档文件中的信息)第一类型的用户(例如,在家外工作的人)与早上例程(例如,在上班之前执行的一组动作)、下午的例程(例如,在回家之前执行的一组动作)、和晚上的例程(例如,在为第二天准备时执行的一组动作)相关联。例如,助手模块222可以确定第一类型的用户频繁地使计算设备210或其他助手使计算设备能够在早上、下午和晚上执行各种动作。类似地,助手模块222可以确定第二类型的用户(例如,居留在家中的父母)与上午例程、午餐例程、购物例程、游戏时间例程等相关联。例如,助手模块222可以确定第二类型的用户频繁地使计算设备210或其他助手使计算设备能够在早上、中午、白天、下午和晚上执行各种动作。助手模块222可以确定每个例程与不同的命令相关联并且包括与各个命令相关联的动作。

在一些示例中,助手模块222确定与特定命令相关联的默认动作组。默认动作组可以与计算设备210、110、116的所有用户相关联,或者可以与特定类型的相似用户相关联。与特定命令相关联的默认动作组可以包括用于输出信息(例如,以视觉或听觉的方式供人类消费)的一个或多个动作、用于执行任务的一个或多个动作、或者一个或多个其他类型的动作或其中的组合。任务的示例包括冲泡一杯咖啡、打开或关闭灯、打开或关闭车库门、调节恒温器、录制节目、播放音乐、下订单、创建或注释电子清单、或助手可以执行的任何其他可想象的动作操作,除了经由用户界面输出信息外(例如,除了输出供人类消费的信息外)。

在一些示例中,助手模块222通过查询存储设备248以检索预编程的动作组来确定默认的动作组。预编程的动作组可以在工厂编程,或者可以作为软件更新的一部分从软件开发者接收。

助手模块222可以通过利用由机器学习技术生成的模型来确定与特定命令相关联的默认动作组。可以用来生成模型的示例机器学习技术可以包括各种学习风格,诸如监督学习、非监督学习、和半监督学习。经由此类技术生成的模型的示例类型包括贝叶斯模型、聚类模型、决策树模型、正则化模型、回归模型、基于实例的模型、人工神经网络模型、深度学习模型、和降维模型等。

在一些示例中,助手模块222将模型应用于一个或多个输入,并输出默认动作组。在接收到来自用户的明确同意之后,助手模块222可以将该模型应用于用户信息(例如,来自存储在数据存储库224和/或数据存储库124中的一个或多个用户简档文件)以标识计算设备210的用户可能使计算设备210执行的动作。

在一些情况下,默认动作组包括在不同场景或上下文中最频繁出现的动作。例如,助手模块222可以应用该模型来确定由计算设备210频繁执行的动作、由与计算设备210的个体用户相关联的其他计算设备执行的动作、以及由与其他用户相关联的计算设备(例如,图1的计算设备116)执行的动作。例如,可以在用户信息上训练模型,该用户信息指示计算设备(例如,计算设备210、110和116)的85%的用户在早上请求天气信息,80%的用户在早上请求交通信息,并且30%的用户在早上冲泡咖啡。助手模块222可以将执行动作的频率与阈值使用量(例如,50%的用户)进行比较。在一些示例中,助手模块222确定默认动作组包括其中该动作的使用满足(例如,大于或等于)阈值使用量的动作。因此,在一些情况下,助手模块222可以确定与特定命令(例如,“heycomputer,tellmeaboutmyday”)相关的例程(例如,早上例程)包括用于输出交通信息的动作和用于输出天气信息的动作,并且可能不包含冲泡一杯咖啡的动作。

在一些示例中,默认动作组包括彼此关联的动作。当用户执行和/或使计算设备大致同时执行两个或多个动作时,两个或多个动作可以彼此关联。响应于确定个体用户的阈值量(例如,所有用户的阈值量或相似用户的特定子集的阈值量)使与相应用户中的每个用户相关联的计算设备在大约相同的时间(例如,在请求天气信息的时间阈值窗口内)执行两个或多个动作,助手模块222可以确定两个或更多个动作彼此关联并且是默认动作组的一部分。换句话说,当阈值数量的用户使一个或多个相应的计算设备执行每个动作时,助手模块222可以确定两个或多个动作彼此关联。例如,可以在用户信息上训练模型,该用户信息指示65%的用户在早上请求天气和交通信息。因此,在这样的示例中,助手模块222可以确定与特定命令(例如,“heycomputer,tellmeaboutmyday”)相关联的例程(例如,早上例程)包括用于输出交通信息的动作和用于输出天气信息的动作。

在一些示例中,助手模块222确定是否定制与特定用户和特定命令相关联的动作组。助手模块222可以至少部分地基于存储在用户信息数据存储库224中并且与特定用户相关联的用户简档文件来确定是否定制动作组。在一些示例中,用户简档文件包括来自用户的显式和/或隐式反馈的一个或多个指示,使得助手模块222可以基于来自用户的显式和/或隐式反馈来确定是否定制与特定用户和特定命令相关联的动作组。例如,用户简档文件可以包括显式反馈的指示,诸如显式命令以包括和/或避免包括在定制动作组中的一个或多个动作。例如,计算设备210可以接收显式命令(例如,“heycomputer,don'ttellmethenewswheniaskaboutmyday(嘿,计算机,当我询问关于我的一天时不要告诉我新闻)”),以便助手模块222可以确定助手模块222应该定制与该命令相关联的动作组。因此,在一些示例中,助手模块222可以更新与特定用户相关联的用户简档文件,以指示该用户对新闻信息不感兴趣。助手模块222可以更新用户简档文件以指示与该特定命令相关联的动作组不应当包括新闻信息,或者指示与特定用户相关联的动作组均不(例如,与命令无关)应当包括新闻信息。

在一些示例中,助手模块222可以输出通知(例如,可听消息),该通知包括对关于特定动作的显式反馈的请求。例如,助手模块222可以接收新动作可用于与特定用户相关联的一个或多个计算设备的指示,并且可以请求来自用户的显式反馈。特定应用模块226的开发者可以向特定应用模块226添加特征,以使计算设备210能够响应于接收到特定命令而执行新动作。计算设备制造商(例如,智能恒温器制造商)可以向计算设备添加新特征。助手模块222可以(例如,从应用开发者或设备制造商)接收新动作的指示,并且可以响应于接收到新动作的指示而确定定制与特定命令和特定用户相关联的动作组。

响应于确定针对与用户相关联的车辆存在新动作(例如,远程调节恒温器),助手模块222可以输出指示新动作并请求来自用户的进一步指令的通知。例如,助手模块222可以使输出设备(例如,扬声器)输出消息“didyouknowicanadjustthetemperatureinyourcar?wouldyoulikemetoturnontheacaspartofyourafternoonroutine(您知道我可以调节你车内温度吗?您是否希望作为下午例程的一部分打开空调)?”响应于接收到将新动作添加到动作组(例如,与特定例程相关联的动作组)的命令,助手模块222可以定制与特定命令相关联的动作组以包括新动作。例如,助手模块222可以确定与命令“heycomputer,i'mheadinghomein5minutes(嘿,我要在5分钟内回家)”相关联的定制动作组包括执行与车辆相关联的一个或多个动作,诸如调整车厢内的温度。

在一些实例中,助手模块222可以基于诸如重复的用户交互之类的隐式反馈来确定是否定制与特定命令和特定用户相关联的一组动作。例如,用户信息数据存储库(例如,数据存储库224)可以包括与特定用户相关联的用户简档文件,该用户简档文件指示特定用户命令助手模块222(或与该特定用户相关联的其他计算设备上的助手模块)执行各种操作的数量。响应于从特定用户接收到特定命令的指示达至少阈值次数(或在一定时间段内至少阈值次数),助手模块222可以确定定制与特定命令相关联的一组动作。换句话说,在从特定用户接收到特定命令达至少阈值次数之后,助手模块222可以确定定制与特定命令和特定用户相关联的一组动作。

响应于确定先前未与特定用户相关联的计算设备现在与该特定用户相关联,助手模块222可以定制与特定命令和该特定用户相关联的一组动作。在一些示例中,特定用户可以用包括助手模块的计算设备来购买车辆,使得助手模块222可以更新与特定用户相对应的用户简档文件以指示与特定用户相关联的一组计算设备包括新车。在这些示例中,响应于确定用户与启用了助手的车辆相关联,助手模块222可以定制与特定命令相关联的一组动作。因此,在一些情况下,助手模块222可以通过向那组动作添加与车辆相关联的动作(例如,远程启动车辆、调节车厢温度等)来定制与命令“computer,i'mofftowork”相关联的一组动作。

在一些示例中,助手模块222响应于接收到通知而定制一组动作。例如,助手模块222可以从另一计算设备(例如,与特定用户相关联的启用了助手的计算设备)或从在计算设备210处执行或可从其访问的应用或服务接收通知,并且可以响应于接收到通知而定制与特定命令相关联的动作组。例如,台面家庭助手设备可以从计算设备210的用户的配偶接收命令(例如,“computer,tellmyspousetopickupmilkonthewayhome(计算机,告诉我的配偶在回家的路上去取牛奶)”)。计算设备210的助手模块222可以响应于接收到该命令而定制与下午例程相关联的一组动作。作为另一示例,计算设备210可以接收通知(例如,文本消息)并且可以在用户简档文件中存储该通知的指示。例如,计算设备210可以接收文本消息,该文本消息包括消息“willyoupleasepickupmilkonthewayhome(您将在回家的路上取牛奶吗)?”并可以向用户简档文件添加取牛奶的提醒。因此,助手模块222可以针对下午的例程定制与特定命令相关联的动作组(例如,“heycomputer,let'sgetreadytogohome(嘿,计算机,让我们准备回家了)”)以包括输出包括取牛奶的提醒的通知或消息。

在一些示例中,助手模块222确定与特定命令和特定用户相关联的定制动作组。例如,助手模块222可以创建新的定制动作组和/或更新现有的定制动作组以包括与特定用户(例如,和特定例程)有关的一个或多个动作。

助手模块222通过确定和分配相关分值给特定动作并将该相关分值与相关阈值进行比较来确定该动作是否与特定用户相关。特定动作的相关度分值可以指示用户将使助手模块222执行该动作的概率。当与动作相对应的相关度分值满足(例如,大于或等于)相关度阈值时,助手模块222可以确定特定的动作(例如,输出天气信息)与用户相关。

助手模块222可以通过修改或更新现有的默认动作组来生成定制动作组。例如,助手模块222可以向与特定命令相关联的默认动作组中的每个动作分配相关度分值,以确定默认动作组中的任何动作是否与特定用户相关(例如,通过满足相关度阈值),因此应将其包含在定制动作组中。在一些情况下,助手模块222可以将相关度分值分配给尚未包括在默认动作组中的一个或多个动作。助手模块222可以通过组合来自默认组或不来自默认组的、具有满足相关度阈值的相关度分值并且与特定命令或例程相关联的任何动作来生成定制动作组。以此方式,包括在定制动作组中的动作可以包括来自与命令相关联的默认动作组中的一个或多个动作、和/或不一定是默认动作组的一部分的一个或多个动作。

助手模块222可以基于显式用户反馈来分配相关度分值。例如,助手模块222可以接收显式命令(例如,“heycomputer,don'ttellmethenewswheniaskaboutmyday(嘿,计算机,当我询问关于我的一天时不要告诉我新闻)”),并且可以将相关度分值(例如,满分100分中的0分)分配给与该命令相关联的动作(例如,由该命令标识的动作)。在一些示例中,助手模块222基于存储在数据存储库224中的用户简档文件内的用户交互数据为相应动作分配相关度分值。例如,助手模块222可以向特定动作分配的相关度分值越高,则用户使计算设备210执行该动作越多。例如,助手模块222可以如果用户使计算设备210每周执行特定动作几次,则向该动作分配高相关度分值(例如,满分100分中的90分),如果用户使计算设备210每周执行该动作一次则分配中等相关度分值(例如,满分100分中的50分),如果用户使计算设备210每周执行该动作少于一次,则分配低相关度分值(例如,满分100分中的20分)。助手模块222可以确定与特定动作相对应的相关度分值是否满足(例如,大于或等于)相关度阈值,并且可以响应于确定与特定动作相对应的相关度分值满足相关度阈值而将特定动作包括在定制动作组中。

作为一个示例,助手模块222可以确定数据存储库224包括指示特定用户频繁地(例如,每个工作日)使计算设备210在用户离开去工作的大致同时调整家用恒温器的信息,并且可以基于使用信息分配相对高的相关度分值(例如,满分100分中的90分)。因此,在该示例中,助手模块222确定与该命令和特定用户相关联的定制动作组包括调节恒温器(例如,即使与早上例程的命令相关联的默认动作组可能不包括调节温控器)。在一些示例中,响应于确定对应的相关度分值不满足相关度阈值,助手模块222确定定制动作组不包括特定的动作(例如,来自默认动作组的动作)。例如,数据存储库224可以包括指示特定用户很少(例如,每月一次)使计算设备210冲泡咖啡的信息。助手模块222可以基于使用信息来分配相对低的相关度分值(例如,满分100分中的10分)。因此,尽管与用于早上例程的命令相关联的默认动作组可以包括冲泡咖啡,但是与该命令和特定用户相关联的定制动作组可以不包括冲泡咖啡。

在一些示例中,助手模块222基于用户正在与之交互的计算设备的类型来确定定制动作组。例如,助手模块222可以基于用户与之交互的计算设备的类型来确定针对特定动作的相关度分值。例如,当特定用户与计算设备210交互时,当计算设备210是特定类型的计算设备时,助手模块222可以将一个相关度分值分配给特定动作,而当计算设备210是不同类型的计算设备时,助手模块222可以将另一个相关度分值分配给相同动作。在一些示例中,当用户与特定类型的计算设备210(例如,移动电话、车辆头部单元等)交互时,助手模块222可以将较高的相关度分值分配给特定类型的计算设备被配置为执行的动作。

例如,当特定用户与计算设备210交互并且计算设备210包括车辆头部单元时,助手模块222可以将相对高的(例如,高于阈值)相关度分值分配给用于输出交通信息的动作,并且将相对低(例如,低于阈值)的相关度分值分配给冲泡咖啡。因此,当计算设备210是车辆时,助手模块222可以确定与命令“computer,let'sgetthedaystarted(计算机,让我们开始一天)”相关联的定制动作组包括输出交通信息(例如,视觉地),但是不包括打开咖啡机。

作为另一个示例,当计算设备210包括台面家庭助手设备时,助手模块222可以为冲泡咖啡分配相对高(例如,低于阈值)的相关度分值。因此,在一些情况下,助手模块222可以确定与特定用户相关联的定制动作组,并且当计算设备210包括台式家用助手设备时,命令“computer,let'sgetthedaystarted(计算机,让我们开始一天)”包括打开咖啡机。以这种方式,当计算设备210是某种类型的计算设备时,助手模块222可以确定定制的动作组包括一组动作,而当计算设备210是不同类型的计算设备时,助手模块222可以确定定制的动作组包括另一组动作。

助手模块222可以接收特定命令的指示。例如,uic212可以检测指示命令的键盘输入、手势输入、或可听输入,并且可以将该命令的指示发送到助手模块222。在一些示例中,助手模块222可以经由通信单元242从另一计算设备(例如,智能锁或车库门开启器)接收特定命令的指示。例如,响应于接收到打开车库门的命令(例如,在用户下班回家后),智能车库门开启器可以向计算设备210发送指示打开门的命令的通知,使得助手模块222可以接收指示打开门的命令的该通知。作为另一个示例,助手模块222可以接收可听命令“computer,tellmeaboutmyday”的指示。

响应于接收到特定命令的指示,助手模块222可以确定该命令是否源自特定用户。助手模块222可以基于生物统计(例如,语音、面部、或笔迹识别)来确定命令是否源自特定用户。例如,用户信息数据存储库224可以包括用于特定用户的语音指纹,并且可以将可听命令的指示与语音指纹进行比较以确定特定用户是否说出了可听命令。例如,助手模块222可以响应于确定语音命令对应于特定用户的语音指纹来确定特定用户说出了可听命令。助手模块222可以在接收命令之前、期间、和/或之后捕获一个或多个图像,并且可以基于一个或多个图像来确定命令是否源自特定用户。例如,助手模块222可以对至少一个捕获的图像执行面部识别,并且可以响应于确定至少一个捕获的图像包括特定用户的图像来确定该命令源自特定用户。

响应于确定该命令不是源自特定用户,助手模块222可以执行与该特定命令相关联的默认动作组中的一个或多个动作。在一些示例中,助手模块222可以执行来自默认动作组的每个动作。例如,响应于接收到命令“heycomputer,tellmeabouttonight(嘿,计算机,告诉我有关今晚的信息)”并确定该命令并非源自特定用户(例如,助手模块222可以确定产生该命令的语音是针对未知用户的),助手模块222可以输出天气信息和关于当晚发生的附近活动的信息。

响应于确定该命令源自特定用户,助手模块222可以确定针对该特定用户是否存在与该命令相关联的定制动作组。例如,助手模块222可以查询用户信息数据存储库(例如,数据存储库224和/或124中的一个或多个),以确定该数据存储库是否包括针对特定用户的定制动作组。在一些示例中,助手模块222确定(例如,基于查询结果)不存在与特定命令和特定用户相关联的定制动作组。响应于确定不存在与特定命令和特定用户相关联的定制动作组,助手模块222可以执行与特定命令相关联的来自默认动作组的至少一个动作。例如,助手模块222可以执行与特定命令和特定类型的用户相关联的一个或多个动作。例如,当特定用户是第一类型的用户(例如,生活在特定地理区域中的用户)时,助手模块222可以查询用户信息数据存储库224以确定与该特定命令和该类型用户相关联的一组动作。

助手模块222可以响应于确定该命令源自特定用户而执行来自定制动作组的一个或多个动作。在一些情况下,助手模块222可以响应于确定该命令源自于特定用户并且针对该特定用户存在与该命令相关联的定制动作组来执行定制动作组中的一个或多个动作。助手模块222可以执行来自定制动作组的每个动作。助手模块222可以通过使与用户相关联的一个或多个计算设备执行多个动作中的每个动作来执行来自定制动作组中的多个(例如,全部或子集)动作。例如,当定制动作组包括冲泡一杯咖啡、调节车辆中的温度、以及输出交通信息时,助手模块222可以向咖啡机(例如,图1的计算设备110之一)输出指令咖啡机冲泡一杯咖啡的消息,向车辆输出指令车辆调整车厢内的温度的消息,并输出指示预期交通状况的音频数据(例如,可听见地输出信息)。因此,第一计算设备(例如,咖啡机)可以执行定制动作组的第一动作,第二计算设备(例如,车辆头部单元)可以执行定制动作组的第二动作,并且第三计算设备(例如,计算设备210)可以执行定制动作组中的第三动作。在一些示例中,助手模块222可以直接(例如,当计算设备210和另一个计算设备都在同一家庭网络中时,经由或经由)将消息输出到另一计算设备(例如,咖啡机)。在一些示例中,助手模块222可以经由诸如服务器之类的另一计算设备间接地向另一计算设备输出消息。例如,助手模块222可以将消息输出到图1的服务器160,使得助手模块122b可以向咖啡机发送冲泡咖啡的消息。虽然被描述为利用三个计算设备来执行定制动作组中的动作,但是助手模块222可以使任何数量(例如,一个、两个、五个等)的计算设备执行来自定制动作组的动作。

在一些示例中,定制动作组包括每次接收到特定命令时将要执行的至少一个动作。例如,助手模块222可以使与用户相关联的一个或多个计算设备在每次接收到特定命令时(例如,每次接收到来自特定用户的命令“computer,tellmeaboutmyday(计算机,告诉我关于我的一天)”时)输出天气信息和交通信息。在一些情况下,定制动作组包括一个或多个要执行预定次数(例如,一次、两次等)的动作。例如,响应于接收到包括来自用户的配偶的“pickupmilkonthewayhome(在回家的路上取牛奶)”的消息,计算设备210的助手模块222可以使计算设备210输出包括提醒要取牛奶一次的消息(例如,下次助手模块222接收到与下午例程相关联的命令)。在一些情况下,助手模块222可以定制与该特定命令相关联的动作组,以包括当在特定时间段内(例如,在接下来的24小时之内)从特定用户接收到该特定命令时输出通知。

图3是示出根据本公开的一个或多个方面的由执行示例虚拟助手的一个或多个处理器执行的示例操作的流程图。下面在图1的计算设备110的上下文中描述图3。例如,根据本公开的一个或多个方面,助手模块122b在计算设备110a的一个或多个处理器处执行时,可以执行操作300-316。

在操作中,计算设备110a接收来自用户的同意以使用和存储个人信息(300)。例如,响应于标识潜在的个人信息,助手模块122b可以使ui模块120向用户请求许可以存储和利用在与助手模块122b和用户的交互期间获得的个人信息。应当理解,在每次助手模块122b想要使用或存储个人信息之前,计算设备110a可以不需要用户同意。例如,如果计算设备110a每年一次、每天一次、或甚至只是一次(例如,在购买初始产品、安装等之后)接收到同意,则计算设备110a可以将该事先同意视为同意将来使用和存储个人信息。

助手模块122b确定助手被配置为响应于接收到特定可听命令而执行的默认动作组(302)。换句话说,助手模块122b可以确定与特定命令相关联的默认动作组,并且助手模块122b可以被配置为响应于接收到特定可听命令而执行默认动作组。在一些示例中,助手模块122b确定与助手模块122b的所有用户相关联的默认动作组。助手模块122b可以确定与特定类型的用户相关联的默认动作组。助手模块122b可以通过查询预编程的动作组来确定默认的动作组。在一些示例中,助手模块122b使用机器学习来确定默认动作组。例如,助手模块122b可以将模型应用于存储在数据存储库124b中的用户信息,并且可以输出与特定命令相关联的一组动作。

助手模块122b确定是否为特定用户定制与特定命令相关联的一组动作(304)。例如,助手模块122b可以被配置为响应于从特定用户接收到特定可听命令而执行定制动作组。助手模块122b可以至少部分地基于与特定用户相关联的用户简档文件来确定是否定制一组动作。在一些示例中,用户简档文件包括来自用户的显式和/或隐式反馈的一个或多个指示,以使得助手模块122b可以基于来自用户的显式和/或隐式反馈来确定是否定制与特定用户和特定命令相关联的动作组。例如,助手模块122b可以接收提供显式反馈的命令(例如,“computer,addstartingmyvehicletomymorningroutine(计算机,将启动我的车辆添加到我的早上例程中)”),使得助手模块122b可以确定助手模块122b应该定制与用于早上例程的命令相关联的动作组。在一些示例中,用户简档文件包括用户交互数据并且可以基于用户交互数据确定定制动作组。例如,用户可以频繁地命令助手模块122b在早上冲泡一杯咖啡,使得助手模块122可以响应于确定特定用户已经请求助手模块122b执行动作至少阈值量来确定定制与特定命令相关联(例如,与早上例程相关联)的一组动作。在一些示例中,响应于接收到通知,助手模块122b确定定制与特定命令相关联的动作组。作为另一个示例,助手模块122b可以响应于确定先前没有与特定用户相关联的新的计算设备现在与特定用户相关联来定制与命令相关联的动作组。

在一些情况下,响应于确定定制与特定命令相关联的一组动作(304的“是”分支),助手模块122b确定与特定命令和特定用户相关联的定制动作组(305)。例如,助手模块122b可以通过生成定制动作组来确定与特定命令和特定用户相关联的定制动作组。助手模块122b可以通过更新与特定命令和特定用户相关联的现有定制动作组(例如,通过添加和/或移除动作)来确定定制动作组。定制动作组可以包括与特定命令相关联的默认动作组中的一个或多个动作、与特定命令相关联的默认动作组中不包括的一个或多个动作。在一些情况下,定制动作组不包括来自与特定命令相关联的默认动作组的一个或多个动作。助手模块122b可以将相关度分值分配给一个或多个相应动作(例如,基于特定用户的用户简档文件),并且可以将相应的相关度分值与相关度阈值进行比较。例如,响应于接收到来自用户的显式反馈(例如,“heycomputer,lockthedoorwhenigotowork(嘿,计算机,在我去工作时锁门)”),助手模块122b可以向特定动作(例如,锁门)分配相对高的相关度分值(例如,满分100分中的100分)。在一些示例中,助手模块122b响应于确定相关度分值满足相关度阈值来确定定制动作组包括特定动作。

助手模块122b接收特定命令的指示(306)。例如,uic112可以检测到指示命令的用户输入,并且可以将该命令的指示发送到助手模块122b。例如,uic112可以包括检测可听命令的麦克风,并且可以响应于检测到可听命令而向助手模块122b发送可听命令的指示。

助手模块122b确定特定可听命令的指示是否源自特定用户(308)。例如,助手模块122b可以对从uic112接收到的数据执行语音识别,以确定特定用户是否讲了特定命令。在一些示例中,助手模块122b可以接收(例如,大约在接收到可听命令的同时由计算设备110a的图像传感器捕获的)一个或多个图像的指示。助手模块122b可以对至少一个捕获的图像执行面部识别,并且可以响应于确定至少一个捕获的图像包括特定用户的图像来确定该命令源自特定用户。

响应于确定特定可听命令的指示源自特定用户(308的“否”分支),助手模块122b执行来自默认动作组的每个动作(310)。例如,助手模块122b可以使计算设备110中的一个或多个执行来自默认动作组的各种动作。

响应于确定特定可听命令的指示源自特定用户(308的“是”分支),助手模块122确定是否存在针对特定用户和特定可听命令的定制动作组(312)。在一些示例中,助手模块122b查询用户信息数据存储库(例如,数据存储库224和/或124中的一个或多个)以确定该数据存储库是否包括针对特定用户的定制动作组。例如,助手模块122b可以响应于接收到指示与该特定用户和特定命令相关联的一个或多个定制动作组的信息来确定存在与该特定用户和特定命令相关联的定制动作组,并且可以响应于返回空集的查询来确定不存在定制动作组。

助手模块122b响应于确定不存在与特定用户和特定命令相关联的定制动作组(312的“否”分支),执行来自与特定用户和特定命令类型相关联的默认动作组的至少一个动作(316)。例如,助手模块122b可以确定特定用户的用户类型,并向用户信息数据存储库124查询与该用户类型相关联的动作。响应于接收到与该类型的用户相关联的一个或多个动作的指示,助手模块122b执行一个或多个动作中的至少一个。例如,助手模块122b可以向与特定用户相关联的一个或多个计算设备发送命令,以执行来自与该类型用户相关联的默认动作组的一个或多个动作。

响应于确定确实存在与特定用户和特定命令相关联的定制动作组(312的“是”分支),助手模块122b执行来自与特定用户和特定命令相关联的定制动作组的一个或多个动作(314)。在一些示例中,助手模块122b执行来自定制动作组的每个动作。助手模块122b可以使计算设备110执行定制动作组中的一个或多个动作。例如,当计算设备110a包括台面家庭助手设备并且定制动作组包括输出天气信息时,助手模块122b可以使计算设备110a输出(例如,可听见地)天气信息。在一些示例中,助手模块122b可以使与用户相关联的另一计算设备执行来自默认动作组的一个或多个动作。例如,当定制动作组包括输出交通信息并且计算设备110b包括车辆头部单元时,助手模块122b可以使计算设备110b输出(例如,用于显示)交通信息。

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

如在图4的示例中所示,数字助手服务器460包括一个或多个处理器440、一个或多个通信单元442、和一个或多个存储设备448。存储设备448包括助手模块422、用户信息数据存储库424、和搜索模块482。

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

用户信息数据存储库424类似于图2的用户信息数据存储库224,并且被配置为存储在用户与助手模块422提供的助手之间的对话期间助手模块422已经了解的关于计算设备的用户的与用户相关联的信息。助手模块422可以依赖于存储在数据存储库424处的信息以确定事件并选择与事件有关的动作以用于包括在助手模块422发送的通知中。

助手模块422可以包括图1的助手模块122和图2的计算设备210的的助手模块222的一些或全部功能。助手模块422可以执行与助手模块122和222类似的操作,用于提供经由诸如网络130之类的网络可访问的助手服务。也就是说,助手模块422可以充当通过网络与数字助手服务器460通信的计算设备可访问的远程助手服务的接口。例如,助手模块422可以是图1的数字助手服务器160的助手模块122b的接口或api。

在操作中,助手模块422可以确定与特定(例如,可听)命令相关联的默认动作组。默认动作组可以与计算设备110、116的所有用户或用户的子集(例如,彼此相似的一种用户)相关联。例如,助手模块422可以通过从存储设备中检索预编程的动作组来确定默认的动作组。助手模块422可以通过将模型应用于存储在数据存储库424中的用户信息来确定默认动作组。默认动作组可以包括计算设备110、116的用户频繁执行、利用计算设备110、116执行、或两者的动作。默认动作组可以包括频繁执行的动作(例如,最频繁执行的动作或在一天的特定时间(诸如早上、下午、晚上等)最频繁执行的动作)。在一些示例中,默认动作组包括彼此相关联的动作(例如,当执行一个动作的阈值数量的用户也大致同时执行第二动作时)。

助手模块422可以确定是否定制与特定命令和特定用户相关联的一组动作。助手模块422可以至少部分地基于与特定用户相关联的用户简档文件来确定是否定制一组动作。在一些示例中,用户简档文件包括来自用户的显式和/或隐式反馈的一个或多个指示,使得助手模块422可以基于来自用户的显式和/或隐式反馈来确定是否定制与特定用户和特定命令相关联的动作组。响应于接收到通知,助手模块422可以确定定制与特定命令相关联的动作组。在一些实例中,响应于确定先前未与该特定用户相关联的新的计算设备现在与该特定用户相关联,助手模块422可以确定定制与该特定命令相关联的动作组。

助手模块422可以基于默认动作组和与特定用户相关联的用户简档文件来确定定制动作组。例如,数据存储库424可以包括与特定用户相关联的用户简档文件,诸如使用信息、兴趣等。助手模块422可以响应于确定特定动作与特定用户相关而在定制动作组中包括特定动作。例如,助手模块422可以基于用户简档文件中的信息(例如,动作使用信息、用户兴趣等)向一个或多个动作分配相关度分值,并且当相关度分值满足(例如,大于或等于)相关度阈值时,确定该特定动作与该特定用户相关。在一些示例中,助手模块422基于用户正在与之交互的计算设备的类型来确定是否将动作包括在定制动作组中。

助手模块422可以接收命令的指示。例如,图1的计算设备110a可以接收指示命令的输入(例如,键盘输入、手势、可听命令),并且可以将该命令的指示发送到计算设备460。助手模块422可以接收该命令的指示,并且可以响应于接收到特定命令的指示确定该命令是否源自特定用户。例如,助手模块422可以基于生物统计(例如,语音、面部、或手写识别)来确定该命令是否源自特定用户。例如,用户信息数据存储库424可以包括用于特定用户的语音指纹,并且可以将可听命令的指示与语音指纹进行比较以确定特定用户是否说出了可听命令。例如,助手模块422可以响应于确定口头命令对应于特定用户的语音指纹来确定特定用户说出了可听命令。

响应于确定命令不是源自特定用户,助手模块422可以执行默认动作组中的一个或多个动作。例如,当默认动作组包括输出新闻和天气信息时,助手模块422可以使一个或多个计算设备110输出新闻信息和天气信息。

响应于确定命令源自特定用户,助手模块422可以执行来自与特定用户相关联的定制动作组的一个或多个动作。例如,当定制动作组包括输出天气和交通信息并启动用户的车辆时,助手模块422可以使一个或多个计算设备110输出天气和交通信息并启动用户的车辆。例如,助手模块422可以使第一计算设备(例如,可能不具有显示设备的台面家庭助手)以可听方式输出天气信息,并且使第二不同的计算设备(例如,在车辆内)启动车辆和输出以用于显示(例如,经由车辆内的显示设备)以显示交通信息(例如,交通地图)。

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

示例1.一种方法,包括:由在一个或多个处理器处执行的助手来确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;由所述助手基于所述默认的动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;由所述助手接收所述特定可听命令的指示;由所述助手确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,由所述助手执行来自所述定制动作组的每个动作。

示例2.根据示例1所述的方法,其中,所述特定可听命令的所述指示是所述特定可听命令的第一指示,所述方法进一步包括:由所述助手接收所述特定可听命令的第二指示;由所述助手确定特定可听命令的所述第二指示是否源自所述特定用户;以及响应于确定特定可听命令的所述第二指示不是源自所述特定用户,由所述助手执行来自所述默认动作组的每个动作。

示例3.根据示例1-2中任一项所述的方法,其中,执行来自所述定制动作组的每个动作包括使与所述用户相关联的一个或多个计算设备执行来自所述定制动作组的每个动作。

示例4.根据示例1-3中的任一项所述的方法,进一步包括:响应于确定特定可听命令的所述指示源自所述特定用户,由所述助手确定是否存在与所述特定用户和特定命令相关联的所述定制动作组,其中,执行来自所述定制动作组的每个动作进一步是响应于确定存在与所述特定用户和特定命令相关联的所述定制动作组。

示例5.根据根据示例4所述的方法,其中,所述特定可听命令的所述指示是在第一时间接收到的所述特定可听命令的第一指示,所述方法进一步包括:由所述助手在比所述第一时间更早的第二时间接收所述特定可听命令的第二指示;由所述助手确定特定可听命令的所述第二指示是否源自所述特定用户;以及响应于确定所述特定可听命令的所述第二指示源自所述特定用户,由所述助手确定是否不存在与所述特定用户和特定命令相关联的所述定制动作组;响应于确定存在与所述特定用户和特定命令相关联的所述定制动作组,由所述助手执行来自与所述特定命令和对应于所述特定用户的用户的类型相关联的默认动作组的每个动作。

示例6.根据示例1-5中的任一项所述的方法,进一步包括:由所述助手确定所述助手是否已接收到所述特定可听命令的指示达至少阈值次数,其中,确定所述定制动作组是响应于确定所述助手已接收到所述特定可听命令的指示达至少阈值次数。

示例7.根据示例1-6中任一示例所述的方法,其中,确定所述定制动作组是响应于确定新的计算设备与所述特定用户相关联。

示例8.根据示例7所述的方法,所述方法进一步包括:由所述助手确定与所述新的计算设备相关联的新动作,由所述助手输出所述新动作的指示;以及由所述助手接收到用于将所述新动作添加到所述定制动作组的命令的指示,其中,确定所述定制动作组进一步是响应于接收到用于将所述新动作添加到所述定制动作组的所述命令的所述指示。

示例9.根据示例1-8中任一项的方法,其中,确定所述定制动作组进一步包括基于所述特定用户正在与之交互的计算设备的类型来确定所述定制动作组。

示例10.根据示例1-9中的任一项所述的方法,其中,所述定制动作组包括:每当接收到所述特定可听命令时要执行的动作;以及要被执行预定次数的动作。

示例11.根据示例1-10中任一项所述的方法,其中,执行来自所述动作组的每个动作包括:由第一计算设备执行来自所述定制动作组的至少第一动作;以及由第二计算设备执行来自所述定制动作组的至少第二动作。

示例12.一种计算系统,包括:输出设备;至少一个处理器;以及至少一个存储器,包括指令,所述指令在被执行时使所述至少一个处理器执行助手,所述助手被配置为:确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;基于所述默认动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;接收所述特定可听命令的指示;确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,执行来自所述定制动作组中的每个动作。

示例13.根据示例12所述的计算系统,其中,所述助手进一步被配置为接收所述特定可听命令的第二指示;确定特定可听命令的所述第二指示是否源自所述特定用户;以及响应于确定特定可听命令的所述第二指示不是源自所述特定用户,执行来自所述默认动作组的每个动作。

示例14.根据示例12-13中的任一项所述的计算系统,其中,所述助手进一步被配置为:响应于确定所述特定可听命令的所述指示源自所述特定用户,确定是否存在与所述特定用户和特定命令相关联的定制动作组;以及进一步响应于确定存在与所述特定用户和特定命令相关联的定制动作组来执行来自所述定制动作组中的每个动作。

示例15.根据示例14所述的计算系统,其中,所述特定可听命令的所述指示是在第一时间接收到的所述特定可听命令的第一指示,其中,所述助手进一步被配置为:在比所述第一时间更早的第二时间接收所述特定可听命令的第二指示;确定特定可听命令的所述第二指示是否源自所述特定用户;响应于确定所述特定可听命令的所述第二指示源自所述特定用户,确定是否不存在与所述特定用户和特定命令相关联的定制动作组;以及响应于确定存在与所述特定用户和特定命令相关联的所述定制动作组,执行来自与所述特定命令和对应于所述特定用户的用户的类型相关联的默认动作组的每个动作。

示例16.根据示例11-14中的任一项所述的计算系统,其中,所述助手进一步被配置为:确定所述助手是否已接收到所述特定可听命令的指示达至少阈值次数,响应于确定所述助手已接收到所述特定可听命令的指示达至少阈值次数,确定所述定制动作组。

示例16.根据示例11-15中的任一项所述的计算系统,其中,所述助手进一步被配置为:响应于确定新的计算设备与所述特定用户相关联来确定所述定制动作组。

示例17.根据示例16所述的计算系统,其中,所述助手进一步被配置为:确定与所述新的计算设备相关联的新动作,输出所述新动作的指示;以及接收用于将所述新动作添加到所述定制动作组的命令的指示,其中,所述助手被配置为进一步响应于接收到用于将所述新动作添加到所述定制动作组的所述命令的所述指示来确定所述定制动作组。

示例18.根据示例11-17中的任一项所述的计算系统,其中,所述助手被配置为:进一步基于所述特定用户正在与之交互的计算设备的类型来确定所述定制动作组。

示例19.根据示例11-18中的任一项所述的计算系统,其中,所述定制动作组包括:每当接收到所述特定可听命令时要执行的动作;以及要被执行预定次数的动作。

示例20.一种计算机可读存储介质,包括指令,所述指令在被执行时使数字助手系统的至少一个处理器执行以下操作:确定所述助手被配置为响应于接收到特定可听命令而执行的默认动作组;基于所述默认动作组和与特定用户相关联的用户简档文件,确定所述助手被配置为响应于从所述特定用户接收到所述特定可听命令而执行的定制动作组;接收所述特定可听命令的指示;确定特定可听命令的所述指示是否源自所述特定用户;以及响应于确定特定可听命令的所述指示源自所述特定用户,执行来自所述定制动作组中的每个动作。

示例21.一种计算设备,其包括至少一个处理器和至少一个存储器,所述存储器包括指令,所述指令在被执行时使所述至少一个处理器执行示例1-11中任一项所述的方法。

示例22.一种计算机可读存储介质,包括指令,所述指令在被执行时使计算设备的至少一个处理器执行示例1-11中任一项所述的方法。

示例23.一种系统,包括用于执行示例1-11中任一项所述的方法的装置。

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

作为示例而非限制,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器、或其他磁存储设备、闪存、或可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(dsl)、或诸如红外线、无线电和微波的无线技术从网站、服务器、或其他远程源传送指令,则同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电和微波的无线技术都包含在介质的定义中。然而,应该理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其它暂时性介质,而是相反针对非暂时性有形存储介质。如在此使用的磁盘和光盘包括致密盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。上述的组合也应该包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其他等同的集成或离散逻辑电路。因此,如在此使用的术语“处理器”可以指的是任何前述结构或适用于实现在此所描述的技术的任何其它结构。另外,在一些方面中,可以在专用硬件和/或软件模块内提供所描述的功能。而且,可以完全在一个或多个电路或逻辑元件中实现这些技术。

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

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

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