CN107209549A - 能够实现可动作的消息传送的虚拟助理系统 - Google Patents

能够实现可动作的消息传送的虚拟助理系统 Download PDF

Info

Publication number
CN107209549A
CN107209549A CN201580067360.6A CN201580067360A CN107209549A CN 107209549 A CN107209549 A CN 107209549A CN 201580067360 A CN201580067360 A CN 201580067360A CN 107209549 A CN107209549 A CN 107209549A
Authority
CN
China
Prior art keywords
user
assistant
mobile
service
server
Prior art date
Application number
CN201580067360.6A
Other languages
English (en)
Other versions
CN107209549B (zh
Inventor
V·沙马
E·阿姆贾迪
Original Assignee
万德实验室公司
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
Priority to US201462090786P priority Critical
Priority to US62/090,786 priority
Application filed by 万德实验室公司 filed Critical 万德实验室公司
Priority to PCT/US2015/065265 priority patent/WO2016094807A1/en
Publication of CN107209549A publication Critical patent/CN107209549A/zh
Application granted granted Critical
Publication of CN107209549B publication Critical patent/CN107209549B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for entering handwritten data, e.g. gestures, text
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/02Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages with automatic reactions or user delegation, e.g. automatic replies or chatbot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Real-time or near real-time messaging, e.g. instant messaging [IM] interacting with other applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/18Messages including commands or codes to be executed either at an intermediate node or at the recipient to perform message-related actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network
    • H04L63/0884Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/12Network-specific arrangements or communication protocols supporting networked applications adapted for proprietary or special purpose networking environments, e.g. medical networks, sensor networks, networks in a car or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/38Protocols for telewriting; Protocols for networked simulations, virtual reality or games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/42Protocols for client-server architectures
    • H04M1/72409
    • H04M1/72415
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements, e.g. access security or fraud detection; Authentication, e.g. verifying user identity or authorisation; Protecting privacy or anonymity ; Protecting confidentiality; Key management; Integrity; Mobile application security; Using identity modules; Secure pairing of devices; Context aware security; Lawful interception
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W12/43
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Abstract

一种虚拟助理系统,包括:移动设备,用于接收与在一个或多个外部服务处要被执行的功能相对应的输入命令,用于将所述输入命令转换为表示所述命令的语义原子,并且用于传输所述语义原子;以及助理服务器,被配置为接收所传输的语义原子,所述助理服务器包括多个插件,每个插件对应于所述外部服务中相应的一个,并且被配置为针对在其中将所述功能要被执行的每个外部服务生成与接收的语义原子相对应的专有语言命令。

Description

能够实现可动作的消息传送的虚拟助理系统

[0001] 本申请要求2014年12月11日在美国专利和商标局递交的美国临时申请No.62/ 090,786的优先权,其公开内容通过引用整体并入本文。

技术领域

[0002]本发明总体发明构思涉及一种能够实现可操作的消息传送的虚拟助理系统,其可 以能够实现多个外部服务之间的控制和无线通信,并且能够实现多个外部服务之间的信息 共享,并且能够选择性地允许与其他用户的控制的共享。

背景技术

[0003]无线通信的进步允许数据共享的创新以快速的速度增长。用户可以使用移动设备 (诸如例如,电话、平板计算机、手表等)来打开各种应用/程序,操作各种设备以及与其他移 动设备进行通信。被称为物联网(l〇T)的发展反映了无线地连接到和控制各种服务的增长 趋势。

[0004]移动设备(例如智能电话)的用户通常在其移动设备上访问各种各样的服务,例如 “应用”。用户必须经常从一个服务切换到另一个服务,以便访问和使用每个服务。此外,移 动设备被限制为要求用户以专用于每个特定应用/程序和外部服务的方式输入命令、指令 和数据。更具体地,诸如Facebook™和Linkedln™的程序各自以它们自己的专有语言进行通 信。如果用户在Facebook™中找到个人后希望在Linkedln™中查找该个人的简档,例如,则 需要用户在Linkedln™程序本身的适当字段中输入正确的搜索准则。因此,虽然用户可以分 别与Facebook™和Linkedln™进行通信,但是这些程序彼此之间不通信且不能通信。

[0005]作为另一个示例,菲利普开发了一种发光二极管(LED)灯泡(即,菲利普“色相 (Hue)”),其允许用户经由正在运行与灯泡相关联的应用的移动设备改变从其发射的颜色。 更具体地,用户必须在移动设备上下载并安装与灯泡相关联的应用程序,该应用程序使用 菲利普色相专有语言与灯泡进行通信。在应用程序在移动设备上安装和运行之后,用户然 后可以使用移动设备来控制灯泡的色调、对比度和颜色。然而,用户不能将对灯泡的访问授 权给操作另一移动设备的另一用户。相反,如果其他用户希望用其他移动设备来控制灯泡, 则另一用户还必须将与灯泡相关联的应用程序下载并安装到另一移动设备中。

[0006] 此外,用户不能使用与灯泡相关联的应用程序内的信息与另一应用程序进行交 互。例如,用户可能不使用灯泡应用程序中的信息来在诸如Amazon™的另一应用程序中购买 更多的灯泡。因此,与灯泡相关联的应用仅限于允许用户控制与在用户的移动设备内存储 的应用程序相关联的特定灯泡。

[0007] 此外,Apple™和Google™各自都在其各自的移动设备上包括语音助理(Apple的 Siri™和Google™的Google Now™),其将所接收的语音转换成搜索程序。然而,Siri™和 Google Now™助手限于提供搜索和一些设备动作,并且与其他应用程序(诸如OpenTable™ 等)的有限集成。

[0008] 因此,需要允许与系统连接的所有服务在其间进行通信的系统。 L_y」此外,需要能够无线地控制期望的任意外部服务,例如通过网络,通过从手持设备 输入命令以执行这种控制。

发明内容

[0010] 本发明总体发明构思提供了一种被配置为允许多个服务之间的通信及其控制的 移动设备、助理服务器和虚拟助理系统。

[0011] 本发明总体发明构思的附加特征和效用将部分地在下面的描述中阐述,并且部分 地从描述中将是显而易见的,或者可以通过总体发明构思的实践来了解。

[0012] 本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种虚拟助理系 统来实现,所述虚拟助理系统包括:移动设备,用于接收与在一个或多个外部服务处要被执 行的功能相对应的输入命令,用于将输入命令转换为表示命令的语义原子,以及传输所述 语义原子;以及助理服务器,被配置为接收传输的语义原子,助理服务器包括多个插件,每 个插件对应于外部服务中的相应的外部服务,并且被配置为针对其中功能要被执行的每个 外部服务生成与所接收到的语义原子相对应的专有语言命令。

[0013]助理服务器还可以被配置为从一个或多个外部服务接收输出数据作为执行功能 的结果,将接收的输出数据转换成表示接收的输出数据的一个或多个语义原子,以及将表 不接收的输出数据的一个或多个语义原子发送到移动设备和与另一外部服务对应的另一 插件中的至少一个。

[00M]助理服务器还可以被配置为在对应的一个或多个插件处从一个或多个外部服务 接收输出数据作为执行该功能的结果,并将接收到的输出数据添加到语义原子。

[0015]助理服务器可以被配置为组合多个语义原子以创建单个合并的语义原子。

[0016]助理服务器可以被配置为将语义原子分离成多个语义原子,多个语义'原子中的每 一个包括原始语义原子中包含的信息的子集。

[0017]助理服务器可以被配置为生成一个或多个语义原子的一个或多个副本。

[0018]助理服务器还可以被配置为生成表示输入命令的语义原子的一个或多个副本,并 且将语义原子的一个或多个副本提供给一个或多个插件以生成对应的外部服务的专用语 言命令,以执行与输入命令对应的功能。 n

[0019]移动设备和助理服务器中的至少一个可以被配置为将一个或多个语义原子传输 到至少一个其他移动设备。 A

[0020]传输到至少一个其他移动设备的一个或多个语义原子可以表示用户身份证书以 授权在外部服务处的功能。

[0021]传输到至少一个其他移动设备的一个或多个语义原子表示从一个或多个外部服 务接收的输出数据。 < H

[0022]助理服务器还可以被配置为当该语义原子被确定为不再需要其与其他服欠或移 动设备的进一步信息传输时、在生成专有语言命令之后删除该语义原子7 ’、 力K

[0023]助理服务器还可以被配置为在生成专有语言命令之后存储语义原子 [0024]助理服务器可以向多个插件提供表示输入命令的语义原子,以在'输又命令对应于 在多个外部服务处要被执行的一个或多个功能时,为对应的多个外部服务中的每一个生成 专有语言命令。

[0025] 助理服务器可以存储证书,所述证书包括用于授权移动设备以执行针对一个或多 个外部服务的输入命令的数据。

[0026] 在移动设备处的输入命令将执行针对一个或多个外部服务的输入命令的权限扩 展到至少一个其他移动设备。

[0027] 在移动设备处的另一个输入命令可以撤消至少一个其他移动设备的、用于执行针 对一个或多个外部服务的输入命令的权限。

[0028] 将在一个或多个外部服务处执行输入命令的权限扩展到至少一个其他移动设备 可以包括将与一个或多个外部服务相对应的证书和插件复制到由另一个移动设备访问的 助理服务器。

[0029] 用于将用于执行对一个或多个外部服务的输入命令的权限扩展到至少一个其他 移动设备的输入命令可以包括:用于将权限限制到预定级别的控制的信息、其中控制被允 许的预定位置、其中控制被允许的预定时间帧、以及在其中其他用户接近一个或多个外部 服务的预定访问路径。

[0030] 助理服务器可以在将输入命令转换为语义原子之前分析输入命令的上下文信息, 以准确地确定要由输入命令执行的预期功能。

[0031] 由助理服务器分析的上下文信息可以包括当命令被输入时移动设备的位置、当命 令被输入时一天中的时间、特定个体的共存、用户的非故意的动作、以及由移动设备的用户 采取的动作序列。

[0032] 由用户采取的动作序列可以包括同时或顺序地做出的多个输入命令。

[0033] 用户采取的动作序列可以包括其是无效的并且跟随有另一个输入命令的输入命 令。

[0034] 助理服务器可以包括多个服务器设备,多个服务器设备被配置为在彼此之间传输 语义原子。

[0035]多个服务器设备可以包括被配置为与移动设备进行通信的主服务器设备,以及被 配置为与主服务器设备通信的一个或多个从属服务器设备。

[0036]多个服务器设备可以将语义原子发送到多个移动设备并从多个移动设备接收语 义原子。

[0037]多个服务器设备中的每一个可以与对应的移动设备通信。

[0038]多个服务器设备中的每一个可以与多个服务器设备中的至少一个其他服务器设 备通信。

[0039]多个服务器设备中的一个或多个服务器设备存储关于虚拟助理系统的用户的数 据。

[0040] 存储关于虚拟助理系统的用户的数据的一个或多个服务器设备可以被配置为响 应于来自用户的输入命令来与多个服务器设备断开连接。

[0041] 服务器设备中的一个或多个服务器设备可以存储一个或多个插件,一个或多个插 件中的每一个对应于不同的外部服务;以及服务器设备中的每一个服务器设备,在接收到 表示对应于在外部服务处要被执行的功能的输入命令的语义原子时,可以将语义原子传输 到存储与外部服务对应的插件的服务器设备。

[0042] 本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种控制外部服 务的方法来实现,所述方法包括在移动设备处接收输入命令,输入命令对应于在多个外部 服务中的所选的外部服务处执行的功能,在移动设备处将输入命令转换成一个或多个语义 原子,将一个或多个语义原子发送到被配置为管理语义原子的助理服务器,将一个或多个 语义原子提供给与所选外部服务相对应的插件以生成用于所选外部服务的专有语言命令, 以及通过将所获得的专有语言命令传输到所选外部服务来控制选择的外部服务来执行该 功能。

[0043]该方法还可以包括将表示所接收的输出数据的一个或多个语义原子提供给对应 于一个或多个其它选择的外部服务的一个或多个插件,以生成与所接收的输出数据相对应 的专有语言命令,并且控制一个或更多其他选择的外部服务,以通过将专有语言命令传输 到一个或多个其他所选择的外部服务来执行功能。

[0044]本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种包含用于执 行控制外部服务的方法的计算机可读代码的非暂时性计算机可读介质来实现。

[0045]本发明总体发明构思的上述和/或其他特征和效用可以通过提供一种服务器设备 来实现,该服务器设备包括用于存储可以在多个外部服务之间共享的语义原子的存储系 统,该存储系统进一步包括用于在多个外部服务处执行功能的命令库;多个插件,每个插件 对应于多个外部服务中相应的外部服务,每个插件被配置为在语义原子和对应的外部服务 的相应的专有语言之间进行转换;以及,平台,被配置为通过使用在相应插件处转换的专有 语言来在多个外部服务之间共享语义原子并与移动设备共享语义原子,其中执行功能的命 令被最初输入并作为语义原子被传输到平台。

[0046]存储系统存储与所述多个外部服务中的相应外部服务对应的至少一个命令集,每 个命令集包括用于在相应外部服务处用于执行对应功能的命令。

[0047]每个插件可以在服务器设备处被创建以包括从所存储的命令库中选择的命令集, 该命令集与要在对应服务处执行的相关联的功能相对应。

[0048]平台可以被配置为无线地连接到多个移动设备以在其间共享信息并从其接收输 入命令,被共享的信息和被接收的输入命令被提供作为语义原子。

[0049]本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种移动设备来 实现,该移动设备包括:传感器,用于接收在一个或多个外部服务处执行功能的输入命令; 以及助理接口,用于将所接收的输入命令转换成语义原子并将语义原子发送到外部服务器 以经由对应的插件来在一个或多个外部服务处执行功能,或者接收包括用于在一个或多个 外部服务处直接执行功能的一个或多个外部服务的专有语言的语义原子。

附图说明

[0050]从结合附图的实施例的以下描述,本发明总体发明构思的这些和/或其它特征和 效用将变得显而易见并且更容易理解,在附图中:

[0051]图1A是图=根据本发明总体发明构思的示例性实施例的虚拟助理系统的框图; [0052] ® 1B题示画本_自、概關娜另—示讎錢働虚__统的框 图; _] ® 2A是图示騰本獅雜发勸思的示麵实齡_移祕备之间的消息传 输的框图;

[0054]图2B是图示根据本发明总体发明构思的示例性实施例的移动设备与一个或多个 外部服务之间的消息传输的框图;

[0055]图3A是图^根据本发明总体发明构思的示例性实施例的合并语义原子的框图; [0056]图3B是图^根据本发明总体发明构思的示例性实施例的嵌套语义原子的框图;

[0057]图4A是图不可与图1A-1B中图示的虚拟助理系统一起使用的移动电子设备的示例 性实施例的框图;

[0058]图狃是图^移动电子设备的另一示例性实施例的框图;

[0059]图5A是图^图4A的移动电子设备的传感器部分的示例性实施例的框图;

[0060] _与图M和仙難动电子财—織麵外纖人传雜和设备的 示例性实施例的框图;

[0061] ’A题柯与S1A-18相示的總麵織—雛腦麵服务働示讎 实施例的框图;

[0062] ’B和ec是图示根据本发明总体发明构思的示例性实麵的助理服务器的多个 实例的框图;

[0063] 細*麵本发縣体发難思的示讎实酬的錄麵的 令处理的流程图;

[0064] ®提to棚本綱自、健;難思的示讎实顧賊拟麵雜的操作流程 的框图; 娜㈣麵/谢麵纖臟野麵服务

[0066] sijj是图不棚本发明总体发明构思的示例性实施例的语义原子的跨用享 的处理的框图; 麵购麵灌麵瞧鋪人命令自适 、体发咖的潇麵働将无意识输人命令自适 irru13图^了 ^艮据、体发明构思的示例性实施例的将手势库中的多个手势 输入合并(consolidating)为单个手势输入的处理;

[〇H目14疋_示翻錄縣体触舰転雛实細誠娜綱系统的条件 1 万问的图; ^加細棚本发縣体发麵思的示讎实翻的麵麵系細访问权 喂兴早的圏; mi享=疋图不根据本发明总体发明构思的示例性实施例的助麵务器之间的访问 肖麵本发縣触簡思㈤示讎实脑麵娜理織的权限共 =4^的^8疋目①棚本发明雜发麵思的示讎实施讎向飾麵織大量添

具体实施方式

[0075] 现在将详细参考本发明总体发明构思的各种示例性实施例,其示例在附图中被图 示,其中相同的附图标记在整个发明中指代相同的元件。下面描述实施例以便参考附图来 解释本发明总体发明构思。此外,在描述本发明总体发明构思的各种示例性实施例的同时, 为了描述的简洁,将省略可能减小本发明总体发明构思的点的清晰度的相关公知功能或配 置的详细描述。

[0076]应当理解,尽管术语“第一”和“第二”在本文中用于描述各种元件,但这些元件不 应被这些术语限制。这些术语仅用于区分一个元件和另一个元件。因此,在不脱离本公开的 教导的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元 件。

[0077] 诸如“至少一个”的表述,当在元素列表之前时,修改整个元素列表并且不修改列 表的单个元素。

[0078]包括本文使用的描述性或技术术语的所有术语应被解释为具有对于本领域普通 技术人员中的一个是显而易见的含义。然而,根据本领域普通技术人员中的一个的意图、案 例先例或新技术的出现,术语可以具有不同的含义。同样,一些术语可以由申请人任意选 择,在这种情况下,将在本发明的详细描述中详细描述所选择的术语的含义。因此,本文使 用的术语必须基于术语的含义连同整个说明书中的描述来定义。

[0079]同样,当部件“包括”或“包含”元件时,除非有与之相反的特定描述,否则该部件还 可以包括其他元件,而不排除其它元件。在下面的描述中,诸如“单元”和“模块”这样的术语 指示处理至少一个功能或操作的单元,其中单元和块可以被实现为硬件或软件,或通过组 合硬件和软件来体现。

[0080] 在下文中,将参考附图详细描述本发明总体发明构思的一个或多个示例性实施 例。

[0081]图1A图示了根据本发明总体发明构思的示例性实施例的虚拟助理系统10,并且图 1B示出了根据本发明总体发明构思的另一示例性实施例的虚拟助理系统10。

[0082]根据图1A和1B的示例性实施例的虚拟助理系统10可以包括移动电子设备100、助 理服务器200和外部服务300 (或服务300a-n)。

[0083]虚拟助理系统10被配置为使得能够可动作的消息传输。本文所使用的“可动作消 息传输”是指可以用于控制外部服务300a-n的消息传输。数据可以向一个用户(例如从移动 设备100)向另一个用户以及向和从一个或多个外部服务300a-n两者消息传输。以这种方式 的消息传输使得虚拟助理系统10的一个或多个用户能够以下面将要描述的方式向一个或 多个外部服务300a-n发布命令。

[0084]如本文所使用的“消息传输”不同于“馈送”。“馈送”实际上是数据流,用户可以访 问该数据流以被提供有该流中该时刻可用的数据。用户可以有助于数据流,例如通过提供 数据,,但是存在有限的往复(back-and-forth)通信。另一方面,“消息传输”更具有交互性, 其中一个或多个特定用户(或服务300)被定向以接收一个或多个特定选择的消息。目标用 户域服务300)可以例如用确认消息、从响应于消息所执行的动作的输出、附加信息等来对 消息进行响应。换句话说,消息传输鼓励双向对话,而馈送大体上是单向通信。

[0085] 移动电子设备1 〇〇 (以下称为“移动设备”)可以包括与因特网和其中移动设备1 〇〇 可被配置为进行通信的各种网络无线或有线连接的能力。更具体地,移动设备100可以使用 Wi-Fi、Wi-Fi直连、近场通信(NFC)、蓝牙、射频识别(RFID)、以太网、火线、通用串行总线 (USB)、高清晰度多媒体接口(HDMI)或任意其他类型的无线或有线连接来与助理服务器200 和/或外部服务300a-n通信,但不限于此。移动设备1〇〇、助理服务器200和外部服务300之间 的通信可以经由包括云计算应用、卫星、本地网络等的因特网执行。

[0086] 移动设备100可以是任意类型的计算平台、包括智能电话、平板计算机、膝上型计 算机、智能手表或可配戴设备,但不限于此,并且甚至可以包括非移动设备,诸如台式计算 机或其他固定计算设备。下面关于图4A更详细地描述移动设备100。

[0087] 移动设备100还可以包括助理接口 110,其被专门创建为虚拟助理系统10的一部分 以允许源自移动设备100或由移动设备100经由另一个传感器类型的设备获得的所有动作、 命令等被通信到助理服务器200,反之亦然,以允许助理服务器200向提供助理接口 110的移 动设备100通信必要的信息。助理接口 110还允许在一个或多个其他用户的对应移动设备 lOOa-n或可以包含命令库的其他服务器上提供的其他助理接口 ll〇a-n进行通信,以在下文 中更详细地描述。在移动设备100处提供的助理界面110可以在本文将要描述的其他操作中 执行与“插件”或“连接器”等类似的操作,。以下关于图2A和图5A-5B更详细地描述助理接口 110。助理接口 110可以由程序设计者编程到移动设备100中,或者以可从外部源下载到用户 的移动设备100的应用的形式提供。助理界面110也可以被称为“客户端”,但不限于此。用户 可以通过编程或下载和安装助理接口 110到移动设备100中来将他们的移动设备100连接到 助理服务器200。

[0088]备选地,如图4B所图示的,助理接口 110可以被提供在与助理服务器200相同的硬 件安装上。换句话说,助理服务器200可以与助理接口 110—起被提供在移动设备100处。在 这种情况下,助理接口 110不需要与后端型服务器系统进行无线通信,以便理解为了在服务 300执行任意功能需要采取的动作。因此,如在图4B中图示的示例性实施例中,为了在下面 更详细地讨论,虚拟助理系统10在如上所述的移动式设备100中可以是完全独立的。

[0089] 助理服务器200可以是可以包括例如运行一个或多个应用程序(g卩,软件)的计算 机、专用计算机(即,后端服务器)、云计算技术或多个计算机的服务器,该一个或多个应用 程序允许经由因特网与移动设备1 〇〇 (与助理接口 110—起)通信,并且还允许经由因特网与 外部服务300a-n (例如,电视机、移动设备应用程序等)的无限范围进行通信。助理服务器 200可以存储各种插件220a-n、以及命令输入,例如语言、图标、手势、传感器命令、程序、应 用程序、命令和包括上述项目的任意组合的库,其可由运行客户端110的移动设备100使用。 这里描述并在图1A、1B和6A中图示的助理服务器200具有开放式平台210,即设施,任意软件 工程师(也称为软件或插件的开发人员)可以通过其在其中创建连接器(“插件”220)以对应 于任意服务300。每个插件22〇对应于不同的外部服务300。助理服务器平台210和插件220可 以一起包括在助理服务器200的一个硬件配置中。

[0090] 几个助理服务器200可以彼此进行通信以共享功能,由此有效地操作为分散在多 个其他服务器上单个助理服务器200。将在下文中参考图6B和6C更详细地描述的这种布置 在本文中被称为“助理服务器的多个实例”。

[0091]外部服务3〇〇a-n对应于响应于来自一个或多个用户的命令输入而被控制(执行功 能)的任意内容。外部服务300a-n可以包括例如诸如灯或门的设备,以及用户可能在其计算 机或电话上具有的软件程序和应用程序或“应用”,但不限于此。外部服务300a-n可以包括 经由本地网络或因特网或其他无线形式的通信可连接到移动设备100和/或助理服务器200 的任意类型的设备或服务,如上所述。可以为其创建插件220的服务300a-n的示例包括家庭 和办公系统(例如,安全、照明、恒温器)、汽车设备、应用、可配戴设备、在线服务、网页等。月艮 务300a-n的列表在本文中仅被提供为示例,并且对数百万其他服务而言更加广泛。

[0092] 服务300a-n可以经由因特网例如以及移动设备1 〇〇a-n本身可访问。不能立即进行 无线通信的服务300a-n (例如,灯、车库门等)也能够通过提供无线芯片或其他设备(诸如例 如用于车库门的GoGogate™),被因特网访问或另外能够与包括移动设备100和助理服务器 200的其他装置/设备进行通信。通常将无法访问的服务300a-n可以通过将其连接到因特网 可接入设备进行无线准备。这个概念己经得到认知,并且目前在涉及“物联网”(也称为l〇T) 的讨论中也被提及。这样的服务300a-n也可以经由本地网络类型的通信来访问,使得移动 设备100—旦由移动设备100获得包括必需证书(credential)的专有语言的情况下可以最 终直接控制服务300a-n。

[0093]众所周知,世界各地使用的外部服务300a-n的每个在它们自己的专有语言中具有 它们自己的对应的专有数据结构,以及控制/操作对应的外部服务300所需的特定证书。然 而,插件220用作专有数据结构和语义语言之间的转换器(或解释器)。因此,每个插件220允 许助理服务器200经由因特网、WiFi、蓝牙、WiFi直接、1©10、1]88/1代'^代、册(:或其他方式 以对应的专有语言与对应的外部服务300进行通信,以便执行用户的愿望(显式地或由虚拟 助理系统10推断出)。插件220还可以向助理服务器200提供关于对应的外部服务300的任意 专有语言信息,包括特定证书,这可能是是必需的以便允许对要被控制的期望的服务300的 安全访问。

[0094] 各种插件220a-n对应于各种相应的外部服务300a-n(包括例如设备、服务、程序和 应用)。工程师/开发人员可以在助理服务器200处创建这样的插件220,以允许助理服务器 200以其相应的专有语言与对应的外部服务300进行通信。工程师/开发人员可以基于外部 服务300的规范为对应服务300创建插件220。因此,可以在助理服务器200处创建无限数量 的插件220a-n,以允许一个或多个用户以上面描述的方式控制各种相应的服务300a-n。此 夕卜,尽管插件22〇a-n被图示为在助理服务器200处被编程/被存储,一个或多个插件220a-n 也可以被存储在移动设备1〇〇处(例如,被编程/存储在助理接口 110中),从而允许助理接口 110直接与相应的外部服务300a-n进行通信。

[0095] 插件220可以以任意编程语言被编程,例如C,Python、Java、C++、0CAML等,但不限 于此。此外,插件220a-n还可以使用图形界面或网络形式进行编程,该图形界面或网页表单 允许程序员做出可视数据(例如图标、图片、文本等)的选择,以便允许插件220a-n在完全不 使用任意编程语言的情况下被生成(即,代码是从将视觉数据插入和/或并入到图形界面或 网页表单中自动生成的)。

[0096] 运行客户端110和助理服务器2〇0的移动设备100的组合在本文中被称为“虚拟助 理”,但不限于此。备选地,用户可能习惯于将移动设备100称为其自己的个人“虚拟助理”, 因为消费者不必知道涉及包含移动设备100和助理服务器200的操作和通信的部件和过程。 换句话说,用户只能感知到与移动设备100进行交互以控制外部服务300。

[0097] 助理服务器200还具有与其相关联的指定存储装置25〇(图6A所图示)。存储装置 250可以作为助理服务器200的一部分被包括在内(例如,如果助理服务器2〇〇是后端服务 器),或者存储装置250可以是助理服务器200可以访问的外部存储器,诸如例如,外部服务 器、远程存储设备或云存储服务。软件工程师可以从存储在指定存储装置250中的预定义的 命令输入库中进行选择,以便定义命令集240 (图6A所图示的),其允许用户经由助理服务 200向每个外部服务300a-n呈现对应的命令。命令输入库可以包括可由移动设备1〇〇接收的 任意输入。命令输入可以包括例如手势和图标,以及可听或语音命令(存储为可动作数据) 以及存储在与助理服务器200相关联的存储装置250 (下面关于图6A更详细地进行描述)中 的其他形式的命令,来定义允许用户在移动设备1〇〇处的命令集240以经由助理服务器2〇〇 将这些所选择的命令呈现给对应的外部服务3〇〇a_n。换句话说,存储装置250以可以由软件 工程师选择的公共词汇格式的形式存储庞大的命令词汇,诸如例如手势、图标、语音数据 等,以便创建与每个外部服务3〇〇a-n相关联的单独的命令集240a-n。选择这些命令来创建 命令集240a-n以对应于可以在外部服务300a-n的每个处执行的相应的功能。存储在存储装 置250中的命令也可以在无限数量的外部服务300a-n和移动设备100a-n之间共享。如本文 所使用的,“命令输入”或“命令”可以包括用于控制虚拟助理系统1〇的动作的任意形式的输 入。应当理解,在下面的示例中使用的特定命令输入可以被其他命令输入替代。例如,如果 描述手势,则取决于本发明总体发明构思的特定示例性实施例,手势的该命令输入可以被 例如触摸所显示的图标的命令输入替代。

[0098] 如下面关于图1B所描述的,在某些预定情况下,在本地控制模式中来自定义的命 令集240的这些特定命令可以通过助理接口 110直接从移动设备1〇〇呈现给对应的外部服务 300。助理服务器200还在该本地模式下提供帮助,如下文将更详细地描述的。

[0099] 如上面所指出的,插件开发人员的命令的选择可以被分组在一起,并被存储在存 储装置250中,作为单独的命令集240a-n,其可以是特定于对应的服务300a-n (在图6A中所 图示的)。换句话说,存储装置25〇可以配置有大量的手势、图标、语音数据和以公共词汇格 式提供的其他类型命令的词汇,其可以在连接到助理服务器2〇〇的所有服务3〇〇a-n之间共 享。当创建插件220时软件工程师可以从这个公共的命令词汇中选择,以便创建与对应的外 部服务300可以执行的各种功能或操作相关联的命令集240。命令的这种公共词汇格式将是 下面被称为“语义语言”的语言的一部分,其中语义语言用于表示对象和概念,列表可以包 括但不限于命令、发布命令的权限、人和对象和服务(例如,歌曲、电影、餐馆、天气报告、WiFi 访问等) 。

[0100] 在助理服务器200处使用的语义语言允许提供在移动设备100内的助理界面110, 将从移动设备1〇〇 (以原始输入形式)向助理服务器2〇〇传输许多手势、图标触摸、语音数据 等,因为助理接口 11〇将所接收的手势、图标触摸、语音数据等转换为该创建的语义语言,以 便经由助理服务器2〇〇内的单一语言来传输与其间的不同服务300a-n相关的所有类型的信 >窗、。

[0101] 语义语言允许助理服务器200运行为各种服务300a-n之间的通用转换器。更具体 地,语义语言可以用于助理服务器平台210和每个插件220a-n之间的通信,用于在助理服务 器200处为其创建插件220的所有服务300a-n。

[0102] 各种实体和概念可以被表示为语义语言中的数据单位。这些数据单位在本文中被 称为“语义原子”或“原子”1000。语义原子1000可以表示世界上独立于任意特定的外部服务 3〇〇的任意东西。语义原子1000可以表示数据(例如名称或时间),并且也可能表示抽象概念 和其他信息。例如,语义原子1000可以表示命令、人、业务、电影、位置、WiFi接入点、歌曲、社 交媒体信息、灯泡、汽车、GPS设备、虚拟助理等。

[0103]虚拟助理系统10使用这些语义原子1000来允许各种服务300a-n彼此无缝地通信, 以及与助理服务器200和移动设备100 (和其他移动设备l〇〇a-n)通信。与插件220a-n—起操 作的各种服务300a-n可以利用语义原子1000a-n中的一个或多个来执行它们各自的功能。 [0104]语义原子1000的系统被保持在助理服务器200中。例如命令输入的确切定义可以 随着时间而演进,包括开放开发人员社区的参与。当应用于通过社区参与演进的分类法时, 具有开放开发人员社区的演进是被称为“民俗学(Folksonomy)”的方法。

[0105]语义原子1000的应用以及可由语义原子1〇〇〇表示的事物的数量是无穷大的。语义 原子1000可以以各种格式表示,包括文本、YAML、XML和其他此类语言。这些格式可以对应于 语义语言,其如上所述是标准化语言或表示语义原子1000的语言集合。语义原子1000可以 存储在移动设备100中(例如,在图4A所图示的存储单元140中)或助理服务器200 (例如,在 图6A所图示的存储装置25〇中)。一个或多个语义原子1〇〇〇甚至可以被单独存储并从虚拟助 理系统10 (例如,在诸如USB拇指驱动器的可移动存储设备上)移除,并且在将来的日期返回 到虚拟助理系统10,虚拟助理系统10此时将立即理解语义原子1000。

[0106]当虚拟助理系统10接收来自人或来自其所集成的系统(服务300)的输入时,虚拟 助理系统10可以将输入转换成一个或多个语义原子1000。如果输入是从用户(在移动设备 1〇〇处)接收的,则该输入在助理接口 110处将输入转换成一个或多个语义原子1〇〇〇。如果从 外部服务300接收的,则该输入在对应插件220处将输入转换成一个或多个语义原子1000。 每个插件220包括在语义原子1000和对应服务300的专有语言之间进行转换的指令。因此, 对于虚拟助理系统10知道如何与(经由插件22〇)交互的每个服务300,虚拟助理系统10知道 如何从语义原子1000语言转换为由该服务3〇0使用的数据结构(专有语言),反之亦然。与语 义原子1000—起使用的这些插件22〇允许容易地跨越大量不同的服务3〇〇a-n的动作的编 排。

[0107]助理服务器200可以包括由用户预先确定的任意类型的主/从布置。这可以由最终 用户预先确定,或者正在管理助理服务器2〇〇的人也可以以预定的方式设置助理服务器200 的布置。助理服务器200还可以连接到任意数量的移动设备100a-n,并且因此可以促进这些 移动设备l〇〇a-n之间的通信,如下文将更详细地描述。

[0108]如上所述,存储装置2f50可以存储各种语言、图标、手势、传感器命令、关键笔划、语 音数据命令、程序、应用程序等,以及包括上述项目和使用语义原子1000的语义语言中的命 令的任意组合的库。这些项目和命令与可由用户通过在移动设备100处输入这样的命令来 指示的任意命令相关联,然后在通过助理接口 110转换成语义原子1000 (语义语言)后,将该 输入命令经由助理接口 11〇发送到助理服务器200。备选地,这些项目或命令可以由移动设 备100经由另一个源(诸如例如将在下面参考图4A、5A-5B和8更详细地描述的传感器160)获 得,然后在由助理接口 110被转换成语义原子1000之后经由助理接口 110呈现给助理服务器 200。

[0109]如上面所指出的,助理接口 11〇首先将输入命令转换成表示输入命令的一个或多 个语义原子1000。在本发明总体发明构思的示例性实施例中,生成单个原子1000以表示单 个输入命令。然而,助理接口 110可以代替生成多个语义原子1000,例如,如果该命令被发送 给多个助理服务器2〇Oa-n或多个服务300a-n。由助理接口 110产生的原子1〇〇〇本身也可以 包括其他原子1000,例如,如果用户正在向助理服务器200转发具有在对应服务300播放歌 曲的指令的歌曲(由原子1000表示)。

[0110] —旦将对应于该命令的语义原子10〇〇提供给助理服务器200,则原子1000可以在 对应的插件220处被转换成适当的专有语言。由插件220所提供的专有语言命令包含关于服 务3〇〇的特定证书中,诸如例如服务3〇〇被定位的位置,服务300的IP地址,和/或允许虚拟助 理系统10直接控制所需服务300可能需要的任意其他信息。因此,可以由工程师创建每个插 件220以包含所需的对应服务300的特定证书,以便与服务3〇〇通信并操作服务300。

[0111]换句话说,在移动设备1〇〇处或通过移动设备100由另一传感器类型设备输入的任 意类型的手势、图标触摸、语音、键盘输入或其他输入命令(原始输入命令)可以是首先经由 助理界面110转换成一个或多个语义原子1000。一旦在助理服务器200中识别出对应于输入 命令的语义原子1000,则它们可以在为对应的外部服务300创建的每个插件220处转换成由 对应的外部服务3〇0使用的专有语言(包括任意必需的证书)。使用输入命令的专有语言格 式(包括任意必需的证书),期望被执行的预期功能/操作在对应的外部服务300处可以被执 行。

[0112]如本文所描述的,语义原子1000可以在插件220处转换为专有语言。当语义原子 1000在插件22〇处被“转化”或“转换(translate)”时,一个或多个专有语言命令在插件220 处生成,并且原始语义原子1000可以被丢弃或保持。插件220可以根据即时情况(例如,原子 1000的内容、在服务300处将被执行的功能的类型等)被丢弃或保存原子1000。管理原子 1000的规则(包括丢弃还是保持原子1000)被保存在插件220处。

[0113]当确定原始原子1000不再需要时,可以丢弃原子1000。例如,如果原子1〇〇〇表示打 开灯(服务3〇〇)的命令,则在对应的插件220已经发送专用语言命令到灯以打开灯之后,不 需要保留原始原子1000。如果原始语义原子1000被丢弃,则插件220可以例如基于从服务 3〇〇接收的输出数据来生成新的语义原子1000。在以上打开灯的示例中,如果插件220丢弃 原始语义原子1000,则插件220可以生成表示例如灯开启之后的灯的颜色的新的原子1〇〇〇。 [0114]备选地,可以保持原子1000,使得可以向其添加进一步的信息。例如,如果表示一 个人的原子1000被发送到Facebook™插件以在Facebook™中查找该人,那么搜索结果(例 如,该人的Facebook™简档)可能在插件220处被转换为语义语言并被加入到表示该人的原 始语义原子1000中。以这种方式向原子添加信息在本文中可以称为“富集(enriching)”原 子。

[0115]如图所示,例如,在图1A中,助理服务器200可以通过在插件220将以语义原子1000 的形式表达的所接收的命令转换成对应专有语言来直接与外部服务300a-n进行通信。在该 示例性实施例中,移动设备100被配置为虚拟助理系统10的一部分,并且通过助理接口 110 与助理服务器200进行通信。助理服务器200可以通过因特网或如上所述的助理服务器200 与外部服务300a-n共享的任意其他类型的无线连接,来控制(经由插件220a-n)在虚拟助理 系统10内包括的任意数量的外部服务300a-n。此外,助理服务器200可以使用语义原子1〇〇〇 作为公共语言来提供包括在虚拟助理系统10中的任意数量的外部服务300a-n中的每一个 之间的交互(共享信息)。如上所述,这些外部服务300a-n可以经由因特网或其他类型的无 线连接来连接到助理服务器200。

[0116] 备选地,助理接口 110可以直接在服务300a-n处执行与在移动设备100处提供的相 应输入命令相关联的功能。图1B是图示本发明总的发明构思的示例性实施例的框图概念。 如图1B所图示的,移动设备100被配置为虚拟助理系统10的一部分,并且与图1A的示例性实 施例类似,通过助理接口 110与助理服务器200进行通信。然而,在该示例性实施例中,当确 定移动设备100在期望被控制的特定外部服务300a-n的特定范围内或者在特定服务300a-n 的公共网络内时,助理服务器200可以通信回移动设备100,以允许移动设备100执行特定外 部服务300a-n的直接控制,类似于遥控设备将执行这些控制(S卩,电视机和对应的遥控设 备)的方式。

[0117] 更具体地,如果在移动设备100和要控制的期望外部服务300之间建立基于位置的 通信服务(例如,NFC、蓝牙等),则该“建立的接近”通信信息可以通过助理接口 110提供给助 理服务器200。然后,助理服务器200可以直接向移动设备100提供期望的外部服务300的控 制访问。在这种情况下,对应于特定服务300的插件220可以首先将必要的专有语言信息嵌 入到一个或多个语义原子1000中,使得助理服务器200可以通过助理接口 110向移动设备 100提供该信息。当在助理接口 110处接收包含专有语言信息的一个或多个语义原子1000, 助理接口 110可以从原子1000提取移动设备100可以用于控制服务300b的专有语言信息。因 此,移动设备100可以以与为服务300专门设计的手持式遥控器控制服务300相同的方式直 接控制期望的外部服务300。

[0118] 下面参考图7A和7B提供虚拟助理系统10的控制过程的更详细的概述。

[0119] 应当注意,无限数量的外部服务300a-n可以由虚拟助理系统10访问和控制,并且 任意数量的移动设备l〇〇a-n可以被包括在虚拟助理系统10内以访问并控制无限数量的外 部服务300a-n。服务300a-n的访问也可以在移动设备100之间共享(参见图1A中的虚线“共 享访问”),如下文将更详细地描述。

[0120]如上面所指出的,在助理服务器200内创建的语义语言(以语义原子1000的形式) 用作通用语言,以允许在通过助理服务器200经由用于每个服务300a-n的相应插件220a-n 在外部服务300a-n之间、在移动设备100和助理服务器200之间、在移动设备100和任意无限 数量的外部服务300a-n之间、以及移动设备100a-n之间的信息的通信和交换。命令输入列 表的示例可以包括但不限于:可以由连接到移动设备100或者作为移动设备100的一部分集 成的麦克风(诸如,例如智能电话或平板计算机)或其他计算硬件捕获的语音命令。手势可 以由例如相机、运动检测器、接近检测器、红外传感器、温度传感器、全球定位设备或能够捕 获关于用户移动的信息的任意其他装置捕获,其进而连接到移动设备或其他计算设备。手 势也可以通过使用加速度计硬件或其它移动跟踪硬件、或者甚至眼睛跟踪、唇跟踪或面部 跟踪系统来检测移动的可配戴、手持或其他设备来捕获。图标可以用手触摸或经由在触敏 设备的触控笔(例如移动设备或其他触摸屏的触控笔)触摸或点击,或者通过将鼠标或滚球 放置在图标顶部的方式进行点击。此外,用户可能单独使用语音、单独使用手势或单独的图 标,或其任意组合来使助理执行这些任务。例如,用户可以在助理者可以访问的相机处向上 手势来指示由助理控制的恒温器应该提高温度。备选地,例如,该手势可以依靠臂带或其他 可配戴设备来检测。

[0121] 在创建用于插件220的命令集时,工程师/开发人员可以从如由虚拟助理系统1〇所 理解的预定义的命令输入相对应的命令输入中选择。例如,如果一个闭合的拳头和两个闭 合的拳头是存储在虚拟助理系统10中的预定义语义语言的部分,工程师/开发人员可以选 择关闭拳头的手势来表示门的锁定并且关闭两个拳头以表示接合死栓(deadbolt)。

[0122] 作为另一示例,用户可以将照片保持到相机(与用户的移动设备100相关联),并且 通过挥舞手势指示助理服务器200经由已经为其创建了插件220的面部识别程序(服务300, 例如“应用程序”)来标识图片中的人。以前在存储在存储装置250中的手势的语义语言中已 经提供了挥动图片的特定手势连同使用这样的面部识别程序。然后,可以由工程师选择该 手势,同时为面部识别类型服务3〇〇创建插件220。

[0123] 由于在助理服务器200处以语义语言编程的命令库在跨越无数(数千甚至数百万) 数量的插件220中是恒定的,所以类似的命令可能针对类似的概念出现。作为示例,可以分 别为公共广场中的门和广告牌分别创建两个单独的插件220,并且存储在助理服务器200 内。例如,如果关闭拳头与当天关门(shutting down)或关闭(closing up)的概念相关联, 则用户可以利用关闭拳头的相同手势来表示锁定门以及关闭广告牌,取决于用户是否希望 控制门或广告牌。

[0124] 由于为门和广告牌两者(以及无限数量的其他设备、服务、程序、应用程序等)都创 建了插件220,门和广告牌都能够理解由用户通过移动设备1〇〇发起的命令,因为助理服务 器200在移动设备100与门和广告牌之间充当转换器或解释器(经由语义原子1000,基于存 储在助理服务器200中的手势库、图标和其他命令输入)。更具体地,助理服务器200通过使 用语义原子1000形式的语义语言在无限数量的外部服务3〇〇a-n等与移动设备100之间充当 转换器。如上面所指出的,语义语言(所有设备、服务等之间的共用词汇)在助理服务器200 内被特别地创建,以允许助理服务器平台21〇 (参见图1A)和其中在助理服务器200处创建插 件220的所有相应的服务300a-n的每个插件220a-n之间、以及在助理服务器平台210和助理 接口 110之间的通信。

[0125] 作为语义原子1000的功能的示例,当虚拟助理系统10搜索用于人的社交网络(月艮 务300a)并响应于搜索接收到人的列表时,虚拟助理系统1〇 (具体地,对应于服务300a的插 件220a)可以将所接收的人员列表转换成表示那些人的语义原子1000。这些语义原子1000 可以向用户(经由助理接口 110)示出,和/或原子1〇〇〇可以被提供给一个或多个其他服务 300b-n。备选地或另外地,原子1〇〇〇可以被发送到助理服务器200的其他用户,或者使用与 助理服务器200通信的一个或多个单独的助理服务器200a-n发送到其他用户。后一种情况 的示例是其中存在助理服务器2〇〇的多个实例,如上所述并在下面参考图6B和6C更详细地 描述。

[0126] 作为另一示例,用户可以在Facebook™上跟随艺术家。用户可以Facebook™接收从 表示艺术家的语义原子1〇〇〇(由对应的插件22〇从Facebook™专有语言转换)。然后,用户可 以采用表示艺术家的语义原子1〇〇〇 (在单个命令中,由例如触摸、语音、手势或另一个命令 输入发出),然后从Sp〇tifyTM、Rdio™和Youtube™请求该艺术家的哪些歌曲可用。在该示例 中发生的是,已经检索到表示艺术家的语义原子1〇〇〇,用户执行针对“搜索”命令的命令输 入(图标触摸、手势等)。该命令输入可以是由虚拟助理系统10使用的用于所有音乐/内容服 务的相同命令输入。然后,表示艺术家的语义原子1000被转换成合适的格式,即通过对应的 插件220a_n所选的音乐/内容服务300a-n (该示例中为Sp〇tifyTM、Rdi〇™和Youtube™)的对 应专有语言,并与“搜索”命令一起提供给所选择的音乐/内容服务300a-n,其也由对应的插 件220a_n被转换为的对应的专有语言。然后可以在每个所选择的音乐/内容服务中进行对 艺术家的搜索。在该示例中,用户仅需要在Facebook™上的问题中找到相关的艺术家,并且 执行单个命令输入以在多个服务300a-n中进行多个搜索。在执行搜索之后,结果可以由用 于助理服务器200的所有服务300a-n (经由插件220a-n)返回为表示由被发现的该艺术家的 一首或多首歌曲的一个或多个语义原子1000。然后可以将这些语义原子1000发送到其他服 务300a_n。例如,可以将表示歌曲的原子1〇〇〇发送到要播放的音乐系统(例如Sonos™)。换句 话说,服务300a (在此示例中为Facebook™)可以将数据通信到由助理服务器200和对应的插 件220管理的其他服务30013-11(3口〇1:1€71¥,1?(1;[0111和¥0111:1^6111),其可以进而与其他服务 30Ob-n通信,每个服务300a以他们相应的专有语言进行通信。

[0127]在将语义原子1000发送到多个插件220的上述示例中,原子1000可以被复制并同 时发送到多个插件220 (上述示例中的SpotifyTM、Rdio™和Youtube™)。备选地,原子1〇〇〇可 以被发送到单个统一插件,在本文中称为“配方插件(recipe plugin)”或“超级插件”,其被 特别配置为与几个其他相关插件220交互。在上述示例中,从Facebook™收到的原子1000可 以发送到配置为与音乐查找服务(上述示例中的Sp〇tifyTM、Rdi〇™和Youtube™)进行通信的 这样的超级插件。然后,超级插件将处理复制原子1000并将原子1000的副本发送到对应于 所需服务的各种插件220。超级插件还接收从这些各种插件220返回的原子1000,并且可以 根据存储在超级插件内的用户的命令和规则来管理这些原子1〇〇〇。例如,超级插件可以向 用户呈现原子1000,将原子1000聚合成单个原子1000,或者通过向其添加从其它插件220接 收的原子1000来丰富原始原子1000 (表示从Facebook™接收的信息)。以这种方式使用超级 插件可以使用户更简单地控制许多服务300:用户仅感知与一个应用(超级插件)交互,而实 际上用户的命令正被用于通过超级插件来控制任意数量的相关服务300。

[0128]将原子1000发送到服务300a-n (经由对应的插件220a-n)在本文中也可以被描述 为“投掷(flinging)”或“抛出(tossing)”原子1000。将原子1000发送到服务300a-n可以涉 及“投掷”或“抛出”的命令输入手势,其中用户手势朝向预期服务300a (例如,音乐播放器), 以命令虚拟助理系统10将一个或多个原子1000发送到对应的插件220a以产生用于发送到 该服务300a的一个或多个更多专有语言命令。因此,命令输入可以比常规操纵按钮的方法 更直观地执行。例如,用户可以简单地向与所选择的原子1 〇〇〇 (对应于例如一个或多个歌 曲)有关的音乐播放器作出手势,并且虚拟助理系统10可以将命令输入理解为“在手势指向 的音乐播放器上播放在该语义原子1000中表示的歌曲”。这些直观的命令输入可以由插件 开发人员预编程,或者可以通过虚拟助理系统10自身经由自适应学习来开发,这在下面详 细描述。

[0129]语义原子1000也可以放入集合中。例如,一群朋友可以在一个特定的晚上合作决 定作为一个小组要看哪个电影和在哪个餐厅吃饭。然后,对应于虚拟助理系统10的一组用 户的朋友可以在他们之间传递电影和餐馆集合。该集合可以由在用户之间传递的一个或多 个语义原子1000来表示。该集合本身可以是单个语义原子1000,其包括表示单个项目(例如 餐馆和电影)的其他语义原子1000。每个单独用户可能有权从集合中移除项目并将项目添 加到集合中。作为构建和修改此集合的一部分,每个用户都可以使用他们喜欢的任意底层 服务300a_n。例如,一个用户可能会使用IMDB™来选择电影,而另一个用户可能会使用 Rotten Tomatoes™用于相同的目的。在这个示例中,用户最终同意电影集合。在这一点上, 电影可以从商定的列表中简单地选择,并且可以通过电影票服务(例如Fandango™)快速购 买该电影的票。在该示例中,在从用户接收到“购买”命令输入时,助理服务器200可将单个 原子1000 (对应于所选择的电影)与表示商定的电影列表的原子1000分离,并利用命令将所 选择的电影的原子1000发送到所选择的电影票服务以购买与该电影相对应的一张或多张 票。用于电影票服务的插件220知道如何读取和使用与所选择的电影对应的语义原子1000。 更具体地,用于电影票服务的插件220包括指示助理服务器200如何将表示所选的电影的原 子1000转换成票服务的专有语言以及如何根据“购买”命令购买对应的票的指令。

[0130] 类似地,可以复制原子1000。例如,表示命令的单个语义原子1000可以被复制,使 得表示命令的语义原子1000a-n可以被同时呈现给多个插件220a-n,以在多个服务300a-n 处执行命令。以这种方式复制原子1000可以由助理服务器200执行,或者通过例如与几个其 他插件220通信的超级插件来执行,如上面所描述的。在上述决定电影的示例中,单个用户 可以自己购买商定的电影的票,并且可以将交易中涉及的一个或多个原子1000的副本发送 给其他用户以类似地购买票。以这种方式复制的原子1000可以表示例如电影、购买票的动 作(例如,指定特定的票服务)。以这种方式复制交易的行为可以被称为“模拟交易”,并且允 许多个用户执行相同的动作,例如购买特定电影的票。模拟交易允许不同的用户使用不同 的支付证书。备选地,用于一笔交易的支付证书也可以被模仿(表示为语义原子1000,其副 本被发送给其他用户)。如果例如第一用户同意支付其他用户的票,支付证书可能会模仿。 [0131]用户可以以其中用户彼此不断对话的消息传输或“聊天”格式彼此共享原子1000。 用户可以获得由各种服务300a-n生成的原子1000,并通过消息传输与其他用户共享获得的 原子1000。一个用户可以向一个或多个其他用户发送或“消息传输”一个或多个原子1000, 然后他们可以选择这些一个或多个原子1000,并将一个或多个原子1000与一个或多个服务 300a-n—起使用。例如,第一用户可以向第二用户发送对应于电影的原子1000。第二用户可 以使用接收到的原子1000来查找附近的和播放电影的剧院,例如通过将所接收的原子1〇〇〇 发送到搜索服务。第二用户可以接收该搜索的结果,其表示为包括例如电影时间和位置的 一个或多个附加原子1000。然后,第二用户可以与第一用户共享这些一个或多个所接收的 原子1000以作为聊天会话的一部分。备选地,第二用户可以将一个或多个所接收的原子 1000消息传输给一个或多个其他用户,作为不包括第一用户的新聊天,或作为包括第一用 户的原始聊天的一部分。也可以定义其中包括用户集合的组。

[0132]定义组中的任意用户可以将原子1〇〇〇消息传输或“抛出(t〇ssed)”到组中的用户 之间的公共聊天中。任意原子1000可以从两个以上用户之间的一个聊天中取出,并被两个 聊天中共同的用户“抛出”到不同的用户之间的聊天中。这种情况被图示在图2A中。图2A图 示了具有对应的移动设备l〇〇a-e的5个用户。应当理解,在不脱离本发明总体发明构思的情 况下,可以包括任意数量的用户和移动设备l〇〇a-n。在图2A中,有两个聊天:一个在移动设 备100&amp;、10013和100(:的用户之间,另一个在移动设备1〇〇£1、1〇(^和1〇〇6的用户之间。由于移 动设备100a的用户是两个聊天的一部分,所以该用户可以将语义原子1000从例如移动设备 100a、100d和100e之间的聊天“抛出”到移动设备i〇〇a、i〇〇b和100c之间的聊天。

[0133]如图2B所图示的,服务300a-n还可以通过相应的插件220a-n“参与”聊天,以与用 户相似的方式接收和呈现原子1000到聊天。如图2B所示,与dropcam 300a对应的dropcam插 件220a正在参与与多个用户(对应于移动设备l〇〇a-c)的聊天。应当理解,在不脱离本发明 总体发明构思的情况下,任意数量的插件220a-n、对应的服务300a-n和移动设备100a-n可 以以这种方式被包括在聊天中。此外,尽管插件220a被图示为存储在图2B中的助理服务器 200中,插件220a可以存储在其他地方,例如,在参与聊天的另一个移动设备1〇〇上。图2B中 的dropcam插件220a可以呈现例如该聊天中的图片原子1〇〇〇,表示由其相关联的dr〇pcam 300a拍摄的图片。聊天中的所有用户将从dropcam 300a接收原子1000,并且聊天中的任意 用户然后可以取得该原子1000并将其发送到其他用户,包括不包括插件220a的另一个聊天 中的用户。

[0134] 作为另一示例,商业服务可以监视地理区域中的商店中可用的交易,并且可能基 于这些用户的地理位置,将表示这些交易的原子1000抛出到用户或抛入若千用户的聊天。 如果原子1000是人类可读的,例如,它们可以包括指示它们是来自零售商的交易的标题,用 户可以理解接收的原子1000的含义,而不需要首先将原子1000发送到一个或多个服务 300a_n。聊天中的用户也可以在同一个聊天中讨论收到的交易,并将表示交易的原子1〇〇〇 消息传输给彼此,或者消息传送给不同的聊天中的其他用户。

[0135] 当服务300“参与”聊天时,那些服务300也可以从用户接收一个或多个原子1000。 在上述用户同意电影列表和购买一个商定的电影的票的示例中,电影票服务可以参与用户 之间的聊天,在这种情况下,聊天中的任意用户可以发送表示所选择的电影的原子1000到 聊天的上下文中的票务服务300。将电影原子1000发送到票服务300的动作将由助理服务器 200解释为由原子1000表示的购买电影票的命令,并且通过票务服务的插件220将对应的命 令发送到票服务300。在图2B所图示的dropcam 300a的示例中,聊天中的用户可以通过聊天 向dropcam插件220a发送命令,并且这些命令可以被转换成dropcam的专有语言,并且在 dropcam 3〇OA处执行。

[0136] 聊天会话中的一个或多个用户还可以基于用户访问这些插件220a-n的权限,邀请 从聊天会话中的其他用户不可见的插件220参与聊天会话。基本上,用户可以将一个或多个 插件220a_n引入到聊天会话中并利用这些插件220a-n,而不将其授权给聊天会话的其他参 与者,或者甚至允许聊天会话中的其他参与者知道插件的参与。在这种情况下,插件220a-n 可以包括虚拟助理系统10的用户的单独助理界面110。用户还可以根据需要与聊天会话中 的其他参与者共享他们的插件220a-n。通过聊天会话与其他用户共享插件220a-n可以是选 择性的,即插件220a-n可以与消息传输会话中的所有用户共享,或者仅与消息传输会话中 的用户的子集共享,如由拥有插件220a-n的用户所期望的。

[0137] 用户还可以通过消息传输来协作以组装数据。作为示例,一个用户可以获得表示 比萨的订购的一个或多个语义原子1000,并将原子1000发送给另一个用户,其然后将上层 配料(toppings)添加比萨饼,实际上将额外的信息添加到表示比萨的原子1000。原子1000 可以以这种方式在多个用户之间被消息传输,每个用户修改原子1000 (例如通过添加或去 除上层配料)直到用户准备好订购。此时,用户中的一个可以将表示比萨订单的原子1000发 送到服务3〇〇(例如Pizza Hut™),以执行对应的操作,在这种情况下订购比萨饼。作为被消 息传送给Pizza Hut™的一部分,表示披萨的语义原子1000被发送到助理服务器200,助理服 务器200反过来又将数据发送到Pizza Hut™插件220,以在Pizza Hut™专有语言中生成对 应的命令,其随后被发送至Pizza Hut™以订购比萨饼。值得注意的是,这些操作可以自动发 生,而不需要直接的用户交互。在用户的感觉中,他们之间消息传送关于买什么种类的比 萨,以及然后将他们商定的比萨饼订购消息传输给Pizza Hut™。

[0138]类似地,零售商可以向用户用消息传输报价,例如以折扣购买产品的报价。该报价 将被表示为由服务300 (在该示例中为零售商)发送到聊天中的一个或多个语义原子1〇〇〇。 用户可能能够将表示该报价的原子1000发送给另一个用户,并且该另一用户可以通过使用 要兑换的命令将原子发送给零售商的插件220来兑换该报价。这种兑换可以根据相关背景 进行。是否己经从另一用户接收到该报价可能是影响报价的上下文,使得报价随着从一个 用户消息传输到另一个用户而改变。例如,如果从零售商到第一用户的初始报价是以20% 折扣的价格购买一种软饮料,那么同样的报价在被消息传输到另一个用户后可能会允许另 一个用户以50 %折扣购买一个软饮料。备选地,在被消息传送到另一个用户之后,该报价可 以允许另一个用户从同一零售商拥有的咖啡店中以50%的折扣购买咖啡。换句话说,数据 被消息传输的次数也可以被包括在语义原子中,以被对应的插件220用作作为命令进行解 释的上下文。原子(1000)的传输(对应于报价)也可以是可跟踪的。与其许多朋友共享报价, 然后兑换报价的用户可能会基于其朋友的共享和使用行为来奖励另一个提价,例如免费商 品。

[0139]跟踪表示报价的原子1000已经在用户之间被消息传输的次数的数量也可以相当 广泛地用于游戏商业。例如,成功地将许多朋友引用到新服务的用户可以基于该用户的朋 友的共享和使用行为来获得该服务的精英状态。在所有这些情况下,相同的数据(报价)正 在不同的上下文中并且可能在不同的插件220a-n之间进行进行不同的转换。

[0M0]这种广告也可以更开放。例如,零售商可能会宣布50个单位的物品是免费可用的。 如果报价仍然可用(在这个示例中,如果该商品的5〇个单位中的任意一个仍然可用),那么 一个或多个用户可以从零售商插件22〇请求并接收一个或多个对应于报价的原子1〇〇〇(其 也可以是通过聊天可访问的)。那么一个或多个用户可以能够将这些一个或多个原子1000 (对应于报价以及如上所述的兑换报价的权限)传输给其他用户。接收和兑换报价可能需要 接收用户也可以安装或与属于发行零售商的插件220通信,或者,备选地,可能不需要这样 的安装和/或通信。根据本文所描述的本发明总体发明构思的消息传输然后将变成由零售 商利用的通过以具有可转让报价的高影响力的个人为目标来接触许多潜在客户并产生“口 碑(buzz)”的方式。

[0141]语义原子1〇〇〇在于许多优点中的两个优点是它们消除一次又一次地输入数据的 需要,并且可以通过创建共同语言来实现跨越非常不同系统的数据的快速重用。语义原子 1000可以表示人可以理解的对象和概念,使得原子1〇〇〇自己可能对人有意义。因此,当检查 时,语义原子1000几乎可以完全是人可理解的。例如,对应于电影的语义原子1000可以包含 关于电影的标题、概要、演员、导演、语言、评级、类型、运行时间、发布日期及其可用格式的 信息。该信息可以直接呈现给用户。也就是说,关于项目(在这种情况下为电影)的信息可以 是用户可以理解的格式,例如文本。以相同的方式,语义集合(对应于语义原子1000的集合) 也可以是人可见的。然而,尽管上文中,语义原子1000中可能存在不是人可理解的其他信 息,即使语义原子1000仍然携带意义,但在可能存在。例如,对应于人的语义原子1000可以 包含数学地代表该人脸部的特征值以便使该人对照相机可识别。在这个示例中,尽管特征 值仍然包含有意义的信息(在这个示例中,允许相机可视化该人的信息),人们看到这些特 征值将不能直接可视化人。此外,不一定包含语义原子1000中包含的所有信息。有时,只有 可用数据的子集被包括在原子1000中。例如,电影语义原子1000可能只包含电影的名字而 不是电影的概要。

[0142]语义原子1000也可以被组合或被合并。图3A中图示了原子1000的这种使用的示例 性实施例。如在那里所图不的,当服务300a,诸如例如,Facebook™被访问时,服务300a可以 生成(通过其对应的插件220a)对应于例如人的语义原子lOOOal,语义原子lOOOal包括关于 该人的信息(例如姓名,图片,生日等)。当不同的服务3〇〇b (例如,电子邮件服务)被访问时, 该新服务300b可以生成(通过其对应的插件220b)对应于同一个人的语义原子I000a2,但是 用不同信息(例如,e-邮件地址、电话号码等)。虚拟助理系统1〇 (例如,助理服务器2〇〇)可以 将与对应于该人但包括关于该人不同信息的这两个原子l〇〇〇al和l〇〇〇a2合并到表示该人 的单个原子1000a3中。原子1000的这种组合可以基于在助理服务器2〇〇中保持的规则(例 如,在助理服务器200处存储的一个或多个插件220)来被执行。任意数量的语义原子i〇〇〇a一 n可以以这种方式组合。另外,尽管图3A仅为了方便图示了两个外部服务3〇〇a和300b,但是 应当理解,任意数量的外部服务300a-n和对应的插件220a-n可以以这种方式被使用以组合 语义原子1000。此外虽然图3A示出了存储在助理服务器200中的插件220a-n,并且助理服务 器200组合原子1000a-n (如图3A所图示的原子1 〇〇〇a 1和1 〇〇〇a2),插件220a-n可以备选地被 存储在移动设备100处,其也可以组合原子l〇〇〇a-n。此外,如果存在助理服务器2〇〇的多个 实例,则不同的独立实例200a-n可以协作地合并语义原子l〇〇〇a-n以创建具有更丰富信息 或更适合特定任务的语义原子1000。

[0143] 语义原子1〇〇〇也可以根据在插件220中保持的规则进行嵌套。在如图3B所图示的 本发明总体发明构思的示例性实施例中,语义原子l〇〇〇a表示例如音乐播放列表。本播放列 表中的每首歌曲本身可以是包含在表示播放列表的语义原子l000a中的原子丨⑻仙-!!。在图 3B中,为了方便起见,图示了三个嵌套原子i〇〇〇b,i〇〇〇c和loood,但是应当理解,在不脱离 本发明总体发明构思的情况下,可以以这种方式嵌套任意数量的原子1000b-n。此外,每个 嵌套原子1000还可以包括其它嵌套原子1000。如图3B所示,例如,原子1 〇〇〇e和l〇〇〇f可以嵌 套在原子1000b内。如果原子1000b对应于歌曲,原子i〇〇〇e和i〇〇〇f可以对应于,例如,例如 该歌曲的歌词和价格。

[0144] 通过组合或嵌套原子l〇〇〇a-n产生的“更大的”原子1〇〇〇也可以在人和服务3〇〇之 间交换,从而大大简化了一个用户可能希望一次向另一用户消息传送多个项目的聊天。例 如,用户A可以向用户B发送图3B所示的播放列表原子i〇〇〇a。用户B可以选择嵌套在播放列 表原子1000a (例如,歌曲原子i〇〇〇b)内的歌曲原子之一,并将所选择的歌曲原子发送到用 户C,然后用户C又转而将歌曲原子添加到不同的播放列表原子。

[0145]语义原子1〇〇〇也可以表示动作。例如,用户可以向另一用户发送位置请求。该位置 请求可能包g种信息,包括所需的时间、需要的理由和收到后采取的动作。另一个原子 1000可以表示离开家的行为。这个“离开家”原子1000可以被发送到另一个用户,例如,使其 他用户能够用原子1000来采取一组后续动作。例如,如果出租的客人离开出租物业并向 所有者发送“离开事件”语义原子1000,则所有者然后可以将这个“离开事件,,原子1000发送 到灯、供暖、安全、WiFi和其他服务300a-n,以自动在与此事件相关的租赁物业中采取动作。 在该不例中,将“离开事件”原子1000发送到各种服务300a-n可能导致灯熄灭、将加热转变 为较低的温度设置,等等。

[0146]也可以为各种目的保存语义原子1〇〇〇。例如,包含用于访问各种WiFi接入点的密 码的各种WiFi原子1000可以由用户存留以供将来使用。如上所述,原子1000可以被存储在 移动设备100或助理服务器200中,以及例如可移动存储介质或其他存储介质中。

[0147]语义原子1000也可以在观看后被丢弃。例如,用户可以在Linkedln™上运行搜索, 并且可以看到多个人作为由虚拟助理系统10中的语义原子1000表示的结果,但是不对这些 原子1000进一步进行任意操作。在这种情况下,未使用的原子1〇〇〇被助理服务器200、插件 220和服务300简单地丢弃。

[0148]图4A是为了描述移动设备100如何被配置为图1A和1B所图示的虚拟助理系统10的 一部分的目的而详细图示移动设备100的示例性实施例的框图。

[0149] 移动设备100可以包括助理接口 110、传输器105、控制器120、中央处理单元(CPU) 13〇、存储单元140、用户接口 150、传感器160、至少一个扬声器170、至少一个麦克风180和至 少一个相机190。

[0150] 参考图4A,传输器105可以用于建立与助理服务器200和/或外部服务300的连接。 传输器105可以包括天线或任意类型的通信设备,以使用Wi-Fi、Wi-Fi直连、NFC、蓝牙、 RFID、以太网、火线、通用串行总线(USB)、高清晰度多媒体接口(HDMI)或任意其他类型的无 线或有线通信方式(但不限于此)来建立与助理服务器200和任意外部服务300的连接。可以 经由因特网(包括云计算应用、卫星等)来执行移动设备100、助理服务器200和任意外部服 务300之间的通信。

[0151] 控制器120可以控制移动设备100和助理服务器200之间的通信,以及在满足某些 条件(诸如基于位置的通信服务(例如,近场通信(NFC)、蓝牙等)被建立)的情况下控制移动 设备100与外部服务300a-n之间的通信,如上面关于图1B所述。

[0152] 控制器120确定助理接口 110正在与哪个服务300通信,以便解释所所接收的请求, 无论该请求是以专用语言格式或作为语义原子1〇〇〇接收的。尽管助理接口 110正在通信的 服务经常是助理服务器200,可以从不同的服务器或从单独的移动设备l〇〇a-n上的另一个 助理接口 llOa-n获得可能的输入(图标、手势、语音命令和解释)的库。例如,多个助理接口 110a-n可以协同工作:即,一旦一个助理接口 1 l〇a己经学习了如何解释输入,该助理接口 110a可以与另一个助理接口共享该输入。因此,控制器120可以确定助理接口 110正在与什 么设备通信,以便提供这些特征。

[0153] 因此,在某些情况下,控制器120可以确定助理接口 11〇应该接触除助理服务器200 之外的外部源。例如,如果助理接口 110由控制器120确定正在接收需要来自另一个助理服 务器200a-n或另一助理接口 110a-n的信息的输入请求,则控制器120可以指示助理接口 110 接触外部其他来源。因此,助理接口 110将经由传输器1〇5连接到外部其他源并呈现请求。夕卜 部其他来源将检查完整的库集以解释该请求(手势、图标触摸、语音数据等),并且如果发 现,外部其他源将响应于助理接口 110并告诉它用语义原子1000 (其中嵌入有专有语言)做 什么。此时如果移动设备100如图1A所示通过助理服务器200操作,则助理接口 110将向助理 服务器200提供命令以在预期的外部服务300上执行命令。备选地,如果移动设备1〇〇正在以 如图1B所图示的本地控制模式操作,则助理接口 110然后可以通过传输器1〇5与服务300连 接,并使用适当获得的专有语言直接控制预期的外部服务300。

[0154] CPU 130可以请求虚拟助理系统1〇以运行应用程序和/或程序,执行移动设备1〇〇 的各种功能,以及在各种其他用途之间基于用户的偏好自适应地学习各种命令。CPU 130还 可以基于用户的偏好来运行可以改变、变更或个性化的各种操作系统。此外,当存在用户期 望控制的多个外部服务3〇Oa-n时,CPU 130可以基于相应的用户命令来执行与多个外部服 务300a-n特别对应的各种功能。

[0155]存储单元140可以存储由CPU 130学习的命令以及各种语言、图标、手势、传感器命 令、程序、应用程序、命令和库、包括以上项的任意组合的库,其是可以通过移动设备1〇〇从 助理服务器2〇〇下载。例如,如果移动设备100不具有助理服务器200内的命令的库中以控制 特定服务300的特定命令,则移动设备1〇〇可以从助理服务器2〇〇下载任意单个命令或命令 集合,此时移动设备100可以直接控制服务300,或者至少具有更广泛的命令库以理解输入 到移动设备100的一个或多个命令。换句话说,如果移动设备100的用户作出例如手势或向 移动设备100提供不是容易知道的命令的语音命令,则助理服务器200可以通过在广泛的命 令库检查来识别正确的命令,同时考虑命令的各种上下文和经由以前收集的信息的历史所 收集的用户信息,如下所述。然后,借助于对应的插件220,助理服务器200可以将该命令生 成为具有嵌入其中的专有语言的一个或多个语义原子1〇〇〇。然后可以将表示命令的原子 1000提供给移动设备100,此时,移动设备100可以将正确的命令下载到存储单元140中,经 由助理接口 110将命令转换为服务3〇0的专有语言,以及然后通过传输器1〇5通过使用该服 务300的专有语言来在服务300a处执行预期功能。

[0156]用户接口 150允许用户在移动设备1〇〇上执行各种功能,包括显示可选择的图标、 进行电话呼叫、访问因特网以查看各种网页、播放诸如音乐和电影的多媒体、观看图片、运 行程序、控制一个或多个外部服务300a-n、访问助理服务器200、修改移动设备100等,但不 限于此。用户接口 150可以包括屏幕、键盘、小键盘、鼠标、轨迹球、触摸屏、音频接口(例如具 有至少一个麦克风ISO)、全息图接口、感测接口等但不限于此。此外,用户接口 150可以包括 各种类型的上述用户接口的任意组合。

[0157]传感器160可以被配置为感测一个或多个输入,例如用户的声音、手势或触摸。传 感器160可以与在CPU 13〇上运行的面部识别软件一起工作,以允许移动设备100识别用户 的面部表情,或环形设备,诸如例如Fin™,其是可以从用户作出的手势提供命令的具有蓝牙 功能的设备。在该示例中,命令可以由CPU 130接收并且由助理接口 110转换成一个或多个 语义原子1000。另外,传感器16〇可以包括感测移动设备1〇〇本身的移动的其它类型的感测 设备,例如到被控制的服务300的移动设备1〇〇的回转、压力或接近。此外,传感器16呵以包 括用于感测移动设备100的位置的全球定位系统(GPS)技术。传感器160可以包括具有多个 功能的单个传感器,或者可以基于用户的偏好被分成多个不同的传感器。以下参照图5八更 详细地描述传感器160。

[0158]移动设备100还可以包括:至少一个扬声器170,以允许用户听到从移动设备1〇〇发 射的音频;至少一个麦克风180,以允许用户对移动设备100说话;以及至少一个相机190,以 允许用户捕获图像。至少一个扬声器170和至少一个麦克风180可以用于执行电话操作,并 且还可以用于从用户接收可以由CPU 130处理的音频命令(例如语音命令)。至少一个相机 19〇可以被用于拍摄静止或移动的对象,以使用诸如Skype或GChat的应用程序来执行与其 他用户的网络摄像头通信,或者从用户接收/读取可由CPU130处理的手势和/或面部特征。 [0159] 如上文关于图1A-1B所描述的助理接口 110可以通过将输入命令转换成一个或多 个语义原子1000来执行插件的操作,并且可以使用语义原子1000与助理服务器200通信。此 夕卜,助理接口 110可以通过任意形式的传感器160转换在移动设备100处接收的、或者100经 由外部传感器(诸如例如如上面所描述的可配戴环)由移动设备接收的任意命令。助理接口 110还将从助理服务器200接收的数据转换成移动设备100可以理解的格式(有效地,移动设 备100的专有语言),并且其可以被显示在例如用户接口 150上。

[0160] 如上面所指出的,图4B图示了示例性实施例,其中图4A的移动设备100可以在其中 包括助理服务器200以及图4A中图示的其他设备。在这种情况下,助理接口 110不需要与任 意后端类型的服务器系统进行通信,以便在以本地模式操作时理解在任意服务300a-n处执 行任意功能需要采取的动作。因此,在图4B所图示的该示例性实施例中,如上所述,虚拟助 理系统10在移动型设备100中可以完全自包含。在上面参考图1A-1B和2A描述的实施例中, 助理服务器200和助理接口 110之间的交互通常通过网络发生。然而,在图4B所图示的该示 例性实施例中,助理服务器200和助理接口 110之间的交互发生在移动设备100本身内。此 夕卜,与助理服务器200相关联的存储装置250也被提供在与移动设备100相同的硬件上,并且 由助理服务器200以类似于如图1A-1B所描述的助理服务器200使用存储装置250的方式使 用。因此,图4B中的存储装置250功能上等同于图1A-1B中描述的存储装置250。尽管图4A的 移动设备100的许多部件未在图4B的移动设备100中示出,诸如传输器105、CPU 130、控制器 120、UI 150、传感器160、存储单元140等,为了突出显示图4A和图4B的移动设备之间的差 异,这些组件也包括在图4B的移动设备中。

[0161] 根据图4B的该示例性实施例的虚拟助理系统10在通信不良的情况下是有价值的, 诸如远程应用、军事应用等。由于本示例性实施例的移动设备100和助理服务器200不依赖 于彼此之间的无线通信来执行服务300a_n处的功能,因此可以消除由于移动设备1〇〇和助 理服务器200之间的差的无线通信而导致的对预期服务300的控制失败的概率。此外,出于 安全目的或其他类似的原因,不希望其数据存储在一些远程位置的用户也可以使用虚拟助 理系统10的这种类型的设置。由于没有无线发送助理信息,虚拟助理系统10 (并且通过扩 展,用户的信息)更安全。这种类型的设置在面对变化的连接(例如有时变得与无线服务断 开连接)情况的汽车或飞机中也是非常有价值的。

[0162] 作为图1B所图示的示例性实施例的备选方案,“移动设备”1〇〇可以备选地被实现 在一个或多个固定设备上,诸如连接到助理服务器2〇〇或云(其连接到或用作助理服务器 2〇〇)的亚马逊Echo™类型设备。因此,用户可能不需要具有连接到助理服务器200的助理接 口 110的手持设备。相反,固定设备可以定位在区域中的各个点周围。这些固定设备可以充 当上述“移动装置”1〇〇,并且可以接收命令输入(例如,用户的语音、手势等),与用户交互, 并根据命令输入执行功能。作为示例,如果用户在建筑物中,则可以存在定位在每个楼层上 的一个或多个固定设备,每个固定设备可以具有各自的助理接口 110。固定设备的这种布置 允许用户命令虚拟助理系统10执行各种任务并控制外部服务300a-n,类似于上面参考图 1A - 1B所描述的示例性实施例。根据本发明的总体构思的示例性实施例,固定设备也可以彼 此通信。

[0163] 固定设备类似于移动设备100运行。因此,应当理解,如本文所使用的术语“移动设 备”还可以包括固定设备。下面详细讨论的图17图示了包括多个设备(例如,具有单独的助 理接口 llOa-n的传感器)的本发明总体发明构思的示例性实施例,其可以充当如上所述的 固定设备。

[0164] 图5A是图示图4A所图示的移动设备1〇〇的传感器160的示例性实施例的框图。如图 5A所图示的传感器160可以以多个不同的传感器的形式提供。

[0165] 传感器160可以包括位于移动设备100上的各个位置的各种不同的传感器,并且可 以包括触摸屏161、压力传感器162、运动传感器163、热传感器164、接近传感器165、回转 (gyration)传感器166和全球定位服务(GPS)传感器167。

[0166] 触摸屏161是在其上显示项目、图标和媒体的、同时允许移动设备1〇〇在与触摸屏 161接触时检测用户的手指、触控笔等的位置的显示器。这样,当用户围绕触摸屏161移动手 指时,可以在触摸屏161上执行各种命令,例如滚动菜单项、选择图标、翻页等,但不限于此。 [0167]压力传感器162允许移动设备100检测压力,例如触摸屏161被压下的压力。因此, 由压力传感器162感测到的不同压力可导致由移动装置100执行的不同命令。压力传感器 162可以是与触摸屏161分离的部件,或者可以被集成在其中。

[0168] 运动传感器163可以检测关于用户或一个或多个外部服务300a-n的用户的运动或 移动设备100的运动。这样,运动传感器163可以主动跟踪用户和/或移动设备100的移动。运 动传感器163可以是与至少一个相机190分离的部件,或者可以被集成在其中。

[0169] 热传感器164可以感测来自外部源的热量,其可被CPU 130处理和解释为数据。 [0170] 接近传感器165可以感测移动设备100关于其他对象和/或用户的接近度。接近传 感器165可以是与至少一个相机190分离的部件,或者可以被集成在其中。

[0171] 回转传感器166可以在三维空间中感测移动设备100本身的运动和/或运动方向。 更具体地,回转传感器166可以感测移动设备100如何移动,从而允许移动设备100被用作例 如类似魔杖的装置来控制外部服务300。例如,回转传感器166可以感测到用户将移动设备 100从低位置移动到高位置,并且然后可以通过助理服务器200发送命令来控制电视(对应 于外部服务300)到增加音量。备选地,运动传感器163、接近传感器165和至少一个相机190 也可以用于感测移动设备100已经从低位置移动到高位置,并且向助理服务器200发送对应 的命令。

[0172] GPS传感器167可以使用GPS技术感测移动设备100的位置,以便证实移动设备100 的确切位置。当移动设备100的位置被证实时,助理服务器200可以确定哪个外部服务300a-n可以和/或应该由移动设备100控制,以及哪些类型的命令可以和/或应该被用于执行控 制。

[0173]根据示例性实施例,如果用户正在他/她的房子外面操作移动设备100并想要打开 无线连接到助理服务器200的车库门(服务300a),则用户可以给出“竖起大拇指”手势语 (hand sign)到至少一个照相机190,或使用另一形式的传感器,此时助理接口 110转换并提 供作为语义原子1000的命令给助理服务器200,以将命令传输到车库门插件,使得车库门打 开。由于GPS传感器167可以感知到移动设备100在用户的房屋之外,所以此时“竖起大拇指” 手势语被解释为表示“车库门打开”。然而,如果用户在房屋内,则此时相同的“竖起大拇指” 手势语被用于关闭车库门,因为GPS传感器167可以感测到用户在房屋内。因此,相同的手势 语或其他手势可以基于GPS传感器167感测到的移动设备100的位置来用于执行与单个外部 服务300相对应的不同功能。

[0174]作为另一示例性实施例,可以基于移动设备100的位置来不同地控制喷洒器系统 服务300a。更具体地,如果GPS传感器167感测到移动设备1〇〇靠近用户的家并且用户触摸在 移动设备100的用户界面(UI) 150上显示的喷洒器系统图标,可以切断喷洒系统以允许用户 在草坪上行走而不会变湿。如果用户远离家庭,并且用户触摸显示在移动设备100的m 15〇 上的相同的喷洒系统图标,则喷洒系统可能会打开,使得水喷洒到草坪上。备选地,用户可 以基于感测用户的位置的GPS传感器167来预设自动喷水灭火系统功能。

[0175] 应当理解,根据本发明总体发明构思的特定示例性实施例,传感器160可以包括图 5A所示的感测设备或未图示的附加感测设备的任意组合。例如,手势可以由移动设备100中 的至少一个照相机190以及光检测设备、可佩戴设备(例如臂带或Fin™)或使用加速度计或 其它移动检测设备来检测。在图5B所示的本发明总体发明构思的示例性实施例中,移动设 备100连接到多个外部输入传感器和设备。例如,移动设备100可以连接到用户的家庭、办公 室或汽车中的外部传感器,以便从其接收不能用自己的传感器160接收的数据。诸如键盘、 相机、GPS、可配戴传感器、麦克风和/或红外传感器的外部感测设备将移动设备100连接到 交替感测设备以接受用户输入。以这种方式,可以大大扩展用户的移动设备100的功能。

[0176] 此外,移动设备100可以外部设备(从诸如一个或多个显示器、扬声器和致动器)接 收输入命令。来自这些外部设备的输入可以被CPU 130处理,以确定这样的命令是从相应的 外部设备接收的。

[0177] 如上面所描述的,手势也可以由可配戴的、手持的、或通过使用加速度计硬件或其 他运动跟踪硬件或甚至眼睛跟踪、嘴唇跟踪或面部跟踪系统来检测移动的其他装置来捕 获。图标通常由手或触控笔在触摸感应服务(例如图4A所示的移动设备100的用户界面150, 或一些其他形式的触摸屏)上触摸或点击,或借助于通过将鼠标或滚球放置在图标的顶部 的点击。用户可以使用任意命令输入或其组合(例如单独的语音、单独的手势或单独的图 标、或其任意组合),以使助理服务器2〇〇在服务300处执行这些任务(例如,上述使用GPS连 同传感器的组合来感测“竖起大拇指”手势的示例)。作为另一示例,用户可以在助理服务器 200可访问的相机处手势向上来指示由助理服务器200控制的恒温器应升高温度。或者可以 通过臂带或其他可配戴设备来检测该手势。

[0178] 为了描述助理服务器200如何被配置为图1A和1B所图示的虚拟助理系统1〇的一部 分,图6A是详细图示了助理服务器2〇〇的示例性实施例的框图。

[0179] 图6A所图示的助理服务器200可以包括助理服务器平台21〇和插件220a-n。

[0180] 助理服务器平台210可以是允许软件开发人员在助理服务器2〇〇处创建插件22〇的 任意设备或其组合。助理服务器平台21〇可以例如是CPU、多个CPU或用于处理命令以及经由 语义原子1000与服务300a-n通信的其他计算设备。类似于移动设备100中的CPU130,助理服 务器平台210可以连续地运行学习算法。 、

[0181] 尽管插件220a-n在图6A中被图示为与助理服务器200分离,但是该图仅仅被提供 用于说明可以创建的无限数量的插件220a_n以及它们与特定服务300a-n相应的关联。这些 插件220a_n通常在助理服务器200处创建。 _

[0182] 如上所述,存储装置250可以被提供在与助理服务器200相同的硬件或云服务上, 或者可以由助理服务器200单独定位和访问,如图6A所示。存储装置250可以是例如包括在 助理服务器200中的硬盘驱动器,或者连接到助理服务器200的外部存储设备,例如闪存驱 动器或云存储服务器。存储装置250还可以是连接到助理服务器200的多个存储设备。存储 装置250存储用于控制服务300a-n的命令库230。

[0183] 对于不同类型的输入,库230可以被划分成多个部分。例如,库230可以被分成图标 库、语音/文字输入库和手势库。

[0184] 存储装置250还可以包括对应于服务300a-n的单独的命令集240a-n。多个命令集 240a-n中的每一个包括可用于控制服务300a-n中的特定一个的特定命令(与输入相关联)。

[0185] 为了控制特定服务300,用户可以将移动设备100连接到助理服务器200并下载适 当的命令集240。该连接可以经由因特网通过使用[41^1-;^直连、斯(:、蓝牙、1^10或任意 其他类型的无线或有线连接来实现。下载的命令集240可以自动地或在用户接受命令之后 被保存在存储单元140中。一旦被下载,命令集240可以被助理接口 110用来将所接收的输入 转换成一个或多个语义原子1000。

[0186] 存储装置250还可以在虚拟助理系统10上存储使用数据,包括上下文数据(诸如, 例如,当输入某些命令时的时间或用户的物理位置)、哪些输入被错误地给出(哪个输入立 即撤销等)等等。该使用数据可以对插件开发人员可用,以便开发人员可以然后相应地更新 库230以反映该使用数据。

[0187] 存储装置250还可以存储更新到通过使用虚拟助理系统10生成的库230。如上所述 并在下文中详细讨论的,虚拟助理系统1〇可以根据用户行为来定义诸如手势的附加输入, 其可以存储在存储装置250中。

[0188] 图6A所图示的助理服务器200是包括单个节点或服务器的集中式布置。然而,如上 所述,助理服务器200还可以是分布式部署或助理服务器200的“多个实例”,包括经由语义 原子1000彼此通信的多个节点或服务器。

[0189] 助理服务器200的多个实例可以包括分层布置的服务器200a-n的网络。该网络可 以利用助理服务器200的不同实例来处理不同的请求,例如涉及不同事物的请求。例如,当 一个服务器(对应于助理服务器200的一个实例)包含涉及服务300a-n的子集(例如物理设 备)相关的插件220时,助理服务器200的另一实例可以包含涉及不同子集的插件220,例如 社交媒体服务和应用程序。助理服务器200的第三实例可以对去往这些底层服务器(助理服 务器200的底层实例)的请求进行路由,并对来自这些底层服务器(助理服务器200的底层实 例)的响应进行编译。用户感知到与单个实体(即单个助理服务器200)交互。

[0190] 当存在助理服务器200的多个实例时,可以存在大致相同重要性的节点的集合。例 如,每个具有其自己的助理服务器200的多个用户可以将其助理服务器连接在一起以充当 单个助理服务器200。在图6B中示出了该配置的示例性实施例。图6B示出了 4个实例200a-d 以及与所得到的助理服务器200通信的移动设备l〇〇a-n。应当理解,可以包括任意数量的实 例200a-n。此外,每个实例200a-n可以包括图6A所图示的助理服务器200的一些或全部特 征。在图6B所图示的助理服务器200的配置中,助理服务器200的不同实例200a-n可以与其 他实例200a-n中的全部或一些通信。如图6B所图示,一个实例2〇Oa与所有其他实例通信,而 另一个实例2〇〇b仅与其他单个实例(在该示例性实施例中的200a)通信。因此,在本例中的 实例200b将仅直接从与其通信的实例200a接收数据,但是可以间接地从从其他实例(图6B 中的200c和200d)接收数据,例如通过助理服务器2〇〇a,其是与这些其他实例2〇Oc和2〇Od通 信的。任意数量的移动设备lOOa-n可以与助理服务器200a-n的联网实例进行通信。各种移 动装置1 〇〇a-n中的每一个可以各自对应于实例200a_n中的一个。此外,各种移动设备1 〇〇a-n可以各自与以这种方式连接的实例200a-n的任意一个进行通信,以接收在所有实例200a-n之间共享的数据。实例200a-n可以是以这种方式在用户之间的聊天中的“参与者”,类似于 如上所述参与聊天的服务300a-n。

[0191] 备选地,单个“主”助理服务器(实例)可以充当上面关于图6A描述的助理服务器 200,并且还连接到用于特定任务和信息的外部节点或实例。图6C中图示了该配置的示例性 实施例。在图6C中,为了方便起见,仅示出了四个实例200a-d,但也可以包括任意数量的实 例200a-n。在图6C所图示的示例性实施例中,实例200a用作移动设备100a-n与之通信的 “主”助理服务器。该“主”助理服务器与其他“从属”实例200b-d进行通信。这些“从属”实例 200b-d不必与“主”实例200a直接通信。如图6C所图示的,例如,实例200d与实例200c通信, 实例200c又与“主”助理服务器200a通信。

[0192] 如上所述,图标、手势、语音库等被存储在助理服务器200中。然而,这些库中的某 些元素(例如重叠方面或附加方面)可以包含在虚拟助理系统10中的其他地方,例如在助理 接口 110中或在与其他节点分开保存的助理服务器200的节点中。例如,诸如“辐射开始”之 类的口说命令可能意味着为特定用户“切换灯泡”,但对其他用户可能具有完全不同的含 义。该附加命令可以在与主助理服务器200分离但连接到助理服务器200的节点(节点包括 CPU和存储器的,基本上作为服务器)中,如在助理服务器200的多个实例的部署中。

[0193] 用户的个人访问信息、连接、共享信息等可以被包含在助理服务器200的单独的实 例中。该单独的实例可以是特定用户的控制下的服务器,使得用户可以确定单独的实例是 否被连接到助理服务器200。该单独的实例的使用使得用户能够从助理服务器200断开他们 的个人信息,并且继续由助理服务器200提供帮助,但是在没有任意个人信息的情况下处于 减少的水平。

[0194] 根据本发明总体发明构思的示例性实施例,当用户希望用其移动设备100执行功 能时,他们必须首先在其移动设备1〇〇上运行/启动/打开/访问客户端110。备选地,客户端 110可以在移动设备100上连续地运行,而不需要启动。一旦客户端110运行,用户可以做出 命令输入,例如选择图标来控制外部服务300,以便控制服务300执行期望的功能。(备选地, 客户端110可以识别手势、运动、声音、面部特征或任意其他上述命令输入,而不需要特定的 图标选择。)

[0195] 当做出选择服务300的命令输入并且通过另一个或相同的命令输入来选择与所选 择的服务相对应的功能时,客户端110可以创建语义原子1000,其包括控制服务300以执行 期望的功能并将语义原子1000发送到助理服务器200的命令。助理服务器200可以包括存储 的预编程插件220,其允许助理服务器2〇〇将语义原子1000转换成所选服务300的专有语言。 助理服务器200可以从移动设备100接收语义原子1000,识别用户期望以特定方式控制特定 服务300,并且根据对应的插件220将语义原子1000转换为服务300的专有语言,以允许服务 300理解响应于用户的命令输入而需要采取的功能/动作。助理服务器200然后可以将以选 择的服务300的专有语言的转换命令发送到所选择的服务300,以便控制服务300以执行该 功能。

[0196]例如,如果用户想要使用移动设备1〇〇来控制灯(其可以经由有线或无线通信与虚 拟助理系统10连接),则该用户可以首先选择例如移动设备100的显示屏幕(例如用户界面 150)上显示的灯图标,在客户端110初始化时。灯图标可以打开命令提示或选项以允许用户 选择,例如“亮起(LIGHT ON) ”。在这样的用户选择时,“亮起”命令由客户端11〇转换成语义 原子1000,并被发送到助理服务器200。该语义原子1〇〇〇可以表示例如打开灯的概念。助理 服务器2〇0可以接收语义原子1000。然后,语义原子1000可以由助理服务器200内的灯插件 220转换成灯的专有语言,转换的语义原子1〇〇〇表示灯可理解的指令。更具体地说,程序员 可以预先编程对应于灯的插件220,以将设备专有语言转换为一个或多个语义原子1000,反 之亦然,从而允许用户从其移动设备100来控制灯。如此助理服务器200能够解释从移动设 备1〇〇发送的“亮起”命令,并且然后可以将灯专有语言中的指令发送给灯,使得灯打开。 [0197]作为另一示例,如果用户想要使用社交媒体,例如,Facebook™ (其以Facebook™专 有语言编程)来找到某人,例如Linkedln™ (以不能自然地与Facebook™专有语言通信的 Linkedln™专有语言编程),用户可以使用与助理服务器200连接的移动设备1〇〇打开 Facebook™应用。因此,用户使用客户端110访问Facebook™,选择Facebook™中的个人简档, 例如个人简档图片,以及由客户端110创建语义原子1000,以表示所选择的人(gp, Facebook™的专有语言被转换成语义原子1000)。该语义原子1 〇〇〇可以包括从Facebook™检 索的任意信息,例如该人的姓名、图片和Facebook™简档。接下来,客户端可以将表示所选人 的语义原子1000发送给助理服务器200,其访问用于Linkedln™的存储的插件220,以便将语 义原子1000转换成Linkedln™专有语言。更具体地说,助理服务器200必须在其中存储有用 于Facebook™的插件220和用于Linkedln™的插件220,使得从Facebook™接收的、代表所选 人的语义原子1000可用于在Linkedln™上查找所选择的人。换句话说,插件220a-n将其对应 的服务300a-n的专有语言转换为单一语义语言,反之亦然,以便允许包括例如设备和应用 的各种服务3〇Oa-n经由语义原子1000彼此通信。因此,在助理服务器200将从客户端110接 收的语义原子1000转换成Linkedln™专有语言之后,助理服务器200可以直接将指令(以 Linkedln™专有语言)发送到Linkedln™以执行用户所需的命令,在本示例中,该命令用于 访问所选人的Linkedln™简档。此外,客户端110可以在后台操作,S卩,用户可能不会有意识 地意识到客户端110的操作或甚至语义原子1000的使用。总之,至于用户被考虑,上述程序 的视觉过程包括:(1)打开Facebook™,(2)选择简档,(3)打开Linkedln™,⑷将所选简档粘 贴到Linkedln™中的搜索条件中;以及(5)在Linkedln™查看所选人员的简档。

[0198]另外,上述操作可以分布在服务300a_n之间。例如,通过软件开发人员或经由用户 输入的命令已被授权以语义语言进行通信的服务300也可以用语义原子1000与助理服务器 200和移动设备100直接通信。在这种情况下,服务300有效地操作为其自己的插件。这样的 授权服务300将能够将语义原子1000发送到其他服务300,并且执行客户端110的其他任务。 [0199] 此外,与助理服务器200 (即,包括客户端110的移动设备100)连接的移动设备100 可以与和助理服务器连接的另一移动设备100共享表示所选人的语义原子1000,以便允许 另一移动设备100使用表示所选择的人的语义原子1000来在另一个服务300 (例如 MySpace™)中查找该人的简档。语义原子1000的共享可以经由提供消息传输或聊天功能、电 子邮件或涉及助理服务器200和移动设备100的任意其他类型的通信方法的信使 (messenger)服务来执行。

[0200]上述服务控制的示例基于服务300具有全局连接性的能力。更具体地,在上述示例 中,助理服务器200是基于从移动设备100经由客户端11〇接收的命令来最终控制所选择的 服务300的设备。

[0201] 备选地,可以存在仅具有本地连接能力的服务300,例如近场通信(NFC)设备。因 此,这种本地连接设备的控制必须直接从移动设备100发起,并且不能从助理服务器200接 收命令(例如,助理服务器200最可能在NFC设备的NFC范围之外,除非助理服务器200包括在 移动设备100内,如图4B所图示的示例性实施例中)。

[0202] 更具体地,当用户希望在本地连接服务300处用其移动设备100执行功能时,用户 必须首先在其移动设备100上运行/启动/打开/访问客户端110。备选地,客户端110可以在 移动设备100上连续运行而不需要启动。一旦客户端110被启动,用户可以做出命令输入(例 如选择图标)来控制位于移动设备100的给定范围(例如,NFC范围/接近度)内的本地服务 300以便控制本地服务300执行功能。(备选地,客户端110可以识别手势、运动、声音、面部特 征或任意其他上述命令,或者移动设备1〇〇可以自动感测本地服务300当在给定范围内时而 不需要图标选择的情况下。)

[0203]当命令输入被做出并且与所选择的本地服务300相对应的功能被选择时,客户端 110可以创建包括控制本地服务300以执行所需功能的命令的语义原子1000,并且向助理服 务器200发送语义原子1000。助理服务器200可以包括存储的预编程的NFC设备插件220,其 允许助理服务器200将语义原子1000转换/解释为所选择的本地服务300的专有语言,以及 反之亦然。助理服务器200从移动设备100接收语义原子1000,识别用户期望以特定方式控 制本地服务3〇〇,并且使用本地服务插件22〇来解需要释控制本地服务300的本地服务专有 语言命令。随后,助理服务器200可以创建包括由本地服务300可以理解的命令的新的语义 原子1000,并将新的语义原子1000发回到移动设备100。

[0204] 移动设备100可以接收包括由本地服务300可以理解的命令的新的语义原子1〇〇〇, 并且将语义原子1000转换为具有所选择的本地服务300的专有语言的命令。然后,只要移动 设备100在所选择的本地服务300的给定范围内,则从所述移动设备1〇〇向本地服务300发送 (以所选本地服务300的专有语言)命令来控制本地服务300以执行期望的功能。

[0205]例如,如果用户想要使用移动设备100来控制NFC灯(其不能通过有线或无线通信 与助理服务器200连接),那么该用户可以首先选择例如显示在移动设备1〇〇的显示屏幕(例 如,用户界面150)上的灯图标,当客户端110被初始化。类似于上述示例,灯图标的选择可以 打开命令提示或选项以允许用户选择命令,例如“亮起”。在选择时,“亮起”命令可以被转换 成语义原子1000并发送到助理服务器200。该语义原子1〇〇〇可以对应于打开灯的动作。助理 服务器200可以接收语义原子1000。然后,语义原子〗〇〇〇可以由助理服务器2〇〇内的灯插件 220转换成表示可以被灯理解的指令的对应的专有语言。随后,助理服务器2〇〇创建新的语 义原子1000,其包括用于生成由NFC灯可以理解(即以灯的专有语言表示)的期望命令的指 令,并且将新的语义原子1000发回到移动设备100。备选地,期望的命令可以己经被转换为 灯的专有语言,并且被包括在具有从中提取命令并且将提取的命令发送到灯以执行所期望 的功能的指令的语义原子1000中。

[0206]移动设备100可以接收包括NFC灯可以理解的命令的新语义原子1000,并将语义原 子1000转换成具有所选择的NFC设备的专有语言的命令。该转换可以根据所接收的语义原 子1000中包括的、用于将原子1000转换成灯的专有语言的指令在助理接口 110处执行。备选 地,根据在语义原子1000中包括的指令,可以在助理接口 110处从语义原子1000中提取以灯 的专有语言表达的命令。然后,只要移动设备100在NFC灯的NFC范围内,命令(例如,打开灯 的命令)可以以NFC灯的专有语言从移动设备100发送到NFC灯,以控制NFC灯,例如打开。 [0207]此外,如果灯是被密码保护的使得其他人不能在没有密码的情况下操作灯,则授 权用户(g卩,具有密码或控制灯所需的其他证书的用户)可以与未经授权的用户共享“亮起” 语义原子1000,以授权未经授权的用户访向灯以执行“亮起”操作。在这种情况下,“亮起”语 义原子1000还将包括访问和控制灯所需的访问证书,例如密码,用户ID等。语义原子1000可 以经由助理服务器200共享,也可以直接从移动设备100共享。

[0208]备选地,用户可以通过将未经授权的用户帐户作为语义原子1〇〇〇(由虚拟助理系 统10创建)添加到授权用户的列表来临时授予未经授权的用户访问例如服务300。这样,月艮 务300也不会知道未经授权的用户已经被给予对其访问,由于服务300继续从虚拟助理系统 10接收其命令,尽管不论授权用户或未经授权的用户正在提供命令。

[0209]下文更详细地讨论了对服务300的权限共享。

[0210]附加地,客户端110可以在其中已经结合逻辑,以避免将语义原子1000发送到助理 服务器200的需要。更具体地,移动设备100内的客户端110可以被提供有大量的预存储插件 220。客户端可以直接用这些预先存储的插件220发送和接收语义原子1000,而不需要通过 助理服务器200来对语义原子1000进行路由。客户端110还可以用一个或多个被授权使用语 义语言的应用程序进行预编程,并且其因此可以经由语义原子1000进行通信,而不需要单 独的插件220。类似于预先存储的插件220,客户端110可以用这些预编程的授权应用程序来 发送和接收语义原子1000而不需要通过助理服务器200来路由语义原子1000。

[0211]例如,如上所述,如果用户想要使用社交媒体来在例如Linkedln™上查找某人,则 用户可以使用在移动设备1〇〇上运行的客户端110来打开例如Facebook™应用,选择个人简 档(例如,该人的图片),并且可由客户端110创建语义原子1000以表示所选择的人。如果对 应于Facebook™和Linkedln™的插件220直接存储在移动设备1〇〇内,则不需要将表示所选 人的语义原子1000发送到助理服务器200。相反,在该示例中,因为插件220被存储在移动设 备100内,当用户使用客户端110来访问Linkedln™时,客户端110将表示所选人的语义原子 1000转换成由Linkedln™可理解的专有语言。因此,由于语义原子1〇〇〇有效地允许 Facebook™与Linkedln™通信,所以用户可以使用对应于从Facebook™所接收的所选择的人 的语义原子1000,容易地在Linkedln™上查找该人的个人简档。此外,该示例中的用户体验 与当插件220被存储在助理服务器200时基本相同。

[0212]将参考图7A来描述确定输入命令的意图并在外部服务300处执行对应操作的过 程。参考图7A,当在移动设备100处直接通过传感器160或经由外部传感器(操作S500)输入 命令时,助理接口 110首先将移动设备100处的命令输入转换为一个或多个语义原子1000, 使得可以在连接到助理服务器200的服务300a-n之间共享命令。如上所述,在移动设备100 处输入的命令可以是图标触摸、手势、语音数据或者在其中传感器部分可以接收输入的移 动设备100处提供的任意其他输入。

[0213]助理服务器200接收该转换命令(操作S510)。移动设备100和助理服务器200之间 的连接可以是自动的,或者备选地,可以在移动设备100上提示用户以发起和/或接受与助 理服务器200的连接。

[0214] 然后,助理服务器200确定虚拟助理系统1〇是在远程模式还是本地模式下操作(操 作S520)。虚拟助理系统10是在远程模式还是本地模式下操作的确定可以包括例如,助理服 务器200是否被允许在服务300的防火墙内,或者助理接口 11〇是否在本地网络内(例如作为 蓝牙或NFC)连接到服务300。

[0215] 如果助理服务器200确定虚拟助理系统1〇是在远程模式下操作(在操作S520为 REMOTE),则助理服务器200可以通过在操作S530a处在指令库之间进行检查来确认对源自 移动设备100的命令的识别。

[0216] 如果所接收的命令在助理服务器200处被识别(操作S530a为“是”),则当虚拟助理 系统10处于远程操作模式时,助理服务器2〇〇然后可以经由在该服务器2〇〇处创建的对应插 件220在预期的外部服务300处执行指示的所期望的命令(操作S540a)。

[0217] 备选地,如果确定存在对从移动设备100所接收的命令意图指代什么的任意混淆 (例如,在操作S530a中为“否”),例如,可以存在使用相同的命令的多于一个服务300,则在 操作S560a,助理服务器200可以通过除了别的之外考虑此命令的历史使用模式、提供该命 令的特定用户、给出命令的特定位置、以及给定命令的一天的特定时间、提供命令的该特定 用户是否总是使用该特定手势来执行特定服务300处的特定功能等来检查多个上下文中的 命令。换句话说,助理服务器2〇〇将检查在助理服务器200的平台210处运行的程序中有关该 所接收的命令的所有可访问的上下文信息,以便具体确定所接收的命令本可能预期的可能 选项。

[0218] 一旦助理服务器200由在移动设备100处输入的命令确定哪些可能的选项已经被 预期,则助理服务器200将预期命令的这些选项提供回移动设备100 (操作S570a),使得选项 可以在移动设备1〇〇处的用户界面(UI) 150处显示。这里,用户可以再次输入预期命令,但是 这次通过选择几个显示的选项中的一个,具有特定的精度。作为示例,可以在表示可能的命 令的移动设备100上显示图标列表,并且用户可以选择一个图标作为预期命令。助理服务器 200还可以记录用户的选择,使得如果稍后再次输入,则操作S500中的原始命令将被识别 (历史数据的集合以形成上下文)。这将在下面参考图11更详细地讨论。

[0219]特定预期命令然后在助理接口 110处被转换(为一个或多个语义原子1000)并被提 供给助理服务器200,其中命令在助理服务器200被接收(操作S580a)以在虚拟助理系统10 的远程操作模式中执行该命令。换句话说,当虚拟助理系统10处于远程模式时,在操作 S540a,助理服务器2〇〇可将命令呈现给对应的插件220,其将命令从一个或多个语义原子 1000转变到其中外部服务300理解的专有语言。助理服务器200然后可以执行预期的命令, 艮P,助理服务器200可以以服务300b以相应的专有语言直接与外部服务300通信,以执行在 移动设备100 (或连接到虚拟助理系统10、并且可以提供命令输入的其他类型的传感器设 备,其将在下文中更详细地描述)指示的任意功能或操作。

[0220] 从服务300所接收的作为执行操作S540a中的命令的一部分的信息在对应插件220 处被从专有语言转换为一个或多个语义原子1000。如果在使用该信息的其他服务300处请 求附加操作(操作S550a为“是”),在操作S510接收输入到移动设备1〇〇的附加命令,以执行 附加命令。

[0221]备选地,当确定虚拟助理系统10处于“本地模式”(操作S520中的本地)时,虚拟助 理系统10可以执行如图7B所示的以下操作序列。

[0222]如果在助理服务器200处识别到所接收的命令(操作S530b为“是”),则助理服务器 200然后可以获得要被控制的特定服务300的专有语言信息,并将该信息提供给移动设备 100的助理接口 110作为包含专有语言的一个或多个语义原子1000 (操作S535b)。利用执行 在移动设备100获得的预期控制所需的必需的专有语言,可以在操作S540b通过助理接口 110 (和传输器105)在移动设备100处直接执行服务300的控制。此外,如果使用作为在先前 预定的服务300执行的功能的结果获得的信息在其他服务300处请求附加操作(操作S550b 为“是”),则在操作S510处接收在移动设备100处输入的附加命令(图7A)以执行与附加输入 命令相对应的附加功能。这些附加命令输入可以包括从先前执行的操作获得的信息。例如, 诸如“应用程序”的服务之间的连续通信经常需要从其中执行功能的先前“应用程序”获得 的信息(例如,获得关于在用户的区域中播放的电影的信息)。

[0223]如果这儿在接收到命令时关于输入命令可能预期什么存在混淆(在操作S530b为 否),则助理服务器200然后确定在移动设备100处通过命令输入哪些可能的选项可能己经 被预期(操作S560b)。与上述关于图7A中的操作S560a的描述类似,可以通过除了别的之外 考虑该命令的历史使用模式、提供该命令的特定用户、给出命令的特定位置、给出命令的一 天的特定时间、提供命令的该特定用户是否总是使用该特定手势在特定服务300执行特定 功能等、通过在多个上下文中检查命令来执行该确定。

[0224] 一旦在操作S560b处在助理服务器200处确定了可能的预期命令选项,则助理服务 器200可以用对应的插件220获得这些命令的专有语言,并用它们相应的专有语言信息将这 些命令选项提供回移动设备100 (操作S570b),使得可以在移动设备100的用户界面(UI) 150 处显示选项。这里可以在移动设备100处直接选择和执行实际的预期命令(操作S540b)。 [0225] 类似于上述操作S580a,助理服务器200可以记录在操作S570b中由用户选择的命 令选项,使得如果稍后再次输入该命令,则该命令将被识别。

[0226]如上所述,图7A图示了根据本发明总体发明构思的示例性实施例的远程模式。在 远程模式下,助理接口 110不需要与对应的服务300在相同的网络或因特网上,助理接口 110 也不需要下载服务300的专有语言。在远程模式中,助理接口 110可能被需要呈现诸如用户 名和密码的证书来证明用户已经授权访问服务300,但通信通常通过助理服务器200发生。 [0227] 相反,在图7B所图示的本地模式中,在移动设备100和服务300之间通信直接发生。 在本地模式中,助理接口 110确实需要在与对应的服务300相同的网络上,具体地是对应的 本地网络(例如,蓝牙或NFC)。然而,一旦移动设备100在该本地网络上,就不需要证书来证 明用户己经授权访问服务300。

[0228] 在本发明总体发明构思的另一示例性实施例中,虚拟助理系统10可以在远程模式 下操作,而助理接口 110直接与服务300进行通信。这是有利的,如果服务300监视访问请求 的数量,并且关闭对IP地址的过度访问的访问。例如,如果共享一个助理服务器200的一百 万个(给或取)用户想要通过助理服务器200访问相同的服务300,根据图7A所示的控制过 程,则服务3〇〇将注册来自一个IP地址(助理服务器200)的大量访问请求。因此,服务300可 以阻止来自助理服务器200的访问。在这种情况下,对每个用户优选的是通过其相应的移动 设备lOOa-n的助理接口 ll〇a-n访问服务300。然后,服务300将从一百万个不同的IP地址中 的每一个注册一个访问请求,并且因此不会阻止对用户中任意一个的访问。

[0229]在图8中图示出了本发明总体发明构思的上述示例性实施例。在该示例性实施例 中,虚拟助理系统10以远程模式操作。也就是说,命令被发送到未被本地(通过蓝牙,NFC等) 连接到移动设备100的服务300。在图8所图示的示例性实施例中,在移动设备100处接收用 户输入并转换为一个或多个语义原子1〇〇〇 (操作S610)。然后将输入发送到助理服务器200 (操作S615),助理服务器2〇〇转而将转换的输入提供给对应的插件220 (操作S620)。这里,插 件220将该转换的输入转换为适当的专有语言(操作S625)。

[0230]在将输入转换成专有语言之后,包括该命令的语义原子1〇〇〇被发送到移动设备 100 (具体地,通过图4A中所示的传输器105发送到助理接口 110)(操作S630)。然后,移动设 备100从语义原子1000提取转换的命令,并将转换的命令以对应的专有语言发送到服务300 (操作S635)。根据本发明总体发明构思的示例性实施例,转换的命令可以由助理接口 11〇通 过传输器105通过因特网被发送到服务3〇〇。

[0231]服务300执行对应的动作并将数据发送回助理接口 11〇 (操作S640)。该数据是移动 设备100本身不理解的服务300的专用语言。因此,移动设备100将所接收的数据发送到助理 服务器2〇〇(操作Se45),助理服务器200将其提供给对应的插件220(操作S650)。插件220将 数据转换为一个或多个语义原子1000 (操作S655)。类似于图7A所示的远程模式,一旦数据 被转换成语义原子1000,它可以在移动设备100和其他服务300a-n之间共享。

[0232]此外,本发明总体发明构思不限于一次仅使用本地模式或远程模式之一。例如,移 动设备100可以本地连接到一个或多个服务300,同时也通过助理服务器200被连接到不同 的服务300。

[0233] 如上所述,在助理服务器200处为特定外部服务300创建的每个插件220被配置使 得插件220可以将一个或多个语义原子1〇〇〇中的命令转换成对应的专有语言。类似地,插件 220还可以将该专有语言和其他信息(即,服务300的证书)转换成在助理服务器200内使用 的语义原子1000,使得如上所述经由因特网或使用的其他类型的无线通信连接到助理服务 器200的不同的外部服务300a-n现在可以在彼此之间共享信息。

[0234] 此外,在移动设备100处从一个服务300获得的信息,作为在移动设备100处输入命 令的结果,然后可以经由助理服务器200与其他服务300a-n进行通信并共享,使得移动设备 100的用户可以与每个服务300a-n传输信息并在每个服务300a-n之间传输信息。换句话说, 移动设备100可以控制服务300a-n中的每一个并且在服务300a-n之间交互(共享信息),以 获得更大或更多实质的信息束(bundle),其作为一个或多个语义原子全部被传输。这个新 获得的实质信息束然后可以与另一个命令一起使用,以被引导到另一个服务300,或者与和 助理服务器200连接的其他移动设备100a-n共享。该过程可以在外部服务300a-n和移动设 备100之间以及在与助理服务器200连接的移动设备l〇〇a-n之间继续,以共享和获得预期的 任意信息,并且因此使用该信息访问任意附加的外部服务300以获得所寻求的最终结果。

[0235] 在服务300a_n之间收集信息的示例可以是移动设备1〇〇的用户访问服务300a Fandango™以确定哪个电影在给定位置可能可用的情况,然后选择期望的特定电影来查看。 在用户购买该电影票之前,用户可以将该电影信息(由助理界面110转换为一个或多个语义 原子1000)发送或“抛出”到诸如nffiD™的另一服务300b。然后用户可以基于如果电影包括这 个特定的演员用户是否希望观看特定的电影,在通过Fandango™购买门票之前经由IMDB™ 应用来确定哪些演员在电影中。

[0236] 换句话说,一旦在Fandango™应用程序(服务300a)中选择了电影,助理界面110可 以将该电影信息转换为一个或多个语义原子1000,其中该转换的电影信息然后可以通过 IMDB™插件与诸如IMDB™ (服务300b)的其他应用一起共享,以便获取关于电影的其他信息。 要获得的这样的附加信息可以包括例如哪些演员在电影中表演。IMDB™可以接收和理解 Fandango™应用程序中选择的电影,因为该信息从Fandango™专有语言转换为一个或多个 语义原子1000,然后可以通过其对应的插件220转换为的专有语言。

[0237]此外,在购买票之前,移动设备100处的用户可以将包括该获得的电影信息的一个 或多个语义原子1000与也与助理服务器200连接的其他移动设备l〇〇a-n处的其他用户共享 (将关于图1A更详细地描述)。然后,其他用户可以查看所获取的电影信息并同意要购买的 一定数量的票,并且还可以经由相同的过程来最终选择另一部电影,此时所有用户可以同 意购买所有用户在分享了Fandango™和IMDB™等之间以及连接的移动设备l〇〇a-n本身的用 户之间收集的所有该信息之后已经达成一致的电影的票。上述示例仅是在用户和服务 300a-n之间的共享通信的示例,并且不限于此。服务300a-n和用户(经由移动设备100a-n) 之间的任意数量的通信和任意形式的通信可以通过在助理服务器200内创建的语义原子 1000来执行。

[0238]在服务300a-n之间收集信息的另一示例可以与音乐有关。例如,移动设备1〇〇可以 使用诸如Gracenote^Shazam™或任意其他类型的音乐识别软件的应用来识别正在某处 (诸如餐厅、商场、音乐商店、广播、电视等)播放的音乐。音乐识别可以由移动设备1〇〇内的、 或连接到移动设备100的麦克风类型传感器执行。由助理接口 110识别的歌曲然后可以被转 换成一个或多个语义原子1000并发送到助理服务器200以通过插件220创建的Gracenote™ 在GracenoteTMS用程序处呈现此信息。然后,Gracenote™可以将歌曲信息提供给 Gracenote™插件220 Aracenote™插件220会进而将歌曲信息提供为一个或多个语义原子 1000以被用于由用户在移动设备100处可能请求的任意附加目的。

[0239]换句话说,此时,知道和/或理解如何使用歌曲、并连接到助理服务器2〇〇的任意附 加服务3〇〇可以使用该音乐信息(作为一个或多个语义原子1000)来提供任意期望的结果, 如由用户在移动设备100处可能请求的。例如,该信息可以经由相同的过程发送到呈现歌曲 的歌词的应用MusixMatch™。它也可以被发送到Rdio™,它将歌曲为用户添加到Rdio™队列 中。它也可以发送到播放歌曲的Sonos™扬声器。它也可以发送到YouTube™,其可以找到该 歌曲的视频并播放此视频,或将视频添加到YouTube™上用户的播放列表。该获得的和扩展 的信息的可以被发送以便执行命令或者收集甚至更多的信息的应用程序的数量仅限于可 以使用该获得的音乐信息执行一些类型的功能的应用或其他服务的数量。

[0240]在每种情况下,期望与所获得的音乐信息一起使用的每个服务300的插件220可以 来回转换语义原子1000和转换服务300的专有语言,从而在所有服务3〇〇a-n之间以及多个 用户之间提供与音乐信息有关的免费通信流。此外,语义原子1000中提供的音乐信息可以 从移动设备100的一个用户发送到其他移动设备100a-n的其他用户,以允许多个用户将该 音乐信息应用于他们选择的各种服务300a-n。

[0241]除了上述功能之外,例如,如果在电视机上播放歌曲,并且移动设备100的用户期 望以后在外部便携式MP3播放器或其他类型的音乐播放设备上捕获、保存和播放歌曲,则用 户可以首先使用Gracenote™来识别在电视上播放的歌曲。随后,该歌曲可以由助理接口 i!〇 转换成一个或多个语义原子1000并提供给助理服务器200,其中所转换的歌曲然后可以被 反达到万外部使携式MP3播放器创建的插件220,其中转换的歌曲信息可以转换成外部便携 式MP3$放器的专有语言,其中外部便携式MP3播放器然后可以由插件22〇本身或移动设备 100指示以在用户方便时播放歌曲。被指示插件2卻是否直接在外部便携sMP3播放器上播 放歌曲,或插件220是否将专有语言和其他必要信息提供回助理接口 11〇,使得移动设备1〇〇 可以在外部便携式MP3播放器上播放歌曲可以取决于Mp3播放器连接的网络、MP3播放器关 于移动设备100的位置、或者根据本文前面所述的其他条件。因此,虚拟助理系统1〇可以访 问任意基于因特网的网页或插件220,并且使用一个或多个语义原子1000来执行与其他基 于因特网的网页、插件220a-n、移动设备l〇〇a-n或外部服务3〇〇a-n的操作和互连。

[0242]在图9中示出了使用原子1〇〇〇在服务3〇〇a—n之间进行通信的示例。如图所示,用户 可以使用虚拟助理系统10来例如查看社交媒体(例如Faceb〇〇k™ (对应于服务300a))中的人 所做的帖子。虚拟助理系统10可以用对应的语义原子1〇〇〇表示每个人。用户可以采取表示 一个人的原子1000,并要求另一个服务3〇〇b提供关于该人的附加信息,其可以被添加到语 义原子1000。例如,用户可以将原子1000发送到例如Gmail™,以检索该人的电子邮件地址。 如此检索的电子邮件地址可以添加到代表该人的语义原子1000。用户可以使用该电子邮件 富集的语义原子1000来向该人发送另一个服务300c上(例如Yahoomail™)的电子邮件。此 夕卜,用户可以使用虚拟助理系统10来经由另一个服务300d (例如Linkedln™)访问某人的简 历,并将关于该人的附加信息添加到原子1000。原子1000可以继续被使用并被添加,用无数 次的服务300a-n。在这里给出的并且在图9中示出的示例中,如果人的简历包括该人所属的 乐队,则用户可以使用表示该人的语义原子1000(包括它们的简历和其上标记的乐队)以访 问诸如Billboard™(另一服务300e)的因特网网页,以便查看该人写的歌曲。类似地,用户可 以使用语义原子1000来直接访问诸如Pandora™ (服务300f)的应用来播放由人写的随机音 乐。

[0243]因此,语义原子1000允许用户将概念(例如,人)立即连接到各种类型的应用和服 务300a-n。本文提供了语义原子1000的使用的几个示例:

[0244] 关于电影,用户可以使用虚拟助理系统10来例如根据例如Rotten Tomatoes™服务 查看当前可用的顶端电影。每个电影可以由单独的语义原子1000表示。用户可以使用电影 的语义原子1000来定位要出租的电影,例如以验证哪个本地Redbox™的存货中具有DVD。可 以使用任意命令输入或其组合,取决于特定用户和所涉及的插件220的编程。例如,不需要 打字或说话。查看电影并查找其可用性的这个过程可能完全是用触摸或手势完成的。类似 地,在本示例中可以使用NetflixTM、Bl〇Ckbuster™、CraCkle™或任意其他类型的电影相关 服务。

[0245] 对于书籍,用户可以在服务300a (例如Goodreads™)上查找一本书,并且获得与该 书对应的语义原子1000。然后,用户可以将该原子1〇〇〇发送到另一个服务300b (例如 Amazon™),以查看人们对该书的评级。随后,用户可以将语义原子1〇〇〇发送到例如 Overstock.com™(另一服务300c)以购买该书。这样,用户可以立即使用语义原子1000购买 该书并将购买记录保存在虚拟助理系统1〇上。

[0246] 关于灯泡,用户可以例如生成表示用于灯泡设置的灯泡的颜色和亮度设置的语义 原子1000。备选地,可以为颜色和亮度作出两个单独的语义原子1000,其可以被组合以形成 单个语义原子1000。然后,用户可以使用例如手势移动,使用虚拟助理系统10在另一灯泡处 “投射”表亦灯泡的设置的原子1000。另一个灯泡可能立即被强制(即以专有语言被命令)采 用第一灯泡的颜色和亮度设置。

[0247]关于跨用户共享,语义原子1000也可以被发送到其他用户。如例如图1〇中所图示 的,一个用户可以使用音乐识别服务3〇Oa (例如Gracenote™)识别歌曲,其可以获得关于歌 曲的信息,例如姓名和专辑。虚拟助理系统10可以生成表示歌曲的、并且包括由服务3〇〇;1找 到的信息的语义原子1000。然后,用户可以将表示歌曲的该语义原子1000发送给另一用户, 另一用户然后通过将原子1000发送到另一个服务300b (本例中为YouTube™),可以使用歌曲 原子1000经由虚拟助理系统10在例如YouTube™上播放歌曲。该另一服务300b可以获得该歌 曲并在另一用户的音频系统上播放该歌曲。值得注意的是,该本示例中的助理服务器2〇〇是 可选用于在用户之间发送歌曲信息。具有在其移动设备1〇〇上表示歌曲的语义原子1000的 用户可以直接或经由助理服务器2〇0将该原子发送到另一用户的移动设备l〇〇a。

[0248]此外,如上所述,几个原子1000可以彼此嵌套或捆绑(组合)成单个原子1000。例 如,充满购物物品的虚拟购物篮(例如,Amazon™上的用户购物车)可以是单个原子1〇〇〇,其 包括对应于嵌套在其中的各个购物项目的其他原子1000。因此,购物篮中的单个原子1〇〇〇 可以节省空间并增加在不同服务300a-n之间发送原子1000 (及其嵌套原子1〇〇〇)的便利性, 以增加用户便利性。

[0249]虚拟助理系统10是开放的一个,任意开发人员可以在其中创建插件220。该开放结 构允许任意开发人员为新数据类型指定新的语义原子1000。以这种方式,语义语言可能会 随着时间而不断扩大。语义语言方言也可允许用于不同的领域。

[0250]除了提供公共命令集合之外,本发明总体发明构思的示例性实施例还允许经由自 适应学习和控制系统来开发新的命令。例如,一旦由用户定义,在移动设备100处接收的、未 被识别的命令可以被记录为的新命令。如图所示,例如,在图11中,用户可以做出旨在给出 命令的姿势(“停止”,如图11所示)。如果该输入不在助理服务器200中记录的输入之中,则 用户然后可以以不同的方式输入命令,例如通过触摸表示“停止”的图标。助理服务器200然 后可以将作为表示相关命令的第一输入(在该示例中为手势)记录到存储装置250中。

[0251] 根据如图12所示的本发明总体发明构思的示例性实施例,自然和无意识的输入也 可以被虚拟助理系统10解释为命令。例如,如果虚拟助理系统10的用户播放视频并且声音 太大,则用户可能会无意识的缩回并拉回他/她的头。这种无意识的运动之后将使用图标或 手势或语音命令来降低音量。因此,虚拟助理系统10可以获知缩回并拉回头的手势应该与 大量降低音量或完全静音相关联。这个新的命令(缩回并拉回头)可以对应地保存在助理服 务器200的存储装置250中。类似地,某些上下文中的鬼脸或其他面部表情可以与“撤销或返 回最后一个命令”相关联。作为另一示例,如果用户在移动设备100的显示屏幕(例如,用户 界面150)处咪眼,则该面部表情可以被解释为放大所显示的文本或图像的命令。因此,除了 有意识的输入命令之外,虚拟助理系统10还可适应和存储非故意的或无意识的输入命令。 [0252]作为备选的或除了本发明总体发明构思的上述示例性实施例之外,用户或开发人 员可以指定表示特定人员的特定手势。作为一个特别有创意的示例,咬一个人的手指,敲打 一个额头,然后做手势指示顺时针运动,随后是打开两个手掌指示“1〇”可能意味着“发送给 我的母亲消息,我将在10分钟内到达”。因此,一些输入可能具有表示如数字或个人的特定 事物的变化的范围。

[0253] 在输入(例如图标和手势本身)中也可以提供一些变换。因此,可以在库中指定几 个相互可互换和等效的图标。类似地,几个手势可以对应于相同的潜在意义并可互换使用。 命令输入的这种互换性是重要的,因为不同的文化区域可能具有与特定事物相关的不同含 义,并且具有变换的偏好。请注意,图标的颜色和大小也可能具有与之相关联的含义。类似 地,当彼此结合使用时,图标和手势可以具有额外的含义,例如表示正在控制哪个服务300。 例如,当右手掌平放时,表示“关闭”的图标可以用于操纵门关闭,而代之以用右手作出u形 时可用于关闭窗口屏幕。这样的规则也将构成库如何预定义并且然后被插件开发人员用于 向用户提供控制的一部分。请注意,手势重复也可能带有意义。使用手指进行一个敲击动作 与快速连续的两个敲击可能是手势库中完全不同的手势。作为另一个示例,对于将虚拟助 理系统10连接到文档管理系统的插件开发人员,捏住手指(如同握住假想的钥匙)并转动一 次可能意味着使文档“只读”,而转动两次可能意味着“移除读写访问”。

[0254]在图I3中示出了根据本发明总体发明构思的示例性实施例的这种自适应使用的 另一示例。如上面关于图4A所述,移动设备100可以包括中央处理单元(CPU) 130。该CPU 130 可以被配置为运行学习算法,其确定何时通常一起给出一系列命令。例如,用户可以作出作 为手势示出的第一命令,以将恒温器温度升高到70°F。然后,用户可以进行另一手势来将客 厅灯打开以达到最大亮度,以及第三手势以打开客厅电视。如果运行学习算法的CPU 130确 定这些手势通常一起执行,则它可以将该确定通信传输给助理服务器200,助理服务器200 进而可以产生同时执行所有三个动作的新命令。图13示出了用于执行通常一起呈现的一组 命令的单独的新手势。在本发明总体发明构思的其他示例性实施例中,可以提出多个等效 命令输入(例如,手势),其中任意一个将执行所有相关联的动作。当在移动设备1〇〇处检测 到这些命令输入中的一个时,其被助理接口 110转换成一个或多个语义原子10〇〇并被发送 到助理服务器2〇〇,然后通过插件22〇转换以给出适当的命令到对应的服务3〇〇a-n。

[0255]在本发明总体发明构思的其他示例性实施例中,虚拟助理系统10 (具体地,移动设 备100)可以确定特定图标通常在每天的特定时间接收触摸输入,然后在每天的那个时间将 这些特定图标带到更多用户界面150上的突出位置。虚拟助理系统1〇还可以在每一天的那 个时间在移动设备100的用户界面15〇上在以与其他图标相比更显著的位置处呈现这些图 标(例如,作为视觉描绘)。虚拟助理系统10可备选地在助理服务器2〇〇处生成新图标,并显 示在移动设备100上,该移动设备100执行通常一起接收触摸输入的几个图标的动作。这些 相关性被在保存(以人可读或不可读的格式)在附接到助理服务器200的存储装置250中。虚 拟助理系统10将基于上下文生成该图标的名称。例如,一个图标可以命名为“到家”。

[0256]虚拟助理系统10可以在另一方面是自适应的。如果经由运行学习算法的Cpu 130, 移动设备100注意到用户不正确但重复地使用图标或图标序列,其目的是执行不能被执行 的动作(因为图标不正确),则助理服务器200实际上可以将该图标或图标序列与该动作相 关联(对于该用户、对于用户的一部分、或对于所有用户)。例如,如果用户反复倾向于调高 音量,然后立即将其调低,然后(使用不同的图标)向上移动电视的频道,则这可能表示用户 将调高音量和上移频道的图标混淆。移动设备1 〇〇中的CPU 130可以检测到这种行为,然后 提出“调高音量”图标被备选地用于“上移频道”,并且进而被替换为不同的和较不混淆的图 标。虚拟助理系统10还可以自动进行改变,如果基于在CPU 13〇、助理服务器平台21〇或其结 果保存在存储单元140或存储装置250上的单独的服务器中运行的决策算法认为其是合适 的。

[0257] 这些使用模式和伴随的改变可以被收集在移动设备100的存储单元140中或在助 理服务器200的存储装置250中,以被用作更新的命令。因此,存储在存储装置250上的命令 库230可以随着时间而用新的、直观的和适应性的命令来扩展。

[0258] 备选地,或除了以上其中助理服务器200自动更新命令的自适应控制以外,关于用 户的动作和输入的数据可以被收集,并且使其可用于插件开发人员,例如通过电子邮件或 通过其开发人员可以查看与插件220的使用有关的信息的在线管理门户。这允许开发人员 对应地更新插件220。这是有价值的,因为输入的重复使用(例如图标)指示输入与该用户或 聚合的用户组心中的预期动作的持续直观映射。开发人员可以基于用户行为,发现存在这 样的心理输入到动作的映射。当处理器容量或特定学习算法的有效性是关注点时,将数据 单独发送到开发人员而不是在(PU中实现学习算法可以是有利的。

[0259] 这些自适应技术可以用于解决由不同的插件开发人员创建的插件220之间的语义 混淆。例如,用于一个恒温器的插件220的开发人员可以指定一个手势来升高温度,而对于 不同恒温器的插件220的开发人员可以指定不同的手势。基于用户如何使用手势,虚拟助理 系统10可以向开发人员提供关于如何修改手势(或图标或语音命令)的建议,以允许用户以 更一致的手势集来完成他们想要的内容。通过将服务分类为类似的组,开发人员还将被帮 助以为他们的新插件220选择最直观的图标、手势和语音命令。例如,为第十个恒温器创建 插件220以与虚拟助理系统10交互的接口开发人员可能能够更好地通过用户实际上更喜欢 通过与前九个恒温器的图标、手势和语音来调用各种恒温器功能。这可以通过强烈建议开 发人员使用针对特定功能的特定图标或更间接地通过阻止过去已经被用户混淆的映射来 规定地完成。

[0260] 此外,这些自适应技术可以使用将被各种类型的硬件使用和/或在各种类型的硬 件上开发的各种人造智能技术来使用,包括机器人算法、学习算法、并行编程、逻辑搜索、优 化、启发式、进化计算等,但不限于此。因此,虚拟助理系统10可以基于用户的动作、习惯和 倾向来“学习”用户的偏好。

[0261] 根据本发明总体发明构思的另一示例性实施例,可以为不同的用户组(例如,在不 同的国家)建立不同的手势、图标和有声命令的集合。虚拟助理系统10 (移动设备100的CPU 130或助理服务器200的助理服务器平台210)可以从具体输入(手势、语音命令、图标等)的 使用推断用户属于这些组中的哪一个,然后在用户最熟悉的“方言”中为他们提供支持。例 如,这是可能的,与来自平民环境的人相比,来自军事环境的人可能习惯于不同的图标或手 势集合来表示“左转”。如果虚拟助理系统10能够基于该人做出的以指示“左转”的手势推断 某人是属于军队的,则其他手势和图标也可以改变意义以向该人提供更熟悉的环境。这样 的推论然后可以作为该人的环境被保存在虚拟助理系统10中(具体地,在移动设备100的存 储单元140和/或助理服务器200的存储装置250中)。

[0262] 根据本发明总体发明构思的另一示例性实施例,可以存在图书馆的三层系统。第 一库集合(手势、语音、图标)是通用的,并且适用于所有用户。第二库集合(手势,声音,图 标)适用于特定的用户群体(例如特定行业的用户、特定年龄或社会群体的用户、说特定语 言的用户、是特定机构集合的成员的用户、居住在特定地区或国家的用户等)。第三库集合 (手势、语音、图标)适用于特定用户。如果这些之间存在冲突,因为相同的命令输入(例如, 单词、手势、图标等)在这三个不同层次的库中意味着不同的东西,可以利用优先规则。通 常,用户特定的解释胜过用户群组的解释,进而又胜过普遍的解释。然而,在某些情况下,此 优先顺序可能不同。

[0263]控制也可以是自动化的或根据上下文而变化。例如,如果用户在打开电视机后总 是打开DVR,则当接收到打开DVR的命令时,虚拟助理系统10可以自动选择打开电视机。备选 地,该预测行为可以由插件开发人员根据由虚拟助理系统10收集的使用或上下文数据进行 编程。作为另一示例,如果用户存在于特定地理围栏区域,则可以自动启用对某个文档管理 系统的访问,并且当用户离开该区域时可能会切断此类访问。控制可以被做的甚至更具体, 例如,如图14所图示的,通过一个走廊进入房间的用户,他们可以访问文档管理系统,而如 果相同的用户从不同的走廊进入,则用户可能不具有访问。虚拟助理系统10的其他因素(例 如时间或用户使用顺序)也可以是上下文的元素,从而改变虚拟助理系统10的控制。

[0264]根据虚拟助理系统10的本发明总体发明构思的示例性实施例,为了启动虚拟助理 系统10采取预测动作的这些场景,移动设备100或助理服务器200可以不断地测量何时调用 某些动作并在其存储设备(移动设备100的存储单元140和/或助理服务器200的存储装置 250)中收集这些测量。测量可以包括位置、每天的时间、特定个体的共存、己采取的动作序 列和其他因素。如果虚拟助理系统10基于在CPU 130、助理服务器平台210上或者连接到虚 拟助理系统10或与虚拟助理系统10通信的服务器或其他学习型设备上运行的统计、概率或 机器学习算法发现预测何时采取某些动作的可靠方式,则虚拟助理系统10可以这样做。 [0265]虚拟助理系统10还可以借助于在移动设备1〇〇上显示消息来主动地呈现其用于将 最终用户预先采取此类动作的意图。该消息可以从助理服务器200发送到移动设备100以被 显示在U1 150上,或者可以在CPU 130处生成消息并在U1 150处显示该消息。消息可以是例 如视觉、听觉或触觉,并且允许用户批准或不批准这样的动作。该消息可以采用以下形式: 提前呈现预测动作作为新的“常规规则”,或者建议虚拟助理系统10立即执行动作除非用户 覆盖提案并指示虚拟助理系统10不这样进行。

[0266]在本发明总体发明构思的另一示例性实施例中,移动设备1〇〇被配置为提供虚拟 现实(VR)体验。在这种情况下,移动设备1〇〇可以是例如可配戴设备,例如耳机或手套。使用 语义原子1 〇〇〇可以能够实现无缝VR体验。

[0267]在该上下文中的VR表示其中用户与浸没式环境交互的体验。“浸没式”环境意味着 用虚拟环境部分或完全地替代用户对周围环境的感知。例如,移动设备100可以是由用户佩 戴的耳机,并且呈现出跨越用户视野的部分或全部的视图。这样的移动设备100的用户通过 移动设备100感知虚拟环境的人造视图。因此,用户可以被浸没在虚拟环境中。备选地,用户 可以在封闭的环境中,例如在壁上显示图像的房间,并且“移动设备100”是可以例如通过接 收手势和语音命令从用户接收输入命令的静止对象。换句话说,用户可以具有VR体验,而不 必要求在其身体上直接佩戴任意东西,同时仍然浸没在人造环境中。

[0268] 本发明总体发明构思通过为用户提供统一的环境以进行交互来实现VR。类似于服 务3〇Oa-n通过插件220a-n参与聊天,服务300a-n利用用户与插件220a-n交互通过插件 220a-n参与VR会话。例如,在启动VR会话时,用户可以输入他们选择的初始VR环境。该第一 环境可以对应于第一插件220a。从该初始环境,用户可以经由其他VR环境在其他VR体验之 间无缝地发送,其中每个不同的VR环境可以对应于一个或多个不同的插件220b-n。关于用 户和命令输入的相关信息可以经由语义原子1000在插件220a-n之间通信传输。因此,语义 原子1000简化(streamline)提供不同的VR体验的不同服务300a-n之间的通信,,允许不同 的VR体验相互被集成并无缝共同操作。

[0269]用户命令仍然可以通过VR环境的介质来被接受,例如通过图标触摸、手势或口头 命令。用户命令输入可以例如通过与VR环境的交互被上下文地解释。例如,可以在用户的视 野中显示虚拟图标,并且用户对图标的触摸动作可以对应于执行相关动作的命令。在这种 情况下,“触摸”可以意味着在逻辑上等于触摸的手势,除了用户正在VR显示器中“触摸”显 示给用户的一些东西,而不是被显示在屏幕上的一些东西或用户实际正身体触摸的其它物 体

[0270]如上所述,包括将命令输入或输入转换成一个或多个语义原子1000的助理接口 110的移动设备100可以是例如用户用作为VR会话的一部分的VR耳机或其他可配戴设备。可 备选地,类似于图5B,移动设备100可以是与耳机或其他可配戴设备通信的单独的计算设 备。这种移动设备100的助理接口 110可以将从例如耳机的外部感测设备接收的命令输入转 换成一个或多个语义原子1000,并且可以将转换的命令发送到助理服务器200。

[0271] 除了允许构成VR体验的不同服务300a-n之间的无缝转换之外,虚拟助理系统10的 示例性实施例允许多个用户之间的协作。多个用户可能参与VR会话,体验相同或相似的VR 环境。每个用户可以使用单独的虚拟助理系统10,包括它们自己的移动设备100和助理服务 器200。各种助理服务器200a-n可以经由语义原子1〇〇〇彼此通信。备选地,单个用户可以将 他们的移动设备100连接到两个以上的助理服务器200a-n,其可以类似地用语义原子1000 彼此通信。此外,不同的用户均可以使用相同的助理服务器200,即使用户物理上彼此远离 (例如在不同国家或时区中),只要各自的移动装置100与助理服务器200通信。

[0272] 当存在助理服务器200的多个实例时,可以在助理服务器200a-n之间传输诸如用 户偏好、命令输入和上下文的信息,从而允许一个助理服务器200a理解另一助理服务器 200b的命令输入。这是以以上详细描述的由助理服务器200自适应学习的形式。例如,多个 不同用户的命令输入可以在助理服务器的多个实例200a-n之间传输并被其理解。助理服务 器的多个实例2〇〇a-n还能够实现上面给出的示例,其中多个用户正在使用完全不同的助理 服务器200a-n,但仍然参与相同的VR体验,因为它们各自的助理服务器200a-n彼此通信。

[0273] 在两个以上用户之间的共享VR体验中,命令输入也可以被共享。一个用户可以进 行命令输入,其然后可以被另一个人校正或补充。例如,用户中的一个可以做出手势来改变 场景,其可能会失败,因为该用户不知道要做出的正确手势(如在助理服务器200所访问的 存储的命令输入的库230中所注册的,图6A中所图示的)。然后,第二用户可以例如借助于手 势、口语命令或通过触摸可识别为由助理服务器200访问的命令输入的库230内的手势的图 标来校正第一尝试命令输入。助理服务器2〇〇然后可以用原始的、未被识别的命令输入来更 新其库230,并将原始命令输入与预期的动作相关联。库的这种更新也是自适应学习的示 例,其使助理服务器2〇〇能够自适应地扩展其命令输入的词汇。由于助理服务器的不同实例 200a-n可以将新的命令输入相互通信传输以更新其各自的命令输入库,所以这个相同的动 作可以扩展到助理服务器2〇〇的多个实例。

[0274] 来自多个用户的命令输入也可以经由自适应学习来捆绑在一起。例如,如果重复 的一些动作在一系列手势、语音语句或图标或图形的虚拟化触摸上被执行,则虚拟助理系 统10可以将这些动作捆绑在一起形成单个手势、语音命令或图形图标触摸,其将触发要执 行整个操作序列。可能也可以类似地自适应地将包含多个人的动作捆绑在一起。例如,如果 用户A采取了一些动作,然后紧跟着用户B的动作,然后由用户C的另一动作,但是这些用户 经常共同执行这些动作,所有这些动作都可以捆绑在一起成为单个触发(例如,手势、语音 控制或图形控制),其可由用户中的任意一个做出。有时,这些动作也可能要求多人同时或 按顺序进行授权。如果是这样,通过仅针对该捆绑的动作来有条件地扩展相关的权限,这些 授权也可以被捆绑在一起成为一个单个控制。这种动作的捆绑涉及下文详细描述的授权的 扩展和撤销。

[0275] 命令输入的含义可以根据上下文而变化。例如,如果在灯的方向上做出手势命令 输入,则虚拟助理系统10可将手势解释为例如降低亮度水平的命令。如果在音乐播放器的 方向上做出相同的手势,则虚拟助理系统10可以将手势解释为例如降低音量水平的命令。 这种形式的自适应学习在VR应用中是非常有价值的,以允许虚拟助理系统10响应于命令输 入执行更直观的动作。

[0276] 对于不同的人也可以不同地解释相同的命令输入。例如,如果一个人一直倾向于 使用手势来表示一件事情,并且另一个人使用相同的手势来表示不同的事情,则虚拟助理 系统可以经由自适应学习来学习这些偏好。此外,如果助理服务器的多个实例200a-n由一 个或多个用户使用,则助理服务器的实例200a-n可以在彼此之间通信传输用户偏好和命令 输入,以便支持一个或多个用户的无缝体验。请注意,这种自适应学习以对不同用户不同地 解释命令输入的使用也允许在不同用户组中或个人之间的命令输入的方言的出现。

[0277]可以在手持体验(例如,用智能手机)和用于特定命令输入的VR体验之间建立等效 性。因此,在命令输入的库230中,一些命令输入可以被标记用于在手持体验中使用,一些命 令输入可以被标记用于VR体验,并且一些命令输入可被标记用于手持和VR体验两者。在某 些情况下,将存在其中特定移动命令输入(例如,图标触摸)对应于不同的VR命令输入(例 如,手势)的映射。这些映射可以由虚拟助理系统10基于使用和反馈模式经由自适应学习来 推断。映射也可以由插件开发人员明确提供。

[0278]插件开发人员可以具有设计体验的能力(例如,为插件220a-n定义一个或多个动 作),而不需要定义哪些特定命令应当使这些一个或多个动作在对应的服务300处执行。然 后插件开发人员可以随后通过将控制元素(例如,语音、手势、触摸等)映射到所定义的一个 或多个动作上来定义相关命令输入。备选地或另外地,虚拟助理系统10可以基于与其他插 件22〇的体验来推荐一个或多个特定命令输入以在特定情况下使用。这些命令输入也可以 基于用户行为进行微调和自适应。作为示例,用于音乐播放器插件220的插件开发人员可以 在开发插件220的时编程相关动作,例如改变音量、改变正在播放的音乐等。然后,插件开发 人员可以随后编程相关的命令输入,例如,增加音量的竖起大拇指、改变音乐的图标触摸手 势等。备选地,可以将插件220提供给虚拟助理系统1〇,而不需要定义特定的命令输入,并且 虚拟助理系统10可以建议或提供命令输入。例如,如果虚拟助理系统10己经从其他插件 220a-n自,应地学习用户通常用于增加音量的特定手势,则虚拟助理系统1〇可以建议或提 供在上述示例中到用于音乐播放器插件220的该手势对应于用于提高音量的命令输入。 [0279]在一些情况下,通过插件220或虚拟助理系统1〇来表示某些动作的控制元件也将 基于潜意识的用户行为来进行自适应。如果用户无意识地持续地做某些事情,则虚拟助理 系统10可以基于该行为来自适应于用户。例如,如果用户一直尝试在城市中的街景视图类 型虚拟步行中在路边移动,则虚拟助理系统10可能会观察到这种尝试移动并使得这种在路 边运动为与该动作相对应的支持手势。命令输入的这种解释也可以是上下文相关的。例如, 当用户A由用户B伴随时,与用于一个或多个服务的一个或多个控制相对应的手势可能对应 于当用户A用户C代之以伴随时用于一个或多个服务的一个或多个不同的控制。当用户在城 市步行插件220时对应于一个或多个控制的手势可以对应于当同一用户正在使用另一个插 件220来虚拟地飞过海洋时的一个或多个不同控制。对于插件220内的不同内部上下文,控 制元件也可以在单个插件220内具有不同的含义。例如,对于提供通过上述城市的虚拟步行 的插件220,当用户在虚拟街道上时命令输入(例如,手势或用户的脚的移动)可以导致在路 边移动,而如果用户在同一虚拟步行插件220中的虚拟建筑物附近,相同的命令输入可能导 致用户进入虚拟建筑物。在该示例中VR体验中的用户的虚拟位置对应于用于解释一个或多 个命令输入的上下文。

[0280] 对应于与虚拟助理系统10的通信用户接口的客户端110可以以某种方式在VR环境 中被拟人化,并且用户可能能够与它进行交互,例如,与客户的对话或手势(有意识地或无 意识地)。例如,客户端110可以表示为用户在VR环境中感知的、并且用户可以直接与其交互 例如以给出一个或多个命令输入和/或从服务300接收反馈的鸟。以这种方式呈现,特定用 户的客户端110可以是仅由该用户可感知的,或者备选地可以由参与相同VR体验的一个或 多个其他用户感知。用户的客户端11〇还可以有限的持续时间的或永久地呈现并且监视用 户,而不被拟人化甚至完全没有由用户感知。换句话说,虽然客户端110仍然监视用户的动 作并且基于用户的动作接受命令输入,但用户可能不会意识到其客户端110在VR会话中的 存在。

[0281] VR还允许对命令输入的直观的澄清。当用户执行不被虚拟助理系统10理解或可能 不正确地理解的命令输入时,用户可以诉诸图形系统,例如可选图标的显示,其可以帮助系 统适应和学习不被理解的命令输入。

[0282] 可能在共同VR会话中呈现的不同用户可能具有相同情况的不同的观点或体验。例 如,用户可以从其电影服务3〇〇a (例如,Hu 1 uPlus™)中选择电影并与另一用户共享电影(例 如,通过做出命令输入来控制虚拟助理系统10以与另一个用户共享电影)。接收共享电影的 另一用户可以具有不同的电影服务300b (例如,Netflix™),并且可以检查该服务300b中的 共享电影的可用性。

[0283] 在这种情况下,对应于共享电影的数据可以被表示为一个或多个语义原子1000。 然后,可以通过对应的插件220a_n,在服务300a-n之间映射该数据(在这种情况下为电影)。 用户还可以与另一个用户共享表示为一个或多个语义原子1〇〇〇的数据。然后,其他用户可 以容易地将该数据转换成它们相应的服务300a-n。

[0284] 可能两个以上用户正在共享的非常会话环境也可以使用经由语义原子1000的这 种数据传输来构建。例如,特定的颜色设置、风景、音频背景和体验的其他方面可以由多个 VR系统经由助理服务器200交换语义原子1000构建,助理服务器200然后将包含在原子1000 中的信息组合成单个会话环境。为此目的,可以存在在不同用户的VR系统中运行的助理服 务器200的多个实例,例如,每个用户可以具有以上述方式与一个或多个其他用户的助理服 务器200a-n通信的其自己的助理服务器200a-n。

[0285]还存在场景,其中在具有一个用户的单个VR会话中,用户正在与虚拟助理系统10 交互,并且在服务300a-n之间移动表示为语义原子1000的数据。例如,用户可以在 Pinterest™ (通过对应于Pinterest™的插件220a)上查找一件服装,然后容易地使用该服 装在Nordstrom™上找到并预览类似的项目(通过对应于Nordstrom™的插件220b)。例如,用 户甚至可以在一个服务300上构建项目的集合,以及然后该列表可以分布在多个其他服务 3〇Oa-n上。例如,在Rotten Tomatoes™的一段时间内,用户可能会收集他们希望观看的电影 列表。根据相应服务300a-n中的电影的可用性,该电影列表然后可以分发到电影服务,例如 Netflix™、Hulu Plus™、Amazon Instant™和其他服务。这些项目列表(本示例中的电影)也 可以由多人共同工作合作建立。

[0286]语义原子1000也是重要的,以便确保用户退出一个插件220 (对应于由一个开发人 员设计的VR体验)并进入另一个插件220 (对应于由另一个或相同的开发人员设计的另一个 VR体验)的无缝体验。利用传统的电子设备(例如智能电话),用户通过有意地停止一个服务 300a,返回到可用服务300a-n的列表(例如,“主屏幕”),并选择要运行的新服务300b,来在 服务3〇Oa-n (例如,智能电话上的应用)之间转换。虽然这种形式的接口对于常规电子设备 是可以接受的,但它并不会导致身临其境的VR体验。根据常规方案,想要在服务300a-n (例 如不同VR环境)之间改变的、VR会话中的用户必须停止一个VR会话并且开始具有新环境的 新会话。这种转换可能会破坏用户VR体验的连续性,因为用户必须完全停止一个虚拟现实 体验以便开始另一个虚拟现实体验。此外,在新的VR环境中开始新的VR会话时,用户必须经 常调整到新的环境,例如再次全部建立他们的偏好和设置。这种调整也可以打破用户的连 续虚拟体验的感觉。虚拟助理系统10的示例性实施例可以解决这个问题。不是迫使用户退 出VR体验以便在服务300a-n之间进行切换,在本文描述的虚拟助理系统10可以允许用户在 服务3〇Oa-n之间无缝地转换。

[0287]为了建立这种无缝体验,用户的上下文和与一个插件中的用户体验相关的其他元 素可以作为一个或多个语义原子1000与其他插件220共享或提供给其他插件220。例如,根 据第一插件220a正在VR中的虚拟街道向下走的用户可以爬到位于虚拟街道上的虚拟太空 飞船中,该虚拟太空飞船已经以语义原子1000的形式由对应于该宇宙飞船的另一、第二插 件220b提供给第一插件220a。来自第一插件220a的数据可以表示为语义原子1000并与第二 插件220b共享或提供给第二插件220b。一旦用户己经虚拟地爬上虚拟太空飞船,用户就可 以控制VR中的虚拟飞船(例如起飞),然后用户实际上己经转换到使用第二插件22〇b,同时 全部无缝地执行。在用户的感知中,用户己经有了一个连续的VR体验,其中用户已经沿着虚 拟的街道行走,爬入虚拟太空飞船,并在虚拟太空飞船中起飞。这种连续的VR体验是可能 的,因为虚拟助理系统10可以经由语义原子1000来管理插件220a_n之间的交互。语义原子 1000的使用关于管理用户的VR体验尤为重要。

[0288] 事实上,可以存在用户可以在提供VR体验的插件220内的任意点处可以看到的几 个VR体验,并且这些VR体验中的每一个可以对应于由不同插件220a-n提供的VR体验。当用 户进入这些VR体验中的一个时,作为一个或多个语义原子1000的任意相关数据可以与新插 件220a共享或提供给新插件220a。该数据还可以与可以扩展到另一插件220b的用户权限、 以及与用户一起行进的支付工具相关联,即使用支付工具的权限(例如,支付工具的收费交 易)可以在用户在VR体验之间移动时可以伴随用户。插件220a_n之间的相关数据传输允许 用尸将由一=或多个插件开发人员提供的VR体验组合成单个、无缝VR体验。

[0289]表示为语义原子1000的数据还可以包含关于用户的当前状态的信息,例如关于奖 励程序或一些种类的状态的用户实现。然后可以容易地将表示关于用户状态的数据的原子 1000在其他插件220a-n之间共享或提供给其他插件220a-n。每个插件220将具有自己的特 定状态意味着什么的定义。共享或提供关于用户状态的数据允许用户建立插件22〇a—n之间 的过去经验。例如,一个或多个用户可以将它们在第—VR游戏中的密集玩法(play)移动到 第二VR游戏,以给予一个或多个用户在第二VR游戏中的更高的起始点。

[0290]如果表示为一个或多个语义原子1000的数据被存储在虚拟助理系统10中,则可能 人们也可能在不同的时间从事VR会话,但是能够使用先前由其他用户从服务3〇〇a—n获得的 数据。这些用户然后可以以一个或多个附加语义原子1000的形式提供进一步的数据。

[0291]本发明总体发明构思的示例性实施例还可以包括增强现实(“AR”)。仙与抑相关, 因为用户被呈现有虚拟环境。AR和VR之间的主要区别在于,用户仍然可以感知到他们的即 时的环境,仅额外的图形或其他覆盖被提供。例如,尝试遵循到达目的地的方向的用户可以 感知地面上的箭头,将用户引导向目的地。应当理解,本文给出的发明概念像适用于VR一样 同样适用于AR。

[0292] AR体验可以被提供,例如通过允许用户正常观看的、但也可以在用户的视野中显 示图像的眼镜。备选地或另外地,用户可能正在观看例如实时或时间延迟的相机馈送,其中 附加元素被显示以供观看。AR经验还可以例如经由音频信号或触觉反馈向一个或多个用户 的其它感觉提供额外的数据。

[0293]类似于VR,命令输入的解释和在AR中执行的动作可以取决于伴随的上下文。然而, 在AR中,上下文可以包括用户的即时环境。因此,虚拟助理系统1〇可以包括或者连接到例如 检测用户周围环境并允许虚拟助理系统10对其做出反应的摄像机和其它传感器。例如,如 果在用户的家中存在入侵者,则AR体验的相机(诸如上述的眼镜中包括的相机)可以捕获入 侵者脸部的图像,并将其报告给当局。该图像捕获和报告功能可以响应于用户的意识或无 意识动作来执行。

[0294]如现在将参照图1A和图15更详细地描述的,移动设备100的用户可以共享对助理 服务器200 (并且因此虚拟助理系统1〇)的访问以允许其他用户控制在虚拟助理系统1〇内 的、并且因此已经被共享访问的用户控制的服务300a-n。因此,用户(在移动设备100)可以 通过其他用户的相应移动设备10〇a-n与其它用户共享语义原子1000。因此,由移动设备100 的用户的服务300的任意期望的控制可以通过成为其他用户的移动设备100a的朋友、通过 其它用户的移动设备l〇〇a与另一用户共享(参见虚线“共享访问”),如图1A所示。一旦用户 (移动设备100)具有例如经由电子邮件、LinkedlnTM、FacebookTM、TwitterTM等与另一用户联 系的方式,则可以提供对控制服务300a-n的访问的共享(或“成为朋友”)。换句话说,一旦虚 拟助理系统10内的移动设备100的用户能够通过任意形式的通信经由另一用户的移动设备 100a-n与另一用户通信,则用户(移动设备100)可以经由这种通信形式发送“报价”以与其 他用户的移动设备l〇〇a-n共享对助理服务器200的访问。

[0295]特别地可以通过消息传输来实现共享,其中用户可以请求来自另一用户的访问并 通过回复消息被授予访问。这些消息还可以包括表示例如授予的访问的原子1000。

[0296] 一旦其他用户接受对用户的助理服务器200的访问的提供,则其他用户可以被提 供有与移动设备100的用户通过助理服务器200拥有的控制相同的对所有外部服务300a-n 的控制。此外,如下面更详细地描述的,与其他用户的共享访问可以在许多方面被限制,例 如,关于控制级别、其他用户位于的位置、其中用户允许其他用户维持共享访问的时间帧 等。存在大量的方式,其中可以基于虚拟助理系统10的期望设置通过系统10的开发人员或 者在系统10的原始设置之后的稍后时间的用户的指令来控制/限制与其他用户共享的访 问。

[0297]共享访问允许其他用户通过原始用户的助理服务器200来控制外部服务300a-n, 以及基中原始用户允许共享(或“成为朋友”)用户访问的级别。

[0298]此外,如图15所图示的,在#1,尽管原始用户A (做出要约的用户)必须最初提供用 户名/安全ID和密码(或“访问证书”),以便访问外部服务300,变为“成为朋友”(接收共享访 问)的用户B不需要输入该安全ID或密码。因此,原始用户A永远不需要与“成为朋友”的其他 用户B共享这些访问凭据。因此,当用户A指示助理服务器200允许访问服务300 (参见图15 的#2)时,接收共享访问的用户B可以在不知道用户A输入的访问证书的情况下控制服务 300a,如在图15的#3处指出。因此,不需要暴露访问凭据或与任意其他用户共享访问凭据, 以便与另一个用户“成为朋友”并允许其它用户具有对任意服务300或甚至助理服务器200 的完整或有限的访问。此外,原始用户A可以指示助理服务器200在任意时间撤销用户B对服 务300的访问,或者备选地,可以声明其中对其他的用户(即用户B)的访问的撤销可能发生 的特定条件。

[0299] 除了对其他用户阻止机密的ID和密码(或其他证书)之外,由于ID和密码仅保留在 助理服务器200处,因此不需要无线地传输,用户的ID和密码(或其他证书)可以安全地保持 对原始用户A (在移动设备100处)机密。因此,可以完全防止非法访问、不允许的访问和通过 无线传输拦截或其他类型的泄露的安全的证书的滥用。

[0300] 因此,助理服务器200维护给出访问和使用底层服务300a-n的权限的所有证书 (ID,密码等)。这些证书由助理服务器200被保持在直接或间接地连接到助理服务器200的 存储装置250。当在助理服务器200处创建插件220,并且用户开始首次访问该插件220以便 使助理服务器200利用对应的服务300执行进行各种动作时,用户首先需要以某种形式向助 理服务器200提供用于服务300的所需的证书。通过助理服务器200以以下许多手段之一来 收集这些证书:通过屏幕、键盘、扫描仪、鼠标、相机、麦克风或手持式或可配戴式设备(诸如 臂环或面部配戴或手指配戴的等)或连接到助理服务器200或与助理服务器200通信的一个 或多个另一外围硬件系统。

[0301]作为示例,用户A (在移动设备100处)可以向助理服务器200提供用于电子邮件服 务的用户名和密码。现在,助理服务器200变得能够经由因特网、蓝牙、光学或视觉信号、音 频信号(通过音频扬声器或其他机制)、触觉或使用诸如振动单元的设备的其他机械信号、 WiFi、USB、FireWire、HDMI或通过用户代表的其它手段来访问和使用该服务。用户现在可以 指示助理服务器200与另一用户B共享对服务300的访问。如上所述,用户A的该指令使得另 一个用户B能够经由助理服务器200并且仅通过助理服务器200访问服务300。就底层服务 300 (例如,电子邮件)而言,如果助理服务器200和移动设备100—起提供在一个硬件中,并 且只有助理服务器200知道事实上服务300被另一个用户(用户B)访问,则它正由原始用户 (用户A)通过助理服务器200或通过移动设备100访问。

[0302] 下面仍参考图15来描述这种共享的安全形式的另一示例:原始用户A使用助理接 口 110在助理服务器200中建立服务300,例如,原始用户A可以建立作为外部服务3〇〇被无线 地访问和控制的某些灯集合。然后,用户可以向助理服务器2〇〇提供访问和操作灯所需的必 要信息。该信息可以包括例如灯的密码、用户名和IP地址。插件工程师最初指定用户需要哪 些证书来开始与助理服务器200—起使用该类型的外部服务300。现在,灯作为助理服务器 200可以访问的外部服务300存在。该访问控制仅由用户A拥有。该用户A现在可以指示助理 服务器200根据需要将那些灯(服务300)与任意其他用户B“成为朋友”。这种访问共享可以 以如本文所述的各种不同的方式来实现。例如,用户A指示助理服务器2〇〇的共享访问通过: 联系用户B并提供用户B加入虚拟助理系统10,或者如果用户B在手势可以发信号通知用户B 的区域中则可以向用户B作出手势,或者用户A可以作出通知允许访问的手势(此时相机在 附近检测到用户B)等等。其他用户B现在可以经由助理服务器看到外部服务300并且使用外 部服务300。另一个用户B可以例如打开和关闭这些灯,并且改变这些灯的颜色。然而,如上 所述,该另一用户B不具有灯的用户名、密码或IP地址(或由工程师最初创建的其他证书), 并且除了通过助理服务器200之外没有操作外部服务300的手段。

[0303] 在任意时候,所有者用户A可以指示助理服务器200从外部服务300与己经成为朋 友的用户B“不再成为朋友”(撤销访问)。如果所有者用户A撤销对其他用户B的访问,其他用 户B停止能够操作灯,或者在某些情况下,甚至可能阻止用户B能够以任意方式看到这些灯。 也就是说,用户B的移动设备100a可能被阻止甚至不知道灯。

[0304] 用户还可以设置“不再成为朋友”自动发生的标准。这样的标准可以是与用户B共 享的访问的时间限制、放置在用户B上的位置条件等等。例如,服务可以与其他用户B共享预 设的时间量,或者直到其他用户离开特定区域。

[0305] 共享访问的替代示例性实施例涉及在不同用户之间抛出语义原子1〇〇〇。例如,如 果用户在法国的需要密码和信用支付来访问WiFi的图书馆中,则用户可以从移动设备l〇〇a (例如,用户的平板计算机)向所有用户的朋友(GmailTM,FaCeb〇〇kTM,MySpaceTM中等)发送请 求,以验证用户朋友中的任意一个是否曾在该图书馆中、它们是否访问了WiFi、以及他们是 否拥有能够共享的剩余支付额度。然后,即使该朋友在不同的国家,用户也可以向其中一个 朋友发送请求,以访问法国图书馆的WiFi。然后,朋友可以通过“抛出”包括访问WiFi的其密 码的语义原子1 〇〇〇来手动地向用户提供WiFi访问。备选地,朋友可以根据请求预先设置要 提供的访问,即预先将具有密码的语义原子1〇〇〇抛出给用户。在这两者之中任一情况下,由 于信息作为语义原子1000从朋友发送给用户,所以接收WiFi访问的用户从来不需要知道访 问WiFi的密码。所接收的语义原子1000可以显示为图标、附件、图像、文件、电子邮件、聊天 等,但不限于此,并且允许用户在接收到语义原子1〇〇〇时自动访问WiFi,或者在选择语义原 子1000时手动访问WiFi,在不知道WiFi密码的情况下。

[0306] 图16示出了本发明总体发明构思的示例性实施例,其中可以在不同的助理服务器 200之间共享对服务300的访问,例如如果存在助理服务器200的多个实例。如图16所示,具 有第一助理服务器200a的用户A可以与具有第二助理服务器2〇〇b的用户B共享对服务300的 访问。访问控制信息(例如,用户名、密码等)包含在用户A的控制下的第一助理服务器200a (具体地,对应于第一助理服务器200a的存储装置250a)中。如果与用户B共享访问,则用户B 的助理服务器200b可以通过用户A的助理服务器200a以及存储在其上的访问证书和插件 220来访问服务300。此外,如果第一助理服务器200a被关闭或者以其他方式与助理服务器 200b断开连接,则用户A可以指定他们是否希望用户B继续访问。如果用户A确定访问应该继 续,则存储在助理服务器200a中的访问信息以及对应的插件220可在助理服务器200b中(具 体地,在对应于助理服务器200b的存储装置250b中)被镜像,但是如果用户A撤销对共享服 务300的访问,则其然后被移除。与上述存在由两个用户共享的一个助理服务器200的示例 相似,当该访问控制信息被在用户B的助理服务器中被镜像时,用户B不知道这样的访问控 制信息的细节。例如,用户B不知道用户A访问共享服务300的用户名和密码。

[0307] 存在可由虚拟助理系统10实现的大量其他应用程序。控制家庭服务集合300a-n是 一个明显的应用。如果有人访问用户的家庭,则主人(虚拟助理系统10的用户)可以指示虚 拟助理系统10给客人礼貌地访问在用户的家中所连接的服务300a-n的全部或大部分子集 (灯、恒温器、百叶窗、报警系统、电话系统、WiFi集线器、娱乐系统等),只要用户在家庭的物 理范围内是“成为朋友”。这也可以基于日历邀请来完成。换句话说,伴随着邀请他人到用户 的家庭,拥有家庭的用户也可以向访问用户创建正式的邀请“成为朋友”,其在访问期间指 定对家庭设施的访问。这种正式邀请可以经由诸如例如电子邮件、短信等的任意形式的消 息传输来发送。以这种方式的消息共享访问是一种“可动作的消息传输”的形式。对应于共 享访问(包括例如访问证书)的原子1〇〇〇可以作为消息发送到另一个用户,潜在地用其他消 息内容,例如邀请接收用户给共享用户的家庭的文本。

[0308] 这种有限的访问共享也可以在业务环境中实现。例如,当有人加入团队时,虚拟助 理系统10可以经由助理服务器200向这个人扩展对各种工具和服务的访问。当该人员停止 成为团队的一部分时,该访问可以被撤销。可以通过简单地请求提供有访问的那些成员的 列表,然后在用户请求访问要被撤销的某些成员中进行选择来执行撤销。

[0309] 助理服务器200还可以基于正在做出的支付来提供该访问。例如,只要电影正在播 放,到电影院的访问者可以经由剧院的助理服务器200具有对苏打水喷泉的访问。这个基于 时间的访问共享可以在任意指定的时间(即在电影完成时)被自动撤销。

[0310]作为另一示例,(移动设备100的)用户A可以与他/她的医生共享来自他/她的所有 健康设备的信息。作为用户B的医生可以访问存储在助理服务器2〇〇的存储装置250中的所 有健康信息。

[0311] 如上所述,由移动设备100的发起用户A提供的到其他用户B的共享访问可以由发 起移动设备1〇〇的用户A完全控制,使得由任意共享接入用户B的访问在任意时候都可以由 所有者用户A终止,并且被限制在某个的控制级别、某个控制时间段、被限制在一定区域/位 置内的控制等。

[0312] 共享也可以是本质上的预测性,其中预测规则和算法可以是或可以不是人类可读 的,并且被保存在连接到其中他们正在运行的助理服务器200的或与其中他们正在运行的 助理服务器200通信的存储装置250中。备选地,如上所述,在某些情况下,与访问共享相关 的预测规则和算法可以在移动设备1〇〇上运行,并且因此存储在存储单元140中。例如,如果 某个上下文集合通常导致用户A与另一用户B共享对一些服务的访问,助理服务器200可以 识别该上下文模式,并且将来会自动执行该共享。助理服务器200还可以向所有者用户A呈 现关于是否应该自动确定和应用上下文模式或者用户A是否应该做出该决定的选择。例如, 助理服务器200警告用户A助理服务器200基于识别的上下文历史模式(诸如共享恒温器控 制,电视等)打算与客户用户B共享对灯或其他服务300a-n的访问,除非用户A明确要拒绝此 类访问。此时,用户A可以通过触摸显示器150上的图标来选择由助理服务器200提供的选 项,向移动设备1〇〇内的传感器160作出手势,并经由如本文所述的另一形式的输入来提供 输入命令。

[0313] 如上所述,共享也可以以不同的级别执行。例如,像Amazon™这样的在线商务服务 具有多种可以做的事情。可以以个性化的方式检查各种物品的评级和价格(“这是其他读者 喜欢你的评级”或“作为主要会员,您不为此物品的运输付款”),物品可以添加到一个希望 清单,物品可以被添加到Amazon™购物车并可以进行购买。可以创建子项服务,其中可以物 品可以被检查并被放置在Amazon™购物车中,但无法完成购买。有可能看到父母(用户A)如 何向他们的子女(用户B)提供共享亚马逊7"帐户到在Amazon™购物车中放入物品,但实际上 不做出购买。这样,父母(用户A)可以在购买之前查看孩子(用户B)想要的所有物品。换句话 说,访问共享可以应用于插件的功能的子集,而不是其所有的功能。类似地,也可以制定其 他规则。父母可以限制他/她的孩子在某些值内改变电视频道,而父母(用户A)可以经由助 理服务器200去往所期望的任意频道。

[0314] 这种有限的和基于上下文的共享也具有其他应用。例如,城市可以允许一般公民 在紧急情况下操作门或其他系统而其通常对于他们是被禁止的,并且只能由专业人员或通 常授权的人员操作。访问也可以扩展到特定的人群。基于这些人被添加到特定的用户组,例 如,孕妇(在商业、医院、购物中心或社区)可以对于她们怀孕期间被给予访问对于其他人无 法访问某些服务300a_n。例如,其电动汽车以特定的方式发生故障的用户可以在任意普通 用户没有的无人停车场访问代用汽车。对用户的发生故障的汽车的访问可以预测地被授权 给前往该汽车的修理工。这里,经由移动设备100的用户A将向维修人员的移动设备100a扩 展特定的许可。

[0315] 根据共享模式社会、家庭和社区的联系也将是可推断的。这也可以用来做出预测 共享发生。如果一个用户A与另一个用户B共享所有的家庭设备,则很可能在用户A的家庭登 记的下一个家庭设备也将与相同的其他用户B共享。这样的模式将被保存在存储装置250 中,并且将使用在助理服务器平台210内创建的分析算法来推断或者作为从其他服务器上 运行的其他软件程序被导入到助理服务器平台210的模式来获得。

[0316]注意,用户可以快速忘记其中经由助理服务器200的访问就足够的各种服务的用 户名和密码。移动设备100的所有者用户A也可以将另一用户B指定为具有与又一其他用户 共享访问的权限。例如,这可以在单个家庭的成员中实施。一个用户可以购买电视机并将其 与助理服务器200进行接口,然后向其他家庭成员(用户©提供访问权限,然后他们可以根 据需要各自扩展对该电视机(服务300)的访问给他们相应的客人。

[0317] 助理服务器200还可以将服务的所有权从一个用户A转移到另一个用户A。这允许 例如用户A将他们的房屋出售给另一人,并将房屋内的所有服务300a-n转移给该人。类似 地,改变办公室的人(用户A)可以将所有服务300a-n的所有权从他们自己转移到另一个用 户B,其中用户A然后可以获取与用户A移动到的新办公室相关联的其他服务300a-n的所有 权。如上所述,也可以基于某些条件授予服务。例如,如果一个人不幸死亡,那么他们的服务 300a_n可以自动转交给他们的相关家庭成员或其他期望的人。

[0318] 如上所述,手势是与虚拟助理系统10—起使用的一种形式的命令。手势是操作上 述权限共享特征的简单方法。手势的使用-包括眼睛运动或不运动、眼眉运动、凝视和面部 表情以及所有其他视觉检测的身体运动(或不运动)以延长或撤销对用户或用户组的使用 权限-可以相当强大,并且可以使用如本文所述的虚拟助理系统10来执行。然而,应当理解, 如上所述,可以使用任意其他命令输入(例如图标触摸或口头命令)来代替手势。

[0319]参考图17,对用户B的灯集合(外部服务300)的控制的共享访问可以与所有者用户 A指向灯并且然后作出表示与其他用户B共享这种访问的手势(参见时间#1) 一样简单。结 果,助理服务器200可以授权对用户B的访问。更具体地,在用户A定期工作或生活的这种环 境中,例如传感器集合,诸如作为能够捕获关于用户移动的信息的相机或其他类型的光检 测装置,可以在受控环境内被设置。这些传感器可以被配置为具有它们自己形式的助理接 口 llOa-n,使得当这些传感器(见图17)检测用户A做出对在受控环境中的诸如灯泡等的控 制服务3〇Oa-n的共享访问的手势时,该手势命令可以在相关传感器处被转换为一个或多个 语义原子1000并且直接提供给助理服务器200。因此,助理服务器200可以经由表示共享访 问的手势命令输入按照用户A的指示来与用户B共享访问。如上所述,图17还示图出了固定 的“移动”设备100的示例性实施例,其中各种传感器具有助理接口 1 lOa-n。

[0320]为了更高的安全性情况,照相机或其他类型的图像传感器或其他类型的传感器可 以能够检测用户A的实际手或指纹,以便确定实际上是用户A正在指示助理服务器200共享 对另一用户B的访问。备选地,用户A可以具有检测用户A作出的手势的可配戴类型设备或加 速度计。此外,当传感器经由相机或其他类型识别设备检测用户B时,助理服务器200可以存 储用户B的任意预定检测到的特性特征,并将该信息存储在存储装置250内,使得在后续访 问这样的环境期间可以向用户B提供共享访问。

[0321]仍然参考图17,撤销对用户B的控制可以像向用户B做出“取消共享”的手势(参见 时间#2)那样简单,其导致助理服务器200撤销对设备的访问。备选地,可以通过其他手势来 执行撤销,诸如,例如作出与对用户B的共享访问的手势集合相同的手势集合,以及然后进 行切削(chop)手势。这仅仅是用于说明可以被编程到助理服务器200中或由助理服务器200 学习的各种类型的手势的示例。用户A的这些手势也可以由能够捕获关于用户A的移动的信 息的相机或其他光检测或感测设备捕获,其进而连接到用户的移动设备100。这样的手势也 可以由可配戴的、手持的或通过使用加速度计硬件或其他移动跟踪硬件或甚至眼睛跟踪、 嘴唇跟踪或面部跟踪系统来检测移动的其他设备来捕获。

[0322]备选地,如先前所述,用户A可以请求其中已经共享了访问的用户B的最近列表。一 旦该列表通过助理服务器200在移动设备100的用户界面150处被提供给用户A,则用户A可 以在用户界面150提供的列表上选择任意用户B,并通过用户界面150指示助理服务器200来 撤销将来的访问。

[0323]还可以设置规则,其中访问被临时扩展到另一个用户B,然后必须用手势的使用来 周期性地(或者在事件的发生时,诸如某人离开地理围栏区域)扩展。在这种类型的访问共 享中,如果所有者用户A作出这样的手势,则可以继续访问。如果所有者用户A无法作出手 势,则访问失败。

[0324]手势也可以是非自愿的或者以用户B不知道的方式做出的。例如,销售产品的商业 机构可能会使某些洗手间的门锁为在机构的某些区域花费了特定的时间的客户或潜在客 户(即用户B)操作,但不对其他人操作。这样的商业机构甚至可以允许包含在受保护的橱柜 或展示柜中的货物,基于手势和运动信息而被变得可被某些客户访问(通过授权他们访问 打开安全外壳而其他人不被授权这种访问)其不可用于其他人。

[0325] 在地理围栏和其他这样的应用中,可以借助于连接到助理服务器200或与助理服 务器200通信的GPS单元、WiFi单元、蓝牙设施、位置广播浮标、IP地址、NFC等来确定位置。可 以嵌入在汽车、家用物体、办公室物体和其他物体中的位置测量感测设备的接近检测还可 以测量位置。时间也可以是访问确定装置的元素,其可以由类似的这种计算设备来建立和 测量。确定访问装置还可以包括助理服务器200的用户使用的顺序。

[0326] 本文所描述的虚拟助理系统10还为用户提供具有用于撤销和授权用于控制外部 服务300a-n的访问的秘密手势的能力。例如,在家庭休息的情况下,父母用户A可以授权儿 童权利经由秘密手势(其中小孩可能通常不具有此权利)使用家庭警报召唤警察。

[0327] 这些手势还可以与图标触摸和语音命令一起操作。例如,用户A可以作出表示“共 享”的手势,则用户A可以背诵他/她打算分享的所有服务的名称。语音感测设备可以检测命 名的服务,从而提供对这些服务的访问。那么用户A可以如上所述指向接收用户B.

[0328] 这些手势也可以用于来自大量用户子集的用户的子集必须被授权或不授权对服 务(或服务集合)的访问的情况。这种情况的一个示例是其中需要作出关于从一百名销售员 中谁具有对商店中的给定收银机的访问的决定。在这种情况下,只需简单地列出人员的姓 名或照片的列表并指出应向其授予访问权限的特定人员可以是授予用户子集特定访问权 限的一种机制。另一种机制可以是通过凝视跟踪,其中与用户A查看不应该被授予访问权限 的人员的时间相比,用户A查看应当被授权临时访问的特定人员时间更长。这样的手势可能 是用户A的有意识或无意识的。

[0329] 类似地,相反地,可能发生存在大量服务集合并且需要快速地做出关于应该向用 户或用户集合提供哪些服务访问(或从其撤销访问)的决定的情况。用户A的手势-有意识或 无意识-也可以在这种情况下使用。

[0330]手势还可以通过用户寻求共享访问(g卩,用户B寻求具有访问权限的用户A的访问) 被用于寻求对服务3〇〇a-n的访问。这能够实现“静音”对话,其中一个用户利用手势集合来 寻求对给定服务3〇〇的访问,并且被授权这种访问,或者通过所有者用户A以另一手势集合 或通过由助理服务器2〇0和观察手势请求的传感器设备组合算法地(算术地)作出一些决 定。确定这种共享访问的这些算法可以是与助理服务器平台210内运行的其他程序连同作 为助理服务器2〇〇的一部分运行的软件程序或软件程序的一部分。

[0331 ]在提供虚拟现实体验的虚拟助理系统1 〇的示例性实施例中,用户可以与其他用户 共享权限以控制一个或多个服务3〇0。类似地,针对VR会话的持续时间、针对其他施加内长 度或受制于其他条件,用户可以选择与一个或多个其他用户在他们的虚拟现实体验的不同 方面共享权限。例如,两个或更多的用户可以一起参与游戏(对应于服务3〇〇a),其中一个用 户具有玩游戏的权限,并且在有限的时间基础上将该权限扩展到其他用户。作为另一示例, 多个用户可以使用虚拟购物体验中的一个用户的权限(对应于购物帐户)来一起购物,以从 若干商家(对应于一个或多个服务3〇Oa-n)进行交互和购买。

[0332]在商业相关的VR会话中,共享权限可能非常重要。例如,会议可以在参加者正在查 看材料(asset)(例如文件)的VR会话中举行。该材料的所有者可以选择向一些参与者扩展 查看权限,并向其他人扩展编辑权限。所有者甚至可以选择具有不同级别的权限(例如,查 看权限、编辑权限等)被呈现给不同参与者,其可以在所有者选择的任意时间被撤销。

[0333] 通常来自其他环境的虚拟现实的一个重要区别是它可能是相当社会的,并且通常 涉及协作场景。通常情况下,权限将需要合并起来才能使事情发生。也就是说,用户可以同 时相互共享他们彼此相应的权限,使得用户都被授予权限的总和。例如,可能存在不同用户 为游戏的不同片段(或多个互连游戏)支付、但是可以将在这些片段中游戏的权限扩展到彼 此的游戏。在这些情况下,虚拟助理系统10可以允许权限被合并,从而允许每个用户玩游戏 的授权片段。如上所述,有时也可以构建涉及来自多个用户的权限的组合动作。

[0334] 权限交易也是可能的,其中虚拟助理系统10基于两个以上用户之间的协议永久地 或临时地对一些潜在的资产安排权限(例如向一个或多个服务300a-n发出命令的权限)的 同时互换。这些权限互换可以是两个用户之间的简单交易,但也可以在多方之间安排复杂 的交易。以同样的方式,用户可以永久地将潜在资产上的权限转移给另一用户,而不收取任 意回报,或以支付转移作交换。在这种权限转移之后,原有用户丧失对潜在资产的权限。以 这种方式,可以在虚拟现实中进行访问或权限的销售或转移。例如,出售他们住宅的用户可 以将其住宅恒温器的权限转移给买方。虚拟助理系统10还可以在第三方托管中保存事物 (例如,向一个或多个服务300a-n发布命令的权限),以确保交易适当地完成。

[0335]两个或多个用户之间的消息会话本身可以是用于共享权限的上下文。例如,消息 传输会话中的用户可以向虚拟助理系统10指示他们正在将对某些东西(例如,服务300)的 控制扩展到正在执行消息传输会话的介质内的一个或多个其他用户。该控制可以是暂时 的、永久的或在用户指令时或在某些上下文时(例如,在完成消息会话时)可撤销的。例如, 群组聊天会话中的两个用户可能期望使用只有一个用户具有访问权限的服务300来玩棋牌 游戏。具有访问权限的用户可以在聊天会话期间将这些访问权限扩展到另一个用户,使得 两个用户在聊天会话期间将均具有使用象棋服务的访问权限。作为另一示例,用户可以将 只要聊天会话持续才可操作的网络摄像机视图(对应于服务300的输出)添加到聊天会话 中。该网络摄像机视图可能不与聊天会话中的参与者直接相关,例如,其可以是与常规视频 会议会话的视图不同的视图。例如,网络摄像机视图可以是从物理空间向外聚焦的可移动 网络摄像头(服务300)的视图,其然后可以由聊天会话中的用户来操纵以转动或缩放。该网 络摄像头的所有者可以将权限扩展给聊天会话中的其它用户以控制网络摄像头,例如通过 查看输出并操纵视图,而不需要也共享访问标准(诸如,例如用户名和密码)。

[0336]消息传输会话可以进一步是用于限制权限扩展的上下文。例如,只要消息传输会 话持续,由用户做出的呈现可用于消息传输会话的其他用户。类似地,用户可能能够在与其 他用户(或用户集合)的聊天会话中一起查看相机,但是不能在其他地方查看相机。或者当 这些用户与所有者-用户进行消息传送时用户可能能够查看已经在消息传输中共享的呈 现,但是不在没有所有者用户的其它时间。类似地,当一个用户被授权时,可以存在两个或 多个用户可以在消息传输会话内一起使用的服务(例如歌曲或电影),即当一个用户拥有服 务的权限时,但是具有对未授权用户被拒绝的那些服务的访问当这些用户不由授权用户陪 同时。作为权限的上下文扩展的另一示例,只要用户是聊天组的成员,用户可以与聊天组的 成员共享一个或多个服务的权限。如果该授权用户离开聊天组,则该用户向该聊天中的其 他用户扩展的用于一个或多个服务的任意权限可能会自动失效。这种权限的上下文扩展允 许多个用户合并权限。例如,一组用户可以为用户单独具有经由特定服务300a访问的电影 列表合并权限。当用户离开该组时,该用户的授权电影将无法再被该组中的其他用户访问。 [0337]权限的上下文扩展和撤销也可以由消息传输会话本身的内容来驱动。如果虚拟助 理系统10正在管理消息传输会话,则客户端110还可以监视相关命令的消息传输的内容,该 命令可以被转发到助理服务器200以执行相关联的动作。例如,消息传输会话中的用户可能 要求来自另一用户的许可以使用特定服务300a,例如,“我可以使用dropcam吗?”,并且该问 题可以由助理接口 110转换成一个或多个语义原子1000并被发送到助理服务器200。助理服 务器2〇0可以将该声明解释为对相关服务300a (在这种情况下为dropcam)的共享访问的请 求。如果该服务300a的所有者以诸如“肯定”的毫无疑义答复进行响应,那么该答复将类似 地作为一个或多个语义原子1000从所有者的助理接口 110发送到助理服务器200,助理服务 器200将该回复理解为对授权该请求,因此服务300a的权限可以自动地扩展到请求用户,而 不需要由任一用户单独的操作。类似地,如果聊天会话中的用户中的一个询问“您是否使用 完dropcam” ?并且被授权访问的用户肯定地回复,例如“是的,我是”,则助理服务器200可以 自动地撤销被共享的访问。由于可以基于消息传输会话的内容自动执行共享,所以用户不 需要从消息传输中转移(恢复到另一形式的控制),以便分别控制虚拟助理系统10以共享访 问。以这种方式,共享访问和服务300的控制可以成为消息传输的更无缝的部分。

[0338] 不正确的授权和撤销也可以通过上述自适应学习方法来解决。如果权限一被授予 用户就立即撤销权限,例如,这是向虚拟助理系统10指示它在授予该权限时超出限度。

[0339]基于消息传输的内容采取的动作的这种方案也可以被扩展到交易。例如,如果第 一用户和第二用户在特定剧院讨论观看电影,并且第一用户询问第二个用户“我己经找到 了票,但是你可以为他们付钱吗?”该问题可以由第一用户的助理界面110转换成一个或多 个语义原子1000,并被发送到助理服务器200,助理服务器200可将该问题解释为用于特定 目的的支付请求(在这种情况下为票支付)。如果第二用户同意,例如通过响应“确定”,则可 以将第二用户的选定的支付工具应用于特定目的,在这种情况下为购买票。助理服务器200 将第二用户的响应解释为对第一用户的请求的同意,并且因此将用于针对该金额和特定目 的(购买票)的所选择的支付工具的的权限扩展到第一用户。

[0340]作为命令输入的消息传输内容的这种使用可以自动执行或通过与助理服务器200 的有意识的用户交互来执行。在上面给出的示例中,移动设备1〇〇中包括的助理界面lio可 以自动地将所感知的命令(例如,来自用户的问题和响应)转换成一个或多个语义原子1000 并将语义原子1000转发到助理服务器200,助理服务器200可以自动采取对应的动作。备选 地或除了这种自动响应之外,用户可以通过消息传输会话的介质向助理服务器200发送命 令。在这种情况下,助理服务器2〇〇实际上是消息传输会话中的“参与者”,因为助理服务器 200可以在消息传输会话中接收消息(对应于来自用户的命令)并且还传输消息(例如,回 复、来自服务300的输出等)。构成助理服务器200的多个实例的、相互通信的多个助理服务 器200a-n也可以是消息传输会话中的参与者,类似于服务300a-n可以如何参与消息传输会 话。

[0341] 参考图18,移动设备100的用户可以基于问卷、调查或证书的表单填写和其他服务 相关数据以及基于发现,向助理服务器2〇〇添加(包括大量添加)服务。

[0342] 更具体地说,很可能当助理服务器200变为建立时,其他用户将想要向助理服务器 200提供其所有他们的个人帐户证书,以便其他用户可以快速建立到那些服务300a-n的连 接。例如,用户可以在一次设置时将他/她的LinkedlnTM、YahooTM、G〇〇gleTM、Amaz〇nTM、 Facebook™等的用户名和密码提供给助理服务器200,其使得助理服务器200能够快速地系 统地连接到这些服务300a-n。这可以通过填写助理服务器200提供给用户的表单来完成。此 表格可以是电子表格、电子邮件表单、可填写的PDF、基于Web的表单、基于语音的问题和响 应会话、或者通过其可以收集这种类型的信息的任意其他数据收集机制。该表格可以经由 因特网或经由诸如蓝牙或NFC之类的一些其他连接机制、甚至物理邮件或快递服务传递给 用户。

[0343] 助理服务器200也可以使用户通过其中向用户询问用户可能正在使用的最常见的 服务300a-n的证书(这类似于填写调查)的过程。例如,助理服务器200可以在用户的家庭网 络上的检测服务300a-n,然后在必要时通过请求对应的证书来自动地连接到它们。与这些 证书和服务300a-n相关的信息可以保存在连接到助理服务器200的存储装置250上。

[0344] 类似地,助理服务器200实际上可以取得用户的电子邮件,然后用这些电子邮件来 探测大多数通用服务300a-n,以查看该用户是否已经具有相关联的帐户。在这种情况下,用 户可以向助理服务器200提供各种电子邮件地址,其可以保存这些电子邮件地址,然后使用 它们来尝试登录到各种web服务和其他服务。如果这些用户已经忘记了他们的密码,助理服 务器200可以启动密码重置过程(S卩,或者通过自动地或者如果涉及到如Recaptcha™的服务 则在用户的帮助下(这需要人们识别混淆的字母和数字)进行密码重设过程),并恢复这些 帐户并将其链接到用户的帐户。这也意味着用户可能不再提出需要提供密码了。助理服务 器200可以提出用户不需要记住的高度复杂的密码,因为用户几乎总是通过助理服务器200 访问底层服务300a-n。然后可以将这些高度复杂的密码保存在存储装置250上。

[0345] 助理服务器200还可以使用户通过利用与用户类似的人员相关的各种服务300a-n 建立品牌新帐户的过程。这可以有很多应用。例如,助理服务器200可以当公民达到一定年 龄时在选举系统中为该公民建立投票账户。它可以用于当公民在购买宝马时与bmw.com建 立账户。确定这样的新服务设置的规则可以被保存在存储装置250上,或者通过能够通过因 特网、WiFi、蓝牙、NFC、USB或其他机制与助理服务器200通信的其他服务3〇Oa-n传输到助理 服务器200。

[0346] 虚拟助理系统10还可以有助于将服务300a_n彼此连接起来。例如,如果用户购买 视频游戏系统,则用户可能希望将其连接到电视机。在这种情况下,用户通常必须使用电缆 来执行视频游戏系统和电视之间的模拟连接。备选地,如果电视和视频游戏系统都具有无 线能力,用户具有无线路由器,并且用户被订购到因特网服务提供商,则用户可以通过在电 视机的菜单屏幕上搜索视频游戏系统来将视频游戏系统无线地连接到电视机,例如,然后 选择视频游戏系统以无线地连接到电视机。该过程可能需要通过电视的多个菜单屏幕进行 搜索以在用户的家庭网络上定位视频游戏系统,并且潜在地要求用户知道要被互连的设备 的配置/连接规范。因此,连接两个服务(本例中的视频游戏系统和电视机)的常规过程对用 户造成不便。

[0347] 然而,虚拟助理系统1〇可以提供上述互连性,而不需要使用者具有因特网服务提 供商、无线路由器、或服务之间的配置/连接规范的知识。此外,虚拟助理系统1〇避免了用户 用于搜索多个菜单屏幕以找到期望服务以执行互连的需要。

[0348]更具体地,当用户例如通过购买新设备来获取新服务300a时,对应于服务3〇〇a的 插件220a可以立即安装在用户的移动设备100上,或者备选地安装在助理服务器200中。这 个安装可以由用户例如从因特网下载插件220a并将插件220a安装在移动设备100或助理服 务器200上手动地发生。备选地,插件220a可以经由电子邮件、文本消息、另一用户的虚拟助 理系统10或任意其他类型的通信方法来发送。例如,当购买新服务300a时,用户可以简单地 向制造商提供用于注册的电子邮件地址,其将反过来自动地向用户发送对应于服务300的 插件220a。此外,如果移动设备100和/或助理服务器200被指示在何处查找插件220a (S卩,存 储插件220a的位置),移动设备100和/或助理服务器200可以检索并安装插件220a,而不需 要用户分别发送插件220a到虚拟助理系统10。

[0349] 然后,当插件220a被安装在移动设备100或助理服务器200中时,表示新服务300a (例如,视频游戏系统)的图标可以出现在例如移动设备100的用户界面150上。例如,该图标 可以自动地明确出现在移动设备100的“服务”菜单屏幕中。

[0350]为了将新服务300a连接到另一服务300b (例如,电视机,其可能已经在移动设备 100内被表示,例如通过安装在其中的图标),用户可以做出相关命令输入,其可能是直观 的,并且不需要连接的详细知识。该命令输入可以是其使得看起来服务300a和300b被链接 的任意类型的动作。例如,用户可以将对应于视频游戏系统的图标简单地拖动到表示移动 设备100的用户界面150上的电视的图标。虚拟助理系统10可以将该命令输入解释为将两个 服务3〇Oa和300b连接起来的命令。在该示例中,视频游戏系统将无线地连接到电视机,使得 可以在其间进行无线通信。更具体地说,由于视频游戏系统和电视机以他们自己的专有语 5进行通彳目,所以分别对应于视频游戏系统(服务300a)和电视(服务300b)的插件220a和 220b的安装允许服务300a和300b的对应的专有语言经由虚拟助理系统1〇被转换成语义原 子1000,这允许服务300a和300b彼此通信。

[0351]上述过程可以用于连接需要在其间进行通信的任意数量的服务300a—n。例如,电 视机还可以与外部无线扬声器和外部无线蓝光播放器连接。因此,消除了使服务300a-n能 够彼此通信的详细“设置”操作的需要。

[0352]本发明总体发明构思还可以被体现为计算机可读介质上的计算机可读代码。计算 机可读介质可以包括计算机可读记录介质和计算机可读传输介质。计算机可读记录介质是 可以将数-存储为其后可以由计算机系统读取的程序的任意数据存储设备。计算机可读记 录介质的示例包括半导体存储器、只读存储器(ROM)、随机存取存储器(RAM)、USB存储器、存 储卡、蓝光光盘、CD-ROM、磁磁带、软盘和光学数据存储设备。计算机可读记录介质也可以分 布在网络耦合的计算机系统上,使得计算机可读代码以分布式方式被存储和执行。计算机 可读传输介质可以发送载波或信号(例如,通过因特网的有线或无线数据传输)。此外,用于 实现本发明总体发明构思的功能程序、代码和代码段可以容易地由本发明总体发明构思所 属领域的技术编程人员解释。

[0353]尽管已经示出和描述了本发明总体发明构思的一些实施例,但是本领域技术人员 将理解,在不脱离总体发明构思的原理和精神的情况下,可以在这些实施例中做出改变,总 体发明构思的范围被限定在所附权利要求及其等同物中。

Claims (30)

1. 一种虚拟助理系统,包括: 移动设备,用于接收与在一个或多个外部服务处要被执行的功能相对应的输入命令, 用于将所述输入命令转换为表示所述命令的语义原子,以及用于传输所述语义原子;以及’ 助理服务器,被配置为接收所传输的所述语义原子,所述助理服务器包括多个插件,每 个插件对应于所述外部服务中的相应的外部服务,并且被配置为针对在其中所述功能要被 执行的每个外部服务生成与接收到的所述语义原子相对应的专有语言命令。
2. 根据权利要求1所述的虚拟助理系统,其中: 所述助理服务器还被配置为从所述一个或多个外部服务接收输出数据作为执行所述 功能的结果,将接收到的所述输出数据转换成表示接收到的所述输出数据的一个或多个语 义原子,以及将表示接收的所述输出数据的所述一个或多个语义原子发送到所述移动设备 和与另一外部服务相对应的另一插件中的至少一个。
3. 根据权利要求1所述的虚拟助理系统,其中: 所述助理服务器还可以被配置为在对应的一个或多个所述插件处从所述一个或多个 外部服务接收输出数据作为执行所述功能的结果,并将接收到的所述输出数据添加到所述 语义原子。
4. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器被配置为组合多个语义 原子以创建单个合并的语义原子。
5. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器被配置为将语义原子分 离成多个语义原子,所述多个语义原子中的每一个语义原子被包括在所述原始语义原子中 所包含的信息的子集。
6. 根据权利要求1所述的虚拟助理系统,其中所述移动设备和所述助理服务器中的至 少一个被配置为将一个或多个语义原子传输到至少一个其他移动设备。
7. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器还被配置为当所述语义 原子被确定为不再需要其与其他服务或所述移动设备的进一步信息传输时、在生成所述专 有语言命令之后删除所述语义原子。
8. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器还被配置为在生成所述 专有语言命令之后存储所述语乂原子。
9. 根据权利要求1所述的虚拟助理系统,其中: 所述助理服务器向多个所述插件提供表示所述输入命令的所述语义原子,以在所述输 入命令对应于在多个外部服务处要被执行的一个或多个功能时,为对应的所述多个外部服 务中的每一个外部服务生成专有语言命令。
10. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器存储证书,所述证书包 括用于授权所述移动设备以执行针对所述一个或多个外部服务的输入命令的数据。_
11. 根据权利要求10所述的虚拟助理系统,其中在所述移动设备处的输入命令将执行 针对所述一个或多个外部服务的输入命令的权限扩展到至少一个其他移动设备。
12. 根据权利要求11所述的虚拟助理系统,其中在所述移动设备处的另一个输入命令 撤消所述至少-个其他移动设备的、用于执行针对所述—个或多个外部服务的输入命令的 所述权限。 、
13. 根据权利要求11所述的虚拟助理系统,其中将在所述一个或多个外部服务处执行 输入命令的权限扩展到所述至少一个其他移动设备包括:将与所述一个或多个外部服务相 对应的所述证书和所述插件复制到由所述另一个移动设备访问的助理服务器。
14. 根据权利要求11所述的虚拟助理系统,其中将对所述一个或多个外部服务执行输 入命令的权限扩展到所述至少一个其他移动设备的所述输入命令包括:用于将所述权限限 制到预定级别的控制的信息、在其中控制被允许的预定位置、在其中所述控制被允许的预 定时间帧、以及在其中所述其他用户接近所述一个或多个外部服务的预定访问路径。
15. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器在将所述输入命令转换 为语义原子之前分析所述输入命令的上下文信息,以准确地确定要由所述输入命令执行的 所述预期功能。
16. 根据权利要求15所述的虚拟助理系统,其中由所述助理服务器分析的所述上下文 信息包括以下各项中的至少一项:当所述命令被输入时所述移动设备的位置、当所述命令 被输入时一天中的时间、特定个体的共存、用户的非故意的动作、以及由所述移动设备的用 户采取的动作序列。
17. 根据权利要求16所述的虚拟助理系统,其中由所述用户采取的所述动作序列包括 同时地或顺序地做出的多个输入命令。
18. 根据权利要求16所述的虚拟助理系统,其中由所述用户采取的所述动作序列包括 其是无效的并且跟随有另一个输入命令的输入命令。
19. 根据权利要求1所述的虚拟助理系统,其中所述助理服务器包括多个服务器设备, 所述多个服务器设备被配置为在彼此之间传输语义原子。
20. 根据权利要求19所述的虚拟助理系统,其中所述多个服务器设备包括: 主服务器设备,被配置为与所述移动设备进行通信;以及 一个或多个从属服务器设备,被配置为与所述主服务器设备通信。
21. 根据权利要求19所述的虚拟助理系统,其中: 所述服务器设备中的一个或多个服务器设备存储一个或多个插件,所述一个或多个插 件中的每一个插件对应于不同的外部服务;以及 所述服务器设备中的每一个服务器设备在接收到表示对应于在外部服务处要被执行 的功能的输入命令的语义原子时,将所述语义原子传输到存储与所述外部服务对应的所述 插件的所述服务器设备。
22. —种控制外部服务的方法,所述方法包括: 在移动设备处接收输入命令,所述输入命令对应于在多个外部服务中的所选外部服务 处要被执行的功能; 在所述移动设备处将所述输入命令转换成一个或多个语义原子; 将所述一个或多个语义原子传输到被配置为管理语义原子的助理服务器; 将所述一个或多个语义原子提供给与所述所选外部服务相对应的插件以生成用于所 述所选外部服务的专有语言命令;以及 通过将获得的所述专有语言命令传输到所述所选外部服务来控制所述所选外部服务 执行所述功能。
23. 根据权利要求22所述的方法,还包括: 响应被执行的所述功能,在对应插件处从所述所选外部服务接收输出数据;以及 在所还对应捆忏处树按叹到的所述输出数据转换为一个或多个语义原子。
24. 根据权利要求23所述的方法,还包括: 将表示接收到的所述输出数据的所述一个或多个语义原子提供给与一个或多个其它 所选外部服务相对应的一个或多个插件,以生成与接收到的所述输出数据相对应的专有语 目命令;以及 通过将所述专有语言命令传输到所述一个或多个其他所选外部服务来控制所述一个 或多个其他所选外部服务执行功能。
25. —种非暂时计算机可读介质,其包含用于执行权利要求22所述的方法的计算机可 读代码。
26. —种服务器设备,包括: 存储系统,用于存储能够在多个外部服务之间被共享的语义原子,所述存储系统还包 括用于在所述多个外部服务处执行功能的命令库; 多个插件,每个插件对应于所述多个外部服务中的相应的外部服务,每个插件被配置 为在语义原子和对应的所述外部服务的相应的专有语言之间进行转换;以及 平台,被配置为通过使用在相应插件处转换的所述专有语言来在所述多个外部服务之 间共享语义原子并与移动设备共享语义原子,在所述移动设备中,执行功能的命令被最初 输入并被传输到所述平台作为语义原子。
27. 根据权利要求26所述的服务器设备,其中所述存储系统存储与所述多个外部服务 中的相应的外部服务对应的至少一个命令集,每个命令集包括用于在相应的所述外部服务 处执行对应的功能的命令。
28. 根据权利要求26所述的服务器设备,其中在所述服务器设备处创建每个插件以包 括从存储的所述命令库中选择的命令集,所述命令集与在对应的所述服务处要被执行的相 关联的功能相对应。
29. 根据权利要求26所述的服务器设备,其中所述平台可以被配置为无线地连接到多 个移动设备以在其间共享信息并从其接收输入命令,被共享的所述信息和被接收的输入命 令被提供作为语义原子。
30. —种移动设备,包括: 传感器,用于接收在一个或多个外部服务处执行功能的输入命令;以及 助理接口,用于将接收到的所述输入命令转换成语义原子并将所述语义原子发送到外 部服务器以经由对应的插件在所述一个或多个外部服务处执行所述功能,或者接收包括用 于在所述一个或多个外部服务处直接执行所述功能的所述一个或多个外部服务的专有语 言的语义原子。
CN201580067360.6A 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统 CN107209549B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US201462090786P true 2014-12-11 2014-12-11
US62/090,786 2014-12-11
PCT/US2015/065265 WO2016094807A1 (en) 2014-12-11 2015-12-11 Virtual assistant system to enable actionable messaging

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010209891.7A CN111427534A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010207328.6A CN111399801A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010206869.7A CN111414222A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209247.XA CN111427533A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Related Child Applications (4)

Application Number Title Priority Date Filing Date
CN202010207328.6A Division CN111399801A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209891.7A Division CN111427534A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010206869.7A Division CN111414222A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209247.XA Division CN111427533A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Publications (2)

Publication Number Publication Date
CN107209549A true CN107209549A (zh) 2017-09-26
CN107209549B CN107209549B (zh) 2020-04-17

Family

ID=56108263

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201580067360.6A CN107209549B (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010206869.7A CN111414222A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010207328.6A CN111399801A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209247.XA CN111427533A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209891.7A CN111427534A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Family Applications After (4)

Application Number Title Priority Date Filing Date
CN202010206869.7A CN111414222A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010207328.6A CN111399801A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209247.XA CN111427533A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
CN202010209891.7A CN111427534A (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Country Status (4)

Country Link
US (5) US9661105B2 (zh)
EP (1) EP3230824A4 (zh)
CN (5) CN107209549B (zh)
WO (1) WO2016094807A1 (zh)

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
BR112015018905A2 (pt) 2013-02-07 2017-07-18 Apple Inc Operation method of voice activation feature, computer readable storage media and electronic device
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9111214B1 (en) 2014-01-30 2015-08-18 Vishal Sharma Virtual assistant system to remotely control external services and selectively share control
US10394966B2 (en) 2014-02-24 2019-08-27 Entefy Inc. Systems and methods for multi-protocol, multi-format universal searching
US10169447B2 (en) 2014-02-24 2019-01-01 Entefy Inc. System and method of message threading for a multi-format, multi-protocol communication system
KR102173110B1 (ko) * 2014-05-07 2020-11-02 삼성전자주식회사 웨어러블 디바이스 및 그 제어 방법
US9891893B2 (en) * 2014-05-21 2018-02-13 N.Io Innovation, Llc System and method for a development environment for building services for a platform instance
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
EP3230824A4 (en) * 2014-12-11 2018-08-08 Microsoft Technology Licensing, LLC Virtual assistant system to enable actionable messaging
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
KR20160116596A (ko) * 2015-03-30 2016-10-10 한국전자통신연구원 근접도 기반 커뮤니티 서비스 제공 방법
US10446142B2 (en) * 2015-05-20 2019-10-15 Microsoft Technology Licensing, Llc Crafting feedback dialogue with a digital assistant
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10847175B2 (en) 2015-07-24 2020-11-24 Nuance Communications, Inc. System and method for natural language driven search and discovery in large data sources
US10209851B2 (en) * 2015-09-18 2019-02-19 Google Llc Management of inactive windows
CN108027664A (zh) 2015-09-28 2018-05-11 万德实验室公司 统一的虚拟现实平台
US10891106B2 (en) 2015-10-13 2021-01-12 Google Llc Automatic batch voice commands
US10430025B2 (en) 2015-10-30 2019-10-01 Bank Of America Corporation Active selection configuration system with suggested actions
US10048836B2 (en) 2015-10-30 2018-08-14 Bank Of America Corporation Application connectivity for aggregation and for use in data filtering
US10158535B2 (en) 2015-10-30 2018-12-18 Bank Of America Corporation System for active configuration of devices based on user selection
US9929917B2 (en) 2015-10-30 2018-03-27 Bank Of America Corporation System for configuration and device connectivity based on user selection
US10031645B2 (en) * 2015-10-30 2018-07-24 Bank Of America Corporation Application connectivity for aggregation
US10091206B2 (en) 2015-10-30 2018-10-02 Bank Of America Corporation System for discovery of devices and connections associated with a device
US10051015B2 (en) 2015-10-30 2018-08-14 Bank Of America Corporation System for configuration, device connectivity and device control based on user selection
USD815107S1 (en) 2015-10-30 2018-04-10 Bank Of America Corporation Display screen with a transitional graphical user interface
US10095497B2 (en) 2015-10-30 2018-10-09 Bank Of America Corporation System for discovery of software operable on a device
WO2017095966A1 (en) * 2015-11-30 2017-06-08 uZoom, Inc. Platform for enabling remote services
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10353754B2 (en) 2015-12-31 2019-07-16 Entefy Inc. Application program interface analyzer for a universal interaction platform
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US9772817B2 (en) 2016-02-22 2017-09-26 Sonos, Inc. Room-corrected voice detection
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US10509626B2 (en) 2016-02-22 2019-12-17 Sonos, Inc Handling of loss of pairing between networked devices
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10142754B2 (en) 2016-02-22 2018-11-27 Sonos, Inc. Sensor on moving component of transducer
US10250720B2 (en) 2016-05-05 2019-04-02 Google Llc Sharing in an augmented and/or virtual reality environment
US20170337186A1 (en) * 2016-05-17 2017-11-23 Google Inc. Automated initiation and adaptation of a dialog with a user via user interface devices of a computing device of the user
DK179588B1 (en) * 2016-06-09 2019-02-22 Apple Inc. Intelligent automated assistant in a home environment
US9978390B2 (en) 2016-06-09 2018-05-22 Sonos, Inc. Dynamic player selection for audio signal processing
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US20180018965A1 (en) * 2016-07-12 2018-01-18 Bose Corporation Combining Gesture and Voice User Interfaces
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
US10152969B2 (en) 2016-07-15 2018-12-11 Sonos, Inc. Voice detection by multiple devices
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US9693164B1 (en) 2016-08-05 2017-06-27 Sonos, Inc. Determining direction of networked microphone device relative to audio playback device
US9972312B2 (en) 2016-08-19 2018-05-15 Panasonic Avionics Corporation Digital assistant and associated methods for a transportation vehicle
US10573299B2 (en) 2016-08-19 2020-02-25 Panasonic Avionics Corporation Digital assistant and associated methods for a transportation vehicle
US10397303B1 (en) * 2016-08-29 2019-08-27 Amazon Technologies, Inc. Semantic annotation and translations for devices
KR101715142B1 (ko) * 2016-08-29 2017-03-14 주식회사 리얼야구존 모바일 기기를 이용하는 스크린 야구 경기 방법
US10685656B2 (en) * 2016-08-31 2020-06-16 Bose Corporation Accessing multiple virtual personal assistants (VPA) from a single device
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10803504B2 (en) * 2016-09-08 2020-10-13 Visa International Service Association Method for generating by processor a second actionable item for execution by a data payload execution platform in order to complete processing of an action from a first actionable item
US9794720B1 (en) 2016-09-22 2017-10-17 Sonos, Inc. Acoustic position measurement
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10645052B2 (en) 2016-09-26 2020-05-05 Microsoft Technology Licensing, Llc Service integration into electronic mail inbox
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
US9743204B1 (en) 2016-09-30 2017-08-22 Sonos, Inc. Multi-orientation playback device microphones
US10321096B2 (en) * 2016-10-05 2019-06-11 Avaya Inc. Embedding content of interest in video conferencing
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
US10880378B2 (en) * 2016-11-18 2020-12-29 Lenovo (Singapore) Pte. Ltd. Contextual conversation mode for digital assistant
US10257241B2 (en) 2016-12-21 2019-04-09 Cisco Technology, Inc. Multimodal stream processing-based cognitive collaboration system
US20180188896A1 (en) * 2016-12-31 2018-07-05 Entefy Inc. Real-time context generation and blended input framework for morphing user interface manipulation and navigation
US10491690B2 (en) 2016-12-31 2019-11-26 Entefy Inc. Distributed natural language message interpretation engine
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. Far-field extension for digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10466963B2 (en) * 2017-05-18 2019-11-05 Aiqudo, Inc. Connecting multiple mobile devices to a smart home assistant account
WO2018226448A1 (en) * 2017-06-08 2018-12-13 Honeywell International Inc. Apparatus and method for recording and replaying interactive content in augmented/virtual reality in industrial automation systems and other systems
CN110869889A (zh) * 2017-06-08 2020-03-06 霍尼韦尔国际公司 用于工业自动化系统和其他系统中增强/虚拟现实的视觉辅助训练、协作和监视的装置和方法
US10419522B2 (en) * 2017-06-12 2019-09-17 Lenovo (Singapore) Ptd. Limited Systems and methods for synchronizing data across devices and mediating data sharing
US10176808B1 (en) * 2017-06-20 2019-01-08 Microsoft Technology Licensing, Llc Utilizing spoken cues to influence response rendering for virtual assistants
US10504277B1 (en) * 2017-06-29 2019-12-10 Amazon Technologies, Inc. Communicating within a VR environment
US20190034604A1 (en) * 2017-07-25 2019-01-31 Samsung Electronics Co., Ltd. Voice activation method for service provisioning on smart assistant devices
US10225330B2 (en) 2017-07-28 2019-03-05 Kong Inc. Auto-documentation for application program interfaces based on network requests and responses
US9936005B1 (en) * 2017-07-28 2018-04-03 Kong Inc. Systems and methods for distributed API gateways
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
US10838505B2 (en) 2017-08-25 2020-11-17 Qualcomm Incorporated System and method for gesture recognition
US20190074006A1 (en) * 2017-09-05 2019-03-07 First Advantage Corporation Digital assistant
ZA201805909B (en) * 2017-09-06 2021-01-27 Zensar Tech Limited An automated conversation system and method thereof
US10048930B1 (en) 2017-09-08 2018-08-14 Sonos, Inc. Dynamic computation of system response volume
US10446165B2 (en) 2017-09-27 2019-10-15 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US10621981B2 (en) 2017-09-28 2020-04-14 Sonos, Inc. Tone interference cancellation
US10051366B1 (en) 2017-09-28 2018-08-14 Sonos, Inc. Three-dimensional beam forming with a microphone array
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US10769186B2 (en) * 2017-10-16 2020-09-08 Nuance Communications, Inc. System and method for contextual reasoning
US10713300B2 (en) * 2017-11-03 2020-07-14 Google Llc Using distributed state machines for human-to-computer dialogs with automated assistants to protect private data
US10880650B2 (en) 2017-12-10 2020-12-29 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US10818290B2 (en) 2017-12-11 2020-10-27 Sonos, Inc. Home graph
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789957B1 (en) * 2018-02-02 2020-09-29 Spring Communications Company L.P. Home assistant wireless communication service subscriber self-service
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
CN108259761B (zh) * 2018-03-23 2020-09-15 维沃移动通信有限公司 一种拍摄方法及终端
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US20190311036A1 (en) * 2018-04-10 2019-10-10 Verizon Patent And Licensing Inc. System and method for chatbot conversation construction and management
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
DK201870382A1 (en) 2018-06-01 2020-01-13 Apple Inc. Attention aware virtual assistant dismissal
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US20190373102A1 (en) 2018-06-03 2019-12-05 Apple Inc. Accelerated task performance
US10636425B2 (en) 2018-06-05 2020-04-28 Voicify, LLC Voice application platform
US10832010B2 (en) * 2018-06-05 2020-11-10 International Business Machines Corporation Training of conversational agent using natural language
US10803865B2 (en) * 2018-06-05 2020-10-13 Voicify, LLC Voice application platform
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US20200029143A1 (en) 2018-07-23 2020-01-23 PeeQ Technologies, LLC Throwable microphone lighting with light indication
US10461710B1 (en) 2018-08-28 2019-10-29 Sonos, Inc. Media playback system with maximum volume setting
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US10878811B2 (en) 2018-09-14 2020-12-29 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US10692518B2 (en) 2018-09-29 2020-06-23 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
US10602268B1 (en) 2018-12-20 2020-03-24 Sonos, Inc. Optimization of network microphone devices using noise classification
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US20200382517A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Multi-user devices in a connected home environment
US20200380983A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Multi-user devices in a connected home environment
CN110275444B (zh) * 2019-06-03 2020-11-27 珠海格力电器股份有限公司 一种自动关门的系统及方法
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027708A1 (en) * 2003-07-31 2005-02-03 Stefan Mueller Semantic objects
US20070288467A1 (en) * 2006-06-07 2007-12-13 Motorola, Inc. Method and apparatus for harmonizing the gathering of data and issuing of commands in an autonomic computing system using model-based translation
CN101105791A (zh) * 2007-08-08 2008-01-16 北京唐风汉语教育科技有限公司 基于多媒体的支持多平台多终端的多语种互译的方法
US20090234638A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Use of a Speech Grammar to Recognize Instant Message Input
US20100257539A1 (en) * 2009-03-31 2010-10-07 Krishnakumar Narayanan System, method and apparatus for providing functions to applications on a digital electronic device
US20130219459A1 (en) * 2012-02-21 2013-08-22 Intertrust Technologies Corporation Content management systems and methods
CN103577198A (zh) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 一种面向用户的物联网服务平台及远程控制方法
CN103853736A (zh) * 2012-11-29 2014-06-11 北京掌城科技有限公司 交通信息语音查询系统及其语音处理单元
CN103945044A (zh) * 2013-01-22 2014-07-23 中兴通讯股份有限公司 一种信息处理方法和移动终端

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640251B1 (en) 1999-03-12 2003-10-28 Nortel Networks Limited Multicast-enabled address resolution protocol (ME-ARP)
US7155672B1 (en) 2000-05-23 2006-12-26 Spyglass, Inc. Method and system for dynamic font subsetting
US20040030640A1 (en) 2001-04-27 2004-02-12 Homestore.Com, Inc. System and method for online leasing
DE10234990B4 (de) 2002-07-31 2007-03-29 Advanced Micro Devices, Inc., Sunnyvale Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
US7233907B2 (en) * 2002-08-07 2007-06-19 United Parcel Service Of America, Inc. Parcel or service delivery with partially scheduled time windows
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
FR2891972A1 (fr) * 2005-10-11 2007-04-13 France Telecom Procede de gestion automatique des associations entre services dans un environnement distribue
US8589955B2 (en) * 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices
US20090234838A1 (en) 2008-03-14 2009-09-17 Yahoo! Inc. System, method, and/or apparatus for subset discovery
CN101754106B (zh) 2008-12-04 2014-06-11 北京网秦天下科技有限公司 在手机用户之间推荐内容的方法和系统
US9979611B2 (en) * 2009-06-17 2018-05-22 Constantin Staykoff Client-server system for network services and applications for mobile telecommunications terminals
US20150278878A1 (en) 2009-09-10 2015-10-01 Google Inc. System and method of displaying advertisements
WO2011149558A2 (en) * 2010-05-28 2011-12-01 Abelow Daniel H Reality alternate
US10063996B2 (en) * 2011-02-11 2018-08-28 Thermopylae Sciences and Technology Methods and systems for providing geospatially-aware user-customizable virtual environments
GB2489504A (en) 2011-03-31 2012-10-03 Sapient Sensors A device for identifying the presence of a specific target molecule or biomarker by sensing an electrical property
WO2012167153A1 (en) 2011-06-02 2012-12-06 Interdigital Patent Holdings, Inc. Methods, apparatus and systems for inter-converged gateway (icgw) communications
EP2716132A2 (en) 2011-06-02 2014-04-09 Interdigital Patent Holdings, Inc. Methods, apparatus, and systems for managing converged gateway communications
US8892419B2 (en) * 2012-04-10 2014-11-18 Artificial Solutions Iberia SL System and methods for semiautomatic generation and tuning of natural language interaction applications
US10109255B2 (en) 2012-06-05 2018-10-23 Apple Inc. Method, system and apparatus for dynamically generating map textures
US9069440B2 (en) 2012-06-05 2015-06-30 Apple Inc. Method, system and apparatus for providing a three-dimensional transition animation for a map view change
US9070314B2 (en) 2012-06-05 2015-06-30 Apple Inc. Method, system and apparatus for rendering a map according to texture masks
US9200919B2 (en) 2012-06-05 2015-12-01 Apple Inc. Method, system and apparatus for selectively obtaining map image data according to virtual camera velocity
WO2013184701A1 (en) 2012-06-05 2013-12-12 Arun Raghupathy Systems and methods for location positioning of user device
US9064341B2 (en) 2012-06-05 2015-06-23 Apple Inc. Method, system and apparatus for rendering a map according to hybrid map data
US9064337B2 (en) 2012-06-05 2015-06-23 Apple Inc. Method, system and apparatus for rendering a map with adaptive textures for map features
US9041736B2 (en) 2012-06-05 2015-05-26 Apple Inc. Method, system and apparatus for rendering a map according to a stylesheet
US20140162693A1 (en) 2012-06-15 2014-06-12 Qualcomm Incorporated Methods and systems for providing location based services in a venue
US20140028799A1 (en) 2012-07-25 2014-01-30 James Kuffner Use of Color and Intensity Modulation of a Display for Three-Dimensional Object Information
US9461943B2 (en) 2012-09-12 2016-10-04 Cisco Technology, Inc. Network assisted virtual machine mobility
KR101977087B1 (ko) 2012-12-24 2019-05-10 엘지전자 주식회사 자동응대 기능을 갖는 이동 단말기 및 그의 자동응대 방법
US9710462B2 (en) 2013-01-29 2017-07-18 Learning Sites, Inc. System and method for automatically translating an imaged surface of an object
US20140269678A1 (en) * 2013-03-15 2014-09-18 Evan Patrick McGee Method for providing an application service, including a managed translation service
US8942316B2 (en) 2013-03-15 2015-01-27 Samsung Electronics Co., Ltd. Wireless communication system with signal processing mechanism and method of operation thereof
US9111214B1 (en) * 2014-01-30 2015-08-18 Vishal Sharma Virtual assistant system to remotely control external services and selectively share control
US20150278879A1 (en) 2014-03-25 2015-10-01 Horizon Media, Inc. Interactive Kiosk for Displaying Different Types of Content Platforms and Related Technology
EP3230824A4 (en) * 2014-12-11 2018-08-08 Microsoft Technology Licensing, LLC Virtual assistant system to enable actionable messaging
US9740379B2 (en) * 2015-03-04 2017-08-22 Flycatcher LTD Methods and systems for creating and using electronic coloring pages
WO2017058962A1 (en) * 2015-09-28 2017-04-06 Wand Labs, Inc. User assistant for unified messaging platform

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027708A1 (en) * 2003-07-31 2005-02-03 Stefan Mueller Semantic objects
US20070288467A1 (en) * 2006-06-07 2007-12-13 Motorola, Inc. Method and apparatus for harmonizing the gathering of data and issuing of commands in an autonomic computing system using model-based translation
CN101105791A (zh) * 2007-08-08 2008-01-16 北京唐风汉语教育科技有限公司 基于多媒体的支持多平台多终端的多语种互译的方法
US20090234638A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Use of a Speech Grammar to Recognize Instant Message Input
US20100257539A1 (en) * 2009-03-31 2010-10-07 Krishnakumar Narayanan System, method and apparatus for providing functions to applications on a digital electronic device
US20130219459A1 (en) * 2012-02-21 2013-08-22 Intertrust Technologies Corporation Content management systems and methods
CN103853736A (zh) * 2012-11-29 2014-06-11 北京掌城科技有限公司 交通信息语音查询系统及其语音处理单元
CN103945044A (zh) * 2013-01-22 2014-07-23 中兴通讯股份有限公司 一种信息处理方法和移动终端
CN103577198A (zh) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 一种面向用户的物联网服务平台及远程控制方法

Also Published As

Publication number Publication date
EP3230824A1 (en) 2017-10-18
CN111427534A (zh) 2020-07-17
US20170264715A1 (en) 2017-09-14
EP3230824A4 (en) 2018-08-08
US20170230316A1 (en) 2017-08-10
US9661105B2 (en) 2017-05-23
US9935904B2 (en) 2018-04-03
US20160269508A1 (en) 2016-09-15
WO2016094807A1 (en) 2016-06-16
US20170220361A1 (en) 2017-08-03
US9952881B2 (en) 2018-04-24
CN111414222A (zh) 2020-07-14
CN111399801A (zh) 2020-07-10
CN111427533A (zh) 2020-07-17
CN107209549B (zh) 2020-04-17
US9692855B2 (en) 2017-06-27
US10585685B2 (en) 2020-03-10
US20160173578A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
West The future of work: Robots, AI, and automation
US20170372271A1 (en) Providing recommended meeting parameters based on religious or cultural attributes of meeting invitees obtained from social media data
US9801020B2 (en) System for creating anonymous social gatherings
US10354014B2 (en) Virtual assistant system
Gray et al. The connected company
US10880243B2 (en) Embedded programs and interfaces for chat conversations
US10348658B2 (en) Suggested items for use with embedded applications in chat conversations
US10573134B1 (en) Machine learning methods and system for tracking label coded items in a retail store for cashier-less transactions
US10901686B2 (en) Digital jukebox device with improved user interfaces, and associated methods
US10409381B2 (en) Gestures, interactions, and common ground in a surface computing environment
Ardito et al. Interaction with large displays: A survey
US10872322B2 (en) System and method for collaborative shopping, business and entertainment
CN105579993B (zh) 用于物联网集成平台的数据整合机制
Chase Peers Inc: how people and platforms are inventing the collaborative economy and reinventing capitalism
US10785203B2 (en) Methods, systems, and media for presenting information related to an event based on metadata
US9679332B2 (en) Apparatus and method for processing a multimedia commerce service
US9026941B1 (en) Suggesting activities
Davies et al. Pervasive displays: understanding the future of digital signage
US10855760B2 (en) Systems and methods for synchronizing content and information on multiple computing devices
Chianese et al. Smart environments and cultural heritage: a novel approach to create intelligent cultural spaces
CN106964153B (zh) 基于云的游戏切片生成和即玩型无障碍社交共享
US20190109810A1 (en) Social-topical adaptive networking (stan) system allowing for group based contextual transaction offers and acceptances and hot topic watchdogging
US20200020172A1 (en) Three-dimensional virtual environment
US20150356569A1 (en) Proximity-based information and area of relevance
US20210004129A1 (en) Digital jukebox device with improved karaoke-related user interfaces, and associated methods

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
TA01 Transfer of patent application right

Effective date of registration: 20180109

Address after: Washington State

Applicant after: Microsoft Corp.

Address before: Washington State

Applicant before: Wande Lab Corp

Effective date of registration: 20180109

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

Effective date of registration: 20180109

Address after: Washington State

Applicant after: Microsoft Corp.

Address before: Washington State

Applicant before: Wande Lab Corp

Effective date of registration: 20180109

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant