CN110637464A - 至少部分地基于图像数据来确定用于执行动作的代理 - Google Patents

至少部分地基于图像数据来确定用于执行动作的代理 Download PDF

Info

Publication number
CN110637464A
CN110637464A CN201880033175.9A CN201880033175A CN110637464A CN 110637464 A CN110637464 A CN 110637464A CN 201880033175 A CN201880033175 A CN 201880033175A CN 110637464 A CN110637464 A CN 110637464A
Authority
CN
China
Prior art keywords
agent
assistant
image data
module
agents
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880033175.9A
Other languages
English (en)
Other versions
CN110637464B (zh
Inventor
易卜拉欣·巴德尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202210294528.9A priority Critical patent/CN114756122A/zh
Publication of CN110637464A publication Critical patent/CN110637464A/zh
Application granted granted Critical
Publication of CN110637464B publication Critical patent/CN110637464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

Abstract

描述了一种助理,该助理至少部分地基于从计算设备的相机接收的图像数据来从多个代理中选择推荐的代理以执行与图像数据相关联的一个或多个动作。助理确定是推荐助理还是推荐的代理执行与图像数据相关联的一个或多个动作,并且响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作,输出对推荐的代理的指示。响应于接收到确认推荐的代理的用户输入,助理使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。

Description

至少部分地基于图像数据来确定用于执行动作的代理
背景技术
一些计算平台可以提供用户接口,用户从所述用户接口可与虚拟的计算助理(例如,也称为“智能个人助理”或简称为“助理”)聊天、讲话或者以其它方式进行通信以使该助理输出有用的信息,对用户的需要做出响应或者以其它方式执行某些操作以帮助用户完成各种真实世界的或虚拟的任务。例如,计算设备可以用麦克风或相机来接收对应于用户发言或用户环境的用户输入(例如,音频数据、图像数据等)。至少部分地在计算设备处执行的助理可以分析用户输入并且试图通过基于该用户输入输出有用的信息、对由该用户输入所指示的用户的需要做出响应来“协助”用户,或者以其它方式执行某些操作以基于用户输入来帮助用户完成各种真实世界的或虚拟的任务。
发明内容
通常,本公开的技术可以使得助理能够至少部分地基于由助理获得的图像数据来管理用于采取动作或者执行操作的多个代理。多个代理可以包括在助理内包括的和/或与助理共享共同发布者的一个或多个第一方(1P)代理和/或与计算设备的不是助理的部分的或不与助理共享共同发布者的应用或组件相关联的一个或多个第三方(3P)代理。在接收到来自用户的利用、存储和/或分析用户的个人信息的显式和不含糊的许可之后,计算设备可以用图像传感器(例如,相机)接收对应于用户环境的图像数据。代理选择模块可以分析图像数据以至少部分地基于图像数据中的内容来确定给定用户环境下用户可能想要执行的一个或多个动作。动作可以由助理或者由来自由助理管理的多个代理中的一个或多个代理的组合来执行。助理可以确定是推荐助理还是推荐的代理执行一个或多个动作并且输出对推荐的指示。响应于接收到确认或者改变推荐的用户输入,助理可以执行、发起、邀请或者使代理执行一个或多个动作。以这种方式,助理被配置成不仅确定可以适于用户的环境的动作,而且还推荐用于执行动作的适当的行动者。因此,所描述的技术可以通过减少用户发现各种动作并使助理执行各种动作所要求的用户输入的量来改进使用助理的可用性。
在一个示例中,本公开涉及一种方法,所述方法包括:通过可由计算设备访问的助理从计算设备的相机接收图像数据;通过助理基于图像数据并从可由计算设备访问的多个代理中选择推荐的代理以执行与图像数据相关联的一个或多个动作;并且通过助理确定是推荐助理还是推荐的代理执行与图像数据相关联的一个或多个动作。所述方法还包括:响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作,通过助理使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。
在另一示例中,本公开涉及一种系统,所述系统包括用于以下的装置:从计算设备的相机接收图像数据;基于图像数据并从可从计算设备访问的多个代理中选择推荐的代理以执行与图像数据关联的一个或多个动作;以及确定是推荐助理还是推荐的代理执行与图像数据相关联的一个或多个动作。所述系统还包括用于以下的装置:响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作,使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。
在另一示例中,本公开涉及一种计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令当由计算设备的一个或多个处理器执行时,使计算设备从计算设备的相机接收图像数据;基于图像数据并从可从计算设备访问的多个代理中选择推荐的代理以执行与图像数据相关联的一个或多个动作;以及确定是推荐助理还是推荐的代理执行与图像数据相关联的一个或多个动作。所述指令当被执行时,进一步使一个或多个处理器响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作,使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。
在另一示例中,本公开涉及一种计算设备,所述计算设备包括相机;输入设备;输出设备;一个或多个处理器以及存储与助理相关联的指令的存储器。所述指令当由一个或多个处理器执行时使一个或多个处理器从计算设备的相机接收图像数据;基于图像数据并从可从计算设备访问的多个代理中选择推荐的代理以执行与图像数据相关联的一个或多个动作;以及确定是推荐助理还是推荐的代理执行与图像数据相关联的一个或多个动作。所述指令当被执行时,进一步使一个或多个处理器响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作,使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。
在下面的附图和描述中阐述一个或多个示例的细节。根据说明书和附图并根据权利要求书,本公开的其它特征、目的和优点将是显而易见的。
附图说明
图1是图示依照本公开的一个或多个方面的执行示例助理的示例系统的概念图。
图2是图示依照本公开的一个或多个方面的被配置成执行示例助理的示例计算设备的框图。
图3是图示依照本公开的一个或多个方面的由执行示例助理的一个或多个处理器执行的示例操作的流程图。
图4是图示依照本公开的一个或多个方面的被配置成执行示例助理的示例计算系统的框图。
具体实施方式
图1是图示依照本公开的一个或多个方面的执行示例助理的示例系统的概念图。图1的系统100包括经由网络130与搜索服务器系统180、第三方(3P)代理服务器系统170A-170N(统称为“3P代理服务器系统170”)和计算设备110通信的数字助理服务器160。尽管系统100被示出为分布在数字助理服务器160、3P代理服务器系统170、搜索服务器系统180和计算设备110之间,但是在其它示例中,归属于系统100的特征和技术可以由计算设备110的本地组件在内部执行。类似地,数字助理服务器160和/或3P代理服务器系统170可以包括某些组件并且执行在以下描述中原本归属于搜索服务器系统180和/或计算设备110的各种技术。
网络130表示用于在计算系统、服务器和计算设备之间传输数据的任何公用或专用通信网络,例如,蜂窝、Wi-Fi和/或其它类型的网络。当计算设备110连接到网络130时,数字助理服务器160可以经由网络130与计算设备110交换数据以提供计算设备110可访问的虚拟协助服务。类似地,当计算设备110连接到网络130时3P代理服务器系统170可以经由网络130与计算设备110交换数据以提供计算设备110可访问的虚拟代理服务。数字助理服务器160可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。计算设备110可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。3P代理服务器系统170可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。
网络130可以包括一个或多个网络集线器、网络交换机、网络路由器或任何其它网络装备,它们操作上相互耦合从而提供信息在服务器系统160、170和180与计算设备110之间的交换。计算设备110、数字助理服务器160、3P代理服务器系统170和搜索服务器系统180可以使用任何适合的通信技术来跨网络130传输和接收数据。计算设备110、数字助理服务器160、3P代理服务器系统170和搜索服务器系统180均可以使用相应的网络链路操作上耦合到网络130。将计算设备110、数字助理服务器160、3P代理服务器系统170和搜索服务器系统180耦合到网络130的链路可以是以太网或其它类型的网络连接,并且这样的连接可以是无线和/或有线连接。
数字助理服务器160、3P代理服务器系统170和搜索服务器系统180表示能够向诸如网络130的网络发送信息并从诸如网络130的网络接收信息的任何适合的远程计算系统,诸如一个或多个台式计算机、膝上型计算机、大型机、服务器、云计算系统等。数字助理服务器160托管助理服务(或者至少提供对助理服务的访问)。3P代理服务器系统170托管辅助代理(或者至少提供对辅助代理的访问)。搜索服务器系统180托管搜索服务(或者至少提供对搜索服务的访问)。在一些示例中,数字助理服务器160、3P代理服务器系统170和搜索服务器系统180表示经由云提供对它们相应的服务的访问的云计算系统。
计算设备110表示单独的移动或非移动计算设备。计算设备110的示例包括移动电话、平板计算机、膝上型计算机、台式计算机、服务器、大型机、机顶盒、电视、可穿戴设备(例如,计算机化手表、计算机化眼镜、计算机化手套等)、家庭自动化设备或系统(例如,智能恒温器或安全系统)、话音接口或台面家庭助理设备、个人数字助理(PDA)、游戏系统、媒体播放器、电子书阅读器、移动电视平台、汽车导航或信息娱乐系统或被配置成执行或者访问助理并经由诸如网络130的网络接收信息的任何其它类型的移动、非移动、可穿戴和非可穿戴计算设备。
计算设备110可以经由网络130与数字助理服务器160、3P代理服务器系统170和/或搜索服务器系统180进行通信以访问由数字助理服务器160提供的助理服务、由3P代理服务器系统170提供的虚拟代理并且/或者以访问由搜索服务器系统180提供的搜索服务。在提供助理服务的过程中,数字助理服务器160可以经由网络130与搜索服务器系统180进行通信以获得搜索结果以用于向用户提供助理服务信息以完成任务。数字助理服务器160可以经由网络130与3P代理服务器系统170进行通信以使由3P代理服务器系统170提供的虚拟代理中的一个或多个参与以向用户提供助理服务附加协助。3P代理服务器系统170可以经由网络130与搜索服务器系统180进行通信以获得搜索结果以用于向用户提供语言代理信息以完成任务。
在图1的示例中,计算设备110包括用户接口设备(UID)112、相机114、用户接口(UI)模块120、助理模块122A、3P代理模块128aA-128aN(统称为“代理模块128a”)和代理索引124A。数字助理服务器160包括助理模块122B和代理索引124B。搜索服务器系统180包括搜索模块182。3P代理服务器系统170均包括相应的3P代理模块128bA-128bN(统称为“代理模块128b”)。
计算设备110的UIC 112可以充当计算设备110的输入和/或输出设备。可以使用各种技术来实现UID 112。例如,UID 112可以充当使用用于在接收用户输入时使用的存在敏感输入屏幕、麦克风技术、红外传感器技术、相机或其它输入设备技术的输入设备。UID 112可以充当输出设备,所述输出设备被配置成使用用于在向用户输出信息时使用的任何一个或多个显示设备、扬声器技术、触觉反馈技术或其它输出设备技术来向用户呈现输出。
计算设备110的相机114可以是用于记录或者捕获图像的器具。相机114可以捕获构成视频或电影的单独的静态相片或图像的序列。相机114可以是计算设备110的物理组件。相机114可以包括相机应用,所述相机应用作为计算设备110的用户或在计算设备110处执行的应用(和相机114的功能性)之间的接口。除了其他事物之外,相机114还可以执行各种功能,诸如捕获一个或多个图像、聚焦于一个或多个对象以及利用各种闪光灯设定。
模块120、122A、122B、128a、128b和182可以使用存在于计算设备110、数字助理服务器160、搜索服务器系统180和3P代理服务器系统170中的一个中和/或在计算设备110、数字助理服务器160、搜索服务器系统180和3P代理服务器系统170中的一个处执行的软件、硬件、固件或硬件、软件和固件的混合物来执行所描述的操作。计算设备110、数字助理服务器160、搜索服务器系统180和3P代理服务器系统170可以用多个处理器或多个设备来执行模块120、122A、122B、128a、128b和182。计算设备110、数字助理服务器160、搜索服务器系统180和3P代理服务器系统170可以将模块120、122A、122B、128a、128b和182作为在底层硬件上执行的虚拟机来执行。模块120、122A、122B、128a、128b和182可以作为操作系统的一个或多个服务或者在计算设备110、数字助理服务器160、3P代理服务器系统170或搜索服务器系统180的计算平台的应用层处执行。
UI模块120可以管理用户与UID 112的交互、由相机114检测到的输入以及UID112、相机114和计算设备110的其它组件之间的交互。UI模块120可以与数字助理服务器160交互以便经由UID 112提供助理服务。当计算设备110的用户在UID 112处查看输出和/或提供输入时,UI模块120可以使UID 112输出用户接口。
在接收到来自用户的对利用、存储和/或分析用户的个人信息的显式且不含糊的许可之后,UI模块120、UID 112和相机114可以在不同的时间并在用户和计算设备110位于不同的位置处时随着用户与计算设备110交互接收对来自用户的输入(例如,话音输入、触摸输入、非触摸或存在敏感输入、视频输入、音频输入等)的一个或多个指示。UI模块120、UID 112和相机114可以解释在UID 112和相机114处检测到的输入并且可以将关于在UID112和相机114处检测到的输入的信息中继到助理模块122和/或在计算设备110处执行的一个或多个其它相关联的平台、操作系统、应用和/或服务,例如以使计算设备110执行功能。
即使在提供许可之后,用户也可以通过向计算设备110提供输入来撤销许可。作为响应,计算设备110将停止利用用户的个人许可并且将删除用户的个人许可。
UI模块120可以从在计算设备110处执行的一个或多个相关联的平台、操作系统、应用和/或服务和/或诸如服务器系统160和180的一个或多个远程计算系统接收信息和指令。此外,UI模块120可以用作在计算设备110处执行的一个或多个相关联的平台、操作系统、应用和/或服务与计算设备110的各种输出设备(例如,扬声器、LED指示器、音频或触觉输出设备等)之间的中介以用计算设备110产生输出(例如,图形、灯的闪光、声音、触觉响应等)。例如,UI模块120可以使UID 112基于UI模块120经由网络130从数字助理服务器160接收的数据来输出用户接口。UI模块120可以从数字助理服务器160和/或助理模块122接收用于呈现用户接口的信息(例如,音频数据、文本数据、图像数据等)和指令作为输入。
搜索模块182可以执行对被确定为与搜索查询相关的信息的搜索,所述搜索查询是搜索模块182自动地生成的(例如,基于与计算设备110相关联的场境信息)或者是搜索模块182从数字助理服务器160、3P代理服务器系统170或计算设备110接收的(例如,作为助理代表计算设备110的用户正在完成的任务的一部分)。搜索模块182可以基于搜索查询来进行互联网搜索或本地设备搜索以识别与该搜索查询有关的信息。在执行搜索之后,搜索模块182可以将从搜索返回的信息(例如,搜索结果)输出到数字助理服务器160、3P代理服务器系统170中的一个或多个或计算设备110。
搜索模块182可以执行基于图像的搜索以确定包含在图像中的一个或多个视觉实体。例如,搜索模块182可以(例如,从助理模块122)接收图像数据作为输入,并且作为响应,输出从图像中可辨识的实体(例如,对象)的一个或多个标签或其它指示。例如,搜索模块182可以接收酒瓶的图像作为输入并且输出视觉实体的标签或其它标识符:酒瓶、酒的品牌、酒的类型、瓶的类型等。作为另一示例,搜索模块182可以接收街道中的狗的图像作为输入并且输出在街道视图中可辨识的视觉实体的标签或其它标识符,诸如:狗、街道、路过、前景中的狗、波士顿梗犬等。因此,搜索模块182可以输出指示一个或多个与图像数据(例如,图像或视频流)相关联的有关对象或实体的助理模块122A和122B可根据其推理与图像数据相关联的“意图”以便确定一个或多个潜在动作的信息或实体。
计算设备110的助理模块122A和数字助理服务器160的助理模块122B均可以执行本文描述的类似功能以便自动地执行助理,所述助理被配置成选择代理以:a)满足从计算设备的用户接收到的用户输入(例如,口语发言、文本输入等)并且/或者b)执行根据由诸如相机114的相机捕获的图像数据推理的动作。助理模块122B和助理模块122A可以被统称为助理模块122。助理模块122B可以将代理索引124B作为数字助理服务器160经由网络130提供(例如,给计算设备110)的助理服务的一部分来维护。助理模块122A可以将代理索引124A作为在计算设备110处在本地执行的助理服务的一部分来维护。代理索引124A和代理索引124B可以被统称为代理索引124。助理模块122B和代理索引124B表示示例助理的服务器侧或云实施方式,然而助理模块122A和代理索引124A表示示例助理的客户端侧或本地实施方式。
模块122A和122B均可以包括被配置成作为智能个人助理来执行的相应的软件代理,所述智能个人助理可为诸如计算设备110的用户的个体执行任务或服务。模块122A和122B可以基于以下各项来执行这些任务或服务:用户输入(例如,在UID 112处检测的)、图像数据(例如,由相机114捕获的)、场境感知(例如,基于位置、时间、天气、历史等)和/或访问来自各种其它信息源(例如,在计算设备110、数字助理服务器160处本地存储、经由搜索服务器系统180提供的搜索服务获得或者经由网络130经由某个其它信息源获得)的其它信息(例如,天气或交通状况、新闻、股票价格、体育分数、用户时间表、交通时间表、零售价格等)的能力。
模块122A和122B可以对从各种信息源接收到的输入执行人工智能和/或机器学习技术以代表用户自动地识别并完成一个或多个任务。例如,给定由相机114捕获的图像数据,助理模块122A可以依靠神经网络来根据图像数据确定用户可能希望执行的任务和/或用于执行该任务的一个或多个代理。
在一些示例中,由模块122提供的助理被称为第一方(1P)助理和/或1P代理。例如,由模块122表示的代理可以与计算设备110的操作系统和/或数字助理服务器160的所有者共享共同发布者和/或共同开发者。因此,在一些示例中,由模块122表示的代理可以具有诸如第三方(3P)代理的其它代理不可用的能力。在一些示例中,由模块122表示的代理可以不都是1P代理。例如,由助理模块122A表示的代理可以是1P代理,然而由助理模块122B表示的代理可以是3P代理。
如上面所讨论的,助理模块122A可以表示被配置成作为智能个人助理来执行的软件代理,所述智能个人助理可为诸如计算设备110的用户的个体执行任务或服务。然而,在一些示例中,可能期望助理利用其它代理来为个体执行任务或服务。
3P代理模块128b和128a(统称为“3P代理模块128”)表示系统100的可以被助理模块122利用来为个体执行任务或服务的其它助理或代理。由模块128提供的助理和/或代理被称为第三方(3P)助理和/或3P代理。由3P代理模块128表示的助理和/或代理可以不与计算设备110的操作系统和/或数字助理服务器160的所有者共享共同发布者。因此,在一些示例中,由模块128表示的助理和/或代理可能没有能力或者不访问对诸如1P代理助理和/或代理的其它助理和/或代理可用的数据。换句话说,每个代理模块128可以是与可从计算设备110访问的相应的第三方服务相关联的3P代理,并且在一些示例中,与每个代理模块128相关联的相应的第三方服务可以不同于由助理模块122提供的服务。3P代理模块128b表示示例3P代理的服务器侧或云实施方式,然而3P代理模块128a表示示例3P代理的客户端侧或本地实施方式。
3P代理模块128可以自动地执行相应的代理,所述相应的代理被配置成满足从诸如计算设备110的计算设备的用户接收到的发言或者至少部分地基于由诸如计算设备110的计算设备获得的图像数据来执行任务或动作。3P代理模块128中的一个或多个可以表示被配置成作为智能个人助理来执行的软件代理,所述智能个人助理可为诸如计算设备110的用户的个体执行任务或服务,然而一个或多个其它3P代理模块128可以表示可以被助理模块122利用来为助理模块122执行任务或服务的软件代理。
系统100的诸如助理模块122A和/或助理模块122B的一个或多个组件可以维护代理索引124A和/或代理索引124B(统称为“代理索引124”)以在半结构化索引中存储与对诸如计算设备110的用户的个体可用的或者对在计算设备110处执行或者计算设备110可访问的诸如助理模块122的助理可用的代理有关的代理信息。例如,代理索引124可以包含针对每个可用代理的具有代理信息的单个条目。
可以从由特定代理的开发者提供的代理信息构造针对特定代理的包括在代理索引124中的条目。可以被包括在这样的条目中或者可以用于构造条目的一些示例信息字段包括但不限于:对代理的描述、代理的一个或多个入口点、代理的类别、代理的一个或多个触发短语、与代理相关联的网站、代理的能力的列表和/或一个或多个图形意图(例如,可以由代理对其起作用的包含在图像或图像部分中的实体的标识符)。在一些示例中,信息字段中的一个或多个可以用自由形式自然语言编写。在一些示例中,可以从预定义列表中选择信息字段中的一个或多个。例如,可以从预定义的类别集(例如,游戏、生产力、通信)中选择类别字段。在一些示例中,代理的入口点可以是用于与代理接合(interface)的设备类型(例如,蜂窝电话)。在一些示例中,代理的入口点可以是代理的资源地址或其它自变量(argument)。
在一些示例中,代理索引124可以存储与可用代理的使用和/或执行有关的代理信息。例如,代理索引124可以包括每个可用代理的代理质量分数。在一些示例中,可以基于以下中的一个或多个来确定代理质量分数:特定代理是否比竞争代理更经常被选择、代理的开发者是否已产生其它高质量代理、代理的开发者是否在其它用户属性上具有良好的(或不好的)的垃圾邮件分数以及用户是否通常在执行的中间放弃代理。在一些示例中,可以将代理质量分数表示为介于0与1内含之间的含0与1的值。
代理索引124可以提供图形意图与代理之间的映射。如上面所讨论的,特定代理的开发者可以提供一个或多个图形意图以与该特定代理相关联。图形意图的示例包括数学运算符或公式、徽标、图标、商标、人类或动物面部或特征、建筑物、地标、标牌、符号、对象、实体、概念或可能可从图像数据中辨识的任何其它东西。在一些示例中,为了改进代理选择的质量,助理模块122可以在所提供的图形意图上扩展。例如,助理模块122可以通过使图形意图与其它类似或有关的图形意图相关联来扩展图形意图。例如,助理模块122可以用更具体的狗有关的意图(例如,品种、颜色等)或更一般的狗有关的意图(例如,其它宠物、其它动物等)在狗的图形意图上进行扩展。
在操作中,助理模块122A可以从UI模块120接收由相机114获得的图像数据。作为一个示例,助理模块122A可以接收指示相机114的视场中的一个或多个视觉实体的图像数据。例如,当坐在餐馆里时,用户可以将计算设备110的相机114指向桌子上的酒瓶并向UID112提供使相机114拍摄酒瓶的照片的用户输入。可以在诸如相机应用、消息收发应用等的单独的应用的背景下捕获图像数据,并且能够提供给助理模块122A对图像的访问或者替换地从操作助理模块122A的方面的助理应用的背景中访问图像。
依照本公开的一个或多个技术,助理模块122A可以选择推荐的代理模块128来执行与图像数据相关联的一个或多个动作。例如,助理模块122A可以确定是1P代理(即,由助理模块122A提供的1P代理)、3P代理(即,由3P代理模块128中的一个提供的3P代理)还是1P代理和3P代理的某种组合可以执行动作或者协助用户执行与酒瓶的图像数据有关的任务。
助理模块122A可以使代理选择基于对图像数据的分析。作为一个示例,助理模块122A可以对图像数据执行视觉辨识技术以确定可能与图像数据相关联的所有可能的实体、对象和概念。例如,助理模块122A可以经由网络130向搜索服务器系统180输出图像数据以及对搜索模块182通过执行对图像数据的基于图像的搜索来对图像数据执行视觉辨识技术的请求。响应于请求,助理模块122A可以经由网络130接收从由搜索模块182执行的基于图像的搜索返回的意图的列表。从对酒瓶的图像的基于图像的搜索返回的意图的列表通常可以返回与“酒瓶”或“酒”有关的意图。
助理模块122A可以基于代理索引124A中的条目来确定任何代理(例如1P或3P代理)是否已登记有从图像数据中推理的意图。例如,助理模块122A可以将酒意图输入到代理索引124A中并且接收已登记有酒意图并因此可以用于执行与酒相关联的动作的一个或多个代理模块128的列表作为输出。
助理模块122A可以对已登记有意图的一个或多个代理进行排名并且选择一个或多个最高排名的代理作为推荐的代理以执行与图像数据相关联的动作。例如,助理模块122A可以基于与已登记有意图的每个代理模块128相关联的代理质量分数确定排名。助理模块122A可以基于流行度或使用频率来对代理进行排名;也就是说,计算设备110的用户或其它计算设备的用户使用特定代理模块128的频率。助理模块122A可以基于场境(例如,位置、时间和其它场境信息)对代理模块128进行排名以从已登记有识别的意图的所有代理中选择推荐的代理模块128。
助理模块122A可以开发用于预测要针对给定场境、针对特定用户和/或针对特定意图推荐的优选的代理模块128的规则。例如,基于从计算设备110的用户和其它计算设备的用户获得的过去的用户交互数据,助理模块122A可以确定虽然大多数用户更喜欢使用特定代理模块128以执行基于特定意图的动作,但是计算设备110的用户可能替代地更喜欢使用不同的代理模块128以执行基于特定意图的动作,并且因此将用户的优选的代理排名高于大多数其它用户更喜欢的代理。
助理模块122A可以确定是推荐的助理模块122A还是推荐的代理模块128执行与图像数据相关联的一个或多个动作。例如,在一些情况下,助理模块122A可以是用于至少部分地基于图像数据来执行动作的推荐的代理,然而代理模块128中的一个可以是推荐的代理。助理模块122A可以在一个或多个代理模块128之中对助理模块122A进行排名并且选择任一个最高排名的代理(例如,助理模块122A或代理模块128)以执行基于从自相机114接收到的图像数据中推理的意图的动作。例如,代理模块128aA可以是被配置成提供关于各种酒的信息的代理并且还可以提供对可以从其中购买酒的商业服务的访问。助理模块122A可以确定代理模块128aA是执行与酒有关的动作的推荐的代理形式。
响应于确定推荐了推荐的代理执行与图像数据相关联的一个或多个动作,助理模块122A可以输出对推荐的代理的指示。例如,助理模块122A可以使UI模块120经由UID 112输出可听、视觉和/或触觉通知,从而指示至少部分基于由相机114捕获的图像数据,助理模块122A正在推荐用户与代理模块128aA交互以帮助用户在当前时间执行动作。通知可以包括助理模块122A已从图像推理出用户可能对一个或多个酒感兴趣的指示并且可以通知用户代理模块128aA可帮助回答问题或甚至订购酒。
在一些示例中,推荐的代理可以是多于一个的推荐的代理。在这样的情况下,助理模块122A可以输出用于用户选取特定推荐的代理的请求作为通知的一部分。
助理模块122A可以接收确认推荐的代理的用户输入。例如,在输出通知之后,用户可以在UID 112处提供触摸输入或者向UID 112提供话音输入从而确认用户希望使用推荐的代理来对由相机114获得的图像数据执行动作。
除非助理模块122A接收到这样的用户确认或其它显式同意,否则助理模块122A可以避免将由相机114捕获的任何图像数据输出到模块122A中的任一个。为了清楚,助理模块122可以避免利用或者分析用户或计算设备110的任何个人信息,包括由相机114捕获的图像数据,除非助理模块122接收到来自用户的要这样做的显式同意。助理模块122还可以为用户提供撤回或者去除同意的机会。
在任何情况下,响应于接收到确认推荐的代理的用户输入,助理模块122A可以使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行。例如,助理模块122A接收确认用户希望使用推荐的代理来对由相机114获得的图像数据执行动作的信息,助理模块122A可以将由相机114捕获的图像数据与用于处理图像数据并采取任何适当的动作的指令一起发送到推荐的代理。例如,助理模块122A可以将由相机114捕获的图像数据发送到代理模块128aA。代理模块128aA可以对图像数据执行它自己的分析、打开网站、触发动作、开始与用户进行谈话、示出视频或者使用图像数据来执行任何其它有关动作。例如,代理模块128aA可以对酒瓶的图像数据执行它自己的图像分析,确定酒的具体品牌或类型并且经由UI模块120和UID 112输出问用户他或她是否想要购买一瓶或者看评论的通知。
以这种方式,依照本公开的技术的助理可以被配置成不仅确定可以适于用户的环境或者与图形“意图”有关的动作,而且还可以被配置成推荐用于执行动作的适当的行动者或代理。因此,所描述的技术可以通过减少用户发现可以在用户的环境中执行的动作所需要的用户输入的量来改进助理的可用性,并且还可以使助理用少得多的输入执行各种动作。
在通过前述方法提供的若干益处当中的是:(1)可以通过将用户前摄地引导到助理的动作或能力而不是依靠来自用户的具体询问或者让用户花时间经由文档或其它方式学习动作或能力来减少设备行动的处理复杂度和时间;(2)可以在本地存储有意义的信息和与用户相关联的信息从而减少对用户的设备上的复杂且消耗存储器的私密数据的传输安全协议的需要;(3)因为示例助理将用户引导到动作或能力,所以用户可以请求更少的具体询问,从而减少在用户设备上对于查询重写和其它计算复杂的数据检索的需求;以及(4)因为随着具体询问的量减少助理模块需要对具体询问做出响应的数据可以减少,所以网络使用可以减少。以这种方式,助理可以在没有接口或这样做的指导的情况下向用户介绍助理的全部能力。助理可以基于用户的环境并且特别地使用图像数据来将用户引导到动作或能力。助理可以使用图像数据的提供作为对图像的用户兴趣的直接表达,而不是要求单独的输入来调用助理,调用助理的动作或能力并且将助理引导到作为所述动作或能力的对象的图像。
图2是图示依照本公开的一个或多个方面的被配置成执行示例助理的示例计算设备的框图。图2的计算设备210在下面作为图1的计算设备110的示例被描述。图2仅图示计算设备210的一个特定示例,并且可以在其它情况下使用计算设备210的许多其它示例,并且计算设备210的许多其它示例可以包括示例计算设备210中包括的组件的子集或者可以包括图2中未示出的附加组件。
如图2的示例中所示,计算设备210包括用户接口设备(USD)212、一个或多个处理器240、一个或多个通信单元242、包括相机214的一个或多个输入组件244、一个或多个输出组件246以及一个或多个存储组件248。USD 212包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。计算设备210的存储组件248包括UI模块220、助理模块222、搜索模块282、一个或多个应用模块226、代理选择模块227、3P代理模块228A-228N(统称为“3P代理模块228”)、场境模块230和代理索引224。
通信信道250可以互连组件212、240、242、244、246和248中的每一个以进行组件间通信(物理地、通信地和/或操作地)。在一些示例中,通信信道250可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其它方法。
计算设备210的一个或多个通信单元242可以通过在一个或多个网络(例如,图1的系统100的网络130)上传输和/或接收网络信号经由一个或多个有线和/或无线网络与外部设备(例如,图1的系统100的数字助理服务器160和/或搜索服务器系统180)进行通信。通信单元242的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、全球定位系统(GPS)接收器或可发送和/或接收信息的任何其它类型的设备。通信单元242的其它示例可以包括短波无线电、蜂窝数据无线电、无线网络无线电以及通用串行总线(USB)控制器。
计算设备210的包括相机214的一个或多个输入组件244可以接收输入。输入的示例是触觉、文本、音频、图像和视频输入。在一个示例中,除了相机114之外,计算设备210的输入组件242还包括存在敏感输入设备(例如,触摸屏、PSD)、鼠标、键盘、话音响应系统、麦克风或用于检测计算设备210的环境的输入或来自人类或机器的输入的任何其它类型的设备。在一些示例中,输入组件242可以包括一个或多个传感器组件、一个或多个定位传感器(GPS组件、Wi-Fi组件、蜂窝组件)、一个或多个温度传感器、一个或多个移动传感器(例如,加速度计、陀螺仪)、一个或多个压力传感器(例如,气压计)、一个或多个环境光传感器以及一个或多个其它传感器(例如,红外接近传感器、湿度计传感器等)。列举一些其它非限制性示例,其它传感器可以包括心率传感器、磁力计、葡萄糖传感器、嗅觉传感器、罗盘传感器、步计数器传感器。
计算设备110的一个或多个输出组件246可以生成输出。输出的示例是触觉、音频和视频输出。在一个示例中,计算设备210的输出组件246包括存在敏感显示器、声卡、视频图形适配器卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或用于生成对人类或机器的输出的任何其它类型的设备。
计算设备210的UID 212可以与计算设备110的UID 112类似并且包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。显示组件202可以是USD 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可以确定检测到对象的显示组件202的位置(例如,[x,y]坐标)。在另一示例范围中,存在敏感输入组件204可以检测离显示组件202六英寸或更少的对象,并且其它范围也是可能的。存在敏感输入组件204可以使用电容式、电感式和/或光学辨识技术来确定由用户的手指选择的显示组件202的位置。在一些示例中,存在敏感输入组件204还使用如关于显示组件202所描述的触觉、音频或视频刺激来向用户提供输出。在图2的示例中,PSD 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、227、228、230和282可以由处理器240操作以执行计算设备210的各种动作、操作或功能。例如,计算设备210的处理器240可以检索并执行由存储组件248存储的指令,所述指令使处理器240执行模块220、222、226、227、228、230和282的操作。指令当由处理器240执行时,可以使计算设备210将消息存储在存储组件248内。
计算设备210内的一个或多个存储组件248可以存储用于在计算设备210的操作期间处理的信息(例如,计算设备210可以存储由模块220、222、226、227、228、230和282在计算设备210处执行期间访问的数据)。在一些示例中,存储组件248是临时存储器,意指存储组件248的主要目的不是长期存储。计算设备210上的存储组件248可以作为易失性存储器被配置用于信息的短期存储并且因此在断电情况下不保持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域中已知的其它形式的易失性存储器。
在一些示例中,存储组件248还包括一个或多个计算机可读存储介质。存储组件248在一些示例中包括一个或多个非暂时性计算机可读存储介质。存储组件248可以被配置成存储比通常由易失性存储器存储的大的信息量。存储组件248还可以作为非易失性存储空间被配置用于信息的长期存储并且在通电/断电周期之后保持信息。非易失性存储器的示例包括磁硬盘、光盘、软盘、闪速存储器或电可编程存储器(EPROM)或电可擦除且可编程(EEPROM)存储器的形式。存储组件248可以存储与模块220、222、226、227、228、230和282及代理索引224相关联的程序指令和/或信息(例如,数据)。存储组件248可以包括被配置成存储与模块220、222、226、227、228、230和282及代理索引224相关联的数据或其它信息的存储器。
UI模块220可以包括图1的计算设备110的UI模块120的所有功能性并且可以执行与UI模块120类似的操作以便管理计算设备210在USD 212处提供的用户接口,例如以便于计算设备110的用户与助理模块222之间的交互。例如,计算设备210的UI模块220可以从助理模块222接收信息,所述信息包括用于输出助理用户接口(例如,显示或者播放音频)的指令。UI模块220可以通过通信信道250从助理模块222接收信息并且使用数据来生成用户接口。UI模块220可以通过通信信道250传输显示或可听输出命令和相关联的数据以使UID212在UID 212处呈现用户接口。
UI模块220可以接收对由相机114检测到的一个或多个输入的指示并且可以向助理模块222输出关于相机输入的信息。在一些示例中,UI模块220可以接收对在UID 212处检测到的一个或多个用户输入的指示并且可以向助理模块222输出关于用户输入的信息。例如,UID 212可以检测来自用户的话音输入并且向UI模块220发送关于该话音输入的数据。
UI模块220可以向助理模块222发送对相机输入的指示以进行进一步解释。助理模块222可以基于相机输入确定所检测的相机输入可以与一个或多个用户任务相关联。
应用模块226表示在计算设备210处执行并从计算设备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的场境。具体地,场境模块210主要由助理模块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)。
代理选择模块227可以包括用于选择一个或多个代理以满足给定发言的功能性。在一些示例中,代理选择模块227可以是独立模块。在一些示例中,可以将代理选择模块227包括在助理模块222中。
与图1的系统100的代理索引124A和124B类似,代理索引224可以存储与诸如3P代理的代理有关的信息。除了由场境模块230和/或搜索模块282提供的任何信息之外,助理模块222和/或代理选择模块227还可以依靠存储在代理索引224处的信息来执行助理任务并且/或者选择用于执行从图像数据推理的任务或操作的代理。
应助理模块222的请求,代理选择模块227可以选择一个或多个代理来执行与由相机214捕获的图像数据相关联的任务或操作。然而,在选择推荐的代理以执行与图像数据相关联的一个或多个动作之前,代理选择模块227可以经历预配置或设置过程以生成代理索引224并且/或者从3P代理模块228接收关于其能力的信息。
代理选择模块227可以从来自多个代理的每个特定代理接收包括与该特定代理相关联的一个或多个相应的意图的登记请求。代理选择模块227可以使来自多个代理的每个特定代理登记有与特定代理相关联的一个或多个相应的意图。例如,当被加载到计算设备220上时,3P代理模块228可以向代理选择模块227发送使每个代理向代理选择模块227登记的信息。登记信息可以包括代理标识符和代理可满足的一个或多个意图。例如,3P代理模块228A可以是PizzaHouse公司的比萨订购代理并且当被安装在计算设备220上时,3P代理模块228A可以向代理选择模块227发送使3P代理模块228A登记有与名称“PizzaHouse”、PizzaHouse徽标或商标以及指示“食物”、“餐馆”和“比萨”的图像或文字相关联的意图的信息。代理选择模块227可以将登记信息连同3P代理模块228A的标识符一起存储在代理索引224处。
代理选择模块227根据其对识别的代理进行排名的存储在代理索引224处的代理信息包括:指示由计算设备210的用户和/或其它计算设备的用户对特定代理的使用频率的特定代理的流行度分数、特定代理与图像数据的意图之间的相关性分数、特定代理与图像数据之间的有用性分数、与和特定代理相关联的一个或多个意图中的每一个相关联的重要性分数、与特定代理相关联的用户满意度分数、与特定代理相关联的用户交互分数以及与特定代理相关联的质量分数(例如,从图像数据推理的各种意图与向代理登记的意图之间的匹配的加权和)。对代理模块328的排名可以基于针对如由代理选择模块227所确定的每个可能的代理的组合分数,例如,通过将两种不同类型的分数相乘或相加。
基于代理索引224和/或从3P代理模块228接收到的关于其能力的登记信息,代理选择模块227可以响应于确定推荐的代理登记有从图像数据中推理的一个或多个意图而选择推荐的代理。例如,代理选择模块227可以使用来自助理模块222的由代理选择模块227确定为指示订购食物、比萨等的意图的图像数据。代理选择模块227可以将从图像数据中推理的意图输入到代理索引224中并且从代理索引224接收对3P代理模块228A以及可能地已登记有食物或比萨意图的一个或多个其它3P代理模块228的指示作为输出。
代理选择模块227可以从代理索引224识别与从图像数据中推理的一个或多个意图匹配的登记的代理。代理选择模块227可以对所标识的代理进行排名。换句话说,响应于从图像数据中推理一个或多个意图:代理选择模块227可以从3P代理模块228中识别登记有一个或多个意图中的已从图像数据中推理的至少一个意图的一个或多个3P代理模块228。基于与一个或多个3P代理模块228中的每一个和一个或多个意图有关的信息,代理模块227可以确定一个或多个3P代理模块228的排名并且至少部分地基于该排名来从一个或多个3P代理模块228中选择推荐的3P代理模块228。
在一些示例中,代理选择模块227可以通过经由基于图像的互联网搜索发送图像数据来至少部分地基于图像数据识别一个或多个推荐的代理(即,使搜索模块282基于图像数据来搜索互联网)。在一些示例中,代理选择模块227除了咨询代理索引224之外还可以通过经由基于图像的互联网搜索发送图像数据来至少部分地基于图像数据识别一个或多个推荐的代理。
在一些示例中,代理索引224可以包括或者被实现为机器学习系统以生成与意图有关的代理的分数。例如,代理选择模块227可以将从图像数据中推理的一个或多个意图输入到代理索引224的机器学习系统中。机器学习系统可以基于与一个或多个代理的每一个和一个或多个意图有关的信息来确定一个或多个代理中的每一个的相应的分数。代理选择模块227可以从机器学习系统接收一个或多个代理中的每一个的相应的分数。
在一些示例中,代理索引224和/或代理索引224的机器学习系统可以依靠与助理模块222有关的信息以及是否助理模块222登记有任何意图以确定是否推荐助理模块222执行至少部分地基于图像数据的一个或多个动作或任务。也就是说,代理选择模块227可以将从图像数据中推理的一个或多个意图输入到代理索引224的机器学习系统中。在一些示例中,代理选择模块227可以将由场境模块230获得的场境信息输入到代理索引224的机器学习系统中以确定3P代理模块228的排名。机器学习系统可以基于与助理模块222有关的信息来确定一个或多个意图和/或场境信息、助理模块222的相应的分数。代理选择模块227可以从机器学习系统接收助理模块222的相应的分数。
代理选择模块227可以确定是推荐助理模块222还是来自3P代理模块228的推荐的代理执行与图像数据相关联的一个或多个动作。例如,代理选择模块227可以确定3P代理模块228中的最高排名的3P代理模块的相应分数是否超过助理模块222的分数。响应于确定来自3P代理模块228的最高排名的代理的相应的分数超过助理模块222的分数,代理选择模块227可以确定推荐最高排名的代理执行与图像数据相关联的一个或多个动作。响应于确定来自3P代理模块228的最高排名的代理的相应的分数不超过助理模块222的分数,代理选择模块227可以确定推荐最高排名的代理执行与图像数据相关联的一个或多个动作。
代理选择模块227可以分析排名和/或来自互联网搜索的结果以选择代理以执行一个或多个动作。例如,代理选择模块227可以检验搜索结果以确定是否存在与代理相关联的网页结果。如果存在与代理相关联的网页结果,则(如果所述代理尚未被包括在经排名的结果中)代理选择模块227可以将与网页结果相关联的代理插入到经排名的结果中。代理选择模块227可以根据web分数的强度来增强或者降低代理的排名。在一些示例中,代理选择模块227可以查询个人历史存储以确定用户是否已与结果集中的代理中的任一个交互过。如果是这样的话,则代理选择模块227可以取决于用户与那些代理的历史的强度来给予那些代理增强(即,增加的排名)。
代理选择模块227可以基于排名来选择要推荐以执行从图像数据中推理的动作的3P代理。例如,代理选择模块227可以选择具有最高排名的3P代理。在一些示例中,诸如在排名中有平局的情况下和/或如果具有最高排名的3P代理的排名小于排名阈值,则代理选择模块227可以索求用于选择3P代理的用户输入来满足发言。例如,代理选择模块227可以使UI模块220输出请求用户从N(例如,2、3、4、5等)个适中地排名的3P代理中选择3P代理以满足发言的用户接口(即,选择UI)。在一些示例中,N个适中地排名的3P代理可以包括排名前N个的代理。在一些示例中,N个适中地排名的3P代理可以包括除排名前N个的代理以外的代理。
代理选择模块227可以检查代理的属性并且/或者从各种3P代理获得结果,对那些结果进行排名,然后使助理模块222调用(即,选择)提供最高排名的结果的3P代理。例如,如果意图与“比萨”有关,则代理选择模块227可以确定用户的当前位置,确定哪一个比萨的源最靠近用户的当前位置,并且将与该当前位置相关联的比萨源排名最高。类似地,代理选择模块227可以针对物品的价格轮询多个3P代理,然后基于最低价格提供用于允许用户完成购买的代理。代理选择模块227可以在确定任何3P代理是否可将仅那些代理作为选项提供给用户以便实现任务并且假定任何3P代理中的仅一个或几个可将仅那些代理作为选项提供给用户以便实现任务之前确定没有1P代理可履行任务。
以这种方式,计算设备210经由助理模块222和代理选择模块227可以提供比其它类型的数字助理服务更不复杂的助理服务。也就是说,计算设备210可以依靠其它服务提供商或3P代理来执行至少一些复杂的任务,而不是设法处置在每天使用期间可能出现的所有可能的任务。在这样做时,计算设备210可以保留用户已经适当地与3P代理具有的私密关系。
图3是图示依照本公开的一个或多个方面的由执行示例助理的一个或多个处理器执行的示例操作的流程图。在下面在图1的系统100的计算设备110的背景中描述图3。例如,助理模块122A在计算设备110的一个或多个处理器处执行时可以执行依照本公开的一个或多个方面的操作302-314。并且在一些示例中,助理模块122B在数字助理服务器160的一个或多个处理器处执行时可以执行依照本公开的一个或多个方面的操作302-314。
在操作中,计算设备110可以诸如从相机114或其它图像传感器接收图像数据(302)。例如,在接收到来自用户的对利用包括图像数据的个人信息的显式许可之后,计算设备110的用户可以将计算设备110的相机114指向墙壁上的电影海报并且向UID 112提供使相机114拍摄该电影海报的照片的用户输入。
依照本公开的一个或多个技术,助理模块122A可以选择推荐的代理模块128以执行与图像数据相关联的一个或多个动作(304)。例如,助理模块122A可以确定是1P代理(即,由助理模块122A提供的1P代理)、3P代理(即,由3P代理模块128中的一个提供的3P代理)还是1P代理和3P代理的某种组合可以执行动作或者协助用户执行与电影海报的图像数据有关的任务。
助理模块122A可以使代理选择基于对图像数据的分析。作为一个示例,助理模块122A可以对图像数据执行视觉辨识技术以确定可能与图像数据相关联的所有可能的实体、对象和概念。例如,助理模块122A可以经由网络130向搜索服务器系统180输出图像数据以及对搜索模块182通过对图像数据执行基于图像的搜索来对图像数据执行视觉辨识技术的请求。响应于请求,助理模块122A可以经由网络130接收从由搜索模块182执行的基于图像的搜索返回的意图的列表。从对酒瓶的图像的基于图像的搜索返回的意图的列表通常可以返回与“电影的名称”或“电影”或“电影海报”有关的意图。
助理模块122A可以基于代理索引124A中的条目来确定任何代理(例如,1P或3P代理)是否已登记有从图像数据中推理的意图。例如,助理模块122A可以将电影意图输入到代理索引124A中并且接收已登记有电影意图并因此可以用于执行与电影相关联的动作的一个或多个代理模块128的列表作为输出。
助理模块122A可以开发用于预测要针对给定场境、针对特定用户和/或针对特定意图推荐的优选代理模块128的规则。例如,基于从计算设备110的用户和其它计算设备的用户获得的过去的用户交互数据,助理模块122A可以确定虽然大多数用户更喜欢使用特定代理模块128以执行基于特定意图的动作,但是计算设备110的用户可以替代地更喜欢使用不同的代理模块128以执行基于特定意图的操作并且因此将用户的优选代理排名得高于大多数其它用户更喜欢的代理。
助理模块122A可以确定是推荐助理模块122A还是推荐的代理模块128执行与图像数据相关联的一个或多个动作(306)。例如,在一些情况下,助理模块122A可以是用于执行至少部分地基于图像数据的动作的推荐的代理,然而代理模块128中的一个可以是推荐的代理。助理模块122A可以在一个或多个代理模块128之中对助理模块122A排名并且选择任一个最高排名的代理(例如,助理模块122A或代理模块128)以执行基于从自相机114接收到的图像数据中推理的意图的动作。例如,助理模块122A和代理模块128aA均可以是被配置成订购电影票、观看电影预告片或者租用电影的代理。助理模块122A可以比较与助理模块122A和代理模块128aA相关联的质量分数以确定要推荐哪一个用于执行与电影海报有关的动作。
响应于确定推荐助理模块122A执行与图像数据相关联的一个或多个动作(306,助理),助理模块122A可以使助理模块122A执行动作(308)。例如,助理模块122A可以使UI模块120经由UID 112输出请求针对用户想要购买票来看电影海报中的特定电影的放映还是观看海报中的电影的预告片的用户输入的用户接口。
响应于确定推荐推荐的代理执行与图像数据相关联的一个或多个动作(306,代理),助理模块122A可以输出对推荐的代理的指示(310)。例如,助理模块122A可以使UI模块120经由UID 112输出可听、视觉和/或触觉通知,从而指示至少部分地基于由相机114捕获的图像数据,助理模块122A正在推荐用户与代理模块128aA交互以帮助用户在当前时间执行操作。通知可以包括如下指示:助理模块122A已从图像数据中推理用户可能对电影或海报中的特定电影感兴趣并且可以通知用户代理模块128aA可帮助回答问题、放映预告片或者甚至订购电影票。
在一些示例中,推荐的代理可以是多于一个的推荐的代理。在这样的情况下,助理模块122A可以输出对用户选择特定推荐的代理的请求作为通知的一部分。
助理模块122A可以接收确认推荐的代理的用户输入(312)。例如,在输出通知之后,用户可以在UID 112处提供触摸输入或者向UID 112提供话音输入从而确认用户希望使用推荐的代理来订购电影票或者看电影海报中的电影的预告片。
除非助理模块122A接收到这样的用户确认或其它显式同意,否则助理模块122A可以避免将由相机114捕获的任何图像数据输出到模块128A中的任一个。为了清楚,助理模块122可以避免利用或者分析用户或计算设备110的任何个人信息,包括由相机114捕获的图像数据,除非助理模块122接收到来自用户的要这样做的显式同意。助理模块122还可以为用户提供撤回或者去除同意的机会。
在任何情况下,响应于接收到确认推荐的代理的用户输入,助理模块122A可以使推荐的代理至少发起与图像数据相关联的一个或多个动作的执行(314)。例如,助理模块122A接收确认用户希望使用推荐的代理来对由相机114获得的图像数据执行动作的信息,助理模块122A可以将由相机114捕获的图像数据以及用于处理图像数据并采取任何适当的动作的指令发送到推荐的代理。例如,助理模块122A可以将由相机114捕获的图像数据发送到代理模块128aA或者可以启动在计算设备110处执行的与代理模块128aA相关联的应用。代理模块128aA可以对图像数据执行它自己的分析、打开网站、触发动作、开始与用户进行谈话、示出视频或者使用图像数据来执行任何其它相关动作。例如,代理模块128aA可以对电影海报的图像数据执行它自己的图像分析,确定特定电影并且经由UI模块120和UID 112输出问用户他或她是否想要观看电影的预告片的通知。
更一般地,“使推荐的代理执行动作”可以包括诸如助理模块122A的助理调用3P代理。在这样的情况下,为了执行任务或操作,3P代理可能仍要求进一步的用户动作,诸如批准、键入支付信息等。当然,一些情况下,使推荐的代理执行动作也可以使3P代理执行动作而无需要求进一步的用户动作。
在一些示例中,助理模块122A可以通过使得推荐的3P代理能够确定信息或者生成与一个或多个动作相关联的结果来至少发起与图像数据相关联的一个或多个动作的执行或者开始但不完全完成动作,并且然后允许助理模块122A与用户共享结果或者完成动作。例如,3P代理可以在由助理模块122A发起之后接收比萨订购的所有细节(例如,量、类型、馅料、地址、时间、递送/打包等),并且然后将控制转交回给助理模块122A以使助理模块122A完成订单。例如,3P代理可以使计算设备110在UIC 112处输出“我们现在将带你回到<1P助理>以完成此订购”的指示。以这种方式,1P助理可以处置订单的财务细节,使得用户的信用卡等不被共享。换句话说,依照本文描述的技术,3P可以执行动作中的一些,并且然后将控制交回给1P助理以完成或者促进动作。
图4是图示依照本公开的一个或多个方面的被配置成执行示例助理的示例计算系统的框图。图4的数字助理服务器460在下面作为图1的数字助理服务器160的示例被描述。图4仅图示数字助理服务器460的一个特定示例,并且可以在其它情况下使用数字助理服务器460的许多其它示例,并且数字助理服务器460的许多其它示例可以包括示例数字助理服务器460中包括的组件的子集或者可以包括图4中未示出的附加组件。
如图4的示例中所示,数字助理服务器460包括用户、一个或多个处理器440、一个或多个通信单元442和一个或多个存储组件448。存储组件448包括助理模块422、代理选择模块427、代理准确性模块431、搜索模块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提供的服务的计算设备的场境。场境可以指定在特定时间计算设备的物理和/或虚拟环境和计算设备的用户的特性。
代理选择模块427类同于计算设备210的代理选择模块227。
助理模块422可以包括图1的助理模块122A和助理模块122B以及图2的计算设备210的助理模块222的所有功能性。助理模块422可以执行与助理模块122B类似的操作以便提供可经由助理服务器460访问的助理服务。也就是说,助理模块422可以用作对正在通过网络与数字助理服务器460进行通信的计算设备可访问的远程协助服务的接口。例如,助理模块422可以是对图1的数字助理服务器160的远程协助模块122B的接口或API。
类似于图2的代理索引224,代理索引424可以存储与诸如3P代理的代理有关的信息。除了由场境模块430和/或搜索模块482提供的任何信息之外,助理模块422和/或代理选择模块427还可以依靠存储在代理索引424处的信息来执行助理任务并且/或者选择代理来执行动作或者完成从图像数据中推理的任务。
依照本公开的一种或多种技术,代理准确性模块431可以采集关于代理的附加信息。在一些示例中,代理准确性模块431可以被认为是自动化代理爬取器(crawler)。例如,代理准确性模块431可以查询每个代理并存储它接收的信息。作为一个示例,代理准确性模块431可以向默认代理入口点发送请求并且将从该代理反过来接收关于该代理的能力的描述。代理准确性模块431可以将此接收到的信息存储在代理索引424中(即,以改进对准)。
在一些示例中,数字助理服务器460可以在适用的情况下接收代理的库存信息。作为一个示例,在线杂货店的代理可向数字助理服务器460提供其产品的数据馈送(例如,结构化数据馈送),包括描述、价格、量等。代理选择模块(例如,代理选择模块224和/或代理选择模块424)可以访问此数据作为选择代理的一部分以满足用户的发言。这些技术可以使得系统能够更好地响应于对诸如“订购一瓶普罗赛克”的查询。在这样的情形下,如果代理已提供了它们的实时库存并且库存指示代理销售普罗塞克并在库存中有普罗塞克,则代理选择模块可更确信地使图像数据与代理相匹配。
在一些示例中,数字助理服务器460可以提供用户可以浏览以发现/查找他们可能想要使用的代理的代理目录。该目录可以具有对每个代理的描述、能力的列表(以自然语言;例如,“你可使用此代理来预订出租车”、“你可使用此代理来查找食物食谱”)。如果用户在目录中找到他们想要使用的代理,则用户可以选择该代理并且该代理对用户可用。例如,助理模块422可以将代理添加到代理索引224和或代理索引424中。因此,代理选择模块227和/或代理选择模块427可以选择所添加的代理来满足将来的发言。在一些示例中,可以在没有用户选择的情况下将一个或多个代理添加到代理索引224或代理索引424中。在这样的示例中的一些中,代理选择模块227和/或代理选择模块427可以能够至少部分地基于图像数据来选择和/或建议尚未被用户选择的代理以执行动作。在一些示例中,代理选择模块227和/或代理选择模块427可以基于代理是否被用户选择来进一步对它们进行排名。
在一些示例中,代理目录中列举的代理中的一个或多个可以是免费的(即,无费用提供)。在一些示例中,代理目录中列举的代理中的一个或多个可能不是免费的(即,用户可能必须支付钱或某种其它报酬以便使用代理)。
在一些示例中,代理目录可以收集用户评论和评级。所收集的用户评论和评级可以用于修改代理质量分数。作为一个示例,当代理接收到肯定评论和/或评级时,代理准确性模块431可以在代理索引224或代理索引424中增加代理的流行度分数或代理质量分数。作为另一示例,当代理接收到负面评论和/或评级时,代理准确性模块431可以在索引224或代理索引424中降低代理的流行度分数或代理质量分数。
将领会的是,经改进的计算设备的操作是根据上述描述获得的。例如,通过识别优选代理来执行由用户提供的任务,可减少通用搜索和复杂的查询重写。这进而减少带宽和数据传输的使用,减少临时易失性存储器的使用,减少电池消耗等。此外,在某些实施例中,优化设备性能和/或使蜂窝数据使用最小化可以是用于对代理进行排名的高的加权的特征,使得基于这些准则的对代理的选择提供期望的设备性能的直接改进和/或减少的数据使用。
条款1.一种方法,所述方法包括:通过可由计算设备访问的助理从所述计算设备的相机接收图像数据;通过所述助理基于所述图像数据并从可由所述计算设备访问的多个代理中选择推荐的代理以执行与所述图像数据相关联的一个或多个动作;通过所述助理确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作;响应于确定推荐所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作,通过所述助理使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作。
条款2.根据条款1所述的方法,还包括:在选择所述推荐的代理以执行与所述图像数据相关联的一个或多个动作之前:通过所述助理从来自所述多个代理的每个特定代理接收登记请求,所述登记请求包括与该特定代理相关联的一个或多个相应的意图;以及通过所述助理使来自所述多个代理的每个特定代理登记有与该特定代理相关联的所述一个或多个相应的意图。
条款3.根据条款2所述的方法,其中,选择所述推荐的代理包括:响应于确定所述推荐的代理登记有从所述图像数据中推理的一个或多个意图而选择所述推荐的代理。
条款4.根据条款1至3中的任何一项所述的方法,其中,选择所述代理还包括:从所述图像数据推理一个或多个意图;从所述多个代理中识别登记有所述一个或多个意图中的至少一个意图的一个或多个代理;基于与所述一个或多个代理中的每一个和所述一个或多个意图有关的信息来确定所述一个或多个代理的排名;以及至少部分地基于所述排名来从所述多个代理中选择所述推荐的代理。
条款5.根据条款4所述的方法,其中,与来自所述一个或多个代理的特定代理有关的所述信息包括以下中的至少一个:所述特定代理的流行度分数、所述特定代理与所述图像数据之间的相关性分数、所述特定代理与所述图像数据之间的有用性分数、与和所述特定代理相关联的所述一个或多个意图中的每一个相关联的重要性分数、与所述特定代理相关联的用户满意度分数以及与所述特定代理相关联的用户交互分数。
条款6.根据条款4或5中的任何一项所述的方法,其中,确定所述一个或多个代理的所述排名包括:通过所述助理将与所述一个或多个代理中的每一个和所述一个或多个意图有关的所述信息输入到机器学习系统;通过所述助理从所述机器学习系统接收所述一个或多个代理中的每一个的相应的分数;以及基于所述一个或多个代理中的每一个的所述相应的分数来确定所述一个或多个代理的所述排名。
条款7.根据条款6所述的方法,其中,确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作包括:通过所述助理将与所述助理和所述一个或多个意图有关的信息输入到所述机器学习系统中;通过所述助理从所述机器学习系统接收所述助理的分数;确定来自所述一个或多个代理的最高排名的代理的所述相应的分数是否超过所述助理的分数;响应于确定来自所述一个或多个代理的所述最高排名的代理的所述相应的分数超过所述助理的所述分数,通过所述助理确定推荐所述最高排名的代理执行与所述图像数据相关联的所述一个或多个动作。
条款8.根据条款4至7中的任何一项所述的方法,其中,确定所述一个或多个代理的所述排名还包括通过所述助理将与所述计算设备相关联的场境信息输入到机器学习系统中。
条款9.根据条款1至8中的任何一项所述的方法,其中,使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作包括:通过所述助理向与所述推荐的代理相关联的远程计算系统输出所述图像数据的至少一部分以使与所述推荐的代理相关联的所述远程计算系统执行与所述图像数据相关联的所述一个或多个动作。
条款10.根据条款1至9中的任何一项所述的方法,其中,使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作包括:通过所述助理代表所述推荐的代理输出对与所述图像数据的至少一部分相关联的用户输入的请求。
条款11.根据条款1至10中的任何一项所述的方法,其中,使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作包括:通过所述助理使所述推荐的代理从所述计算设备启动应用以执行与所述图像数据相关联的所述一个或多个动作,其中,所述应用不同于所述助理。
条款12.根据条款1至11中的任何一项所述的方法,其中,来自所述多个代理的每个代理是与可从所述计算设备访问的相应的第三方服务相关联的第三方代理。
条款13.根据条款12所述的方法,其中,与所述多个代理中的每一个相关联的所述相应的第三方服务与由所述助理提供的服务不同。
条款14.一种计算设备,包括:相机;输出设备;输入设备;至少一个处理器;以及存储指令的存储器,所述指令当被执行时,使所述至少一个处理器执行助理,所述助理被配置成:从所述相机接收图像数据;基于所述图像数据并从可从所述计算设备访问的多个代理中选择推荐的代理以执行与所述图像数据相关联的一个或多个动作;确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关的所述一个或多个动作;响应于确定推荐所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作,使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作。
条款15.根据条款14所述的计算设备,其中,所述助理还被配置成:在选择所述推荐的代理以执行与所述图像数据相关联的一个或多个动作之前:从来自所述多个代理的每个特定代理接收登记请求,所述登记请求包括与该特定代理相关联的一个或多个相应的意图;并且使来自所述多个代理的每个特定代理登记有与该特定代理相关联的所述一个或多个相应的意图。
条款16.根据条款14或15中的任何一项所述的计算设备,其中,所述助理还被配置成响应于确定所述推荐的代理登记有从所述图像数据中推理的一个或多个意图而选择所述推荐的代理。
条款17.根据条款14至16中的任何一项所述的计算设备,其中,所述助理还被配置成至少通过以下选择所述推荐的代理:从所述图像数据中推理一个或多个意图;从所述多个代理中识别登记有所述一个或多个意图中的至少一个意图的一个或多个代理;基于与所述一个或多个代理中的每一个和所述一个或多个意图有关的信息来确定所述一个或多个代理的排名;并且至少部分地基于所述排名来从所述多个代理中选择所述推荐的代理。
条款18.根据条款17所述的计算设备,其中,与来自所述一个或多个代理的特定代理有关的所述信息包括以下中的至少一个:所述特定代理的流行度分数、所述特定代理与所述图像数据之间的相关性分数、所述特定代理与所述图像数据之间的有用性分数、与和所述特定代理相关联的所述一个或多个意图中的每一个相关联的重要性分数、与所述特定代理相关联的用户满意度分数以及与所述特定代理相关联的用户交互分数。
条款19.一种计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令当由计算设备的至少一个处理器执行时提供助理,所述助理被配置成:接收图像数据;基于所述图像数据并从可从所述计算设备访问的多个代理中选择推荐的代理以执行与所述图像数据相关联的一个或多个动作;确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作;响应于确定推荐所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作,使所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作。
条款20.根据条款19所述的计算机可读存储介质,其中,所述助理还被配置成:在选择所述推荐的代理以执行与所述图像数据相关联的一个或多个动作之前:从来自所述多个代理的每个特定代理接收登记请求,所述登记请求包括与该特定代理相关联的一个或多个相应的意图;并且使来自所述多个代理的每个特定代理登记有与该特定代理相关联的所述一个或多个相应的意图。
条款21.一种系统,包括用于执行条款1至13的所述方法中的任何一项的装置。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件来实现,则功能可以作为一个或多个指令或代码被存储在计算机可读介质上或者通过计算机可读介质来传输并由基于硬件的处理单元来执行。计算机可读介质可以包括一个或多个计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或包括便于例如根据通信协议将计算机程序从一个地方传递到另一地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪速存储器或可用于以指令或数据结构形式存储期望的程序代码并且可以由计算机访问的任何其它存储介质。另外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线对、数字订户线路(DSL)或诸如红外、无线电和微波的无线技术来从网站、服务器或其它远程源传输指令,则在介质的定义中包括同轴电缆、光纤电缆、双绞线对、DSL或诸如红外、无线电和微波的无线技术。然而,应该理解的是,计算机可读存储介质和介质以及数据存储介质不包括连接、载波、信号或其它瞬态介质,而是替代地针对非瞬态有形存储介质。如本文所使用的磁盘和盘包括紧致盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,然而盘用激光光学上再现数据。上述的组合也应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,所述一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指代前述结构中的任一种或适合于本文描述的技术的实施方式的任何其它结构。此外,在一些方面中,可以在专用硬件和/或软件模块内提供本文描述的功能性。另外,这些技术可完全以一个或多个电路或逻辑元件来实现。
本公开的技术可以以包括无线头戴式耳机、集成电路(IC)或IC集(例如,芯片组)的各种设备或装置来实现。在本公开中描述各种组件、模块或单元以强调被配置成执行所公开的技术的设备的功能方面,但是不一定要求通过不同的硬件单元来实现。相反,如上所述,各种单元可以被组合在硬件单元中或者由包括如上所述的一个或多个处理器的可互操作的硬件单元的集合连同适合的软件和/或固件提供。
已经描述了各种实施例。这些和其它实施例在以下权利要求的范围内。

Claims (15)

1.一种方法,包括:
通过能够由计算设备访问的助理从与所述计算设备通信的图像传感器接收图像数据;
通过所述助理基于所述图像数据并从能够由所述计算设备访问的多个代理中选择推荐的代理以执行与所述图像数据相关联的一个或多个动作;
通过所述助理确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作;
响应于确定推荐所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作,通过所述助理使所述推荐的代理至少发起与所述图像数据相关联的所述一个或多个动作的执行。
2.根据权利要求1所述的方法,还包括:
在选择所述推荐的代理以执行与所述图像数据相关联的一个或多个动作之前:
通过所述助理来从来自所述多个代理的每个特定代理接收登记请求,所述登记请求包括与该特定代理相关联的一个或多个相应的意图;以及
通过所述助理使来自所述多个代理的每个特定代理登记有与该特定代理相关联的所述一个或多个相应的意图。
3.根据权利要求2所述的方法,其中,选择所述推荐的代理包括:
响应于确定所述推荐的代理登记有从所述图像数据中推理的一个或多个意图而选择所述推荐的代理。
4.根据任一项前述权利要求所述的方法,其中,选择所述代理还包括:
从所述图像数据中推理一个或多个意图;
从所述多个代理中识别登记有所述一个或多个意图中的至少一个意图的一个或多个代理;
基于与所述一个或多个代理中的每一个和所述一个或多个意图有关的信息来确定所述一个或多个代理的排名;以及
至少部分地基于所述排名从所述多个代理中选择所述推荐的代理。
5.根据权利要求4所述的方法,其中,与来自所述一个或多个代理的特定代理有关的所述信息包括以下中的至少一个:所述特定代理的流行度分数、所述特定代理与所述图像数据之间的相关性分数、所述特定代理与所述图像数据之间的有用性分数、与和所述特定代理相关联的所述一个或多个意图中的每一个相关联的重要性分数、与所述特定代理相关联的用户满意度分数以及与所述特定代理相关联的用户交互分数。
6.根据权利要求4或5所述的方法,其中,确定所述一个或多个代理的所述排名包括:
通过所述助理来将与所述一个或多个代理中的每一个和所述一个或多个意图有关的所述信息输入到机器学习系统;
通过所述助理从所述机器学习系统接收所述一个或多个代理中的每一个的相应的分数;以及
基于所述一个或多个代理中的每一个的所述相应的分数来确定所述一个或多个代理的所述排名。
7.根据权利要求6所述的方法,其中,确定是推荐所述助理还是所述推荐的代理执行与所述图像数据相关联的所述一个或多个动作包括:
通过所述助理将与所述助理和所述一个或多个意图有关的信息输入到所述机器学习系统中;
通过所述助理来从所述机器学习系统接收所述助理的分数;
确定来自所述一个或多个代理的最高排名的代理的所述相应的分数是否超过所述助理的所述分数;
响应于确定来自所述一个或多个代理的所述最高排名的代理的所述相应的分数超过所述助理的所述分数,通过所述助理确定推荐所述最高排名的代理执行与所述图像数据相关联的所述一个或多个动作。
8.根据权利要求4至7中的任何一项所述的方法,其中,确定所述一个或多个代理的所述排名还包括通过所述助理将与所述计算设备相关联的场境信息输入到机器学习系统中。
9.根据任一项前述权利要求所述的方法,其中,使所述推荐的代理发起与所述图像数据相关联的所述一个或多个动作的执行包括:通过所述助理向与所述推荐的代理相关联的远程计算系统输出所述图像数据的至少一部分以使与所述推荐的代理相关联的所述远程计算系统执行与所述图像数据相关联的所述一个或多个动作。
10.根据任一项前述权利要求所述的方法,其中,使所述推荐的代理发起与所述图像数据相关联的所述一个或多个动作的执行包括:通过所述助理代表所述推荐的代理输出对与所述图像数据的至少一部分相关联的用户输入的请求。
11.根据权利要求1至8中的任何一项所述的方法,其中,使所述推荐的代理发起与所述图像数据相关联的所述一个或多个动作的执行包括:通过所述助理使所述推荐的代理从所述计算设备启动应用以执行与所述图像数据相关联的所述一个或多个动作,其中,所述应用不同于所述助理。
12.根据任一项前述权利要求所述的方法,其中,来自所述多个代理的每个代理是与能够从所述计算设备访问的相应的第三方服务相关联的第三方代理。
13.根据权利要求12所述的方法,其中,与所述多个代理中的每一个相关联的所述相应的第三方服务与由所述助理提供的服务不同。
14.一种计算设备,所述计算设备包括:
相机;
输出设备;
输入设备;
至少一个处理器;以及
存储指令的存储器,所述指令当被执行时,使所述至少一个处理器执行任一项前述权利要求所述的方法。
15.一种包括指令的计算机可读存储介质,所述指令当由计算设备的至少一个处理器执行时,执行权利要求1至13中的任何一项所述的方法。
CN201880033175.9A 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质 Active CN110637464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210294528.9A CN114756122A (zh) 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762507606P 2017-05-17 2017-05-17
US62/507,606 2017-05-17
US15/603,092 2017-05-23
US15/603,092 US20180336045A1 (en) 2017-05-17 2017-05-23 Determining agents for performing actions based at least in part on image data
PCT/US2018/033021 WO2018213485A1 (en) 2017-05-17 2018-05-16 Determining agents for performing actions based at least in part on image data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210294528.9A Division CN114756122A (zh) 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质

Publications (2)

Publication Number Publication Date
CN110637464A true CN110637464A (zh) 2019-12-31
CN110637464B CN110637464B (zh) 2022-04-12

Family

ID=64271677

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880033175.9A Active CN110637464B (zh) 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质
CN202210294528.9A Pending CN114756122A (zh) 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210294528.9A Pending CN114756122A (zh) 2017-05-17 2018-05-16 确定用于执行动作的代理的方法、计算设备和存储介质

Country Status (6)

Country Link
US (1) US20180336045A1 (zh)
EP (1) EP3613214A1 (zh)
JP (1) JP7121052B2 (zh)
KR (2) KR102535791B1 (zh)
CN (2) CN110637464B (zh)
WO (1) WO2018213485A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756850A (zh) * 2020-06-29 2020-10-09 金电联行(北京)信息技术有限公司 一种服务于互联网数据采集的代理ip请求频率自动调整方法
CN114489890A (zh) * 2022-01-11 2022-05-13 广州繁星互娱信息科技有限公司 分屏显示方法和装置、存储介质及电子装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366291B2 (en) * 2017-09-09 2019-07-30 Google Llc Systems, methods, and apparatus for providing image shortcuts for an assistant application
WO2020026799A1 (ja) * 2018-07-31 2020-02-06 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US11200811B2 (en) * 2018-08-03 2021-12-14 International Business Machines Corporation Intelligent recommendation of guidance instructions
JP7280066B2 (ja) * 2019-03-07 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
JP7288781B2 (ja) * 2019-03-27 2023-06-08 本田技研工業株式会社 情報提供装置、情報提供方法、およびプログラム
US10629191B1 (en) * 2019-06-16 2020-04-21 Linc Global, Inc. Methods and systems for deploying and managing scalable multi-service virtual assistant platform
CN110503954B (zh) * 2019-08-29 2021-12-21 百度在线网络技术(北京)有限公司 语音技能启动方法、装置、设备及存储介质
US11803887B2 (en) * 2019-10-02 2023-10-31 Microsoft Technology Licensing, Llc Agent selection using real environment interaction
US11928572B2 (en) * 2021-03-31 2024-03-12 aixplain, Inc. Machine learning model generator
US11782569B2 (en) * 2021-07-26 2023-10-10 Google Llc Contextual triggering of assistive functions
WO2023113877A1 (en) * 2021-12-13 2023-06-22 Google Llc Selecting between multiple automated assistants based on invocation properties
WO2024060003A1 (en) * 2022-09-20 2024-03-28 Citrix Systems, Inc. Computing device and methods providing input sequence translation for virtual computing sessions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224075A (zh) * 2009-10-28 2016-01-06 数字标记公司 基于传感器的移动搜索、相关方法和系统
CN105830048A (zh) * 2013-12-16 2016-08-03 纽昂斯通讯公司 用于提供虚拟助理的系统和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110128288A1 (en) * 2009-12-02 2011-06-02 David Petrou Region of Interest Selector for Visual Queries
WO2012094564A1 (en) * 2011-01-06 2012-07-12 Veveo, Inc. Methods of and systems for content search based on environment sampling
WO2013021824A1 (ja) 2011-08-05 2013-02-14 ソニー株式会社 受信装置、受信方法、プログラム、及び情報処理システム
US20130046571A1 (en) * 2011-08-18 2013-02-21 Teletech Holdings, Inc. Method for proactively predicting subject matter and skill set needed of support services
US9036069B2 (en) * 2012-02-06 2015-05-19 Qualcomm Incorporated Method and apparatus for unattended image capture
US20130311339A1 (en) * 2012-05-17 2013-11-21 Leo Jeremias Chat enabled online marketplace systems and methods
US20140316890A1 (en) 2013-04-23 2014-10-23 Quixey, Inc. Entity Bidding
US20150032535A1 (en) * 2013-07-25 2015-01-29 Yahoo! Inc. System and method for content based social recommendations and monetization thereof
US9053509B2 (en) 2013-08-29 2015-06-09 Google Inc. Recommended modes of transportation for achieving fitness goals
US9720934B1 (en) * 2014-03-13 2017-08-01 A9.Com, Inc. Object recognition of feature-sparse or texture-limited subject matter
US20150310377A1 (en) * 2014-04-24 2015-10-29 Videodesk Sa Methods, devices and systems for providing online customer service
US10518409B2 (en) * 2014-09-02 2019-12-31 Mark Oleynik Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
US20160077892A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Automatic Sensor Selection Based On Requested Sensor Characteristics
US20160117202A1 (en) * 2014-10-28 2016-04-28 Kamal Zamer Prioritizing software applications to manage alerts
US10176336B2 (en) 2015-07-27 2019-01-08 Microsoft Technology Licensing, Llc Automated data transfer from mobile application silos to authorized third-party applications
CN105068661B (zh) * 2015-09-07 2018-09-07 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法和系统
US20180191797A1 (en) * 2016-12-30 2018-07-05 Facebook, Inc. Dynamically generating customized media effects
US10783188B2 (en) * 2017-02-17 2020-09-22 Salesforce.Com, Inc. Intelligent embedded self-help service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224075A (zh) * 2009-10-28 2016-01-06 数字标记公司 基于传感器的移动搜索、相关方法和系统
CN105830048A (zh) * 2013-12-16 2016-08-03 纽昂斯通讯公司 用于提供虚拟助理的系统和方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756850A (zh) * 2020-06-29 2020-10-09 金电联行(北京)信息技术有限公司 一种服务于互联网数据采集的代理ip请求频率自动调整方法
CN111756850B (zh) * 2020-06-29 2022-01-18 金电联行(北京)信息技术有限公司 一种服务于互联网数据采集的代理ip请求频率自动调整方法及系统
CN114489890A (zh) * 2022-01-11 2022-05-13 广州繁星互娱信息科技有限公司 分屏显示方法和装置、存储介质及电子装置

Also Published As

Publication number Publication date
JP7121052B2 (ja) 2022-08-17
US20180336045A1 (en) 2018-11-22
WO2018213485A1 (en) 2018-11-22
EP3613214A1 (en) 2020-02-26
KR20200006103A (ko) 2020-01-17
KR102535791B1 (ko) 2023-05-26
JP2020521376A (ja) 2020-07-16
KR102436293B1 (ko) 2022-08-25
CN114756122A (zh) 2022-07-15
KR20220121898A (ko) 2022-09-01
CN110637464B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN110637464B (zh) 确定用于执行动作的代理的方法、计算设备和存储介质
JP7108122B2 (ja) コンピュータによるエージェントのための合成音声の選択
US10854188B2 (en) Synthesized voice selection for computational agents
US10853747B2 (en) Selection of computational agent for task performance
US20240037414A1 (en) Proactive virtual assistant
US20220100540A1 (en) Smart setup of assistant services
US11663535B2 (en) Multi computational agent performance of tasks
EP3610376B1 (en) Automatic context passing between applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant