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

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

Info

Publication number
CN111399801A
CN111399801A CN202010207328.6A CN202010207328A CN111399801A CN 111399801 A CN111399801 A CN 111399801A CN 202010207328 A CN202010207328 A CN 202010207328A CN 111399801 A CN111399801 A CN 111399801A
Authority
CN
China
Prior art keywords
user
mobile device
semantic
assistant
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010207328.6A
Other languages
English (en)
Other versions
CN111399801B (zh
Inventor
V·沙马
E·阿姆贾迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202010207328.6A priority Critical patent/CN111399801B/zh
Publication of CN111399801A publication Critical patent/CN111399801A/zh
Application granted granted Critical
Publication of CN111399801B publication Critical patent/CN111399801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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 OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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 inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • 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 authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities 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 arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/724094Interfacing with a device worn on the user's body to provide access to telephonic functionalities, e.g. accepting a call, reading or composing a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/724094Interfacing with a device worn on the user's body to provide access to telephonic functionalities, e.g. accepting a call, reading or composing a message
    • H04M1/724097Worn on the head
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72415User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories for remote control of appliances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • H04W12/43Security arrangements using identity modules using shared identity modules, e.g. SIM sharing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Abstract

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

Description

能够实现可动作的消息传送的虚拟助理系统
相关申请引用
本申请是国际申请号为PCT/US2015/065265、国际申请日为2015年12月11日、进入中国国家阶段日期为2017年6月9日、中国国家申请号为201580067360.6、发明名称为“能够实现可动作的消息传送的虚拟助理系统”的发明专利申请的分案申请。
本申请要求2014年12月11日在美国专利和商标局递交的美国临时申请No.62/090,786的优先权,其公开内容通过引用整体并入本文。
技术领域
本发明总体发明构思涉及一种能够实现可操作的消息传送的虚拟助理系统,其可以能够实现多个外部服务之间的控制和无线通信,并且能够实现多个外部服务之间的信息共享,并且能够选择性地允许与其他用户的控制的共享。
背景技术
无线通信的进步允许数据共享的创新以快速的速度增长。用户可以使用移动设备(诸如例如,电话、平板计算机、手表等)来打开各种应用/程序,操作各种设备以及与其他移动设备进行通信。被称为物联网(loT)的发展反映了无线地连接到和控制各种服务的增长趋势。
移动设备(例如智能电话)的用户通常在其移动设备上访问各种各样的服务,例如“应用”。用户必须经常从一个服务切换到另一个服务,以便访问和使用每个服务。此外,移动设备被限制为要求用户以专用于每个特定应用/程序和外部服务的方式输入命令、指令和数据。更具体地,诸如FacebookTM和LinkedlnTM的程序各自以它们自己的专有语言进行通信。如果用户在FacebookTM中找到个人后希望在LinkedlnTM中查找该个人的简档,例如,则需要用户在LinkedlnTM程序本身的适当字段中输入正确的搜索准则。因此,虽然用户可以分别与FacebookTM和LinkedlnTM进行通信,但是这些程序彼此之间不通信且不能通信。
作为另一个示例,菲利普开发了一种发光二极管(LED)灯泡(即,菲利普“色相(Hue)”),其允许用户经由正在运行与灯泡相关联的应用的移动设备改变从其发射的颜色。更具体地,用户必须在移动设备上下载并安装与灯泡相关联的应用程序,该应用程序使用菲利普色相专有语言与灯泡进行通信。在应用程序在移动设备上安装和运行之后,用户然后可以使用移动设备来控制灯泡的色调、对比度和颜色。然而,用户不能将对灯泡的访问授权给操作另一移动设备的另一用户。相反,如果其他用户希望用其他移动设备来控制灯泡,则另一用户还必须将与灯泡相关联的应用程序下载并安装到另一移动设备中。
此外,用户不能使用与灯泡相关联的应用程序内的信息与另一应用程序进行交互。例如,用户可能不使用灯泡应用程序中的信息来在诸如AmazonTM的另一应用程序中购买更多的灯泡。因此,与灯泡相关联的应用仅限于允许用户控制与在用户的移动设备内存储的应用程序相关联的特定灯泡。
此外,AppleTM和GoogleTM各自都在其各自的移动设备上包括语音助理(Apple的SiriTM和GoogleTM的Google NowTM),其将所接收的语音转换成搜索程序。然而,SiriTM和Google NowTM助手限于提供搜索和一些设备动作,并且与其他应用程序(诸如OpenTableTM等)的有限集成。
因此,需要允许与系统连接的所有服务在其间进行通信的系统。
此外,需要能够无线地控制期望的任意外部服务,例如通过网络,通过从手持设备输入命令以执行这种控制。
发明内容
本发明总体发明构思提供了一种被配置为允许多个服务之间的通信及其控制的移动设备、助理服务器和虚拟助理系统。
本发明总体发明构思的附加特征和效用将部分地在下面的描述中阐述,并且部分地从描述中将是显而易见的,或者可以通过总体发明构思的实践来了解。
本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种虚拟助理系统来实现,所述虚拟助理系统包括:移动设备,用于接收与在一个或多个外部服务处要被执行的功能相对应的输入命令,用于将输入命令转换为表示命令的语义原子,以及传输所述语义原子;以及助理服务器,被配置为接收传输的语义原子,助理服务器包括多个插件,每个插件对应于外部服务中的相应的外部服务,并且被配置为针对其中功能要被执行的每个外部服务生成与所接收到的语义原子相对应的专有语言命令。
助理服务器还可以被配置为从一个或多个外部服务接收输出数据作为执行功能的结果,将接收的输出数据转换成表示接收的输出数据的一个或多个语义原子,以及将表示接收的输出数据的一个或多个语义原子发送到移动设备和与另一外部服务对应的另一插件中的至少一个。
助理服务器还可以被配置为在对应的一个或多个插件处从一个或多个外部服务接收输出数据作为执行该功能的结果,并将接收到的输出数据添加到语义原子。
助理服务器可以被配置为组合多个语义原子以创建单个合并的语义原子。
助理服务器可以被配置为将语义原子分离成多个语义原子,多个语义原子中的每一个包括原始语义原子中包含的信息的子集。
助理服务器可以被配置为生成一个或多个语义原子的一个或多个副本。
助理服务器还可以被配置为生成表示输入命令的语义原子的一个或多个副本,并且将语义原子的一个或多个副本提供给一个或多个插件以生成对应的外部服务的专用语言命令,以执行与输入命令对应的功能。
移动设备和助理服务器中的至少一个可以被配置为将一个或多个语义原子传输到至少一个其他移动设备。
传输到至少一个其他移动设备的一个或多个语义原子可以表示用户身份证书以授权在外部服务处的功能。
传输到至少一个其他移动设备的一个或多个语义原子表示从一个或多个外部服务接收的输出数据。
助理服务器还可以被配置为当该语义原子被确定为不再需要其与其他服务或移动设备的进一步信息传输时、在生成专有语言命令之后删除该语义原子。
助理服务器还可以被配置为在生成专有语言命令之后存储语义原子。
助理服务器可以向多个插件提供表示输入命令的语义原子,以在输入命令对应于在多个外部服务处要被执行的一个或多个功能时,为对应的多个外部服务中的每一个生成专有语言命令。
助理服务器可以存储证书,所述证书包括用于授权移动设备以执行针对一个或多个外部服务的输入命令的数据。
在移动设备处的输入命令将执行针对一个或多个外部服务的输入命令的权限扩展到至少一个其他移动设备。
在移动设备处的另一个输入命令可以撤消至少一个其他移动设备的、用于执行针对一个或多个外部服务的输入命令的权限。
将在一个或多个外部服务处执行输入命令的权限扩展到至少一个其他移动设备可以包括将与一个或多个外部服务相对应的证书和插件复制到由另一个移动设备访问的助理服务器。
用于将用于执行对一个或多个外部服务的输入命令的权限扩展到至少一个其他移动设备的输入命令可以包括:用于将权限限制到预定级别的控制的信息、其中控制被允许的预定位置、其中控制被允许的预定时间帧、以及在其中其他用户接近一个或多个外部服务的预定访问路径。
助理服务器可以在将输入命令转换为语义原子之前分析输入命令的上下文信息,以准确地确定要由输入命令执行的预期功能。
由助理服务器分析的上下文信息可以包括当命令被输入时移动设备的位置、当命令被输入时一天中的时间、特定个体的共存、用户的非故意的动作、以及由移动设备的用户采取的动作序列。
由用户采取的动作序列可以包括同时或顺序地做出的多个输入命令。
用户采取的动作序列可以包括其是无效的并且跟随有另一个输入命令的输入命令。
助理服务器可以包括多个服务器设备,多个服务器设备被配置为在彼此之间传输语义原子。
多个服务器设备可以包括被配置为与移动设备进行通信的主服务器设备,以及被配置为与主服务器设备通信的一个或多个从属服务器设备。
多个服务器设备可以将语义原子发送到多个移动设备并从多个移动设备接收语义原子。
多个服务器设备中的每一个可以与对应的移动设备通信。
多个服务器设备中的每一个可以与多个服务器设备中的至少一个其他服务器设备通信。
多个服务器设备中的一个或多个服务器设备存储关于虚拟助理系统的用户的数据。
存储关于虚拟助理系统的用户的数据的一个或多个服务器设备可以被配置为响应于来自用户的输入命令来与多个服务器设备断开连接。
服务器设备中的一个或多个服务器设备可以存储一个或多个插件,一个或多个插件中的每一个对应于不同的外部服务;以及服务器设备中的每一个服务器设备,在接收到表示对应于在外部服务处要被执行的功能的输入命令的语义原子时,可以将语义原子传输到存储与外部服务对应的插件的服务器设备。
本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种控制外部服务的方法来实现,所述方法包括在移动设备处接收输入命令,输入命令对应于在多个外部服务中的所选的外部服务处执行的功能,在移动设备处将输入命令转换成一个或多个语义原子,将一个或多个语义原子发送到被配置为管理语义原子的助理服务器,将一个或多个语义原子提供给与所选外部服务相对应的插件以生成用于所选外部服务的专有语言命令,以及通过将所获得的专有语言命令传输到所选外部服务来控制选择的外部服务来执行该功能。
该方法还可以包括将表示所接收的输出数据的一个或多个语义原子提供给对应于一个或多个其它选择的外部服务的一个或多个插件,以生成与所接收的输出数据相对应的专有语言命令,并且控制一个或更多其他选择的外部服务,以通过将专有语言命令传输到一个或多个其他所选择的外部服务来执行功能。
本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种包含用于执行控制外部服务的方法的计算机可读代码的非暂时性计算机可读介质来实现。
本发明总体发明构思的上述和/或其他特征和效用可以通过提供一种服务器设备来实现,该服务器设备包括用于存储可以在多个外部服务之间共享的语义原子的存储系统,该存储系统进一步包括用于在多个外部服务处执行功能的命令库;多个插件,每个插件对应于多个外部服务中相应的外部服务,每个插件被配置为在语义原子和对应的外部服务的相应的专有语言之间进行转换;以及,平台,被配置为通过使用在相应插件处转换的专有语言来在多个外部服务之间共享语义原子并与移动设备共享语义原子,其中执行功能的命令被最初输入并作为语义原子被传输到平台。
存储系统存储与所述多个外部服务中的相应外部服务对应的至少一个命令集,每个命令集包括用于在相应外部服务处用于执行对应功能的命令。
每个插件可以在服务器设备处被创建以包括从所存储的命令库中选择的命令集,该命令集与要在对应服务处执行的相关联的功能相对应。
平台可以被配置为无线地连接到多个移动设备以在其间共享信息并从其接收输入命令,被共享的信息和被接收的输入命令被提供作为语义原子。
本发明总体发明构思的前述和/或其他特征和效用可以通过提供一种移动设备来实现,该移动设备包括:传感器,用于接收在一个或多个外部服务处执行功能的输入命令;以及助理接口,用于将所接收的输入命令转换成语义原子并将语义原子发送到外部服务器以经由对应的插件来在一个或多个外部服务处执行功能,或者接收包括用于在一个或多个外部服务处直接执行功能的一个或多个外部服务的专有语言的语义原子。
附图说明
从结合附图的实施例的以下描述,本发明总体发明构思的这些和/或其它特征和效用将变得显而易见并且更容易理解,在附图中:
图1A是图示根据本发明总体发明构思的示例性实施例的虚拟助理系统的框图;
图1B是图示根据本发明总体发明构思的另一示例性实施例的虚拟助理系统的框图;
图2A是图示根据本发明总体发明构思的示例性实施例的移动设备之间的消息传输的框图;
图2B是图示根据本发明总体发明构思的示例性实施例的移动设备与一个或多个外部服务之间的消息传输的框图;
图3A是图示根据本发明总体发明构思的示例性实施例的合并语义原子的框图;
图3B是图示根据本发明总体发明构思的示例性实施例的嵌套语义原子的框图;
图4A是图示可与图1A-1B中图示的虚拟助理系统一起使用的移动电子设备的示例性实施例的框图;
图4B是图示移动电子设备的另一示例性实施例的框图;
图5A是图示图4A的移动电子设备的传感器部分的示例性实施例的框图;
图5B是图示可与图4A和4B的移动电子设备一起使用的外部输入传感器和设备的示例性实施例的框图;
图6A是图示可与图1A-1B中图示的虚拟助理系统一起使用的助理服务器的示例性实施例的框图;
图6B和6C是图示根据本发明总体发明构思的示例性实施例的助理服务器的多个实例的框图;
图7A和7B是图示根据本发明总体发明构思的示例性实施例的虚拟助理系统的命令处理的流程图;
图8是图示根据本发明总体发明构思的示例性实施例的虚拟助理系统的操作流程的框图;
图9是图示根据本发明总体发明构思的示例性实施例的使用语义原子在外部服务之间进行通信的处理的框图;
图10是图示根据本发明总体发明构思的示例性实施例的语义原子的跨用户共享的处理的框图;
图11图示了根据本发明总体发明构思的示例性实施例的将有意识输入命令自适应地添加到命令库的处理;
图12示出了根据本发明总体发明构思的示例性实施例的将无意识输入命令自适应地添加到命令库的处理;
图13图示了根据本发明总体发明构思的示例性实施例的将手势库中的多个手势输入合并(consolidating)为单个手势输入的处理;
图14是图示根据本发明总体发明构思的示例性实施例的对虚拟助理系统的条件访问的图;
图15是图示根据本发明总体发明构思的示例性实施例的虚拟助理系统的访问权限共享的图;
图16是图示根据本发明总体发明构思的示例性实施例的助理服务器之间的访问权限共享的图;
图17是图示根据本发明总体发明构思的示例性实施例的虚拟助理系统的权限共享和撤销的图;和
图18是图示根据本发明总体发明构思的示例性实施例的向虚拟助理系统大量添加服务的图。
具体实施方式
现在将详细参考本发明总体发明构思的各种示例性实施例,其示例在附图中被图示,其中相同的附图标记在整个发明中指代相同的元件。下面描述实施例以便参考附图来解释本发明总体发明构思。此外,在描述本发明总体发明构思的各种示例性实施例的同时,为了描述的简洁,将省略可能减小本发明总体发明构思的点的清晰度的相关公知功能或配置的详细描述。
应当理解,尽管术语“第一”和“第二”在本文中用于描述各种元件,但这些元件不应被这些术语限制。这些术语仅用于区分一个元件和另一个元件。因此,在不脱离本公开的教导的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。
诸如“至少一个”的表述,当在元素列表之前时,修改整个元素列表并且不修改列表的单个元素。
包括本文使用的描述性或技术术语的所有术语应被解释为具有对于本领域普通技术人员中的一个是显而易见的含义。然而,根据本领域普通技术人员中的一个的意图、案例先例或新技术的出现,术语可以具有不同的含义。同样,一些术语可以由申请人任意选择,在这种情况下,将在本发明的详细描述中详细描述所选择的术语的含义。因此,本文使用的术语必须基于术语的含义连同整个说明书中的描述来定义。
同样,当部件“包括”或“包含”元件时,除非有与之相反的特定描述,否则该部件还可以包括其他元件,而不排除其它元件。在下面的描述中,诸如“单元”和“模块”这样的术语指示处理至少一个功能或操作的单元,其中单元和块可以被实现为硬件或软件,或通过组合硬件和软件来体现。
在下文中,将参考附图详细描述本发明总体发明构思的一个或多个示例性实施例。
图1A图示了根据本发明总体发明构思的示例性实施例的虚拟助理系统10,并且图1B示出了根据本发明总体发明构思的另一示例性实施例的虚拟助理系统10。
根据图1A和1B的示例性实施例的虚拟助理系统10可以包括移动电子设备100、助理服务器200和外部服务300(或服务300a-n)。
虚拟助理系统10被配置为使得能够可动作的消息传输。本文所使用的“可动作消息传输”是指可以用于控制外部服务300a-n的消息传输。数据可以向一个用户(例如从移动设备100)向另一个用户以及向和从一个或多个外部服务300a-n两者消息传输。以这种方式的消息传输使得虚拟助理系统10的一个或多个用户能够以下面将要描述的方式向一个或多个外部服务300a-n发布命令。
如本文所使用的“消息传输”不同于“馈送”。“馈送”实际上是数据流,用户可以访问该数据流以被提供有该流中该时刻可用的数据。用户可以有助于数据流,例如通过提供数据,,但是存在有限的往复(back-and-forth)通信。另一方面,“消息传输”更具有交互性,其中一个或多个特定用户(或服务300)被定向以接收一个或多个特定选择的消息。目标用户(或服务300)可以例如用确认消息、从响应于消息所执行的动作的输出、附加信息等来对消息进行响应。换句话说,消息传输鼓励双向对话,而馈送大体上是单向通信。
移动电子设备100(以下称为“移动设备”)可以包括与因特网和其中移动设备100可被配置为进行通信的各种网络无线或有线连接的能力。更具体地,移动设备100可以使用Wi-Fi、Wi-Fi直连、近场通信(NFC)、蓝牙、射频识别(RFID)、以太网、火线、通用串行总线(USB)、高清晰度多媒体接口(HDMI)或任意其他类型的无线或有线连接来与助理服务器200和/或外部服务300a-n通信,但不限于此。移动设备100、助理服务器200和外部服务300之间的通信可以经由包括云计算应用、卫星、本地网络等的因特网执行。
移动设备100可以是任意类型的计算平台、包括智能电话、平板计算机、膝上型计算机、智能手表或可配戴设备,但不限于此,并且甚至可以包括非移动设备,诸如台式计算机或其他固定计算设备。下面关于图4A更详细地描述移动设备100。
移动设备100还可以包括助理接口110,其被专门创建为虚拟助理系统10的一部分以允许源自移动设备100或由移动设备100经由另一个传感器类型的设备获得的所有动作、命令等被通信到助理服务器200,反之亦然,以允许助理服务器200向提供助理接口110的移动设备100通信必要的信息。助理接口110还允许在一个或多个其他用户的对应移动设备100a-n或可以包含命令库的其他服务器上提供的其他助理接口110a-n进行通信,以在下文中更详细地描述。在移动设备100处提供的助理界面110可以在本文将要描述的其他操作中执行与“插件”或“连接器”等类似的操作,。以下关于图2A和图5A-5B更详细地描述助理接口110。助理接口110可以由程序设计者编程到移动设备100中,或者以可从外部源下载到用户的移动设备100的应用的形式提供。助理界面110也可以被称为“客户端”,但不限于此。用户可以通过编程或下载和安装助理接口110到移动设备100中来将他们的移动设备100连接到助理服务器200。
备选地,如图4B所图示的,助理接口110可以被提供在与助理服务器200相同的硬件安装上。换句话说,助理服务器200可以与助理接口110一起被提供在移动设备100处。在这种情况下,助理接口110不需要与后端型服务器系统进行无线通信,以便理解为了在服务300执行任意功能需要采取的动作。因此,如在图4B中图示的示例性实施例中,为了在下面更详细地讨论,虚拟助理系统10在如上所述的移动式设备100中可以是完全独立的。
助理服务器200可以是可以包括例如运行一个或多个应用程序(即,软件)的计算机、专用计算机(即,后端服务器)、云计算技术或多个计算机的服务器,该一个或多个应用程序允许经由因特网与移动设备100(与助理接口110一起)通信,并且还允许经由因特网与外部服务300a-n(例如,电视机、移动设备应用程序等)的无限范围进行通信。助理服务器200可以存储各种插件220a-n、以及命令输入,例如语言、图标、手势、传感器命令、程序、应用程序、命令和包括上述项目的任意组合的库,其可由运行客户端110的移动设备100使用。这里描述并在图1A、1B和6A中图示的助理服务器200具有开放式平台210,即设施,任意软件工程师(也称为软件或插件的开发人员)可以通过其在其中创建连接器(“插件”220)以对应于任意服务300。每个插件220对应于不同的外部服务300。助理服务器平台210和插件220可以一起包括在助理服务器200的一个硬件配置中。
几个助理服务器200可以彼此进行通信以共享功能,由此有效地操作为分散在多个其他服务器上单个助理服务器200。将在下文中参考图6B和6C更详细地描述的这种布置在本文中被称为“助理服务器的多个实例”。
外部服务300a-n对应于响应于来自一个或多个用户的命令输入而被控制(执行功能)的任意内容。外部服务300a-n可以包括例如诸如灯或门的设备,以及用户可能在其计算机或电话上具有的软件程序和应用程序或“应用”,但不限于此。外部服务300a-n可以包括经由本地网络或因特网或其他无线形式的通信可连接到移动设备100和/或助理服务器200的任意类型的设备或服务,如上所述。可以为其创建插件220的服务300a-n的示例包括家庭和办公系统(例如,安全、照明、恒温器)、汽车设备、应用、可配戴设备、在线服务、网页等。服务300a-n的列表在本文中仅被提供为示例,并且对数百万其他服务而言更加广泛。
服务300a-n可以经由因特网例如以及移动设备100a-n本身可访问。不能立即进行无线通信的服务300a-n(例如,灯、车库门等)也能够通过提供无线芯片或其他设备(诸如例如用于车库门的GoGogateTM),被因特网访问或另外能够与包括移动设备100和助理服务器200的其他装置/设备进行通信。通常将无法访问的服务300a-n可以通过将其连接到因特网可接入设备进行无线准备。这个概念已经得到认知,并且目前在涉及“物联网”(也称为loT)的讨论中也被提及。这样的服务300a-n也可以经由本地网络类型的通信来访问,使得移动设备100一旦由移动设备100获得包括必需证书(credential)的专有语言的情况下可以最终直接控制服务300a-n。
众所周知,世界各地使用的外部服务300a-n的每个在它们自己的专有语言中具有它们自己的对应的专有数据结构,以及控制/操作对应的外部服务300所需的特定证书。然而,插件220用作专有数据结构和语义语言之间的转换器(或解释器)。因此,每个插件220允许助理服务器200经由因特网、WiFi、蓝牙、WiFi直接、HDMI、USB、FireWire、NFC或其他方式以对应的专有语言与对应的外部服务300进行通信,以便执行用户的愿望(显式地或由虚拟助理系统10推断出)。插件220还可以向助理服务器200提供关于对应的外部服务300的任意专有语言信息,包括特定证书,这可能是是必需的以便允许对要被控制的期望的服务300的安全访问。
各种插件220a-n对应于各种相应的外部服务300a-n(包括例如设备、服务、程序和应用)。工程师/开发人员可以在助理服务器200处创建这样的插件220,以允许助理服务器200以其相应的专有语言与对应的外部服务300进行通信。工程师/开发人员可以基于外部服务300的规范为对应服务300创建插件220。因此,可以在助理服务器200处创建无限数量的插件220a-n,以允许一个或多个用户以上面描述的方式控制各种相应的服务300a-n。此外,尽管插件220a-n被图示为在助理服务器200处被编程/被存储,一个或多个插件220a-n也可以被存储在移动设备100处(例如,被编程/存储在助理接口110中),从而允许助理接口110直接与相应的外部服务300a-n进行通信。
插件220可以以任意编程语言被编程,例如C,Python、Java、C++、OCAML等,但不限于此。此外,插件220a-n还可以使用图形界面或网络形式进行编程,该图形界面或网页表单允许程序员做出可视数据(例如图标、图片、文本等)的选择,以便允许插件220a-n在完全不使用任意编程语言的情况下被生成(即,代码是从将视觉数据插入和/或并入到图形界面或网页表单中自动生成的)。
运行客户端110和助理服务器200的移动设备100的组合在本文中被称为“虚拟助理”,但不限于此。备选地,用户可能习惯于将移动设备100称为其自己的个人“虚拟助理”,因为消费者不必知道涉及包含移动设备100和助理服务器200的操作和通信的部件和过程。换句话说,用户只能感知到与移动设备100进行交互以控制外部服务300。
助理服务器200还具有与其相关联的指定存储装置250(图6A所图示)。存储装置250可以作为助理服务器200的一部分被包括在内(例如,如果助理服务器200是后端服务器),或者存储装置250可以是助理服务器200可以访问的外部存储器,诸如例如,外部服务器、远程存储设备或云存储服务。软件工程师可以从存储在指定存储装置250中的预定义的命令输入库中进行选择,以便定义命令集240(图6A所图示的),其允许用户经由助理服务200向每个外部服务300a-n呈现对应的命令。命令输入库可以包括可由移动设备100接收的任意输入。命令输入可以包括例如手势和图标,以及可听或语音命令(存储为可动作数据)以及存储在与助理服务器200相关联的存储装置250(下面关于图6A更详细地进行描述)中的其他形式的命令,来定义允许用户在移动设备100处的命令集240以经由助理服务器200将这些所选择的命令呈现给对应的外部服务300a-n。换句话说,存储装置250以可以由软件工程师选择的公共词汇格式的形式存储庞大的命令词汇,诸如例如手势、图标、语音数据等,以便创建与每个外部服务300a-n相关联的单独的命令集240a-n。选择这些命令来创建命令集240a-n以对应于可以在外部服务300a-n的每个处执行的相应的功能。存储在存储装置250中的命令也可以在无限数量的外部服务300a-n和移动设备100a-n之间共享。如本文所使用的,“命令输入”或“命令”可以包括用于控制虚拟助理系统10的动作的任意形式的输入。应当理解,在下面的示例中使用的特定命令输入可以被其他命令输入替代。例如,如果描述手势,则取决于本发明总体发明构思的特定示例性实施例,手势的该命令输入可以被例如触摸所显示的图标的命令输入替代。
如下面关于图1B所描述的,在某些预定情况下,在本地控制模式中来自定义的命令集240的这些特定命令可以通过助理接口110直接从移动设备100呈现给对应的外部服务300。助理服务器200还在该本地模式下提供帮助,如下文将更详细地描述的。
如上面所指出的,插件开发人员的命令的选择可以被分组在一起,并被存储在存储装置250中,作为单独的命令集240a-n,其可以是特定于对应的服务300a-n(在图6A中所图示的)。换句话说,存储装置250可以配置有大量的手势、图标、语音数据和以公共词汇格式提供的其他类型命令的词汇,其可以在连接到助理服务器200的所有服务300a-n之间共享。当创建插件220时软件工程师可以从这个公共的命令词汇中选择,以便创建与对应的外部服务300可以执行的各种功能或操作相关联的命令集240。命令的这种公共词汇格式将是下面被称为“语义语言”的语言的一部分,其中语义语言用于表示对象和概念,列表可以包括但不限于命令、发布命令的权限、人和对象和服务(例如,歌曲、电影、餐馆、天气报告、Wi-Fi访问等)。
在助理服务器200处使用的语义语言允许提供在移动设备100内的助理界面110,将从移动设备100(以原始输入形式)向助理服务器200传输许多手势、图标触摸、语音数据等,因为助理接口110将所接收的手势、图标触摸、语音数据等转换为该创建的语义语言,以便经由助理服务器200内的单一语言来传输与其间的不同服务300a-n相关的所有类型的信息。
语义语言允许助理服务器200运行为各种服务300a-n之间的通用转换器。更具体地,语义语言可以用于助理服务器平台210和每个插件220a-n之间的通信,用于在助理服务器200处为其创建插件220的所有服务300a-n。
各种实体和概念可以被表示为语义语言中的数据单位。这些数据单位在本文中被称为“语义原子”或“原子”1000。语义原子1000可以表示世界上独立于任意特定的外部服务300的任意东西。语义原子1000可以表示数据(例如名称或时间),并且也可能表示抽象概念和其他信息。例如,语义原子1000可以表示命令、人、业务、电影、位置、WiFi接入点、歌曲、社交媒体信息、灯泡、汽车、GPS设备、虚拟助理等。
虚拟助理系统10使用这些语义原子1000来允许各种服务300a-n彼此无缝地通信,以及与助理服务器200和移动设备100(和其他移动设备100a-n)通信。与插件220a-n一起操作的各种服务300a-n可以利用语义原子1000a-n中的一个或多个来执行它们各自的功能。
语义原子1000的系统被保持在助理服务器200中。例如命令输入的确切定义可以随着时间而演进,包括开放开发人员社区的参与。当应用于通过社区参与演进的分类法时,具有开放开发人员社区的演进是被称为“民俗学(Folksonomy)”的方法。
语义原子1000的应用以及可由语义原子1000表示的事物的数量是无穷大的。语义原子1000可以以各种格式表示,包括文本、YAML、XML和其他此类语言。这些格式可以对应于语义语言,其如上所述是标准化语言或表示语义原子1000的语言集合。语义原子1000可以存储在移动设备100中(例如,在图4A所图示的存储单元140中)或助理服务器200(例如,在图6A所图示的存储装置250中)。一个或多个语义原子1000甚至可以被单独存储并从虚拟助理系统10(例如,在诸如USB拇指驱动器的可移动存储设备上)移除,并且在将来的日期返回到虚拟助理系统10,虚拟助理系统10此时将立即理解语义原子1000。
当虚拟助理系统10接收来自人或来自其所集成的系统(服务300)的输入时,虚拟助理系统10可以将输入转换成一个或多个语义原子1000。如果输入是从用户(在移动设备100处)接收的,则该输入在助理接口110处将输入转换成一个或多个语义原子1000。如果从外部服务300接收的,则该输入在对应插件220处将输入转换成一个或多个语义原子1000。每个插件220包括在语义原子1000和对应服务300的专有语言之间进行转换的指令。因此,对于虚拟助理系统10知道如何与(经由插件220)交互的每个服务300,虚拟助理系统10知道如何从语义原子1000语言转换为由该服务300使用的数据结构(专有语言),反之亦然。与语义原子1000一起使用的这些插件220允许容易地跨越大量不同的服务300a-n的动作的编排。
助理服务器200可以包括由用户预先确定的任意类型的主/从布置。这可以由最终用户预先确定,或者正在管理助理服务器200的人也可以以预定的方式设置助理服务器200的布置。助理服务器200还可以连接到任意数量的移动设备100a-n,并且因此可以促进这些移动设备100a-n之间的通信,如下文将更详细地描述。
如上所述,存储装置250可以存储各种语言、图标、手势、传感器命令、关键笔划、语音数据命令、程序、应用程序等,以及包括上述项目和使用语义原子1000的语义语言中的命令的任意组合的库。这些项目和命令与可由用户通过在移动设备100处输入这样的命令来指示的任意命令相关联,然后在通过助理接口110转换成语义原子1000(语义语言)后,将该输入命令经由助理接口110发送到助理服务器200。备选地,这些项目或命令可以由移动设备100经由另一个源(诸如例如将在下面参考图4A、5A-5B和8更详细地描述的传感器160)获得,然后在由助理接口110被转换成语义原子1000之后经由助理接口110呈现给助理服务器200。
如上面所指出的,助理接口110首先将输入命令转换成表示输入命令的一个或多个语义原子1000。在本发明总体发明构思的示例性实施例中,生成单个原子1000以表示单个输入命令。然而,助理接口110可以代替生成多个语义原子1000,例如,如果该命令被发送给多个助理服务器200a-n或多个服务300a-n。由助理接口110产生的原子1000本身也可以包括其他原子1000,例如,如果用户正在向助理服务器200转发具有在对应服务300播放歌曲的指令的歌曲(由原子1000表示)。
一旦将对应于该命令的语义原子1000提供给助理服务器200,则原子1000可以在对应的插件220处被转换成适当的专有语言。由插件220所提供的专有语言命令包含关于服务300的特定证书中,诸如例如服务300被定位的位置,服务300的IP地址,和/或允许虚拟助理系统10直接控制所需服务300可能需要的任意其他信息。因此,可以由工程师创建每个插件220以包含所需的对应服务300的特定证书,以便与服务300通信并操作服务300。
换句话说,在移动设备100处或通过移动设备100由另一传感器类型设备输入的任意类型的手势、图标触摸、语音、键盘输入或其他输入命令(原始输入命令)可以是首先经由助理界面110转换成一个或多个语义原子1000。一旦在助理服务器200中识别出对应于输入命令的语义原子1000,则它们可以在为对应的外部服务300创建的每个插件220处转换成由对应的外部服务300使用的专有语言(包括任意必需的证书)。使用输入命令的专有语言格式(包括任意必需的证书),期望被执行的预期功能/操作在对应的外部服务300处可以被执行。
如本文所描述的,语义原子1000可以在插件220处转换为专有语言。当语义原子1000在插件220处被“转化”或“转换(translate)”时,一个或多个专有语言命令在插件220处生成,并且原始语义原子1000可以被丢弃或保持。插件220可以根据即时情况(例如,原子1000的内容、在服务300处将被执行的功能的类型等)被丢弃或保存原子1000。管理原子1000的规则(包括丢弃还是保持原子1000)被保存在插件220处。
当确定原始原子1000不再需要时,可以丢弃原子1000。例如,如果原子1000表示打开灯(服务300)的命令,则在对应的插件220已经发送专用语言命令到灯以打开灯之后,不需要保留原始原子1000。如果原始语义原子1000被丢弃,则插件220可以例如基于从服务300接收的输出数据来生成新的语义原子1000。在以上打开灯的示例中,如果插件220丢弃原始语义原子1000,则插件220可以生成表示例如灯开启之后的灯的颜色的新的原子1000。
备选地,可以保持原子1000,使得可以向其添加进一步的信息。例如,如果表示一个人的原子1000被发送到FacebookTM插件以在FacebookTM中查找该人,那么搜索结果(例如,该人的FacebookTM简档)可能在插件220处被转换为语义语言并被加入到表示该人的原始语义原子1000中。以这种方式向原子添加信息在本文中可以称为“富集(enriching)”原子。
如图所示,例如,在图1A中,助理服务器200可以通过在插件220将以语义原子1000的形式表达的所接收的命令转换成对应专有语言来直接与外部服务300a-n进行通信。在该示例性实施例中,移动设备100被配置为虚拟助理系统10的一部分,并且通过助理接口110与助理服务器200进行通信。助理服务器200可以通过因特网或如上所述的助理服务器200与外部服务300a-n共享的任意其他类型的无线连接,来控制(经由插件220a-n)在虚拟助理系统10内包括的任意数量的外部服务300a-n。此外,助理服务器200可以使用语义原子1000作为公共语言来提供包括在虚拟助理系统10中的任意数量的外部服务300a-n中的每一个之间的交互(共享信息)。如上所述,这些外部服务300a-n可以经由因特网或其他类型的无线连接来连接到助理服务器200。
备选地,助理接口110可以直接在服务300a-n处执行与在移动设备100处提供的相应输入命令相关联的功能。图1B是图示本发明总的发明构思的示例性实施例的框图概念。如图1B所图示的,移动设备100被配置为虚拟助理系统10的一部分,并且与图1A的示例性实施例类似,通过助理接口110与助理服务器200进行通信。然而,在该示例性实施例中,当确定移动设备100在期望被控制的特定外部服务300a-n的特定范围内或者在特定服务300a-n的公共网络内时,助理服务器200可以通信回移动设备100,以允许移动设备100执行特定外部服务300a-n的直接控制,类似于遥控设备将执行这些控制(即,电视机和对应的遥控设备)的方式。
更具体地,如果在移动设备100和要控制的期望外部服务300之间建立基于位置的通信服务(例如,NFC、蓝牙等),则该“建立的接近”通信信息可以通过助理接口110提供给助理服务器200。然后,助理服务器200可以直接向移动设备100提供期望的外部服务300的控制访问。在这种情况下,对应于特定服务300的插件220可以首先将必要的专有语言信息嵌入到一个或多个语义原子1000中,使得助理服务器200可以通过助理接口110向移动设备100提供该信息。当在助理接口110处接收包含专有语言信息的一个或多个语义原子1000,助理接口110可以从原子1000提取移动设备100可以用于控制服务300b的专有语言信息。因此,移动设备100可以以与为服务300专门设计的手持式遥控器控制服务300相同的方式直接控制期望的外部服务300。
下面参考图7A和7B提供虚拟助理系统10的控制过程的更详细的概述。
应当注意,无限数量的外部服务300a-n可以由虚拟助理系统10访问和控制,并且任意数量的移动设备100a-n可以被包括在虚拟助理系统10内以访问并控制无限数量的外部服务300a-n。服务300a-n的访问也可以在移动设备100之间共享(参见图1A中的虚线“共享访问”),如下文将更详细地描述。
如上面所指出的,在助理服务器200内创建的语义语言(以语义原子1000的形式)用作通用语言,以允许在通过助理服务器200经由用于每个服务300a-n的相应插件220a-n在外部服务300a-n之间、在移动设备100和助理服务器200之间、在移动设备100和任意无限数量的外部服务300a-n之间、以及移动设备100a-n之间的信息的通信和交换。命令输入列表的示例可以包括但不限于:可以由连接到移动设备100或者作为移动设备100的一部分集成的麦克风(诸如,例如智能电话或平板计算机)或其他计算硬件捕获的语音命令。手势可以由例如相机、运动检测器、接近检测器、红外传感器、温度传感器、全球定位设备或能够捕获关于用户移动的信息的任意其他装置捕获,其进而连接到移动设备或其他计算设备。手势也可以通过使用加速度计硬件或其它移动跟踪硬件、或者甚至眼睛跟踪、唇跟踪或面部跟踪系统来检测移动的可配戴、手持或其他设备来捕获。图标可以用手触摸或经由在触敏设备的触控笔(例如移动设备或其他触摸屏的触控笔)触摸或点击,或者通过将鼠标或滚球放置在图标顶部的方式进行点击。此外,用户可能单独使用语音、单独使用手势或单独的图标,或其任意组合来使助理执行这些任务。例如,用户可以在助理者可以访问的相机处向上手势来指示由助理控制的恒温器应该提高温度。备选地,例如,该手势可以依靠臂带或其他可配戴设备来检测。
在创建用于插件220的命令集时,工程师/开发人员可以从如由虚拟助理系统10所理解的预定义的命令输入相对应的命令输入中选择。例如,如果一个闭合的拳头和两个闭合的拳头是存储在虚拟助理系统10中的预定义语义语言的部分,工程师/开发人员可以选择关闭拳头的手势来表示门的锁定并且关闭两个拳头以表示接合死栓(deadbolt)。
作为另一示例,用户可以将照片保持到相机(与用户的移动设备100相关联),并且通过挥舞手势指示助理服务器200经由已经为其创建了插件220的面部识别程序(服务300,例如“应用程序”)来标识图片中的人。以前在存储在存储装置250中的手势的语义语言中已经提供了挥动图片的特定手势连同使用这样的面部识别程序。然后,可以由工程师选择该手势,同时为面部识别类型服务300创建插件220。
由于在助理服务器200处以语义语言编程的命令库在跨越无数(数千甚至数百万)数量的插件220中是恒定的,所以类似的命令可能针对类似的概念出现。作为示例,可以分别为公共广场中的门和广告牌分别创建两个单独的插件220,并且存储在助理服务器200内。例如,如果关闭拳头与当天关门(shutting down)或关闭(closing up)的概念相关联,则用户可以利用关闭拳头的相同手势来表示锁定门以及关闭广告牌,取决于用户是否希望控制门或广告牌。
由于为门和广告牌两者(以及无限数量的其他设备、服务、程序、应用程序等)都创建了插件220,门和广告牌都能够理解由用户通过移动设备100发起的命令,因为助理服务器200在移动设备100与门和广告牌之间充当转换器或解释器(经由语义原子1000,基于存储在助理服务器200中的手势库、图标和其他命令输入)。更具体地,助理服务器200通过使用语义原子1000形式的语义语言在无限数量的外部服务300a-n等与移动设备100之间充当转换器。如上面所指出的,语义语言(所有设备、服务等之间的共用词汇)在助理服务器200内被特别地创建,以允许助理服务器平台210(参见图1A)和其中在助理服务器200处创建插件220的所有相应的服务300a-n的每个插件220a-n之间、以及在助理服务器平台210和助理接口110之间的通信。
作为语义原子1000的功能的示例,当虚拟助理系统10搜索用于人的社交网络(服务300a)并响应于搜索接收到人的列表时,虚拟助理系统10(具体地,对应于服务300a的插件220a)可以将所接收的人员列表转换成表示那些人的语义原子1000。这些语义原子1000可以向用户(经由助理接口110)示出,和/或原子1000可以被提供给一个或多个其他服务300b-n。备选地或另外地,原子1000可以被发送到助理服务器200的其他用户,或者使用与助理服务器200通信的一个或多个单独的助理服务器200a-n发送到其他用户。后一种情况的示例是其中存在助理服务器200的多个实例,如上所述并在下面参考图6B和6C更详细地描述。
作为另一示例,用户可以在FacebookTM上跟随艺术家。用户可以FacebookTM接收从表示艺术家的语义原子1000(由对应的插件220从FacebookTM专有语言转换)。然后,用户可以采用表示艺术家的语义原子1000(在单个命令中,由例如触摸、语音、手势或另一个命令输入发出),然后从SpotifyTM、RdioTM和YoutubeTM请求该艺术家的哪些歌曲可用。在该示例中发生的是,已经检索到表示艺术家的语义原子1000,用户执行针对“搜索”命令的命令输入(图标触摸、手势等)。该命令输入可以是由虚拟助理系统10使用的用于所有音乐/内容服务的相同命令输入。然后,表示艺术家的语义原子1000被转换成合适的格式,即通过对应的插件220a-n所选的音乐/内容服务300a-n(该示例中为SpotifyTM、RdioTM和YoutubeTM)的对应专有语言,并与“搜索”命令一起提供给所选择的音乐/内容服务300a-n,其也由对应的插件220a-n被转换为的对应的专有语言。然后可以在每个所选择的音乐/内容服务中进行对艺术家的搜索。在该示例中,用户仅需要在FacebookTM上的问题中找到相关的艺术家,并且执行单个命令输入以在多个服务300a-n中进行多个搜索。在执行搜索之后,结果可以由用于助理服务器200的所有服务300a-n(经由插件220a-n)返回为表示由被发现的该艺术家的一首或多首歌曲的一个或多个语义原子1000。然后可以将这些语义原子1000发送到其他服务300a-n。例如,可以将表示歌曲的原子1000发送到要播放的音乐系统(例如SonosTM)。换句话说,服务300a(在此示例中为FacebookTM)可以将数据通信到由助理服务器200和对应的插件220管理的其他服务300b-n(SpotifyTM,RdioTM和YoutubeTM),其可以进而与其他服务300b-n通信,每个服务300a以他们相应的专有语言进行通信。
在将语义原子1000发送到多个插件220的上述示例中,原子1000可以被复制并同时发送到多个插件220(上述示例中的SpotifyTM、RdioTM和YoutubeTM)。备选地,原子1000可以被发送到单个统一插件,在本文中称为“配方插件(recipe plugin)”或“超级插件”,其被特别配置为与几个其他相关插件220交互。在上述示例中,从FacebookTM收到的原子1000可以发送到配置为与音乐查找服务(上述示例中的SpotifyTM、RdioTM和YoutubeTM)进行通信的这样的超级插件。然后,超级插件将处理复制原子1000并将原子1000的副本发送到对应于所需服务的各种插件220。超级插件还接收从这些各种插件220返回的原子1000,并且可以根据存储在超级插件内的用户的命令和规则来管理这些原子1000。例如,超级插件可以向用户呈现原子1000,将原子1000聚合成单个原子1000,或者通过向其添加从其它插件220接收的原子1000来丰富原始原子1000(表示从FacebookTM接收的信息)。以这种方式使用超级插件可以使用户更简单地控制许多服务300:用户仅感知与一个应用(超级插件)交互,而实际上用户的命令正被用于通过超级插件来控制任意数量的相关服务300。
将原子1000发送到服务300a-n(经由对应的插件220a-n)在本文中也可以被描述为“投掷(flinging)”或“抛出(tossing)”原子1000。将原子1000发送到服务300a-n可以涉及“投掷”或“抛出”的命令输入手势,其中用户手势朝向预期服务300a(例如,音乐播放器),以命令虚拟助理系统10将一个或多个原子1000发送到对应的插件220a以产生用于发送到该服务300a的一个或多个更多专有语言命令。因此,命令输入可以比常规操纵按钮的方法更直观地执行。例如,用户可以简单地向与所选择的原子1000(对应于例如一个或多个歌曲)有关的音乐播放器作出手势,并且虚拟助理系统10可以将命令输入理解为“在手势指向的音乐播放器上播放在该语义原子1000中表示的歌曲”。这些直观的命令输入可以由插件开发人员预编程,或者可以通过虚拟助理系统10自身经由自适应学习来开发,这在下面详细描述。
语义原子1000也可以放入集合中。例如,一群朋友可以在一个特定的晚上合作决定作为一个小组要看哪个电影和在哪个餐厅吃饭。然后,对应于虚拟助理系统10的一组用户的朋友可以在他们之间传递电影和餐馆集合。该集合可以由在用户之间传递的一个或多个语义原子1000来表示。该集合本身可以是单个语义原子1000,其包括表示单个项目(例如餐馆和电影)的其他语义原子1000。每个单独用户可能有权从集合中移除项目并将项目添加到集合中。作为构建和修改此集合的一部分,每个用户都可以使用他们喜欢的任意底层服务300a-n。例如,一个用户可能会使用IMDBTM来选择电影,而另一个用户可能会使用Rotten TomatoesTM用于相同的目的。在这个示例中,用户最终同意电影集合。在这一点上,电影可以从商定的列表中简单地选择,并且可以通过电影票服务(例如FandangoTM)快速购买该电影的票。在该示例中,在从用户接收到“购买”命令输入时,助理服务器200可将单个原子1000(对应于所选择的电影)与表示商定的电影列表的原子1000分离,并利用命令将所选择的电影的原子1000发送到所选择的电影票服务以购买与该电影相对应的一张或多张票。用于电影票服务的插件220知道如何读取和使用与所选择的电影对应的语义原子1000。更具体地,用于电影票服务的插件220包括指示助理服务器200如何将表示所选的电影的原子1000转换成票服务的专有语言以及如何根据“购买”命令购买对应的票的指令。
类似地,可以复制原子1000。例如,表示命令的单个语义原子1000可以被复制,使得表示命令的语义原子1000a-n可以被同时呈现给多个插件220a-n,以在多个服务300a-n处执行命令。以这种方式复制原子1000可以由助理服务器200执行,或者通过例如与几个其他插件220通信的超级插件来执行,如上面所描述的。在上述决定电影的示例中,单个用户可以自己购买商定的电影的票,并且可以将交易中涉及的一个或多个原子1000的副本发送给其他用户以类似地购买票。以这种方式复制的原子1000可以表示例如电影、购买票的动作(例如,指定特定的票服务)。以这种方式复制交易的行为可以被称为“模拟交易”,并且允许多个用户执行相同的动作,例如购买特定电影的票。模拟交易允许不同的用户使用不同的支付证书。备选地,用于一笔交易的支付证书也可以被模仿(表示为语义原子1000,其副本被发送给其他用户)。如果例如第一用户同意支付其他用户的票,支付证书可能会模仿。
用户可以以其中用户彼此不断对话的消息传输或“聊天”格式彼此共享原子1000。用户可以获得由各种服务300a-n生成的原子1000,并通过消息传输与其他用户共享获得的原子1000。一个用户可以向一个或多个其他用户发送或“消息传输”一个或多个原子1000,然后他们可以选择这些一个或多个原子1000,并将一个或多个原子1000与一个或多个服务300a-n一起使用。例如,第一用户可以向第二用户发送对应于电影的原子1000。第二用户可以使用接收到的原子1000来查找附近的和播放电影的剧院,例如通过将所接收的原子1000发送到搜索服务。第二用户可以接收该搜索的结果,其表示为包括例如电影时间和位置的一个或多个附加原子1000。然后,第二用户可以与第一用户共享这些一个或多个所接收的原子1000以作为聊天会话的一部分。备选地,第二用户可以将一个或多个所接收的原子1000消息传输给一个或多个其他用户,作为不包括第一用户的新聊天,或作为包括第一用户的原始聊天的一部分。也可以定义其中包括用户集合的组。
定义组中的任意用户可以将原子1000消息传输或“抛出(tossed)”到组中的用户之间的公共聊天中。任意原子1000可以从两个以上用户之间的一个聊天中取出,并被两个聊天中共同的用户“抛出”到不同的用户之间的聊天中。这种情况被图示在图2A中。图2A图示了具有对应的移动设备100a-e的5个用户。应当理解,在不脱离本发明总体发明构思的情况下,可以包括任意数量的用户和移动设备100a-n。在图2A中,有两个聊天:一个在移动设备100a、100b和100c的用户之间,另一个在移动设备100a、100d和100e的用户之间。由于移动设备100a的用户是两个聊天的一部分,所以该用户可以将语义原子1000从例如移动设备100a、100d和100e之间的聊天“抛出”到移动设备100a、100b和100c之间的聊天。
如图2B所图示的,服务300a-n还可以通过相应的插件220a-n“参与”聊天,以与用户相似的方式接收和呈现原子1000到聊天。如图2B所示,与dropcam 300a对应的dropcam插件220a正在参与与多个用户(对应于移动设备100a-c)的聊天。应当理解,在不脱离本发明总体发明构思的情况下,任意数量的插件220a-n、对应的服务300a-n和移动设备100a-n可以以这种方式被包括在聊天中。此外,尽管插件220a被图示为存储在图2B中的助理服务器200中,插件220a可以存储在其他地方,例如,在参与聊天的另一个移动设备100上。图2B中的dropcam插件220a可以呈现例如该聊天中的图片原子1000,表示由其相关联的dropcam300a拍摄的图片。聊天中的所有用户将从dropcam 300a接收原子1000,并且聊天中的任意用户然后可以取得该原子1000并将其发送到其他用户,包括不包括插件220a的另一个聊天中的用户。
作为另一示例,商业服务可以监视地理区域中的商店中可用的交易,并且可能基于这些用户的地理位置,将表示这些交易的原子1000抛出到用户或抛入若干用户的聊天。如果原子1000是人类可读的,例如,它们可以包括指示它们是来自零售商的交易的标题,用户可以理解接收的原子1000的含义,而不需要首先将原子1000发送到一个或多个服务300a-n。聊天中的用户也可以在同一个聊天中讨论收到的交易,并将表示交易的原子1000消息传输给彼此,或者消息传送给不同的聊天中的其他用户。
当服务300“参与”聊天时,那些服务300也可以从用户接收一个或多个原子1000。在上述用户同意电影列表和购买一个商定的电影的票的示例中,电影票服务可以参与用户之间的聊天,在这种情况下,聊天中的任意用户可以发送表示所选择的电影的原子1000到聊天的上下文中的票务服务300。将电影原子1000发送到票服务300的动作将由助理服务器200解释为由原子1000表示的购买电影票的命令,并且通过票务服务的插件220将对应的命令发送到票服务300。在图2B所图示的dropcam 300a的示例中,聊天中的用户可以通过聊天向dropcam插件220a发送命令,并且这些命令可以被转换成dropcam的专有语言,并且在dropcam 300A处执行。
聊天会话中的一个或多个用户还可以基于用户访问这些插件220a-n的权限,邀请从聊天会话中的其他用户不可见的插件220参与聊天会话。基本上,用户可以将一个或多个插件220a-n引入到聊天会话中并利用这些插件220a-n,而不将其授权给聊天会话的其他参与者,或者甚至允许聊天会话中的其他参与者知道插件的参与。在这种情况下,插件220a-n可以包括虚拟助理系统10的用户的单独助理界面110。用户还可以根据需要与聊天会话中的其他参与者共享他们的插件220a-n。通过聊天会话与其他用户共享插件220a-n可以是选择性的,即插件220a-n可以与消息传输会话中的所有用户共享,或者仅与消息传输会话中的用户的子集共享,如由拥有插件220a-n的用户所期望的。
用户还可以通过消息传输来协作以组装数据。作为示例,一个用户可以获得表示比萨的订购的一个或多个语义原子1000,并将原子1000发送给另一个用户,其然后将上层配料(toppings)添加比萨饼,实际上将额外的信息添加到表示比萨的原子1000。原子1000可以以这种方式在多个用户之间被消息传输,每个用户修改原子1000(例如通过添加或去除上层配料)直到用户准备好订购。此时,用户中的一个可以将表示比萨订单的原子1000发送到服务300(例如Pizza HutTM),以执行对应的操作,在这种情况下订购比萨饼。作为被消息传送给Pizza HutTM的一部分,表示披萨的语义原子1000被发送到助理服务器200,助理服务器200反过来又将数据发送到Pizza HutTM插件220,以在Pizza HutTM专有语言中生成对应的命令,其随后被发送至Pizza HutTM以订购比萨饼。值得注意的是,这些操作可以自动发生,而不需要直接的用户交互。在用户的感觉中,他们之间消息传送关于买什么种类的比萨,以及然后将他们商定的比萨饼订购消息传输给Pizza HutTM
类似地,零售商可以向用户用消息传输报价,例如以折扣购买产品的报价。该报价将被表示为由服务300(在该示例中为零售商)发送到聊天中的一个或多个语义原子1000。用户可能能够将表示该报价的原子1000发送给另一个用户,并且该另一用户可以通过使用要兑换的命令将原子发送给零售商的插件220来兑换该报价。这种兑换可以根据相关背景进行。是否已经从另一用户接收到该报价可能是影响报价的上下文,使得报价随着从一个用户消息传输到另一个用户而改变。例如,如果从零售商到第一用户的初始报价是以20%折扣的价格购买一种软饮料,那么同样的报价在被消息传输到另一个用户后可能会允许另一个用户以50%折扣购买一个软饮料。备选地,在被消息传送到另一个用户之后,该报价可以允许另一个用户从同一零售商拥有的咖啡店中以50%的折扣购买咖啡。换句话说,数据被消息传输的次数也可以被包括在语义原子中,以被对应的插件220用作作为命令进行解释的上下文。原子(1000)的传输(对应于报价)也可以是可跟踪的。与其许多朋友共享报价,然后兑换报价的用户可能会基于其朋友的共享和使用行为来奖励另一个提价,例如免费商品。
跟踪表示报价的原子1000已经在用户之间被消息传输的次数的数量也可以相当广泛地用于游戏商业。例如,成功地将许多朋友引用到新服务的用户可以基于该用户的朋友的共享和使用行为来获得该服务的精英状态。在所有这些情况下,相同的数据(报价)正在不同的上下文中并且可能在不同的插件220a-n之间进行进行不同的转换。
这种广告也可以更开放。例如,零售商可能会宣布50个单位的物品是免费可用的。如果报价仍然可用(在这个示例中,如果该商品的50个单位中的任意一个仍然可用),那么一个或多个用户可以从零售商插件220请求并接收一个或多个对应于报价的原子1000(其也可以是通过聊天可访问的)。那么一个或多个用户可以能够将这些一个或多个原子1000(对应于报价以及如上所述的兑换报价的权限)传输给其他用户。接收和兑换报价可能需要接收用户也可以安装或与属于发行零售商的插件220通信,或者,备选地,可能不需要这样的安装和/或通信。根据本文所描述的本发明总体发明构思的消息传输然后将变成由零售商利用的通过以具有可转让报价的高影响力的个人为目标来接触许多潜在客户并产生“口碑(buzz)”的方式。
语义原子1000在于许多优点中的两个优点是它们消除一次又一次地输入数据的需要,并且可以通过创建共同语言来实现跨越非常不同系统的数据的快速重用。语义原子1000可以表示人可以理解的对象和概念,使得原子1000自己可能对人有意义。因此,当检查时,语义原子1000几乎可以完全是人可理解的。例如,对应于电影的语义原子1000可以包含关于电影的标题、概要、演员、导演、语言、评级、类型、运行时间、发布日期及其可用格式的信息。该信息可以直接呈现给用户。也就是说,关于项目(在这种情况下为电影)的信息可以是用户可以理解的格式,例如文本。以相同的方式,语义集合(对应于语义原子1000的集合)也可以是人可见的。然而,尽管上文中,语义原子1000中可能存在不是人可理解的其他信息,即使语义原子1000仍然携带意义,但在可能存在。例如,对应于人的语义原子1000可以包含数学地代表该人脸部的特征值以便使该人对照相机可识别。在这个示例中,尽管特征值仍然包含有意义的信息(在这个示例中,允许相机可视化该人的信息),人们看到这些特征值将不能直接可视化人。此外,不一定包含语义原子1000中包含的所有信息。有时,只有可用数据的子集被包括在原子1000中。例如,电影语义原子1000可能只包含电影的名字而不是电影的概要。
语义原子1000也可以被组合或被合并。图3A中图示了原子1000的这种使用的示例性实施例。如在那里所图示的,当服务300a,诸如例如,FacebookTM被访问时,服务300a可以生成(通过其对应的插件220a)对应于例如人的语义原子1000a1,语义原子1000a1包括关于该人的信息(例如姓名,图片,生日等)。当不同的服务300b(例如,电子邮件服务)被访问时,该新服务300b可以生成(通过其对应的插件220b)对应于同一个人的语义原子1000a2,但是用不同信息(例如,e-邮件地址、电话号码等)。虚拟助理系统10(例如,助理服务器200)可以将与对应于该人但包括关于该人不同信息的这两个原子1000a1和1000a2合并到表示该人的单个原子1000a3中。原子1000的这种组合可以基于在助理服务器200中保持的规则(例如,在助理服务器200处存储的一个或多个插件220)来被执行。任意数量的语义原子1000a-n可以以这种方式组合。另外,尽管图3A仅为了方便图示了两个外部服务300a和300b,但是应当理解,任意数量的外部服务300a-n和对应的插件220a-n可以以这种方式被使用以组合语义原子1000。此外虽然图3A示出了存储在助理服务器200中的插件220a-n,并且助理服务器200组合原子1000a-n(如图3A所图示的原子1000a1和1000a2),插件220a-n可以备选地被存储在移动设备100处,其也可以组合原子1000a-n。此外,如果存在助理服务器200的多个实例,则不同的独立实例200a-n可以协作地合并语义原子1000a-n以创建具有更丰富信息或更适合特定任务的语义原子1000。
语义原子1000也可以根据在插件220中保持的规则进行嵌套。在如图3B所图示的本发明总体发明构思的示例性实施例中,语义原子1000a表示例如音乐播放列表。本播放列表中的每首歌曲本身可以是包含在表示播放列表的语义原子1000a中的原子1000b-n。在图3B中,为了方便起见,图示了三个嵌套原子1000b,1000c和1000d,但是应当理解,在不脱离本发明总体发明构思的情况下,可以以这种方式嵌套任意数量的原子1000b-n。此外,每个嵌套原子1000还可以包括其它嵌套原子1000。如图3B所示,例如,原子1000e和1000f可以嵌套在原子1000b内。如果原子1000b对应于歌曲,原子1000e和1000f可以对应于,例如,例如该歌曲的歌词和价格。
通过组合或嵌套原子1000a-n产生的“更大的”原子1000也可以在人和服务300之间交换,从而大大简化了一个用户可能希望一次向另一用户消息传送多个项目的聊天。例如,用户A可以向用户B发送图3B所示的播放列表原子1000a。用户B可以选择嵌套在播放列表原子1000a(例如,歌曲原子1000b)内的歌曲原子之一,并将所选择的歌曲原子发送到用户C,然后用户C又转而将歌曲原子添加到不同的播放列表原子。
语义原子1000也可以表示动作。例如,用户可以向另一用户发送位置请求。该位置请求可能包含各种信息,包括所需的时间、需要的理由和收到后采取的动作。另一个原子1000可以表示离开家的行为。这个“离开家”原子1000可以被发送到另一个用户,例如,使其他用户能够使用原子1000来采取一组后续动作。例如,如果出租的客人离开出租物业并向所有者发送“离开事件”语义原子1000,则所有者然后可以将这个“离开事件”原子1000发送到灯、供暖、安全、WiFi和其他服务300a-n,以自动在与此事件相关的租赁物业中采取动作。在该示例中,将“离开事件”原子1000发送到各种服务300a-n可能导致灯熄灭、将加热转变为较低的温度设置,等等。
也可以为各种目的保存语义原子1000。例如,包含用于访问各种WiFi接入点的密码的各种WiFi原子1000可以由用户存留以供将来使用。如上所述,原子1000可以被存储在移动设备100或助理服务器200中,以及例如可移动存储介质或其他存储介质中。
语义原子1000也可以在观看后被丢弃。例如,用户可以在LinkedlnTM上运行搜索,并且可以看到多个人作为由虚拟助理系统10中的语义原子1000表示的结果,但是不对这些原子1000进一步进行任意操作。在这种情况下,未使用的原子1000被助理服务器200、插件220和服务300简单地丢弃。
图4A是为了描述移动设备100如何被配置为图1A和1B所图示的虚拟助理系统10的一部分的目的而详细图示移动设备100的示例性实施例的框图。
移动设备100可以包括助理接口110、传输器105、控制器120、中央处理单元(CPU)130、存储单元140、用户接口150、传感器160、至少一个扬声器170、至少一个麦克风180和至少一个相机190。
参考图4A,传输器105可以用于建立与助理服务器200和/或外部服务300的连接。传输器105可以包括天线或任意类型的通信设备,以使用Wi-Fi、Wi-Fi直连、NFC、蓝牙、RFID、以太网、火线、通用串行总线(USB)、高清晰度多媒体接口(HDMI)或任意其他类型的无线或有线通信方式(但不限于此)来建立与助理服务器200和任意外部服务300的连接。可以经由因特网(包括云计算应用、卫星等)来执行移动设备100、助理服务器200和任意外部服务300之间的通信。
控制器120可以控制移动设备100和助理服务器200之间的通信,以及在满足某些条件(诸如基于位置的通信服务(例如,近场通信(NFC)、蓝牙等)被建立)的情况下控制移动设备100与外部服务300a-n之间的通信,如上面关于图1B所述。
控制器120确定助理接口110正在与哪个服务300通信,以便解释所所接收的请求,无论该请求是以专用语言格式或作为语义原子1000接收的。尽管助理接口110正在通信的服务经常是助理服务器200,可以从不同的服务器或从单独的移动设备100a-n上的另一个助理接口110a-n获得可能的输入(图标、手势、语音命令和解释)的库。例如,多个助理接口110a-n可以协同工作:即,一旦一个助理接口110a已经学习了如何解释输入,该助理接口110a可以与另一个助理接口共享该输入。因此,控制器120可以确定助理接口110正在与什么设备通信,以便提供这些特征。
因此,在某些情况下,控制器120可以确定助理接口110应该接触除助理服务器200之外的外部源。例如,如果助理接口110由控制器120确定正在接收需要来自另一个助理服务器200a-n或另一助理接口110a-n的信息的输入请求,则控制器120可以指示助理接口110接触外部其他来源。因此,助理接口110将经由传输器105连接到外部其他源并呈现请求。外部其他来源将检查完整的库集以解释该请求(手势、图标触摸、语音数据等),并且如果发现,外部其他源将响应于助理接口110并告诉它用语义原子1000(其中嵌入有专有语言)做什么。此时如果移动设备100如图1A所示通过助理服务器200操作,则助理接口110将向助理服务器200提供命令以在预期的外部服务300上执行命令。备选地,如果移动设备100正在以如图1B所图示的本地控制模式操作,则助理接口110然后可以通过传输器105与服务300连接,并使用适当获得的专有语言直接控制预期的外部服务300。
CPU 130可以请求虚拟助理系统10以运行应用程序和/或程序,执行移动设备100的各种功能,以及在各种其他用途之间基于用户的偏好自适应地学习各种命令。CPU 130还可以基于用户的偏好来运行可以改变、变更或个性化的各种操作系统。此外,当存在用户期望控制的多个外部服务300a-n时,CPU 130可以基于相应的用户命令来执行与多个外部服务300a-n特别对应的各种功能。
存储单元140可以存储由CPU 130学习的命令以及各种语言、图标、手势、传感器命令、程序、应用程序、命令和库、包括以上项的任意组合的库,其是可以通过移动设备100从助理服务器200下载。例如,如果移动设备100不具有助理服务器200内的命令的库中以控制特定服务300的特定命令,则移动设备100可以从助理服务器200下载任意单个命令或命令集合,此时移动设备100可以直接控制服务300,或者至少具有更广泛的命令库以理解输入到移动设备100的一个或多个命令。换句话说,如果移动设备100的用户作出例如手势或向移动设备100提供不是容易知道的命令的语音命令,则助理服务器200可以通过在广泛的命令库检查来识别正确的命令,同时考虑命令的各种上下文和经由以前收集的信息的历史所收集的用户信息,如下所述。然后,借助于对应的插件220,助理服务器200可以将该命令生成为具有嵌入其中的专有语言的一个或多个语义原子1000。然后可以将表示命令的原子1000提供给移动设备100,此时,移动设备100可以将正确的命令下载到存储单元140中,经由助理接口110将命令转换为服务300的专有语言,以及然后通过传输器105通过使用该服务300的专有语言来在服务300a处执行预期功能。
用户接口150允许用户在移动设备100上执行各种功能,包括显示可选择的图标、进行电话呼叫、访问因特网以查看各种网页、播放诸如音乐和电影的多媒体、观看图片、运行程序、控制一个或多个外部服务300a-n、访问助理服务器200、修改移动设备100等,但不限于此。用户接口150可以包括屏幕、键盘、小键盘、鼠标、轨迹球、触摸屏、音频接口(例如具有至少一个麦克风180)、全息图接口、感测接口等但不限于此。此外,用户接口150可以包括各种类型的上述用户接口的任意组合。
传感器160可以被配置为感测一个或多个输入,例如用户的声音、手势或触摸。传感器160可以与在CPU 130上运行的面部识别软件一起工作,以允许移动设备100识别用户的面部表情,或环形设备,诸如例如FinTM,其是可以从用户作出的手势提供命令的具有蓝牙功能的设备。在该示例中,命令可以由CPU 130接收并且由助理接口110转换成一个或多个语义原子1000。另外,传感器160可以包括感测移动设备100本身的移动的其它类型的感测设备,例如到被控制的服务300的移动设备100的回转、压力或接近。此外,传感器160可以包括用于感测移动设备100的位置的全球定位系统(GPS)技术。传感器160可以包括具有多个功能的单个传感器,或者可以基于用户的偏好被分成多个不同的传感器。以下参照图5A更详细地描述传感器160。
移动设备100还可以包括:至少一个扬声器170,以允许用户听到从移动设备100发射的音频;至少一个麦克风180,以允许用户对移动设备100说话;以及至少一个相机190,以允许用户捕获图像。至少一个扬声器170和至少一个麦克风180可以用于执行电话操作,并且还可以用于从用户接收可以由CPU 130处理的音频命令(例如语音命令)。至少一个相机190可以被用于拍摄静止或移动的对象,以使用诸如Skype或GChat的应用程序来执行与其他用户的网络摄像头通信,或者从用户接收/读取可由CPU130处理的手势和/或面部特征。
如上文关于图1A-1B所描述的助理接口110可以通过将输入命令转换成一个或多个语义原子1000来执行插件的操作,并且可以使用语义原子1000与助理服务器200通信。此外,助理接口110可以通过任意形式的传感器160转换在移动设备100处接收的、或者100经由外部传感器(诸如例如如上面所描述的可配戴环)由移动设备接收的任意命令。助理接口110还将从助理服务器200接收的数据转换成移动设备100可以理解的格式(有效地,移动设备100的专有语言),并且其可以被显示在例如用户接口150上。
如上面所指出的,图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的移动设备中。
根据图4B的该示例性实施例的虚拟助理系统10在通信不良的情况下是有价值的,诸如远程应用、军事应用等。由于本示例性实施例的移动设备100和助理服务器200不依赖于彼此之间的无线通信来执行服务300a-n处的功能,因此可以消除由于移动设备100和助理服务器200之间的差的无线通信而导致的对预期服务300的控制失败的概率。此外,出于安全目的或其他类似的原因,不希望其数据存储在一些远程位置的用户也可以使用虚拟助理系统10的这种类型的设置。由于没有无线发送助理信息,虚拟助理系统10(并且通过扩展,用户的信息)更安全。这种类型的设置在面对变化的连接(例如有时变得与无线服务断开连接)情况的汽车或飞机中也是非常有价值的。
作为图1B所图示的示例性实施例的备选方案,“移动设备”100可以备选地被实现在一个或多个固定设备上,诸如连接到助理服务器200或云(其连接到或用作助理服务器200)的亚马逊EchoTM类型设备。因此,用户可能不需要具有连接到助理服务器200的助理接口110的手持设备。相反,固定设备可以定位在区域中的各个点周围。这些固定设备可以充当上述“移动装置”100,并且可以接收命令输入(例如,用户的语音、手势等),与用户交互,并根据命令输入执行功能。作为示例,如果用户在建筑物中,则可以存在定位在每个楼层上的一个或多个固定设备,每个固定设备可以具有各自的助理接口110。固定设备的这种布置允许用户命令虚拟助理系统10执行各种任务并控制外部服务300a-n,类似于上面参考图1A-1B所描述的示例性实施例。根据本发明的总体构思的示例性实施例,固定设备也可以彼此通信。
固定设备类似于移动设备100运行。因此,应当理解,如本文所使用的术语“移动设备”还可以包括固定设备。下面详细讨论的图17图示了包括多个设备(例如,具有单独的助理接口110a-n的传感器)的本发明总体发明构思的示例性实施例,其可以充当如上所述的固定设备。
图5A是图示图4A所图示的移动设备100的传感器160的示例性实施例的框图。如图5A所图示的传感器160可以以多个不同的传感器的形式提供。
传感器160可以包括位于移动设备100上的各个位置的各种不同的传感器,并且可以包括触摸屏161、压力传感器162、运动传感器163、热传感器164、接近传感器165、回转(gyration)传感器166和全球定位服务(GPS)传感器167。
触摸屏161是在其上显示项目、图标和媒体的、同时允许移动设备100在与触摸屏161接触时检测用户的手指、触控笔等的位置的显示器。这样,当用户围绕触摸屏161移动手指时,可以在触摸屏161上执行各种命令,例如滚动菜单项、选择图标、翻页等,但不限于此。
压力传感器162允许移动设备100检测压力,例如触摸屏161被压下的压力。因此,由压力传感器162感测到的不同压力可导致由移动装置100执行的不同命令。压力传感器162可以是与触摸屏161分离的部件,或者可以被集成在其中。
运动传感器163可以检测关于用户或一个或多个外部服务300a-n的用户的运动或移动设备100的运动。这样,运动传感器163可以主动跟踪用户和/或移动设备100的移动。运动传感器163可以是与至少一个相机190分离的部件,或者可以被集成在其中。
热传感器164可以感测来自外部源的热量,其可被CPU 130处理和解释为数据。
接近传感器165可以感测移动设备100关于其他对象和/或用户的接近度。接近传感器165可以是与至少一个相机190分离的部件,或者可以被集成在其中。
回转传感器166可以在三维空间中感测移动设备100本身的运动和/或运动方向。更具体地,回转传感器166可以感测移动设备100如何移动,从而允许移动设备100被用作例如类似魔杖的装置来控制外部服务300。例如,回转传感器166可以感测到用户将移动设备100从低位置移动到高位置,并且然后可以通过助理服务器200发送命令来控制电视(对应于外部服务300)到增加音量。备选地,运动传感器163、接近传感器165和至少一个相机190也可以用于感测移动设备100已经从低位置移动到高位置,并且向助理服务器200发送对应的命令。
GPS传感器167可以使用GPS技术感测移动设备100的位置,以便证实移动设备100的确切位置。当移动设备100的位置被证实时,助理服务器200可以确定哪个外部服务300a-n可以和/或应该由移动设备100控制,以及哪些类型的命令可以和/或应该被用于执行控制。
根据示例性实施例,如果用户正在他/她的房子外面操作移动设备100并想要打开无线连接到助理服务器200的车库门(服务300a),则用户可以给出“竖起大拇指”手势语(hand sign)到至少一个照相机190,或使用另一形式的传感器,此时助理接口110转换并提供作为语义原子1000的命令给助理服务器200,以将命令传输到车库门插件,使得车库门打开。由于GPS传感器167可以感知到移动设备100在用户的房屋之外,所以此时“竖起大拇指”手势语被解释为表示“车库门打开”。然而,如果用户在房屋内,则此时相同的“竖起大拇指”手势语被用于关闭车库门,因为GPS传感器167可以感测到用户在房屋内。因此,相同的手势语或其他手势可以基于GPS传感器167感测到的移动设备100的位置来用于执行与单个外部服务300相对应的不同功能。
作为另一示例性实施例,可以基于移动设备100的位置来不同地控制喷洒器系统服务300a。更具体地,如果GPS传感器167感测到移动设备100靠近用户的家并且用户触摸在移动设备100的用户界面(UI)150上显示的喷洒器系统图标,可以切断喷洒系统以允许用户在草坪上行走而不会变湿。如果用户远离家庭,并且用户触摸显示在移动设备100的UI 150上的相同的喷洒系统图标,则喷洒系统可能会打开,使得水喷洒到草坪上。备选地,用户可以基于感测用户的位置的GPS传感器167来预设自动喷水灭火系统功能。
应当理解,根据本发明总体发明构思的特定示例性实施例,传感器160可以包括图5A所示的感测设备或未图示的附加感测设备的任意组合。例如,手势可以由移动设备100中的至少一个照相机190以及光检测设备、可佩戴设备(例如臂带或FinTM)或使用加速度计或其它移动检测设备来检测。在图5B所示的本发明总体发明构思的示例性实施例中,移动设备100连接到多个外部输入传感器和设备。例如,移动设备100可以连接到用户的家庭、办公室或汽车中的外部传感器,以便从其接收不能用自己的传感器160接收的数据。诸如键盘、相机、GPS、可配戴传感器、麦克风和/或红外传感器的外部感测设备将移动设备100连接到交替感测设备以接受用户输入。以这种方式,可以大大扩展用户的移动设备100的功能。
此外,移动设备100可以外部设备(从诸如一个或多个显示器、扬声器和致动器)接收输入命令。来自这些外部设备的输入可以被CPU 130处理,以确定这样的命令是从相应的外部设备接收的。
如上面所描述的,手势也可以由可配戴的、手持的、或通过使用加速度计硬件或其他运动跟踪硬件或甚至眼睛跟踪、嘴唇跟踪或面部跟踪系统来检测移动的其他装置来捕获。图标通常由手或触控笔在触摸感应服务(例如图4A所示的移动设备100的用户界面150,或一些其他形式的触摸屏)上触摸或点击,或借助于通过将鼠标或滚球放置在图标的顶部的点击。用户可以使用任意命令输入或其组合(例如单独的语音、单独的手势或单独的图标、或其任意组合),以使助理服务器200在服务300处执行这些任务(例如,上述使用GPS连同传感器的组合来感测“竖起大拇指”手势的示例)。作为另一示例,用户可以在助理服务器200可访问的相机处手势向上来指示由助理服务器200控制的恒温器应升高温度。或者可以通过臂带或其他可配戴设备来检测该手势。
为了描述助理服务器200如何被配置为图1A和1B所图示的虚拟助理系统10的一部分,图6A是详细图示了助理服务器200的示例性实施例的框图。
图6A所图示的助理服务器200可以包括助理服务器平台210和插件220a-n。
助理服务器平台210可以是允许软件开发人员在助理服务器200处创建插件220的任意设备或其组合。助理服务器平台210可以例如是CPU、多个CPU或用于处理命令以及经由语义原子1000与服务300a-n通信的其他计算设备。类似于移动设备100中的CPU130,助理服务器平台210可以连续地运行学习算法。
尽管插件220a-n在图6A中被图示为与助理服务器200分离,但是该图仅仅被提供用于说明可以创建的无限数量的插件220a-n以及它们与特定服务300a-n相应的关联。这些插件220a-n通常在助理服务器200处创建。
如上所述,存储装置250可以被提供在与助理服务器200相同的硬件或云服务上,或者可以由助理服务器200单独定位和访问,如图6A所示。存储装置250可以是例如包括在助理服务器200中的硬盘驱动器,或者连接到助理服务器200的外部存储设备,例如闪存驱动器或云存储服务器。存储装置250还可以是连接到助理服务器200的多个存储设备。存储装置250存储用于控制服务300a-n的命令库230。
对于不同类型的输入,库230可以被划分成多个部分。例如,库230可以被分成图标库、语音/文字输入库和手势库。
存储装置250还可以包括对应于服务300a-n的单独的命令集240a-n。多个命令集240a-n中的每一个包括可用于控制服务300a-n中的特定一个的特定命令(与输入相关联)。
为了控制特定服务300,用户可以将移动设备100连接到助理服务器200并下载适当的命令集240。该连接可以经由因特网通过使用Wi-Fi、Wi-fi直连、NFC、蓝牙、RFID或任意其他类型的无线或有线连接来实现。下载的命令集240可以自动地或在用户接受命令之后被保存在存储单元140中。一旦被下载,命令集240可以被助理接口110用来将所接收的输入转换成一个或多个语义原子1000。
存储装置250还可以在虚拟助理系统10上存储使用数据,包括上下文数据(诸如,例如,当输入某些命令时的时间或用户的物理位置)、哪些输入被错误地给出(哪个输入立即撤销等)等等。该使用数据可以对插件开发人员可用,以便开发人员可以然后相应地更新库230以反映该使用数据。
存储装置250还可以存储更新到通过使用虚拟助理系统10生成的库230。如上所述并在下文中详细讨论的,虚拟助理系统10可以根据用户行为来定义诸如手势的附加输入,其可以存储在存储装置250中。
图6A所图示的助理服务器200是包括单个节点或服务器的集中式布置。然而,如上所述,助理服务器200还可以是分布式部署或助理服务器200的“多个实例”,包括经由语义原子1000彼此通信的多个节点或服务器。
助理服务器200的多个实例可以包括分层布置的服务器200a-n的网络。该网络可以利用助理服务器200的不同实例来处理不同的请求,例如涉及不同事物的请求。例如,当一个服务器(对应于助理服务器200的一个实例)包含涉及服务300a-n的子集(例如物理设备)相关的插件220时,助理服务器200的另一实例可以包含涉及不同子集的插件220,例如社交媒体服务和应用程序。助理服务器200的第三实例可以对去往这些底层服务器(助理服务器200的底层实例)的请求进行路由,并对来自这些底层服务器(助理服务器200的底层实例)的响应进行编译。用户感知到与单个实体(即单个助理服务器200)交互。
当存在助理服务器200的多个实例时,可以存在大致相同重要性的节点的集合。例如,每个具有其自己的助理服务器200的多个用户可以将其助理服务器连接在一起以充当单个助理服务器200。在图6B中示出了该配置的示例性实施例。图6B示出了4个实例200a-d以及与所得到的助理服务器200通信的移动设备100a-n。应当理解,可以包括任意数量的实例200a-n。此外,每个实例200a-n可以包括图6A所图示的助理服务器200的一些或全部特征。在图6B所图示的助理服务器200的配置中,助理服务器200的不同实例200a-n可以与其他实例200a-n中的全部或一些通信。如图6B所图示,一个实例200a与所有其他实例通信,而另一个实例200b仅与其他单个实例(在该示例性实施例中的200a)通信。因此,在本例中的实例200b将仅直接从与其通信的实例200a接收数据,但是可以间接地从从其他实例(图6B中的200c和200d)接收数据,例如通过助理服务器200a,其是与这些其他实例200c和200d通信的。任意数量的移动设备100a-n可以与助理服务器200a-n的联网实例进行通信。各种移动装置100a-n中的每一个可以各自对应于实例200a-n中的一个。此外,各种移动设备100a-n可以各自与以这种方式连接的实例200a-n的任意一个进行通信,以接收在所有实例200a-n之间共享的数据。实例200a-n可以是以这种方式在用户之间的聊天中的“参与者”,类似于如上所述参与聊天的服务300a-n。
备选地,单个“主”助理服务器(实例)可以充当上面关于图6A描述的助理服务器200,并且还连接到用于特定任务和信息的外部节点或实例。图6C中图示了该配置的示例性实施例。在图6C中,为了方便起见,仅示出了四个实例200a-d,但也可以包括任意数量的实例200a-n。在图6C所图示的示例性实施例中,实例200a用作移动设备100a-n与之通信的“主”助理服务器。该“主”助理服务器与其他“从属”实例200b-d进行通信。这些“从属”实例200b-d不必与“主”实例200a直接通信。如图6C所图示的,例如,实例200d与实例200c通信,实例200c又与“主”助理服务器200a通信。
如上所述,图标、手势、语音库等被存储在助理服务器200中。然而,这些库中的某些元素(例如重叠方面或附加方面)可以包含在虚拟助理系统10中的其他地方,例如在助理接口110中或在与其他节点分开保存的助理服务器200的节点中。例如,诸如“辐射开始”之类的口说命令可能意味着为特定用户“切换灯泡”,但对其他用户可能具有完全不同的含义。该附加命令可以在与主助理服务器200分离但连接到助理服务器200的节点(节点包括CPU和存储器的,基本上作为服务器)中,如在助理服务器200的多个实例的部署中。
用户的个人访问信息、连接、共享信息等可以被包含在助理服务器200的单独的实例中。该单独的实例可以是特定用户的控制下的服务器,使得用户可以确定单独的实例是否被连接到助理服务器200。该单独的实例的使用使得用户能够从助理服务器200断开他们的个人信息,并且继续由助理服务器200提供帮助,但是在没有任意个人信息的情况下处于减少的水平。
根据本发明总体发明构思的示例性实施例,当用户希望用其移动设备100执行功能时,他们必须首先在其移动设备100上运行/启动/打开/访问客户端110。备选地,客户端110可以在移动设备100上连续地运行,而不需要启动。一旦客户端110运行,用户可以做出命令输入,例如选择图标来控制外部服务300,以便控制服务300执行期望的功能。(备选地,客户端110可以识别手势、运动、声音、面部特征或任意其他上述命令输入,而不需要特定的图标选择。)
当做出选择服务300的命令输入并且通过另一个或相同的命令输入来选择与所选择的服务相对应的功能时,客户端110可以创建语义原子1000,其包括控制服务300以执行期望的功能并将语义原子1000发送到助理服务器200的命令。助理服务器200可以包括存储的预编程插件220,其允许助理服务器200将语义原子1000转换成所选服务300的专有语言。助理服务器200可以从移动设备100接收语义原子1000,识别用户期望以特定方式控制特定服务300,并且根据对应的插件220将语义原子1000转换为服务300的专有语言,以允许服务300理解响应于用户的命令输入而需要采取的功能/动作。助理服务器200然后可以将以选择的服务300的专有语言的转换命令发送到所选择的服务300,以便控制服务300以执行该功能。
例如,如果用户想要使用移动设备100来控制灯(其可以经由有线或无线通信与虚拟助理系统10连接),则该用户可以首先选择例如移动设备100的显示屏幕(例如用户界面150)上显示的灯图标,在客户端110初始化时。灯图标可以打开命令提示或选项以允许用户选择,例如“亮起(LIGHT ON)”。在这样的用户选择时,“亮起”命令由客户端110转换成语义原子1000,并被发送到助理服务器200。该语义原子1000可以表示例如打开灯的概念。助理服务器200可以接收语义原子1000。然后,语义原子1000可以由助理服务器200内的灯插件220转换成灯的专有语言,转换的语义原子1000表示灯可理解的指令。更具体地说,程序员可以预先编程对应于灯的插件220,以将设备专有语言转换为一个或多个语义原子1000,反之亦然,从而允许用户从其移动设备100来控制灯。如此助理服务器200能够解释从移动设备100发送的“亮起”命令,并且然后可以将灯专有语言中的指令发送给灯,使得灯打开。
作为另一示例,如果用户想要使用社交媒体,例如,FacebookTM(其以FacebookTM专有语言编程)来找到某人,例如LinkedlnTM(以不能自然地与FacebookTM专有语言通信的LinkedlnTM专有语言编程),用户可以使用与助理服务器200连接的移动设备100打开FacebookTM应用。因此,用户使用客户端110访问FacebookTM,选择FacebookTM中的个人简档,例如个人简档图片,以及由客户端110创建语义原子1000,以表示所选择的人(即,FacebookTM的专有语言被转换成语义原子1000)。该语义原子1000可以包括从FacebookTM检索的任意信息,例如该人的姓名、图片和FacebookTM简档。接下来,客户端可以将表示所选人的语义原子1000发送给助理服务器200,其访问用于LinkedlnTM的存储的插件220,以便将语义原子1000转换成LinkedlnTM专有语言。更具体地说,助理服务器200必须在其中存储有用于FacebookTM的插件220和用于LinkedlnTM的插件220,使得从FacebookTM接收的、代表所选人的语义原子1000可用于在LinkedlnTM上查找所选择的人。换句话说,插件220a-n将其对应的服务300a-n的专有语言转换为单一语义语言,反之亦然,以便允许包括例如设备和应用的各种服务300a-n经由语义原子1000彼此通信。因此,在助理服务器200将从客户端110接收的语义原子1000转换成LinkedlnTM专有语言之后,助理服务器200可以直接将指令(以LinkedlnTM专有语言)发送到LinkedlnTM以执行用户所需的命令,在本示例中,该命令用于访问所选人的LinkedlnTM简档。此外,客户端110可以在后台操作,即,用户可能不会有意识地意识到客户端110的操作或甚至语义原子1000的使用。总之,至于用户被考虑,上述程序的视觉过程包括:(1)打开FacebookTM,(2)选择简档,(3)打开LinkedlnTM,(4)将所选简档粘贴到LinkedlnTM中的搜索条件中;以及(5)在LinkedlnTM查看所选人员的简档。
另外,上述操作可以分布在服务300a-n之间。例如,通过软件开发人员或经由用户输入的命令已被授权以语义语言进行通信的服务300也可以用语义原子1000与助理服务器200和移动设备100直接通信。在这种情况下,服务300有效地操作为其自己的插件。这样的授权服务300将能够将语义原子1000发送到其他服务300,并且执行客户端110的其他任务。
此外,与助理服务器200(即,包括客户端110的移动设备100)连接的移动设备100可以与和助理服务器连接的另一移动设备100共享表示所选人的语义原子1000,以便允许另一移动设备100使用表示所选择的人的语义原子1000来在另一个服务300(例如MySpaceTM)中查找该人的简档。语义原子1000的共享可以经由提供消息传输或聊天功能、电子邮件或涉及助理服务器200和移动设备100的任意其他类型的通信方法的信使(messenger)服务来执行。
上述服务控制的示例基于服务300具有全局连接性的能力。更具体地,在上述示例中,助理服务器200是基于从移动设备100经由客户端110接收的命令来最终控制所选择的服务300的设备。
备选地,可以存在仅具有本地连接能力的服务300,例如近场通信(NFC)设备。因此,这种本地连接设备的控制必须直接从移动设备100发起,并且不能从助理服务器200接收命令(例如,助理服务器200最可能在NFC设备的NFC范围之外,除非助理服务器200包括在移动设备100内,如图4B所图示的示例性实施例中)。
更具体地,当用户希望在本地连接服务300处用其移动设备100执行功能时,用户必须首先在其移动设备100上运行/启动/打开/访问客户端110。备选地,客户端110可以在移动设备100上连续运行而不需要启动。一旦客户端110被启动,用户可以做出命令输入(例如选择图标)来控制位于移动设备100的给定范围(例如,NFC范围/接近度)内的本地服务300以便控制本地服务300执行功能。(备选地,客户端110可以识别手势、运动、声音、面部特征或任意其他上述命令,或者移动设备100可以自动感测本地服务300当在给定范围内时而不需要图标选择的情况下。)
当命令输入被做出并且与所选择的本地服务300相对应的功能被选择时,客户端110可以创建包括控制本地服务300以执行所需功能的命令的语义原子1000,并且向助理服务器200发送语义原子1000。助理服务器200可以包括存储的预编程的NFC设备插件220,其允许助理服务器200将语义原子1000转换/解释为所选择的本地服务300的专有语言,以及反之亦然。助理服务器200从移动设备100接收语义原子1000,识别用户期望以特定方式控制本地服务300,并且使用本地服务插件220来解需要释控制本地服务300的本地服务专有语言命令。随后,助理服务器200可以创建包括由本地服务300可以理解的命令的新的语义原子1000,并将新的语义原子1000发回到移动设备100。
移动设备100可以接收包括由本地服务300可以理解的命令的新的语义原子1000,并且将语义原子1000转换为具有所选择的本地服务300的专有语言的命令。然后,只要移动设备100在所选择的本地服务300的给定范围内,则从所述移动设备100向本地服务300发送(以所选本地服务300的专有语言)命令来控制本地服务300以执行期望的功能。
例如,如果用户想要使用移动设备100来控制NFC灯(其不能通过有线或无线通信与助理服务器200连接),那么该用户可以首先选择例如显示在移动设备100的显示屏幕(例如,用户界面150)上的灯图标,当客户端110被初始化。类似于上述示例,灯图标的选择可以打开命令提示或选项以允许用户选择命令,例如“亮起”。在选择时,“亮起”命令可以被转换成语义原子1000并发送到助理服务器200。该语义原子1000可以对应于打开灯的动作。助理服务器200可以接收语义原子1000。然后,语义原子1000可以由助理服务器200内的灯插件220转换成表示可以被灯理解的指令的对应的专有语言。随后,助理服务器200创建新的语义原子1000,其包括用于生成由NFC灯可以理解(即以灯的专有语言表示)的期望命令的指令,并且将新的语义原子1000发回到移动设备100。备选地,期望的命令可以已经被转换为灯的专有语言,并且被包括在具有从中提取命令并且将提取的命令发送到灯以执行所期望的功能的指令的语义原子1000中。
移动设备100可以接收包括NFC灯可以理解的命令的新语义原子1000,并将语义原子1000转换成具有所选择的NFC设备的专有语言的命令。该转换可以根据所接收的语义原子1000中包括的、用于将原子1000转换成灯的专有语言的指令在助理接口110处执行。备选地,根据在语义原子1000中包括的指令,可以在助理接口110处从语义原子1000中提取以灯的专有语言表达的命令。然后,只要移动设备100在NFC灯的NFC范围内,命令(例如,打开灯的命令)可以以NFC灯的专有语言从移动设备100发送到NFC灯,以控制NFC灯,例如打开。
此外,如果灯是被密码保护的使得其他人不能在没有密码的情况下操作灯,则授权用户(即,具有密码或控制灯所需的其他证书的用户)可以与未经授权的用户共享“亮起”语义原子1000,以授权未经授权的用户访问灯以执行“亮起”操作。在这种情况下,“亮起”语义原子1000还将包括访问和控制灯所需的访问证书,例如密码,用户ID等。语义原子1000可以经由助理服务器200共享,也可以直接从移动设备100共享。
备选地,用户可以通过将未经授权的用户帐户作为语义原子1000(由虚拟助理系统10创建)添加到授权用户的列表来临时授予未经授权的用户访问例如服务300。这样,服务300也不会知道未经授权的用户已经被给予对其访问,由于服务300继续从虚拟助理系统10接收其命令,尽管不论授权用户或未经授权的用户正在提供命令。
下文更详细地讨论了对服务300的权限共享。
附加地,客户端110可以在其中已经结合逻辑,以避免将语义原子1000发送到助理服务器200的需要。更具体地,移动设备100内的客户端110可以被提供有大量的预存储插件220。客户端可以直接用这些预先存储的插件220发送和接收语义原子1000,而不需要通过助理服务器200来对语义原子1000进行路由。客户端110还可以用一个或多个被授权使用语义语言的应用程序进行预编程,并且其因此可以经由语义原子1000进行通信,而不需要单独的插件220。类似于预先存储的插件220,客户端110可以用这些预编程的授权应用程序来发送和接收语义原子1000而不需要通过助理服务器200来路由语义原子1000。
例如,如上所述,如果用户想要使用社交媒体来在例如LinkedlnTM上查找某人,则用户可以使用在移动设备100上运行的客户端110来打开例如FacebookTM应用,选择个人简档(例如,该人的图片),并且可由客户端110创建语义原子1000以表示所选择的人。如果对应于FacebookTM和LinkedlnTM的插件220直接存储在移动设备100内,则不需要将表示所选人的语义原子1000发送到助理服务器200。相反,在该示例中,因为插件220被存储在移动设备100内,当用户使用客户端110来访问LinkedlnTM时,客户端110将表示所选人的语义原子1000转换成由LinkedlnTM可理解的专有语言。因此,由于语义原子1000有效地允许FacebookTM与LinkedlnTM通信,所以用户可以使用对应于从FacebookTM所接收的所选择的人的语义原子1000,容易地在LinkedlnTM上查找该人的个人简档。此外,该示例中的用户体验与当插件220被存储在助理服务器200时基本相同。
将参考图7A来描述确定输入命令的意图并在外部服务300处执行对应操作的过程。参考图7A,当在移动设备100处直接通过传感器160或经由外部传感器(操作S500)输入命令时,助理接口110首先将移动设备100处的命令输入转换为一个或多个语义原子1000,使得可以在连接到助理服务器200的服务300a-n之间共享命令。如上所述,在移动设备100处输入的命令可以是图标触摸、手势、语音数据或者在其中传感器部分可以接收输入的移动设备100处提供的任意其他输入。
助理服务器200接收该转换命令(操作S510)。移动设备100和助理服务器200之间的连接可以是自动的,或者备选地,可以在移动设备100上提示用户以发起和/或接受与助理服务器200的连接。
然后,助理服务器200确定虚拟助理系统10是在远程模式还是本地模式下操作(操作S520)。虚拟助理系统10是在远程模式还是本地模式下操作的确定可以包括例如,助理服务器200是否被允许在服务300的防火墙内,或者助理接口110是否在本地网络内(例如作为蓝牙或NFC)连接到服务300。
如果助理服务器200确定虚拟助理系统10是在远程模式下操作(在操作S520为REMOTE),则助理服务器200可以通过在操作S530a处在指令库之间进行检查来确认对源自移动设备100的命令的识别。
如果所接收的命令在助理服务器200处被识别(操作S530a为“是”),则当虚拟助理系统10处于远程操作模式时,助理服务器200然后可以经由在该服务器200处创建的对应插件220在预期的外部服务300处执行指示的所期望的命令(操作S540a)。
备选地,如果确定存在对从移动设备100所接收的命令意图指代什么的任意混淆(例如,在操作S530a中为“否”),例如,可以存在使用相同的命令的多于一个服务300,则在操作S560a,助理服务器200可以通过除了别的之外考虑此命令的历史使用模式、提供该命令的特定用户、给出命令的特定位置、以及给定命令的一天的特定时间、提供命令的该特定用户是否总是使用该特定手势来执行特定服务300处的特定功能等来检查多个上下文中的命令。换句话说,助理服务器200将检查在助理服务器200的平台210处运行的程序中有关该所接收的命令的所有可访问的上下文信息,以便具体确定所接收的命令本可能预期的可能选项。
一旦助理服务器200由在移动设备100处输入的命令确定哪些可能的选项已经被预期,则助理服务器200将预期命令的这些选项提供回移动设备100(操作S570a),使得选项可以在移动设备100处的用户界面(UI)150处显示。这里,用户可以再次输入预期命令,但是这次通过选择几个显示的选项中的一个,具有特定的精度。作为示例,可以在表示可能的命令的移动设备100上显示图标列表,并且用户可以选择一个图标作为预期命令。助理服务器200还可以记录用户的选择,使得如果稍后再次输入,则操作S500中的原始命令将被识别(历史数据的集合以形成上下文)。这将在下面参考图11更详细地讨论。
特定预期命令然后在助理接口110处被转换(为一个或多个语义原子1000)并被提供给助理服务器200,其中命令在助理服务器200被接收(操作S580a)以在虚拟助理系统10的远程操作模式中执行该命令。换句话说,当虚拟助理系统10处于远程模式时,在操作S540a,助理服务器200可将命令呈现给对应的插件220,其将命令从一个或多个语义原子1000转变到其中外部服务300理解的专有语言。助理服务器200然后可以执行预期的命令,即,助理服务器200可以以服务300b以相应的专有语言直接与外部服务300通信,以执行在移动设备100(或连接到虚拟助理系统10、并且可以提供命令输入的其他类型的传感器设备,其将在下文中更详细地描述)指示的任意功能或操作。
从服务300所接收的作为执行操作S540a中的命令的一部分的信息在对应插件220处被从专有语言转换为一个或多个语义原子1000。如果在使用该信息的其他服务300处请求附加操作(操作S550a为“是”),在操作S510接收输入到移动设备100的附加命令,以执行附加命令。
备选地,当确定虚拟助理系统10处于“本地模式”(操作S520中的本地)时,虚拟助理系统10可以执行如图7B所示的以下操作序列。
如果在助理服务器200处识别到所接收的命令(操作S530b为“是”),则助理服务器200然后可以获得要被控制的特定服务300的专有语言信息,并将该信息提供给移动设备100的助理接口110作为包含专有语言的一个或多个语义原子1000(操作S535b)。利用执行在移动设备100获得的预期控制所需的必需的专有语言,可以在操作S540b通过助理接口110(和传输器105)在移动设备100处直接执行服务300的控制。此外,如果使用作为在先前预定的服务300执行的功能的结果获得的信息在其他服务300处请求附加操作(操作S550b为“是”),则在操作S510处接收在移动设备100处输入的附加命令(图7A)以执行与附加输入命令相对应的附加功能。这些附加命令输入可以包括从先前执行的操作获得的信息。例如,诸如“应用程序”的服务之间的连续通信经常需要从其中执行功能的先前“应用程序”获得的信息(例如,获得关于在用户的区域中播放的电影的信息)。
如果这儿在接收到命令时关于输入命令可能预期什么存在混淆(在操作S530b为否),则助理服务器200然后确定在移动设备100处通过命令输入哪些可能的选项可能已经被预期(操作S560b)。与上述关于图7A中的操作S560a的描述类似,可以通过除了别的之外考虑该命令的历史使用模式、提供该命令的特定用户、给出命令的特定位置、给出命令的一天的特定时间、提供命令的该特定用户是否总是使用该特定手势在特定服务300执行特定功能等、通过在多个上下文中检查命令来执行该确定。
一旦在操作S560b处在助理服务器200处确定了可能的预期命令选项,则助理服务器200可以用对应的插件220获得这些命令的专有语言,并用它们相应的专有语言信息将这些命令选项提供回移动设备100(操作S570b),使得可以在移动设备100的用户界面(UI)150处显示选项。这里可以在移动设备100处直接选择和执行实际的预期命令(操作S540b)。
类似于上述操作S580a,助理服务器200可以记录在操作S570b中由用户选择的命令选项,使得如果稍后再次输入该命令,则该命令将被识别。
如上所述,图7A图示了根据本发明总体发明构思的示例性实施例的远程模式。在远程模式下,助理接口110不需要与对应的服务300在相同的网络或因特网上,助理接口110也不需要下载服务300的专有语言。在远程模式中,助理接口110可能被需要呈现诸如用户名和密码的证书来证明用户已经授权访问服务300,但通信通常通过助理服务器200发生。
相反,在图7B所图示的本地模式中,在移动设备100和服务300之间通信直接发生。在本地模式中,助理接口110确实需要在与对应的服务300相同的网络上,具体地是对应的本地网络(例如,蓝牙或NFC)。然而,一旦移动设备100在该本地网络上,就不需要证书来证明用户已经授权访问服务300。
在本发明总体发明构思的另一示例性实施例中,虚拟助理系统10可以在远程模式下操作,而助理接口110直接与服务300进行通信。这是有利的,如果服务300监视访问请求的数量,并且关闭对IP地址的过度访问的访问。例如,如果共享一个助理服务器200的一百万个(给或取)用户想要通过助理服务器200访问相同的服务300,根据图7A所示的控制过程,则服务300将注册来自一个IP地址(助理服务器200)的大量访问请求。因此,服务300可以阻止来自助理服务器200的访问。在这种情况下,对每个用户优选的是通过其相应的移动设备100a-n的助理接口110a-n访问服务300。然后,服务300将从一百万个不同的IP地址中的每一个注册一个访问请求,并且因此不会阻止对用户中任意一个的访问。
在图8中图示出了本发明总体发明构思的上述示例性实施例。在该示例性实施例中,虚拟助理系统10以远程模式操作。也就是说,命令被发送到未被本地(通过蓝牙,NFC等)连接到移动设备100的服务300。在图8所图示的示例性实施例中,在移动设备100处接收用户输入并转换为一个或多个语义原子1000(操作S610)。然后将输入发送到助理服务器200(操作S615),助理服务器200转而将转换的输入提供给对应的插件220(操作S620)。这里,插件220将该转换的输入转换为适当的专有语言(操作S625)。
在将输入转换成专有语言之后,包括该命令的语义原子1000被发送到移动设备100(具体地,通过图4A中所示的传输器105发送到助理接口110)(操作S630)。然后,移动设备100从语义原子1000提取转换的命令,并将转换的命令以对应的专有语言发送到服务300(操作S635)。根据本发明总体发明构思的示例性实施例,转换的命令可以由助理接口110通过传输器105通过因特网被发送到服务300。
服务300执行对应的动作并将数据发送回助理接口110(操作S640)。该数据是移动设备100本身不理解的服务300的专用语言。因此,移动设备100将所接收的数据发送到助理服务器200(操作S645),助理服务器200将其提供给对应的插件220(操作S650)。插件220将数据转换为一个或多个语义原子1000(操作S655)。类似于图7A所示的远程模式,一旦数据被转换成语义原子1000,它可以在移动设备100和其他服务300a-n之间共享。
此外,本发明总体发明构思不限于一次仅使用本地模式或远程模式之一。例如,移动设备100可以本地连接到一个或多个服务300,同时也通过助理服务器200被连接到不同的服务300。
如上所述,在助理服务器200处为特定外部服务300创建的每个插件220被配置使得插件220可以将一个或多个语义原子1000中的命令转换成对应的专有语言。类似地,插件220还可以将该专有语言和其他信息(即,服务300的证书)转换成在助理服务器200内使用的语义原子1000,使得如上所述经由因特网或使用的其他类型的无线通信连接到助理服务器200的不同的外部服务300a-n现在可以在彼此之间共享信息。
此外,在移动设备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连接的移动设备100a-n之间继续,以共享和获得预期的任意信息,并且因此使用该信息访问任意附加的外部服务300以获得所寻求的最终结果。
在服务300a-n之间收集信息的示例可以是移动设备100的用户访问服务300aFandangoTM以确定哪个电影在给定位置可能可用的情况,然后选择期望的特定电影来查看。在用户购买该电影票之前,用户可以将该电影信息(由助理界面110转换为一个或多个语义原子1000)发送或“抛出”到诸如IMBDTM的另一服务300b。然后用户可以基于如果电影包括这个特定的演员用户是否希望观看特定的电影,在通过FandangoTM购买门票之前经由IMDBTM应用来确定哪些演员在电影中。
换句话说,一旦在FandangoTM应用程序(服务300a)中选择了电影,助理界面110可以将该电影信息转换为一个或多个语义原子1000,其中该转换的电影信息然后可以通过IMDBTM插件与诸如IMDBTM(服务300b)的其他应用一起共享,以便获取关于电影的其他信息。要获得的这样的附加信息可以包括例如哪些演员在电影中表演。IMDBTM可以接收和理解FandangoTM应用程序中选择的电影,因为该信息从FandangoTM专有语言转换为一个或多个语义原子1000,然后可以通过其对应的插件220转换为IMDBTM的专有语言。
此外,在购买票之前,移动设备100处的用户可以将包括该获得的电影信息的一个或多个语义原子1000与也与助理服务器200连接的其他移动设备100a-n处的其他用户共享(将关于图1A更详细地描述)。然后,其他用户可以查看所获取的电影信息并同意要购买的一定数量的票,并且还可以经由相同的过程来最终选择另一部电影,此时所有用户可以同意购买所有用户在分享了FandangoTM和IMDBTM等之间以及连接的移动设备100a-n本身的用户之间收集的所有该信息之后已经达成一致的电影的票。上述示例仅是在用户和服务300a-n之间的共享通信的示例,并且不限于此。服务300a-n和用户(经由移动设备100a-n)之间的任意数量的通信和任意形式的通信可以通过在助理服务器200内创建的语义原子1000来执行。
在服务300a-n之间收集信息的另一示例可以与音乐有关。例如,移动设备100可以使用诸如GracenoteTM,ShazamTM或任意其他类型的音乐识别软件的应用来识别正在某处(诸如餐厅、商场、音乐商店、广播、电视等)播放的音乐。音乐识别可以由移动设备100内的、或连接到移动设备100的麦克风类型传感器执行。由助理接口110识别的歌曲然后可以被转换成一个或多个语义原子1000并发送到助理服务器200以通过插件220创建的GracenoteTM在GracenoteTM应用程序处呈现此信息。然后,GracenoteTM可以将歌曲信息提供给GracenoteTM插件220,GracenoteTM插件220会进而将歌曲信息提供为一个或多个语义原子1000以被用于由用户在移动设备100处可能请求的任意附加目的。
换句话说,此时,知道和/或理解如何使用歌曲、并连接到助理服务器200的任意附加服务300可以使用该音乐信息(作为一个或多个语义原子1000)来提供任意期望的结果,如由用户在移动设备100处可能请求的。例如,该信息可以经由相同的过程发送到呈现歌曲的歌词的应用MusixMatchTM。它也可以被发送到RdioTM,它将歌曲为用户添加到RdioTM队列中。它也可以发送到播放歌曲的SonosTM扬声器。它也可以发送到YouTubeTM,其可以找到该歌曲的视频并播放此视频,或将视频添加到YouTubeTM上用户的播放列表。该获得的和扩展的信息的可以被发送以便执行命令或者收集甚至更多的信息的应用程序的数量仅限于可以使用该获得的音乐信息执行一些类型的功能的应用或其他服务的数量。
在每种情况下,期望与所获得的音乐信息一起使用的每个服务300的插件220可以来回转换语义原子1000和转换服务300的专有语言,从而在所有服务300a-n之间以及多个用户之间提供与音乐信息有关的免费通信流。此外,语义原子1000中提供的音乐信息可以从移动设备100的一个用户发送到其他移动设备100a-n的其他用户,以允许多个用户将该音乐信息应用于他们选择的各种服务300a-n。
除了上述功能之外,例如,如果在电视机上播放歌曲,并且移动设备100的用户期望以后在外部便携式MP3播放器或其他类型的音乐播放设备上捕获、保存和播放歌曲,则用户可以首先使用GracenoteTM来识别在电视上播放的歌曲。随后,该歌曲可以由助理接口110转换成一个或多个语义原子1000并提供给助理服务器200,其中所转换的歌曲然后可以被发送到为外部便携式MP3播放器创建的插件220,其中转换的歌曲信息可以转换成外部便携式MP3播放器的专有语言,其中外部便携式MP3播放器然后可以由插件220本身或移动设备100指示以在用户方便时播放歌曲。被指示插件220是否直接在外部便携式MP3播放器上播放歌曲,或插件220是否将专有语言和其他必要信息提供回助理接口110,使得移动设备100可以在外部便携式MP3播放器上播放歌曲可以取决于MP3播放器连接的网络、MP3播放器关于移动设备100的位置、或者根据本文前面所述的其他条件。因此,虚拟助理系统10可以访问任意基于因特网的网页或插件220,并且使用一个或多个语义原子1000来执行与其他基于因特网的网页、插件220a-n、移动设备100a-n或外部服务300a-n的操作和互连。
在图9中示出了使用原子1000在服务300a-n之间进行通信的示例。如图所示,用户可以使用虚拟助理系统10来例如查看社交媒体(例如FacebookTM(对应于服务300a))中的人所做的帖子。虚拟助理系统10可以用对应的语义原子1000表示每个人。用户可以采取表示一个人的原子1000,并要求另一个服务300b提供关于该人的附加信息,其可以被添加到语义原子1000。例如,用户可以将原子1000发送到例如GmailTM,以检索该人的电子邮件地址。如此检索的电子邮件地址可以添加到代表该人的语义原子1000。用户可以使用该电子邮件富集的语义原子1000来向该人发送另一个服务300c上(例如YahoomailTM)的电子邮件。此外,用户可以使用虚拟助理系统10来经由另一个服务300d(例如LinkedlnTM)访问某人的简历,并将关于该人的附加信息添加到原子1000。原子1000可以继续被使用并被添加,用无数次的服务300a-n。在这里给出的并且在图9中示出的示例中,如果人的简历包括该人所属的乐队,则用户可以使用表示该人的语义原子1000(包括它们的简历和其上标记的乐队)以访问诸如BillboardTM(另一服务300e)的因特网网页,以便查看该人写的歌曲。类似地,用户可以使用语义原子1000来直接访问诸如PandoraTM(服务300f)的应用来播放由人写的随机音乐。
因此,语义原子1000允许用户将概念(例如,人)立即连接到各种类型的应用和服务300a-n。本文提供了语义原子1000的使用的几个示例:
关于电影,用户可以使用虚拟助理系统10来例如根据例如Rotten TomatoesTM服务查看当前可用的顶端电影。每个电影可以由单独的语义原子1000表示。用户可以使用电影的语义原子1000来定位要出租的电影,例如以验证哪个本地RedboxTM的存货中具有DVD。可以使用任意命令输入或其组合,取决于特定用户和所涉及的插件220的编程。例如,不需要打字或说话。查看电影并查找其可用性的这个过程可能完全是用触摸或手势完成的。类似地,在本示例中可以使用NetflixTM、BlockbusterTM、CrackleTM或任意其他类型的电影相关服务。
对于书籍,用户可以在服务300a(例如GoodreadsTM)上查找一本书,并且获得与该书对应的语义原子1000。然后,用户可以将该原子1000发送到另一个服务300b(例如AmazonTM),以查看人们对该书的评级。随后,用户可以将语义原子1000发送到例如Overstock.comTM(另一服务300c)以购买该书。这样,用户可以立即使用语义原子1000购买该书并将购买记录保存在虚拟助理系统10上。
关于灯泡,用户可以例如生成表示用于灯泡设置的灯泡的颜色和亮度设置的语义原子1000。备选地,可以为颜色和亮度作出两个单独的语义原子1000,其可以被组合以形成单个语义原子1000。然后,用户可以使用例如手势移动,使用虚拟助理系统10在另一灯泡处“投射”表示灯泡的设置的原子1000。另一个灯泡可能立即被强制(即以专有语言被命令)采用第一灯泡的颜色和亮度设置。
关于跨用户共享,语义原子1000也可以被发送到其他用户。如例如图10中所图示的,一个用户可以使用音乐识别服务300a(例如GracenoteTM)识别歌曲,其可以获得关于歌曲的信息,例如姓名和专辑。虚拟助理系统10可以生成表示歌曲的、并且包括由服务300a找到的信息的语义原子1000。然后,用户可以将表示歌曲的该语义原子1000发送给另一用户,另一用户然后通过将原子1000发送到另一个服务300b(本例中为YouTubeTM),可以使用歌曲原子1000经由虚拟助理系统10在例如YouTubeTM上播放歌曲。该另一服务300b可以获得该歌曲并在另一用户的音频系统上播放该歌曲。值得注意的是,该本示例中的助理服务器200是可选用于在用户之间发送歌曲信息。具有在其移动设备100上表示歌曲的语义原子1000的用户可以直接或经由助理服务器200将该原子发送到另一用户的移动设备100a。
此外,如上所述,几个原子1000可以彼此嵌套或捆绑(组合)成单个原子1000。例如,充满购物物品的虚拟购物篮(例如,AmazonTM上的用户购物车)可以是单个原子1000,其包括对应于嵌套在其中的各个购物项目的其他原子1000。因此,购物篮中的单个原子1000可以节省空间并增加在不同服务300a-n之间发送原子1000(及其嵌套原子1000)的便利性,以增加用户便利性。
虚拟助理系统10是开放的一个,任意开发人员可以在其中创建插件220。该开放结构允许任意开发人员为新数据类型指定新的语义原子1000。以这种方式,语义语言可能会随着时间而不断扩大。语义语言方言也可允许用于不同的领域。
除了提供公共命令集合之外,本发明总体发明构思的示例性实施例还允许经由自适应学习和控制系统来开发新的命令。例如,一旦由用户定义,在移动设备100处接收的、未被识别的命令可以被记录为的新命令。如图所示,例如,在图11中,用户可以做出旨在给出命令的姿势(“停止”,如图11所示)。如果该输入不在助理服务器200中记录的输入之中,则用户然后可以以不同的方式输入命令,例如通过触摸表示“停止”的图标。助理服务器200然后可以将作为表示相关命令的第一输入(在该示例中为手势)记录到存储装置250中。
根据如图12所示的本发明总体发明构思的示例性实施例,自然和无意识的输入也可以被虚拟助理系统10解释为命令。例如,如果虚拟助理系统10的用户播放视频并且声音太大,则用户可能会无意识的缩回并拉回他/她的头。这种无意识的运动之后将使用图标或手势或语音命令来降低音量。因此,虚拟助理系统10可以获知缩回并拉回头的手势应该与大量降低音量或完全静音相关联。这个新的命令(缩回并拉回头)可以对应地保存在助理服务器200的存储装置250中。类似地,某些上下文中的鬼脸或其他面部表情可以与“撤销或返回最后一个命令”相关联。作为另一示例,如果用户在移动设备100的显示屏幕(例如,用户界面150)处眯眼,则该面部表情可以被解释为放大所显示的文本或图像的命令。因此,除了有意识的输入命令之外,虚拟助理系统10还可适应和存储非故意的或无意识的输入命令。
作为备选的或除了本发明总体发明构思的上述示例性实施例之外,用户或开发人员可以指定表示特定人员的特定手势。作为一个特别有创意的示例,咬一个人的手指,敲打一个额头,然后做手势指示顺时针运动,随后是打开两个手掌指示“10”可能意味着“发送给我的母亲消息,我将在10分钟内到达”。因此,一些输入可能具有表示如数字或个人的特定事物的变化的范围。
在输入(例如图标和手势本身)中也可以提供一些变换。因此,可以在库中指定几个相互可互换和等效的图标。类似地,几个手势可以对应于相同的潜在意义并可互换使用。命令输入的这种互换性是重要的,因为不同的文化区域可能具有与特定事物相关的不同含义,并且具有变换的偏好。请注意,图标的颜色和大小也可能具有与之相关联的含义。类似地,当彼此结合使用时,图标和手势可以具有额外的含义,例如表示正在控制哪个服务300。例如,当右手掌平放时,表示“关闭”的图标可以用于操纵门关闭,而代之以用右手作出U形时可用于关闭窗口屏幕。这样的规则也将构成库如何预定义并且然后被插件开发人员用于向用户提供控制的一部分。请注意,手势重复也可能带有意义。使用手指进行一个敲击动作与快速连续的两个敲击可能是手势库中完全不同的手势。作为另一个示例,对于将虚拟助理系统10连接到文档管理系统的插件开发人员,捏住手指(如同握住假想的钥匙)并转动一次可能意味着使文档“只读”,而转动两次可能意味着“移除读写访问”。
在图13中示出了根据本发明总体发明构思的示例性实施例的这种自适应使用的另一示例。如上面关于图4A所述,移动设备100可以包括中央处理单元(CPU)130。该CPU 130可以被配置为运行学习算法,其确定何时通常一起给出一系列命令。例如,用户可以作出作为手势示出的第一命令,以将恒温器温度升高到70°F。然后,用户可以进行另一手势来将客厅灯打开以达到最大亮度,以及第三手势以打开客厅电视。如果运行学习算法的CPU 130确定这些手势通常一起执行,则它可以将该确定通信传输给助理服务器200,助理服务器200进而可以产生同时执行所有三个动作的新命令。图13示出了用于执行通常一起呈现的一组命令的单独的新手势。在本发明总体发明构思的其他示例性实施例中,可以提出多个等效命令输入(例如,手势),其中任意一个将执行所有相关联的动作。当在移动设备100处检测到这些命令输入中的一个时,其被助理接口110转换成一个或多个语义原子1000并被发送到助理服务器200,然后通过插件220转换以给出适当的命令到对应的服务300a-n。
在本发明总体发明构思的其他示例性实施例中,虚拟助理系统10(具体地,移动设备100)可以确定特定图标通常在每天的特定时间接收触摸输入,然后在每天的那个时间将这些特定图标带到更多用户界面150上的突出位置。虚拟助理系统10还可以在每一天的那个时间在移动设备100的用户界面150上在以与其他图标相比更显著的位置处呈现这些图标(例如,作为视觉描绘)。虚拟助理系统10可备选地在助理服务器200处生成新图标,并显示在移动设备100上,该移动设备100执行通常一起接收触摸输入的几个图标的动作。这些相关性被在保存(以人可读或不可读的格式)在附接到助理服务器200的存储装置250中。虚拟助理系统10将基于上下文生成该图标的名称。例如,一个图标可以命名为“到家”。
虚拟助理系统10可以在另一方面是自适应的。如果经由运行学习算法的CPU 130,移动设备100注意到用户不正确但重复地使用图标或图标序列,其目的是执行不能被执行的动作(因为图标不正确),则助理服务器200实际上可以将该图标或图标序列与该动作相关联(对于该用户、对于用户的一部分、或对于所有用户)。例如,如果用户反复倾向于调高音量,然后立即将其调低,然后(使用不同的图标)向上移动电视的频道,则这可能表示用户将调高音量和上移频道的图标混淆。移动设备100中的CPU 130可以检测到这种行为,然后提出“调高音量”图标被备选地用于“上移频道”,并且进而被替换为不同的和较不混淆的图标。虚拟助理系统10还可以自动进行改变,如果基于在CPU 130、助理服务器平台210或其结果保存在存储单元140或存储装置250上的单独的服务器中运行的决策算法认为其是合适的。
这些使用模式和伴随的改变可以被收集在移动设备100的存储单元140中或在助理服务器200的存储装置250中,以被用作更新的命令。因此,存储在存储装置250上的命令库230可以随着时间而用新的、直观的和适应性的命令来扩展。
备选地,或除了以上其中助理服务器200自动更新命令的自适应控制以外,关于用户的动作和输入的数据可以被收集,并且使其可用于插件开发人员,例如通过电子邮件或通过其开发人员可以查看与插件220的使用有关的信息的在线管理门户。这允许开发人员对应地更新插件220。这是有价值的,因为输入的重复使用(例如图标)指示输入与该用户或聚合的用户组心中的预期动作的持续直观映射。开发人员可以基于用户行为,发现存在这样的心理输入到动作的映射。当处理器容量或特定学习算法的有效性是关注点时,将数据单独发送到开发人员而不是在CPU中实现学习算法可以是有利的。
这些自适应技术可以用于解决由不同的插件开发人员创建的插件220之间的语义混淆。例如,用于一个恒温器的插件220的开发人员可以指定一个手势来升高温度,而对于不同恒温器的插件220的开发人员可以指定不同的手势。基于用户如何使用手势,虚拟助理系统10可以向开发人员提供关于如何修改手势(或图标或语音命令)的建议,以允许用户以更一致的手势集来完成他们想要的内容。通过将服务分类为类似的组,开发人员还将被帮助以为他们的新插件220选择最直观的图标、手势和语音命令。例如,为第十个恒温器创建插件220以与虚拟助理系统10交互的接口开发人员可能能够更好地通过用户实际上更喜欢通过与前九个恒温器的图标、手势和语音来调用各种恒温器功能。这可以通过强烈建议开发人员使用针对特定功能的特定图标或更间接地通过阻止过去已经被用户混淆的映射来规定地完成。
此外,这些自适应技术可以使用将被各种类型的硬件使用和/或在各种类型的硬件上开发的各种人造智能技术来使用,包括机器人算法、学习算法、并行编程、逻辑搜索、优化、启发式、进化计算等,但不限于此。因此,虚拟助理系统10可以基于用户的动作、习惯和倾向来“学习”用户的偏好。
根据本发明总体发明构思的另一示例性实施例,可以为不同的用户组(例如,在不同的国家)建立不同的手势、图标和有声命令的集合。虚拟助理系统10(移动设备100的CPU130或助理服务器200的助理服务器平台210)可以从具体输入(手势、语音命令、图标等)的使用推断用户属于这些组中的哪一个,然后在用户最熟悉的“方言”中为他们提供支持。例如,这是可能的,与来自平民环境的人相比,来自军事环境的人可能习惯于不同的图标或手势集合来表示“左转”。如果虚拟助理系统10能够基于该人做出的以指示“左转”的手势推断某人是属于军队的,则其他手势和图标也可以改变意义以向该人提供更熟悉的环境。这样的推论然后可以作为该人的环境被保存在虚拟助理系统10中(具体地,在移动设备100的存储单元140和/或助理服务器200的存储装置250中)。
根据本发明总体发明构思的另一示例性实施例,可以存在图书馆的三层系统。第一库集合(手势、语音、图标)是通用的,并且适用于所有用户。第二库集合(手势,声音,图标)适用于特定的用户群体(例如特定行业的用户、特定年龄或社会群体的用户、说特定语言的用户、是特定机构集合的成员的用户、居住在特定地区或国家的用户等)。第三库集合(手势、语音、图标)适用于特定用户。如果这些之间存在冲突,因为相同的命令输入(例如,单词、手势、图标等)在这三个不同层次的库中意味着不同的东西,可以利用优先规则。通常,用户特定的解释胜过用户群组的解释,进而又胜过普遍的解释。然而,在某些情况下,此优先顺序可能不同。
控制也可以是自动化的或根据上下文而变化。例如,如果用户在打开电视机后总是打开DVR,则当接收到打开DVR的命令时,虚拟助理系统10可以自动选择打开电视机。备选地,该预测行为可以由插件开发人员根据由虚拟助理系统10收集的使用或上下文数据进行编程。作为另一示例,如果用户存在于特定地理围栏区域,则可以自动启用对某个文档管理系统的访问,并且当用户离开该区域时可能会切断此类访问。控制可以被做的甚至更具体,例如,如图14所图示的,通过一个走廊进入房间的用户,他们可以访问文档管理系统,而如果相同的用户从不同的走廊进入,则用户可能不具有访问。虚拟助理系统10的其他因素(例如时间或用户使用顺序)也可以是上下文的元素,从而改变虚拟助理系统10的控制。
根据虚拟助理系统10的本发明总体发明构思的示例性实施例,为了启动虚拟助理系统10采取预测动作的这些场景,移动设备100或助理服务器200可以不断地测量何时调用某些动作并在其存储设备(移动设备100的存储单元140和/或助理服务器200的存储装置250)中收集这些测量。测量可以包括位置、每天的时间、特定个体的共存、已采取的动作序列和其他因素。如果虚拟助理系统10基于在CPU 130、助理服务器平台210上或者连接到虚拟助理系统10或与虚拟助理系统10通信的服务器或其他学习型设备上运行的统计、概率或机器学习算法发现预测何时采取某些动作的可靠方式,则虚拟助理系统10可以这样做。
虚拟助理系统10还可以借助于在移动设备100上显示消息来主动地呈现其用于将最终用户预先采取此类动作的意图。该消息可以从助理服务器200发送到移动设备100以被显示在U1 150上,或者可以在CPU 130处生成消息并在U1 150处显示该消息。消息可以是例如视觉、听觉或触觉,并且允许用户批准或不批准这样的动作。该消息可以采用以下形式:提前呈现预测动作作为新的“常规规则”,或者建议虚拟助理系统10立即执行动作除非用户覆盖提案并指示虚拟助理系统10不这样进行。
在本发明总体发明构思的另一示例性实施例中,移动设备100被配置为提供虚拟现实(VR)体验。在这种情况下,移动设备100可以是例如可配戴设备,例如耳机或手套。使用语义原子1000可以能够实现无缝VR体验。
在该上下文中的VR表示其中用户与浸没式环境交互的体验。“浸没式”环境意味着用虚拟环境部分或完全地替代用户对周围环境的感知。例如,移动设备100可以是由用户佩戴的耳机,并且呈现出跨越用户视野的部分或全部的视图。这样的移动设备100的用户通过移动设备100感知虚拟环境的人造视图。因此,用户可以被浸没在虚拟环境中。备选地,用户可以在封闭的环境中,例如在壁上显示图像的房间,并且“移动设备100”是可以例如通过接收手势和语音命令从用户接收输入命令的静止对象。换句话说,用户可以具有VR体验,而不必要求在其身体上直接佩戴任意东西,同时仍然浸没在人造环境中。
本发明总体发明构思通过为用户提供统一的环境以进行交互来实现VR。类似于服务300a-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体验相互被集成并无缝共同操作。
用户命令仍然可以通过VR环境的介质来被接受,例如通过图标触摸、手势或口头命令。用户命令输入可以例如通过与VR环境的交互被上下文地解释。例如,可以在用户的视野中显示虚拟图标,并且用户对图标的触摸动作可以对应于执行相关动作的命令。在这种情况下,“触摸”可以意味着在逻辑上等于触摸的手势,除了用户正在VR显示器中“触摸”显示给用户的一些东西,而不是被显示在屏幕上的一些东西或用户实际正身体触摸的其它物体
如上所述,包括将命令输入或输入转换成一个或多个语义原子1000的助理接口110的移动设备100可以是例如用户用作为VR会话的一部分的VR耳机或其他可配戴设备。可备选地,类似于图5B,移动设备100可以是与耳机或其他可配戴设备通信的单独的计算设备。这种移动设备100的助理接口110可以将从例如耳机的外部感测设备接收的命令输入转换成一个或多个语义原子1000,并且可以将转换的命令发送到助理服务器200。
除了允许构成VR体验的不同服务300a-n之间的无缝转换之外,虚拟助理系统10的示例性实施例允许多个用户之间的协作。多个用户可能参与VR会话,体验相同或相似的VR环境。每个用户可以使用单独的虚拟助理系统10,包括它们自己的移动设备100和助理服务器200。各种助理服务器200a-n可以经由语义原子1000彼此通信。备选地,单个用户可以将他们的移动设备100连接到两个以上的助理服务器200a-n,其可以类似地用语义原子1000彼此通信。此外,不同的用户均可以使用相同的助理服务器200,即使用户物理上彼此远离(例如在不同国家或时区中),只要各自的移动装置100与助理服务器200通信。
当存在助理服务器200的多个实例时,可以在助理服务器200a-n之间传输诸如用户偏好、命令输入和上下文的信息,从而允许一个助理服务器200a理解另一助理服务器200b的命令输入。这是以以上详细描述的由助理服务器200自适应学习的形式。例如,多个不同用户的命令输入可以在助理服务器的多个实例200a-n之间传输并被其理解。助理服务器的多个实例200a-n还能够实现上面给出的示例,其中多个用户正在使用完全不同的助理服务器200a-n,但仍然参与相同的VR体验,因为它们各自的助理服务器200a-n彼此通信。
在两个以上用户之间的共享VR体验中,命令输入也可以被共享。一个用户可以进行命令输入,其然后可以被另一个人校正或补充。例如,用户中的一个可以做出手势来改变场景,其可能会失败,因为该用户不知道要做出的正确手势(如在助理服务器200所访问的存储的命令输入的库230中所注册的,图6A中所图示的)。然后,第二用户可以例如借助于手势、口语命令或通过触摸可识别为由助理服务器200访问的命令输入的库230内的手势的图标来校正第一尝试命令输入。助理服务器200然后可以用原始的、未被识别的命令输入来更新其库230,并将原始命令输入与预期的动作相关联。库的这种更新也是自适应学习的示例,其使助理服务器200能够自适应地扩展其命令输入的词汇。由于助理服务器的不同实例200a-n可以将新的命令输入相互通信传输以更新其各自的命令输入库,所以这个相同的动作可以扩展到助理服务器200的多个实例。
来自多个用户的命令输入也可以经由自适应学习来捆绑在一起。例如,如果重复的一些动作在一系列手势、语音语句或图标或图形的虚拟化触摸上被执行,则虚拟助理系统10可以将这些动作捆绑在一起形成单个手势、语音命令或图形图标触摸,其将触发要执行整个操作序列。可能也可以类似地自适应地将包含多个人的动作捆绑在一起。例如,如果用户A采取了一些动作,然后紧跟着用户B的动作,然后由用户C的另一动作,但是这些用户经常共同执行这些动作,所有这些动作都可以捆绑在一起成为单个触发(例如,手势、语音控制或图形控制),其可由用户中的任意一个做出。有时,这些动作也可能要求多人同时或按顺序进行授权。如果是这样,通过仅针对该捆绑的动作来有条件地扩展相关的权限,这些授权也可以被捆绑在一起成为一个单个控制。这种动作的捆绑涉及下文详细描述的授权的扩展和撤销。
命令输入的含义可以根据上下文而变化。例如,如果在灯的方向上做出手势命令输入,则虚拟助理系统10可将手势解释为例如降低亮度水平的命令。如果在音乐播放器的方向上做出相同的手势,则虚拟助理系统10可以将手势解释为例如降低音量水平的命令。这种形式的自适应学习在VR应用中是非常有价值的,以允许虚拟助理系统10响应于命令输入执行更直观的动作。
对于不同的人也可以不同地解释相同的命令输入。例如,如果一个人一直倾向于使用手势来表示一件事情,并且另一个人使用相同的手势来表示不同的事情,则虚拟助理系统可以经由自适应学习来学习这些偏好。此外,如果助理服务器的多个实例200a-n由一个或多个用户使用,则助理服务器的实例200a-n可以在彼此之间通信传输用户偏好和命令输入,以便支持一个或多个用户的无缝体验。请注意,这种自适应学习以对不同用户不同地解释命令输入的使用也允许在不同用户组中或个人之间的命令输入的方言的出现。
可以在手持体验(例如,用智能手机)和用于特定命令输入的VR体验之间建立等效性。因此,在命令输入的库230中,一些命令输入可以被标记用于在手持体验中使用,一些命令输入可以被标记用于VR体验,并且一些命令输入可被标记用于手持和VR体验两者。在某些情况下,将存在其中特定移动命令输入(例如,图标触摸)对应于不同的VR命令输入(例如,手势)的映射。这些映射可以由虚拟助理系统10基于使用和反馈模式经由自适应学习来推断。映射也可以由插件开发人员明确提供。
插件开发人员可以具有设计体验的能力(例如,为插件220a-n定义一个或多个动作),而不需要定义哪些特定命令应当使这些一个或多个动作在对应的服务300处执行。然后插件开发人员可以随后通过将控制元素(例如,语音、手势、触摸等)映射到所定义的一个或多个动作上来定义相关命令输入。备选地或另外地,虚拟助理系统10可以基于与其他插件220的体验来推荐一个或多个特定命令输入以在特定情况下使用。这些命令输入也可以基于用户行为进行微调和自适应。作为示例,用于音乐播放器插件220的插件开发人员可以在开发插件220的时编程相关动作,例如改变音量、改变正在播放的音乐等。然后,插件开发人员可以随后编程相关的命令输入,例如,增加音量的竖起大拇指、改变音乐的图标触摸手势等。备选地,可以将插件220提供给虚拟助理系统10,而不需要定义特定的命令输入,并且虚拟助理系统10可以建议或提供命令输入。例如,如果虚拟助理系统10已经从其他插件220a-n自适应地学习用户通常用于增加音量的特定手势,则虚拟助理系统10可以建议或提供在上述示例中到用于音乐播放器插件220的该手势对应于用于提高音量的命令输入。
在一些情况下,通过插件220或虚拟助理系统10来表示某些动作的控制元件也将基于潜意识的用户行为来进行自适应。如果用户无意识地持续地做某些事情,则虚拟助理系统10可以基于该行为来自适应于用户。例如,如果用户一直尝试在城市中的街景视图类型虚拟步行中在路边移动,则虚拟助理系统10可能会观察到这种尝试移动并使得这种在路边运动为与该动作相对应的支持手势。命令输入的这种解释也可以是上下文相关的。例如,当用户A由用户B伴随时,与用于一个或多个服务的一个或多个控制相对应的手势可能对应于当用户A用户C代之以伴随时用于一个或多个服务的一个或多个不同的控制。当用户在城市步行插件220时对应于一个或多个控制的手势可以对应于当同一用户正在使用另一个插件220来虚拟地飞过海洋时的一个或多个不同控制。对于插件220内的不同内部上下文,控制元件也可以在单个插件220内具有不同的含义。例如,对于提供通过上述城市的虚拟步行的插件220,当用户在虚拟街道上时命令输入(例如,手势或用户的脚的移动)可以导致在路边移动,而如果用户在同一虚拟步行插件220中的虚拟建筑物附近,相同的命令输入可能导致用户进入虚拟建筑物。在该示例中VR体验中的用户的虚拟位置对应于用于解释一个或多个命令输入的上下文。
对应于与虚拟助理系统10的通信用户接口的客户端110可以以某种方式在VR环境中被拟人化,并且用户可能能够与它进行交互,例如,与客户的对话或手势(有意识地或无意识地)。例如,客户端110可以表示为用户在VR环境中感知的、并且用户可以直接与其交互例如以给出一个或多个命令输入和/或从服务300接收反馈的鸟。以这种方式呈现,特定用户的客户端110可以是仅由该用户可感知的,或者备选地可以由参与相同VR体验的一个或多个其他用户感知。用户的客户端110还可以有限的持续时间的或永久地呈现并且监视用户,而不被拟人化甚至完全没有由用户感知。换句话说,虽然客户端110仍然监视用户的动作并且基于用户的动作接受命令输入,但用户可能不会意识到其客户端110在VR会话中的存在。
VR还允许对命令输入的直观的澄清。当用户执行不被虚拟助理系统10理解或可能不正确地理解的命令输入时,用户可以诉诸图形系统,例如可选图标的显示,其可以帮助系统适应和学习不被理解的命令输入。
可能在共同VR会话中呈现的不同用户可能具有相同情况的不同的观点或体验。例如,用户可以从其电影服务300a(例如,Hulu PlusTM)中选择电影并与另一用户共享电影(例如,通过做出命令输入来控制虚拟助理系统10以与另一个用户共享电影)。接收共享电影的另一用户可以具有不同的电影服务300b(例如,NetflixTM),并且可以检查该服务300b中的共享电影的可用性。
在这种情况下,对应于共享电影的数据可以被表示为一个或多个语义原子1000。然后,可以通过对应的插件220a-n,在服务300a-n之间映射该数据(在这种情况下为电影)。用户还可以与另一个用户共享表示为一个或多个语义原子1000的数据。然后,其他用户可以容易地将该数据转换成它们相应的服务300a-n。
可能两个以上用户正在共享的非常会话环境也可以使用经由语义原子1000的这种数据传输来构建。例如,特定的颜色设置、风景、音频背景和体验的其他方面可以由多个VR系统经由助理服务器200交换语义原子1000构建,助理服务器200然后将包含在原子1000中的信息组合成单个会话环境。为此目的,可以存在在不同用户的VR系统中运行的助理服务器200的多个实例,例如,每个用户可以具有以上述方式与一个或多个其他用户的助理服务器200a-n通信的其自己的助理服务器200a-n。
还存在场景,其中在具有一个用户的单个VR会话中,用户正在与虚拟助理系统10交互,并且在服务300a-n之间移动表示为语义原子1000的数据。例如,用户可以在PinterestTM(通过对应于PinterestTM的插件220a)上查找一件服装,然后容易地使用该服装在NordstromTM上找到并预览类似的项目(通过对应于NordstromTM的插件220b)。例如,用户甚至可以在一个服务300上构建项目的集合,以及然后该列表可以分布在多个其他服务300a-n上。例如,在Rotten TomatoesTM的一段时间内,用户可能会收集他们希望观看的电影列表。根据相应服务300a-n中的电影的可用性,该电影列表然后可以分发到电影服务,例如NetflixTM、Hulu PlusTM、Amazon InstantTM和其他服务。这些项目列表(本示例中的电影)也可以由多人共同工作合作建立。
语义原子1000也是重要的,以便确保用户退出一个插件220(对应于由一个开发人员设计的VR体验)并进入另一个插件220(对应于由另一个或相同的开发人员设计的另一个VR体验)的无缝体验。利用传统的电子设备(例如智能电话),用户通过有意地停止一个服务300a,返回到可用服务300a-n的列表(例如,“主屏幕”),并选择要运行的新服务300b,来在服务300a-n(例如,智能电话上的应用)之间转换。虽然这种形式的接口对于常规电子设备是可以接受的,但它并不会导致身临其境的VR体验。根据常规方案,想要在服务300a-n(例如不同VR环境)之间改变的、VR会话中的用户必须停止一个VR会话并且开始具有新环境的新会话。这种转换可能会破坏用户VR体验的连续性,因为用户必须完全停止一个虚拟现实体验以便开始另一个虚拟现实体验。此外,在新的VR环境中开始新的VR会话时,用户必须经常调整到新的环境,例如再次全部建立他们的偏好和设置。这种调整也可以打破用户的连续虚拟体验的感觉。虚拟助理系统10的示例性实施例可以解决这个问题。不是迫使用户退出VR体验以便在服务300a-n之间进行切换,在本文描述的虚拟助理系统10可以允许用户在服务300a-n之间无缝地转换。
为了建立这种无缝体验,用户的上下文和与一个插件中的用户体验相关的其他元素可以作为一个或多个语义原子1000与其他插件220共享或提供给其他插件220。例如,根据第一插件220a正在VR中的虚拟街道向下走的用户可以爬到位于虚拟街道上的虚拟太空飞船中,该虚拟太空飞船已经以语义原子1000的形式由对应于该宇宙飞船的另一、第二插件220b提供给第一插件220a。来自第一插件220a的数据可以表示为语义原子1000并与第二插件220b共享或提供给第二插件220b。一旦用户已经虚拟地爬上虚拟太空飞船,用户就可以控制VR中的虚拟飞船(例如起飞),然后用户实际上已经转换到使用第二插件220b,同时全部无缝地执行。在用户的感知中,用户已经有了一个连续的VR体验,其中用户已经沿着虚拟的街道行走,爬入虚拟太空飞船,并在虚拟太空飞船中起飞。这种连续的VR体验是可能的,因为虚拟助理系统10可以经由语义原子1000来管理插件220a-n之间的交互。语义原子1000的使用关于管理用户的VR体验尤为重要。
事实上,可以存在用户可以在提供VR体验的插件220内的任意点处可以看到的几个VR体验,并且这些VR体验中的每一个可以对应于由不同插件220a-n提供的VR体验。当用户进入这些VR体验中的一个时,作为一个或多个语义原子1000的任意相关数据可以与新插件220a共享或提供给新插件220a。该数据还可以与可以扩展到另一插件220b的用户权限、以及与用户一起行进的支付工具相关联,即使用支付工具的权限(例如,支付工具的收费交易)可以在用户在VR体验之间移动时可以伴随用户。插件220a-n之间的相关数据传输允许用户将由一个或多个插件开发人员提供的VR体验组合成单个、无缝VR体验。
表示为语义原子1000的数据还可以包含关于用户的当前状态的信息,例如关于奖励程序或一些种类的状态的用户实现。然后可以容易地将表示关于用户状态的数据的原子1000在其他插件220a-n之间共享或提供给其他插件220a-n。每个插件220将具有自己的特定状态意味着什么的定义。共享或提供关于用户状态的数据允许用户建立插件220a-n之间的过去经验。例如,一个或多个用户可以将它们在第一VR游戏中的密集玩法(play)移动到第二VR游戏,以给予一个或多个用户在第二VR游戏中的更高的起始点。
如果表示为一个或多个语义原子1000的数据被存储在虚拟助理系统10中,则可能人们也可能在不同的时间从事VR会话,但是能够使用先前由其他用户从服务300a-n获得的数据。这些用户然后可以以一个或多个附加语义原子1000的形式提供进一步的数据。
本发明总体发明构思的示例性实施例还可以包括增强现实(“AR”)。AR与VR相关,因为用户被呈现有虚拟环境。AR和VR之间的主要区别在于,用户仍然可以感知到他们的即时的环境,仅额外的图形或其他覆盖被提供。例如,尝试遵循到达目的地的方向的用户可以感知地面上的箭头,将用户引导向目的地。应当理解,本文给出的发明概念像适用于VR一样同样适用于AR。
AR体验可以被提供,例如通过允许用户正常观看的、但也可以在用户的视野中显示图像的眼镜。备选地或另外地,用户可能正在观看例如实时或时间延迟的相机馈送,其中附加元素被显示以供观看。AR经验还可以例如经由音频信号或触觉反馈向一个或多个用户的其它感觉提供额外的数据。
类似于VR,命令输入的解释和在AR中执行的动作可以取决于伴随的上下文。然而,在AR中,上下文可以包括用户的即时环境。因此,虚拟助理系统10可以包括或者连接到例如检测用户周围环境并允许虚拟助理系统10对其做出反应的摄像机和其它传感器。例如,如果在用户的家中存在入侵者,则AR体验的相机(诸如上述的眼镜中包括的相机)可以捕获入侵者脸部的图像,并将其报告给当局。该图像捕获和报告功能可以响应于用户的意识或无意识动作来执行。
如现在将参照图1A和图15更详细地描述的,移动设备100的用户可以共享对助理服务器200(并且因此虚拟助理系统10)的访问以允许其他用户控制在虚拟助理系统10内的、并且因此已经被共享访问的用户控制的服务300a-n。因此,用户(在移动设备100)可以通过其他用户的相应移动设备100a-n与其它用户共享语义原子1000。因此,由移动设备100的用户的服务300的任意期望的控制可以通过成为其他用户的移动设备100a的朋友、通过其它用户的移动设备100a与另一用户共享(参见虚线“共享访问”),如图1A所示。一旦用户(移动设备100)具有例如经由电子邮件、LinkedlnTM、FacebookTM、TwitterTM等与另一用户联系的方式,则可以提供对控制服务300a-n的访问的共享(或“成为朋友”)。换句话说,一旦虚拟助理系统10内的移动设备100的用户能够通过任意形式的通信经由另一用户的移动设备100a-n与另一用户通信,则用户(移动设备100)可以经由这种通信形式发送“报价”以与其他用户的移动设备100a-n共享对助理服务器200的访问。
特别地可以通过消息传输来实现共享,其中用户可以请求来自另一用户的访问并通过回复消息被授予访问。这些消息还可以包括表示例如授予的访问的原子1000。
一旦其他用户接受对用户的助理服务器200的访问的提供,则其他用户可以被提供有与移动设备100的用户通过助理服务器200拥有的控制相同的对所有外部服务300a-n的控制。此外,如下面更详细地描述的,与其他用户的共享访问可以在许多方面被限制,例如,关于控制级别、其他用户位于的位置、其中用户允许其他用户维持共享访问的时间帧等。存在大量的方式,其中可以基于虚拟助理系统10的期望设置通过系统10的开发人员或者在系统10的原始设置之后的稍后时间的用户的指令来控制/限制与其他用户共享的访问。
共享访问允许其他用户通过原始用户的助理服务器200来控制外部服务300a-n,以及基中原始用户允许共享(或“成为朋友”)用户访问的级别。
此外,如图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)的访问的撤销可能发生的特定条件。
除了对其他用户阻止机密的ID和密码(或其他证书)之外,由于ID和密码仅保留在助理服务器200处,因此不需要无线地传输,用户的ID和密码(或其他证书)可以安全地保持对原始用户A(在移动设备100处)机密。因此,可以完全防止非法访问、不允许的访问和通过无线传输拦截或其他类型的泄露的安全的证书的滥用。
因此,助理服务器200维护给出访问和使用底层服务300a-n的权限的所有证书(ID,密码等)。这些证书由助理服务器200被保持在直接或间接地连接到助理服务器200的存储装置250。当在助理服务器200处创建插件220,并且用户开始首次访问该插件220以便使助理服务器200利用对应的服务300执行进行各种动作时,用户首先需要以某种形式向助理服务器200提供用于服务300的所需的证书。通过助理服务器200以以下许多手段之一来收集这些证书:通过屏幕、键盘、扫描仪、鼠标、相机、麦克风或手持式或可配戴式设备(诸如臂环或面部配戴或手指配戴的等)或连接到助理服务器200或与助理服务器200通信的一个或多个另一外围硬件系统。
作为示例,用户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访问。
下面仍参考图15来描述这种共享的安全形式的另一示例:原始用户A使用助理接口110在助理服务器200中建立服务300,例如,原始用户A可以建立作为外部服务300被无线地访问和控制的某些灯集合。然后,用户可以向助理服务器200提供访问和操作灯所需的必要信息。该信息可以包括例如灯的密码、用户名和IP地址。插件工程师最初指定用户需要哪些证书来开始与助理服务器200一起使用该类型的外部服务300。现在,灯作为助理服务器200可以访问的外部服务300存在。该访问控制仅由用户A拥有。该用户A现在可以指示助理服务器200根据需要将那些灯(服务300)与任意其他用户B“成为朋友”。这种访问共享可以以如本文所述的各种不同的方式来实现。例如,用户A指示助理服务器200的共享访问通过:联系用户B并提供用户B加入虚拟助理系统10,或者如果用户B在手势可以发信号通知用户B的区域中则可以向用户B作出手势,或者用户A可以作出通知允许访问的手势(此时相机在附近检测到用户B)等等。其他用户B现在可以经由助理服务器看到外部服务300并且使用外部服务300。另一个用户B可以例如打开和关闭这些灯,并且改变这些灯的颜色。然而,如上所述,该另一用户B不具有灯的用户名、密码或IP地址(或由工程师最初创建的其他证书),并且除了通过助理服务器200之外没有操作外部服务300的手段。
在任意时候,所有者用户A可以指示助理服务器200从外部服务300与已经成为朋友的用户B“不再成为朋友”(撤销访问)。如果所有者用户A撤销对其他用户B的访问,其他用户B停止能够操作灯,或者在某些情况下,甚至可能阻止用户B能够以任意方式看到这些灯。也就是说,用户B的移动设备100a可能被阻止甚至不知道灯。
用户还可以设置“不再成为朋友”自动发生的标准。这样的标准可以是与用户B共享的访问的时间限制、放置在用户B上的位置条件等等。例如,服务可以与其他用户B共享预设的时间量,或者直到其他用户离开特定区域。
共享访问的替代示例性实施例涉及在不同用户之间抛出语义原子1000。例如,如果用户在法国的需要密码和信用支付来访问WiFi的图书馆中,则用户可以从移动设备100a(例如,用户的平板计算机)向所有用户的朋友(GmailTM,FacebookTM,MySpaceTM中等)发送请求,以验证用户朋友中的任意一个是否曾在该图书馆中、它们是否访问了WiFi、以及他们是否拥有能够共享的剩余支付额度。然后,即使该朋友在不同的国家,用户也可以向其中一个朋友发送请求,以访问法国图书馆的WiFi。然后,朋友可以通过“抛出”包括访问WiFi的其密码的语义原子1000来手动地向用户提供WiFi访问。备选地,朋友可以根据请求预先设置要提供的访问,即预先将具有密码的语义原子1000抛出给用户。在这两者之中任一情况下,由于信息作为语义原子1000从朋友发送给用户,所以接收WiFi访问的用户从来不需要知道访问WiFi的密码。所接收的语义原子1000可以显示为图标、附件、图像、文件、电子邮件、聊天等,但不限于此,并且允许用户在接收到语义原子1000时自动访问WiFi,或者在选择语义原子1000时手动访问WiFi,在不知道WiFi密码的情况下。
图16示出了本发明总体发明构思的示例性实施例,其中可以在不同的助理服务器200之间共享对服务300的访问,例如如果存在助理服务器200的多个实例。如图16所示,具有第一助理服务器200a的用户A可以与具有第二助理服务器200b的用户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的用户名和密码。
存在可由虚拟助理系统10实现的大量其他应用程序。控制家庭服务集合300a-n是一个明显的应用。如果有人访问用户的家庭,则主人(虚拟助理系统10的用户)可以指示虚拟助理系统10给客人礼貌地访问在用户的家中所连接的服务300a-n的全部或大部分子集(灯、恒温器、百叶窗、报警系统、电话系统、WiFi集线器、娱乐系统等),只要用户在家庭的物理范围内是“成为朋友”。这也可以基于日历邀请来完成。换句话说,伴随着邀请他人到用户的家庭,拥有家庭的用户也可以向访问用户创建正式的邀请“成为朋友”,其在访问期间指定对家庭设施的访问。这种正式邀请可以经由诸如例如电子邮件、短信等的任意形式的消息传输来发送。以这种方式的消息共享访问是一种“可动作的消息传输”的形式。对应于共享访问(包括例如访问证书)的原子1000可以作为消息发送到另一个用户,潜在地用其他消息内容,例如邀请接收用户给共享用户的家庭的文本。
这种有限的访问共享也可以在业务环境中实现。例如,当有人加入团队时,虚拟助理系统10可以经由助理服务器200向这个人扩展对各种工具和服务的访问。当该人员停止成为团队的一部分时,该访问可以被撤销。可以通过简单地请求提供有访问的那些成员的列表,然后在用户请求访问要被撤销的某些成员中进行选择来执行撤销。
助理服务器200还可以基于正在做出的支付来提供该访问。例如,只要电影正在播放,到电影院的访问者可以经由剧院的助理服务器200具有对苏打水喷泉的访问。这个基于时间的访问共享可以在任意指定的时间(即在电影完成时)被自动撤销。
作为另一示例,(移动设备100的)用户A可以与他/她的医生共享来自他/她的所有健康设备的信息。作为用户B的医生可以访问存储在助理服务器200的存储装置250中的所有健康信息。
如上所述,由移动设备100的发起用户A提供的到其他用户B的共享访问可以由发起移动设备100的用户A完全控制,使得由任意共享接入用户B的访问在任意时候都可以由所有者用户A终止,并且被限制在某个的控制级别、某个控制时间段、被限制在一定区域/位置内的控制等。
共享也可以是本质上的预测性,其中预测规则和算法可以是或可以不是人类可读的,并且被保存在连接到其中他们正在运行的助理服务器200的或与其中他们正在运行的助理服务器200通信的存储装置250中。备选地,如上所述,在某些情况下,与访问共享相关的预测规则和算法可以在移动设备100上运行,并且因此存储在存储单元140中。例如,如果某个上下文集合通常导致用户A与另一用户B共享对一些服务的访问,助理服务器200可以识别该上下文模式,并且将来会自动执行该共享。助理服务器200还可以向所有者用户A呈现关于是否应该自动确定和应用上下文模式或者用户A是否应该做出该决定的选择。例如,助理服务器200警告用户A助理服务器200基于识别的上下文历史模式(诸如共享恒温器控制,电视等)打算与客户用户B共享对灯或其他服务300a-n的访问,除非用户A明确要拒绝此类访问。此时,用户A可以通过触摸显示器150上的图标来选择由助理服务器200提供的选项,向移动设备100内的传感器160作出手势,并经由如本文所述的另一形式的输入来提供输入命令。
如上所述,共享也可以以不同的级别执行。例如,像AmazonTM这样的在线商务服务具有多种可以做的事情。可以以个性化的方式检查各种物品的评级和价格(“这是其他读者喜欢你的评级”或“作为主要会员,您不为此物品的运输付款”),物品可以添加到一个希望清单,物品可以被添加到AmazonTM购物车并可以进行购买。可以创建子项服务,其中可以物品可以被检查并被放置在AmazonTM购物车中,但无法完成购买。有可能看到父母(用户A)如何向他们的子女(用户B)提供共享亚马逊TM帐户到在AmazonTM购物车中放入物品,但实际上不做出购买。这样,父母(用户A)可以在购买之前查看孩子(用户B)想要的所有物品。换句话说,访问共享可以应用于插件的功能的子集,而不是其所有的功能。类似地,也可以制定其他规则。父母可以限制他/她的孩子在某些值内改变电视频道,而父母(用户A)可以经由助理服务器200去往所期望的任意频道。
这种有限的和基于上下文的共享也具有其他应用。例如,城市可以允许一般公民在紧急情况下操作门或其他系统而其通常对于他们是被禁止的,并且只能由专业人员或通常授权的人员操作。访问也可以扩展到特定的人群。基于这些人被添加到特定的用户组,例如,孕妇(在商业、医院、购物中心或社区)可以对于她们怀孕期间被给予访问对于其他人无法访问某些服务300a-n。例如,其电动汽车以特定的方式发生故障的用户可以在任意普通用户没有的无人停车场访问代用汽车。对用户的发生故障的汽车的访问可以预测地被授权给前往该汽车的修理工。这里,经由移动设备100的用户A将向维修人员的移动设备100a扩展特定的许可。
根据共享模式社会、家庭和社区的联系也将是可推断的。这也可以用来做出预测共享发生。如果一个用户A与另一个用户B共享所有的家庭设备,则很可能在用户A的家庭登记的下一个家庭设备也将与相同的其他用户B共享。这样的模式将被保存在存储装置250中,并且将使用在助理服务器平台210内创建的分析算法来推断或者作为从其他服务器上运行的其他软件程序被导入到助理服务器平台210的模式来获得。
注意,用户可以快速忘记其中经由助理服务器200的访问就足够的各种服务的用户名和密码。移动设备100的所有者用户A也可以将另一用户B指定为具有与又一其他用户共享访问的权限。例如,这可以在单个家庭的成员中实施。一个用户可以购买电视机并将其与助理服务器200进行接口,然后向其他家庭成员(用户B)提供访问权限,然后他们可以根据需要各自扩展对该电视机(服务300)的访问给他们相应的客人。
助理服务器200还可以将服务的所有权从一个用户A转移到另一个用户A。这允许例如用户A将他们的房屋出售给另一人,并将房屋内的所有服务300a-n转移给该人。类似地,改变办公室的人(用户A)可以将所有服务300a-n的所有权从他们自己转移到另一个用户B,其中用户A然后可以获取与用户A移动到的新办公室相关联的其他服务300a-n的所有权。如上所述,也可以基于某些条件授予服务。例如,如果一个人不幸死亡,那么他们的服务300a-n可以自动转交给他们的相关家庭成员或其他期望的人。
如上所述,手势是与虚拟助理系统10一起使用的一种形式的命令。手势是操作上述权限共享特征的简单方法。手势的使用-包括眼睛运动或不运动、眼眉运动、凝视和面部表情以及所有其他视觉检测的身体运动(或不运动)以延长或撤销对用户或用户组的使用权限-可以相当强大,并且可以使用如本文所述的虚拟助理系统10来执行。然而,应当理解,如上所述,可以使用任意其他命令输入(例如图标触摸或口头命令)来代替手势。
参考图17,对用户B的灯集合(外部服务300)的控制的共享访问可以与所有者用户A指向灯并且然后作出表示与其他用户B共享这种访问的手势(参见时间#1)一样简单。结果,助理服务器200可以授权对用户B的访问。更具体地,在用户A定期工作或生活的这种环境中,例如传感器集合,诸如作为能够捕获关于用户移动的信息的相机或其他类型的光检测装置,可以在受控环境内被设置。这些传感器可以被配置为具有它们自己形式的助理接口110a-n,使得当这些传感器(见图17)检测用户A做出对在受控环境中的诸如灯泡等的控制服务300a-n的共享访问的手势时,该手势命令可以在相关传感器处被转换为一个或多个语义原子1000并且直接提供给助理服务器200。因此,助理服务器200可以经由表示共享访问的手势命令输入按照用户A的指示来与用户B共享访问。如上所述,图17还示图出了固定的“移动”设备100的示例性实施例,其中各种传感器具有助理接口110a-n。
为了更高的安全性情况,照相机或其他类型的图像传感器或其他类型的传感器可以能够检测用户A的实际手或指纹,以便确定实际上是用户A正在指示助理服务器200共享对另一用户B的访问。备选地,用户A可以具有检测用户A作出的手势的可配戴类型设备或加速度计。此外,当传感器经由相机或其他类型识别设备检测用户B时,助理服务器200可以存储用户B的任意预定检测到的特性特征,并将该信息存储在存储装置250内,使得在后续访问这样的环境期间可以向用户B提供共享访问。
仍然参考图17,撤销对用户B的控制可以像向用户B做出“取消共享”的手势(参见时间#2)那样简单,其导致助理服务器200撤销对设备的访问。备选地,可以通过其他手势来执行撤销,诸如,例如作出与对用户B的共享访问的手势集合相同的手势集合,以及然后进行切削(chop)手势。这仅仅是用于说明可以被编程到助理服务器200中或由助理服务器200学习的各种类型的手势的示例。用户A的这些手势也可以由能够捕获关于用户A的移动的信息的相机或其他光检测或感测设备捕获,其进而连接到用户的移动设备100。这样的手势也可以由可配戴的、手持的或通过使用加速度计硬件或其他移动跟踪硬件或甚至眼睛跟踪、嘴唇跟踪或面部跟踪系统来检测移动的其他设备来捕获。
备选地,如先前所述,用户A可以请求其中已经共享了访问的用户B的最近列表。一旦该列表通过助理服务器200在移动设备100的用户界面150处被提供给用户A,则用户A可以在用户界面150提供的列表上选择任意用户B,并通过用户界面150指示助理服务器200来撤销将来的访问。
还可以设置规则,其中访问被临时扩展到另一个用户B,然后必须用手势的使用来周期性地(或者在事件的发生时,诸如某人离开地理围栏区域)扩展。在这种类型的访问共享中,如果所有者用户A作出这样的手势,则可以继续访问。如果所有者用户A无法作出手势,则访问失败。
手势也可以是非自愿的或者以用户B不知道的方式做出的。例如,销售产品的商业机构可能会使某些洗手间的门锁为在机构的某些区域花费了特定的时间的客户或潜在客户(即用户B)操作,但不对其他人操作。这样的商业机构甚至可以允许包含在受保护的橱柜或展示柜中的货物,基于手势和运动信息而被变得可被某些客户访问(通过授权他们访问打开安全外壳而其他人不被授权这种访问)其不可用于其他人。
在地理围栏和其他这样的应用中,可以借助于连接到助理服务器200或与助理服务器200通信的GPS单元、WiFi单元、蓝牙设施、位置广播浮标、IP地址、NFC等来确定位置。可以嵌入在汽车、家用物体、办公室物体和其他物体中的位置测量感测设备的接近检测还可以测量位置。时间也可以是访问确定装置的元素,其可以由类似的这种计算设备来建立和测量。确定访问装置还可以包括助理服务器200的用户使用的顺序。
本文所描述的虚拟助理系统10还为用户提供具有用于撤销和授权用于控制外部服务300a-n的访问的秘密手势的能力。例如,在家庭休息的情况下,父母用户A可以授权儿童权利经由秘密手势(其中小孩可能通常不具有此权利)使用家庭警报召唤警察。
这些手势还可以与图标触摸和语音命令一起操作。例如,用户A可以作出表示“共享”的手势,则用户A可以背诵他/她打算分享的所有服务的名称。语音感测设备可以检测命名的服务,从而提供对这些服务的访问。那么用户A可以如上所述指向接收用户B.
这些手势也可以用于来自大量用户子集的用户的子集必须被授权或不授权对服务(或服务集合)的访问的情况。这种情况的一个示例是其中需要作出关于从一百名销售员中谁具有对商店中的给定收银机的访问的决定。在这种情况下,只需简单地列出人员的姓名或照片的列表并指出应向其授予访问权限的特定人员可以是授予用户子集特定访问权限的一种机制。另一种机制可以是通过凝视跟踪,其中与用户A查看不应该被授予访问权限的人员的时间相比,用户A查看应当被授权临时访问的特定人员时间更长。这样的手势可能是用户A的有意识或无意识的。
类似地,相反地,可能发生存在大量服务集合并且需要快速地做出关于应该向用户或用户集合提供哪些服务访问(或从其撤销访问)的决定的情况。用户A的手势-有意识或无意识-也可以在这种情况下使用。
手势还可以通过用户寻求共享访问(即,用户B寻求具有访问权限的用户A的访问)被用于寻求对服务300a-n的访问。这能够实现“静音”对话,其中一个用户利用手势集合来寻求对给定服务300的访问,并且被授权这种访问,或者通过所有者用户A以另一手势集合或通过由助理服务器200和观察手势请求的传感器设备组合算法地(算术地)作出一些决定。确定这种共享访问的这些算法可以是与助理服务器平台210内运行的其他程序连同作为助理服务器200的一部分运行的软件程序或软件程序的一部分。
在提供虚拟现实体验的虚拟助理系统10的示例性实施例中,用户可以与其他用户共享权限以控制一个或多个服务300。类似地,针对VR会话的持续时间、针对其他施加内长度或受制于其他条件,用户可以选择与一个或多个其他用户在他们的虚拟现实体验的不同方面共享权限。例如,两个或更多的用户可以一起参与游戏(对应于服务300a),其中一个用户具有玩游戏的权限,并且在有限的时间基础上将该权限扩展到其他用户。作为另一示例,多个用户可以使用虚拟购物体验中的一个用户的权限(对应于购物帐户)来一起购物,以从若干商家(对应于一个或多个服务300a-n)进行交互和购买。
在商业相关的VR会话中,共享权限可能非常重要。例如,会议可以在参加者正在查看材料(asset)(例如文件)的VR会话中举行。该材料的所有者可以选择向一些参与者扩展查看权限,并向其他人扩展编辑权限。所有者甚至可以选择具有不同级别的权限(例如,查看权限、编辑权限等)被呈现给不同参与者,其可以在所有者选择的任意时间被撤销。
通常来自其他环境的虚拟现实的一个重要区别是它可能是相当社会的,并且通常涉及协作场景。通常情况下,权限将需要合并起来才能使事情发生。也就是说,用户可以同时相互共享他们彼此相应的权限,使得用户都被授予权限的总和。例如,可能存在不同用户为游戏的不同片段(或多个互连游戏)支付、但是可以将在这些片段中游戏的权限扩展到彼此的游戏。在这些情况下,虚拟助理系统10可以允许权限被合并,从而允许每个用户玩游戏的授权片段。如上所述,有时也可以构建涉及来自多个用户的权限的组合动作。
权限交易也是可能的,其中虚拟助理系统10基于两个以上用户之间的协议永久地或临时地对一些潜在的资产安排权限(例如向一个或多个服务300a-n发出命令的权限)的同时互换。这些权限互换可以是两个用户之间的简单交易,但也可以在多方之间安排复杂的交易。以同样的方式,用户可以永久地将潜在资产上的权限转移给另一用户,而不收取任意回报,或以支付转移作交换。在这种权限转移之后,原有用户丧失对潜在资产的权限。以这种方式,可以在虚拟现实中进行访问或权限的销售或转移。例如,出售他们住宅的用户可以将其住宅恒温器的权限转移给买方。虚拟助理系统10还可以在第三方托管中保存事物(例如,向一个或多个服务300a-n发布命令的权限),以确保交易适当地完成。
两个或多个用户之间的消息会话本身可以是用于共享权限的上下文。例如,消息传输会话中的用户可以向虚拟助理系统10指示他们正在将对某些东西(例如,服务300)的控制扩展到正在执行消息传输会话的介质内的一个或多个其他用户。该控制可以是暂时的、永久的或在用户指令时或在某些上下文时(例如,在完成消息会话时)可撤销的。例如,群组聊天会话中的两个用户可能期望使用只有一个用户具有访问权限的服务300来玩棋牌游戏。具有访问权限的用户可以在聊天会话期间将这些访问权限扩展到另一个用户,使得两个用户在聊天会话期间将均具有使用象棋服务的访问权限。作为另一示例,用户可以将只要聊天会话持续才可操作的网络摄像机视图(对应于服务300的输出)添加到聊天会话中。该网络摄像机视图可能不与聊天会话中的参与者直接相关,例如,其可以是与常规视频会议会话的视图不同的视图。例如,网络摄像机视图可以是从物理空间向外聚焦的可移动网络摄像头(服务300)的视图,其然后可以由聊天会话中的用户来操纵以转动或缩放。该网络摄像头的所有者可以将权限扩展给聊天会话中的其它用户以控制网络摄像头,例如通过查看输出并操纵视图,而不需要也共享访问标准(诸如,例如用户名和密码)。
消息传输会话可以进一步是用于限制权限扩展的上下文。例如,只要消息传输会话持续,由用户做出的呈现可用于消息传输会话的其他用户。类似地,用户可能能够在与其他用户(或用户集合)的聊天会话中一起查看相机,但是不能在其他地方查看相机。或者当这些用户与所有者-用户进行消息传送时用户可能能够查看已经在消息传输中共享的呈现,但是不在没有所有者用户的其它时间。类似地,当一个用户被授权时,可以存在两个或多个用户可以在消息传输会话内一起使用的服务(例如歌曲或电影),即当一个用户拥有服务的权限时,但是具有对未授权用户被拒绝的那些服务的访问当这些用户不由授权用户陪同时。作为权限的上下文扩展的另一示例,只要用户是聊天组的成员,用户可以与聊天组的成员共享一个或多个服务的权限。如果该授权用户离开聊天组,则该用户向该聊天中的其他用户扩展的用于一个或多个服务的任意权限可能会自动失效。这种权限的上下文扩展允许多个用户合并权限。例如,一组用户可以为用户单独具有经由特定服务300a访问的电影列表合并权限。当用户离开该组时,该用户的授权电影将无法再被该组中的其他用户访问。
权限的上下文扩展和撤销也可以由消息传输会话本身的内容来驱动。如果虚拟助理系统10正在管理消息传输会话,则客户端110还可以监视相关命令的消息传输的内容,该命令可以被转发到助理服务器200以执行相关联的动作。例如,消息传输会话中的用户可能要求来自另一用户的许可以使用特定服务300a,例如,“我可以使用dropcam吗?”,并且该问题可以由助理接口110转换成一个或多个语义原子1000并被发送到助理服务器200。助理服务器200可以将该声明解释为对相关服务300a(在这种情况下为dropcam)的共享访问的请求。如果该服务300a的所有者以诸如“肯定”的毫无疑义答复进行响应,那么该答复将类似地作为一个或多个语义原子1000从所有者的助理接口110发送到助理服务器200,助理服务器200将该回复理解为对授权该请求,因此服务300a的权限可以自动地扩展到请求用户,而不需要由任一用户单独的操作。类似地,如果聊天会话中的用户中的一个询问“您是否使用完dropcam”?并且被授权访问的用户肯定地回复,例如“是的,我是”,则助理服务器200可以自动地撤销被共享的访问。由于可以基于消息传输会话的内容自动执行共享,所以用户不需要从消息传输中转移(恢复到另一形式的控制),以便分别控制虚拟助理系统10以共享访问。以这种方式,共享访问和服务300的控制可以成为消息传输的更无缝的部分。
不正确的授权和撤销也可以通过上述自适应学习方法来解决。如果权限一被授予用户就立即撤销权限,例如,这是向虚拟助理系统10指示它在授予该权限时超出限度。
基于消息传输的内容采取的动作的这种方案也可以被扩展到交易。例如,如果第一用户和第二用户在特定剧院讨论观看电影,并且第一用户询问第二个用户“我已经找到了票,但是你可以为他们付钱吗?”该问题可以由第一用户的助理界面110转换成一个或多个语义原子1000,并被发送到助理服务器200,助理服务器200可将该问题解释为用于特定目的的支付请求(在这种情况下为票支付)。如果第二用户同意,例如通过响应“确定”,则可以将第二用户的选定的支付工具应用于特定目的,在这种情况下为购买票。助理服务器200将第二用户的响应解释为对第一用户的请求的同意,并且因此将用于针对该金额和特定目的(购买票)的所选择的支付工具的的权限扩展到第一用户。
作为命令输入的消息传输内容的这种使用可以自动执行或通过与助理服务器200的有意识的用户交互来执行。在上面给出的示例中,移动设备100中包括的助理界面110可以自动地将所感知的命令(例如,来自用户的问题和响应)转换成一个或多个语义原子1000并将语义原子1000转发到助理服务器200,助理服务器200可以自动采取对应的动作。备选地或除了这种自动响应之外,用户可以通过消息传输会话的介质向助理服务器200发送命令。在这种情况下,助理服务器200实际上是消息传输会话中的“参与者”,因为助理服务器200可以在消息传输会话中接收消息(对应于来自用户的命令)并且还传输消息(例如,回复、来自服务300的输出等)。构成助理服务器200的多个实例的、相互通信的多个助理服务器200a-n也可以是消息传输会话中的参与者,类似于服务300a-n可以如何参与消息传输会话。
参考图18,移动设备100的用户可以基于问卷、调查或证书的表单填写和其他服务相关数据以及基于发现,向助理服务器200添加(包括大量添加)服务。
更具体地说,很可能当助理服务器200变为建立时,其他用户将想要向助理服务器200提供其所有他们的个人帐户证书,以便其他用户可以快速建立到那些服务300a-n的连接。例如,用户可以在一次设置时将他/她的LinkedlnTM、YahooTM、GoogleTM、AmazonTM、FacebookTM等的用户名和密码提供给助理服务器200,其使得助理服务器200能够快速地系统地连接到这些服务300a-n。这可以通过填写助理服务器200提供给用户的表单来完成。此表格可以是电子表格、电子邮件表单、可填写的PDF、基于Web的表单、基于语音的问题和响应会话、或者通过其可以收集这种类型的信息的任意其他数据收集机制。该表格可以经由因特网或经由诸如蓝牙或NFC之类的一些其他连接机制、甚至物理邮件或快递服务传递给用户。
助理服务器200也可以使用户通过其中向用户询问用户可能正在使用的最常见的服务300a-n的证书(这类似于填写调查)的过程。例如,助理服务器200可以在用户的家庭网络上的检测服务300a-n,然后在必要时通过请求对应的证书来自动地连接到它们。与这些证书和服务300a-n相关的信息可以保存在连接到助理服务器200的存储装置250上。
类似地,助理服务器200实际上可以取得用户的电子邮件,然后用这些电子邮件来探测大多数通用服务300a-n,以查看该用户是否已经具有相关联的帐户。在这种情况下,用户可以向助理服务器200提供各种电子邮件地址,其可以保存这些电子邮件地址,然后使用它们来尝试登录到各种web服务和其他服务。如果这些用户已经忘记了他们的密码,助理服务器200可以启动密码重置过程(即,或者通过自动地或者如果涉及到如RecaptchaTM的服务则在用户的帮助下(这需要人们识别混淆的字母和数字)进行密码重设过程),并恢复这些帐户并将其链接到用户的帐户。这也意味着用户可能不再提出需要提供密码了。助理服务器200可以提出用户不需要记住的高度复杂的密码,因为用户几乎总是通过助理服务器200访问底层服务300a-n。然后可以将这些高度复杂的密码保存在存储装置250上。
助理服务器200还可以使用户通过利用与用户类似的人员相关的各种服务300a-n建立品牌新帐户的过程。这可以有很多应用。例如,助理服务器200可以当公民达到一定年龄时在选举系统中为该公民建立投票账户。它可以用于当公民在购买宝马时与bmw.com建立账户。确定这样的新服务设置的规则可以被保存在存储装置250上,或者通过能够通过因特网、WiFi、蓝牙、NFC、USB或其他机制与助理服务器200通信的其他服务300a-n传输到助理服务器200。
虚拟助理系统10还可以有助于将服务300a-n彼此连接起来。例如,如果用户购买视频游戏系统,则用户可能希望将其连接到电视机。在这种情况下,用户通常必须使用电缆来执行视频游戏系统和电视之间的模拟连接。备选地,如果电视和视频游戏系统都具有无线能力,用户具有无线路由器,并且用户被订购到因特网服务提供商,则用户可以通过在电视机的菜单屏幕上搜索视频游戏系统来将视频游戏系统无线地连接到电视机,例如,然后选择视频游戏系统以无线地连接到电视机。该过程可能需要通过电视的多个菜单屏幕进行搜索以在用户的家庭网络上定位视频游戏系统,并且潜在地要求用户知道要被互连的设备的配置/连接规范。因此,连接两个服务(本例中的视频游戏系统和电视机)的常规过程对用户造成不便。
然而,虚拟助理系统10可以提供上述互连性,而不需要使用者具有因特网服务提供商、无线路由器、或服务之间的配置/连接规范的知识。此外,虚拟助理系统10避免了用户用于搜索多个菜单屏幕以找到期望服务以执行互连的需要。
更具体地,当用户例如通过购买新设备来获取新服务300a时,对应于服务300a的插件220a可以立即安装在用户的移动设备100上,或者备选地安装在助理服务器200中。这个安装可以由用户例如从因特网下载插件220a并将插件220a安装在移动设备100或助理服务器200上手动地发生。备选地,插件220a可以经由电子邮件、文本消息、另一用户的虚拟助理系统10或任意其他类型的通信方法来发送。例如,当购买新服务300a时,用户可以简单地向制造商提供用于注册的电子邮件地址,其将反过来自动地向用户发送对应于服务300的插件220a。此外,如果移动设备100和/或助理服务器200被指示在何处查找插件220a(即,存储插件220a的位置),移动设备100和/或助理服务器200可以检索并安装插件220a,而不需要用户分别发送插件220a到虚拟助理系统10。
然后,当插件220a被安装在移动设备100或助理服务器200中时,表示新服务300a(例如,视频游戏系统)的图标可以出现在例如移动设备100的用户界面150上。例如,该图标可以自动地明确出现在移动设备100的“服务”菜单屏幕中。
为了将新服务300a连接到另一服务300b(例如,电视机,其可能已经在移动设备100内被表示,例如通过安装在其中的图标),用户可以做出相关命令输入,其可能是直观的,并且不需要连接的详细知识。该命令输入可以是其使得看起来服务300a和300b被链接的任意类型的动作。例如,用户可以将对应于视频游戏系统的图标简单地拖动到表示移动设备100的用户界面150上的电视的图标。虚拟助理系统10可以将该命令输入解释为将两个服务300a和300b连接起来的命令。在该示例中,视频游戏系统将无线地连接到电视机,使得可以在其间进行无线通信。更具体地说,由于视频游戏系统和电视机以他们自己的专有语言进行通信,所以分别对应于视频游戏系统(服务300a)和电视(服务300b)的插件220a和220b的安装允许服务300a和300b的对应的专有语言经由虚拟助理系统10被转换成语义原子1000,这允许服务300a和300b彼此通信。
上述过程可以用于连接需要在其间进行通信的任意数量的服务300a-n。例如,电视机还可以与外部无线扬声器和外部无线蓝光播放器连接。因此,消除了使服务300a-n能够彼此通信的详细“设置”操作的需要。
本发明总体发明构思还可以被体现为计算机可读介质上的计算机可读代码。计算机可读介质可以包括计算机可读记录介质和计算机可读传输介质。计算机可读记录介质是可以将数据存储为其后可以由计算机系统读取的程序的任意数据存储设备。计算机可读记录介质的示例包括半导体存储器、只读存储器(ROM)、随机存取存储器(RAM)、USB存储器、存储卡、蓝光光盘、CD-ROM、磁磁带、软盘和光学数据存储设备。计算机可读记录介质也可以分布在网络耦合的计算机系统上,使得计算机可读代码以分布式方式被存储和执行。计算机可读传输介质可以发送载波或信号(例如,通过因特网的有线或无线数据传输)。此外,用于实现本发明总体发明构思的功能程序、代码和代码段可以容易地由本发明总体发明构思所属领域的技术编程人员解释。
尽管已经示出和描述了本发明总体发明构思的一些实施例,但是本领域技术人员将理解,在不脱离总体发明构思的原理和精神的情况下,可以在这些实施例中做出改变,总体发明构思的范围被限定在所附权利要求及其等同物中。

Claims (20)

1.一种移动设备,包括:用户界面、传输器、中央处理单元(CPU)以及存储单元,所述存储单元存储由所述CPU可执行的指令,所述指令被配置为实现:
第一应用模块,被配置为通过所述用户界面从用户接收第一输入命令;
第二应用模块,被配置为通过所述用户界面从所述用户接收第二输入命令;以及
助理接口,被配置为将所述第一输入命令转换为第一语义原子,并且经由所述传输器向外部服务器传输所述第一语义原子,以在第一外部服务处执行功能;
所述助理接口还被配置为将所述第二输入命令转换为第二语义原子,并且经由所述传输器向所述外部服务器传输所述第二语义原子,以在第二外部服务处执行功能;
所述存储单元还存储将所接收的输入命令映射到语义原子的库,每个语义原子封装指定要被执行的功能的数字数据,所述第一语义原子和所述第二语义原子对应于由所述存储单元存储的语义原子。
2.根据权利要求1所述的移动设备,所述助理接口还被配置为从所述外部服务器接收第三语义原子,并且将所述第三语义原子转换为针对所述第一应用模块的输出命令。
3.根据权利要求2所述的移动设备,所述助理接口还被配置为从所述外部服务器接收第四语义原子,并且将所述第四语义原子转换为针对所述第二应用模块的输出命令。
4.根据权利要求1所述的移动设备,所述助理接口被配置为将所述第一输入命令和所述第二输入命令转换为相同的语义原子。
5.根据权利要求1所述的移动设备,所述第一语义原子和所述第二语义原子是公共命令集的一部分,所述公共命令集包括:命令的表示、发布命令的权限、人、对象和服务。
6.根据权利要求1所述的移动设备,所述第一应用模块和所述第二应用模块从单独的外部源被下载到所述移动设备。
7.根据权利要求1所述的移动设备,所述第一语义原子和所述第二语义原子的定义基于开放开发人员社区的参与而随着时间演进。
8.根据权利要求1所述的移动设备,所述第一语义原子和所述第二语义原子以包括以下中的至少一项的格式被表示:文本、YAML和XML。
9.根据权利要求1所述的移动设备,还包括用于存储所述第一语义原子和所述第二语义原子的存储单元。
10.根据权利要求1所述的移动设备,所述第一应用模块包括以下中的至少一项:麦克风、相机、运动检测器、接近检测器、红外传感器、温度传感器和全球定位设备。
11.根据权利要求1所述的移动设备,所述助理接口还被配置为基于所述移动设备的位置,来将所述第一输入命令转换为不同的语义原子。
12.根据权利要求1所述的移动设备,所述助理接口还被配置为:
从所述外部服务器接收包括针对至少一个其他移动设备的第三命令的语义原子;以及
向所述至少一个其他移动设备传输所述第三命令。
13.根据权利要求1所述的移动设备,其中所述第一语义原子将用于执行针对一个或多个外部服务的输入命令的权限扩展到至少一个其他移动设备。
14.根据权利要求13所述的移动设备,其中所述第一语义原子还撤销所述至少一个其他移动设备的、用于执行针对所述一个或多个外部服务的输入命令的授权。
15.根据权利要求13所述的移动设备,其中所述权限包括:用于将授权限制到预定级别的控制的信息、其中控制被允许的预定位置、其中所述控制被允许的预定时间帧、以及在其中其他用户接近所述一个或多个外部服务的预定访问路径。
16.一种移动设备,包括:用户界面、传输器、中央处理单元(CPU)以及存储单元,所述存储单元存储可由CPU执行的指令,所述指令被配置为实现:
第一应用模块,被配置为通过所述用户界面生成输出命令;
第二应用模块,被配置为用于通过所述用户界面接收输入命令;以及
助理接口,被配置为经由所述传输器从外部服务器的第一插件接收第一语义原子,并且将所述第一语义原子转换为针对所述第一应用模块的所述输出命令;
助理接口,被配置为将所述输入命令转换为第二语义原子,并且经由所述传输器向外部服务器传输所述第二语义原子,以在至少一个外部服务处执行功能;
所述存储单元还存储将所接收的所述输入命令映射到语义原子的库,每个语义原子封装指定要被执行的功能的数字数据,所述第一语义原子和所述第二语义原子对应于由所述存储单元存储的语义原子。
17.根据权利要求16所述的移动设备,所述第一应用模块包括社交网络应用,所述第一语义原子包括去往所述第一应用模块的事件更新,所述输出命令包括针对所述第一应用模块的界面的警报通知,所述第二应用模块包括触摸屏输入模块,所述输入命令包括图标触摸或触摸屏手势,所述第二语义原子包括用于向所述外部服务器提交包含所述事件更新的查询的指令。
18.根据权利要求17所述的移动设备,所述助理接口还被配置为从所述外部服务器接收第三语义原子,所述第三语义原子包含对在所述第二语义原子中所提交的所述查询的至少一个响应。
19.根据权利要求18所述的移动设备,还包括第三应用模块,所述第三语义原子包括针对所述第三应用模块的输出命令。
20.根据权利要求19所述的移动设备,所述第三应用模块包括声音播放器,针对所述第三应用模块的所述输出命令包括用于使用所述声音播放器输出特定声音的命令。
CN202010207328.6A 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统 Active CN111399801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010207328.6A CN111399801B (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462090786P 2014-12-11 2014-12-11
US62/090,786 2014-12-11
CN202010207328.6A CN111399801B (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统
PCT/US2015/065265 WO2016094807A1 (en) 2014-12-11 2015-12-11 Virtual assistant system to enable actionable messaging
CN201580067360.6A CN107209549B (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580067360.6A Division CN107209549B (zh) 2014-12-11 2015-12-11 能够实现可动作的消息传送的虚拟助理系统

Publications (2)

Publication Number Publication Date
CN111399801A true CN111399801A (zh) 2020-07-10
CN111399801B CN111399801B (zh) 2023-07-25

Family

ID=56108263

Family Applications (5)

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

Family Applications Before (1)

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

Family Applications After (3)

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

Country Status (4)

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

Families Citing this family (286)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
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
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US9077773B2 (en) 2011-11-17 2015-07-07 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
KR102516577B1 (ko) 2013-02-07 2023-04-03 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US9971468B2 (en) * 2013-02-21 2018-05-15 Atlassian Pty Ltd Automatically generating column layouts in electronic documents
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3008641A1 (en) 2013-06-09 2016-04-20 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9111214B1 (en) 2014-01-30 2015-08-18 Vishal Sharma Virtual assistant system to remotely control external services and selectively share control
US10169447B2 (en) 2014-02-24 2019-01-01 Entefy Inc. System and method of message threading for a multi-format, multi-protocol communication system
US11755629B1 (en) 2014-02-24 2023-09-12 Entefy Inc. System and method of context-based predictive content tagging for encrypted data
US10394966B2 (en) 2014-02-24 2019-08-27 Entefy Inc. Systems and methods for multi-protocol, multi-format universal searching
US20170193009A1 (en) 2015-12-31 2017-07-06 Entefy Inc. Systems and methods for filtering of computer vision generated tags using natural language processing
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
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
CN111414222A (zh) * 2014-12-11 2020-07-14 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
KR20160116596A (ko) * 2015-03-30 2016-10-10 한국전자통신연구원 근접도 기반 커뮤니티 서비스 제공 방법
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10446142B2 (en) * 2015-05-20 2019-10-15 Microsoft Technology Licensing, Llc Crafting feedback dialogue with a digital assistant
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
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
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10209851B2 (en) * 2015-09-18 2019-02-19 Google Llc Management of inactive windows
EP3356912A1 (en) 2015-09-28 2018-08-08 Microsoft Technology Licensing, LLC Unified virtual reality platform
EP3357205B1 (en) 2015-09-28 2022-01-05 Microsoft Technology Licensing, LLC User assistant for unified messaging platform
US10891106B2 (en) 2015-10-13 2021-01-12 Google Llc Automatic batch voice commands
US10095497B2 (en) 2015-10-30 2018-10-09 Bank Of America Corporation System for discovery of software operable on a device
USD815107S1 (en) 2015-10-30 2018-04-10 Bank Of America Corporation Display screen with a transitional graphical user interface
US10051015B2 (en) 2015-10-30 2018-08-14 Bank Of America Corporation System for configuration, device connectivity and device control 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
US10430025B2 (en) 2015-10-30 2019-10-01 Bank Of America Corporation Active selection configuration system with suggested actions
US9929917B2 (en) 2015-10-30 2018-03-27 Bank Of America Corporation System for configuration and device connectivity based on user selection
US10158535B2 (en) 2015-10-30 2018-12-18 Bank Of America Corporation System for active configuration of devices based on user selection
US10048836B2 (en) 2015-10-30 2018-08-14 Bank Of America Corporation Application connectivity for aggregation and for use in data filtering
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US9674290B1 (en) * 2015-11-30 2017-06-06 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
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10353754B2 (en) 2015-12-31 2019-07-16 Entefy Inc. Application program interface analyzer for a universal interaction platform
US11323399B2 (en) * 2016-01-11 2022-05-03 Mimecast North America, Inc. Client-agnostic and network-agnostic device management
US10509626B2 (en) 2016-02-22 2019-12-17 Sonos, Inc Handling of loss of pairing between networked devices
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US9772817B2 (en) 2016-02-22 2017-09-26 Sonos, Inc. Room-corrected voice detection
US10142754B2 (en) 2016-02-22 2018-11-27 Sonos, Inc. Sensor on moving component of transducer
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US10250720B2 (en) 2016-05-05 2019-04-02 Google Llc Sharing in an augmented and/or virtual reality environment
US11494206B2 (en) * 2016-05-17 2022-11-08 Google Llc Automated initiation and adaptation of a dialog with a user via user interface devices of a computing device of the user
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) * 2016-06-09 2018-04-23 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
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US20180018965A1 (en) * 2016-07-12 2018-01-18 Bose Corporation Combining Gesture and Voice User Interfaces
US10152969B2 (en) 2016-07-15 2018-12-11 Sonos, Inc. Voice detection by multiple devices
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
CN107656933B (zh) * 2016-07-25 2022-02-08 中兴通讯股份有限公司 一种语音播报方法及装置
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
US10573299B2 (en) 2016-08-19 2020-02-25 Panasonic Avionics Corporation Digital assistant and associated methods for a transportation vehicle
US9972312B2 (en) 2016-08-19 2018-05-15 Panasonic Avionics Corporation Digital assistant and associated methods for a transportation vehicle
KR101715142B1 (ko) * 2016-08-29 2017-03-14 주식회사 리얼야구존 모바일 기기를 이용하는 스크린 야구 경기 방법
US10397303B1 (en) * 2016-08-29 2019-08-27 Amazon Technologies, Inc. Semantic annotation and translations for devices
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
US11671383B2 (en) 2016-09-26 2023-06-06 Microsoft Technology Licensing, Llc Natural language service interaction through an inbox
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
US20190207946A1 (en) * 2016-12-20 2019-07-04 Google Inc. Conditional provision of access by interactive assistant modules
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
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10834797B2 (en) * 2017-01-30 2020-11-10 Signify Holding B.V. Controller for controlling plurality of light sources
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
KR102339857B1 (ko) * 2017-03-29 2021-12-16 삼성전자주식회사 외부의 IoT 장치를 관리 및 제어하는 방법 및 이를 지원하는 전자 장치
US11632345B1 (en) * 2017-03-31 2023-04-18 Amazon Technologies, Inc. Message management for communal account
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
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
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US11397558B2 (en) 2017-05-18 2022-07-26 Peloton Interactive, Inc. Optimizing display engagement in action automation
EP3635521A4 (en) * 2017-06-08 2021-05-19 Honeywell International Inc. APPARATUS AND METHOD FOR VISUAL ASSISTANCE LEARNING, COLLABORATION AND MONITORING IN AUGMENTED REALITY / VIRTUAL INDUSTRIAL AUTOMATION SYSTEMS AND OTHER SYSTEMS
EP3635520A4 (en) * 2017-06-08 2021-05-19 Honeywell International Inc. APPARATUS AND METHOD FOR RECORDING AND REPLAYING INTERACTIVE AUGMENTED / VIRTUAL REALITY CONTENT IN INDUSTRIAL AUTOMATION SYSTEMS AND OTHER SYSTEMS
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
US11263300B2 (en) * 2017-07-25 2022-03-01 Samsung Electronics Co., Ltd. Voice activation method for service provisioning on smart assistant devices
US9936005B1 (en) * 2017-07-28 2018-04-03 Kong Inc. Systems and methods for distributed API gateways
US11582291B2 (en) 2017-07-28 2023-02-14 Kong Inc. Auto-documentation for application program interfaces based on network requests and responses
US10225330B2 (en) 2017-07-28 2019-03-05 Kong Inc. Auto-documentation for application program interfaces based on network requests and responses
US11171842B2 (en) 2019-09-05 2021-11-09 Kong Inc. Microservices application network control plane
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
US11425215B1 (en) * 2017-08-24 2022-08-23 United Services Automobile Association (Usaa) Methods and systems for virtual assistant routing
US10838505B2 (en) 2017-08-25 2020-11-17 Qualcomm Incorporated System and method for gesture recognition
US11074911B2 (en) * 2017-09-05 2021-07-27 First Advantage Corporation Digital assistant
GB2567949A (en) * 2017-09-06 2019-05-01 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
EP4117232A1 (en) * 2017-09-15 2023-01-11 Samsung Electronics Co., Ltd. Electronic device and control method therefor
KR102489914B1 (ko) 2017-09-15 2023-01-20 삼성전자주식회사 전자 장치 및 이의 제어 방법
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
US10546023B2 (en) * 2017-10-03 2020-01-28 Google Llc Providing command bundle suggestions for an automated assistant
US10992662B2 (en) 2017-10-09 2021-04-27 International Business Machines Corporation Enabling/disabling applications using face authentication
US11372862B2 (en) 2017-10-16 2022-06-28 Nuance Communications, Inc. System and method for intelligent knowledge access
US10769186B2 (en) * 2017-10-16 2020-09-08 Nuance Communications, Inc. System and method for contextual reasoning
US10586434B1 (en) * 2017-10-25 2020-03-10 Amazon Technologies, Inc. Preventing unauthorized access to audio/video recording and communication devices
US11113608B2 (en) 2017-10-30 2021-09-07 Accenture Global Solutions Limited Hybrid bot framework for enterprises
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
US11343614B2 (en) 2018-01-31 2022-05-24 Sonos, Inc. Device designation of playback and network microphone device arrangements
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
US11030412B2 (en) * 2018-04-10 2021-06-08 Verizon Patent And Licensing Inc. System and method for chatbot conversation construction and management
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US11010436B1 (en) 2018-04-20 2021-05-18 Facebook, Inc. Engaging users by personalized composing-content recommendation
EP3583481B1 (en) * 2018-05-07 2021-02-17 Google LLC Methods, systems, and apparatus for providing composite graphical assistant interfaces for controlling connected devices
WO2019216877A1 (en) * 2018-05-07 2019-11-14 Google Llc Verifying operational statuses of agents interfacing with digital assistant applications
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10235999B1 (en) 2018-06-05 2019-03-19 Voicify, LLC Voice application platform
US11437029B2 (en) 2018-06-05 2022-09-06 Voicify, LLC Voice application platform
US10636425B2 (en) 2018-06-05 2020-04-28 Voicify, LLC Voice application platform
US10803865B2 (en) 2018-06-05 2020-10-13 Voicify, LLC Voice application platform
US10832010B2 (en) * 2018-06-05 2020-11-10 International Business Machines Corporation Training of conversational agent using natural language
CN110634189B (zh) 2018-06-25 2023-11-07 苹果公司 用于在沉浸式混合现实体验期间用户警报的系统和方法
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US10924848B2 (en) * 2018-07-23 2021-02-16 PeeQ Technologies, LLC Throwable microphone lighting with light indication
CN112262381B (zh) 2018-08-07 2024-04-09 谷歌有限责任公司 汇编和评估对隐私问题的自动助理响应
CN112272818A (zh) * 2018-08-21 2021-01-26 谷歌有限责任公司 使用由第一交互式模块提供的补充数据的第二交互式模块的自动助理调用
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
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
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US10692518B2 (en) 2018-09-29 2020-06-23 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
US11032532B2 (en) 2018-10-04 2021-06-08 Samsung Electronics Co., Ltd. Electronic device and method for providing virtual device via at least portion of content
KR20200044175A (ko) 2018-10-05 2020-04-29 삼성전자주식회사 전자 장치 및 그의 비서 서비스 제공 방법
WO2020079941A1 (ja) * 2018-10-15 2020-04-23 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータプログラム
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
US11250114B2 (en) * 2018-10-25 2022-02-15 Massachusetts Mutual Life Insurance Company Authentication device for virtual assistant systems
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
EP3654249A1 (en) 2018-11-15 2020-05-20 Snips Dilated convolutions and gating for efficient keyword spotting
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US10602268B1 (en) 2018-12-20 2020-03-24 Sonos, Inc. Optimization of network microphone devices using noise classification
WO2020139408A1 (en) * 2018-12-28 2020-07-02 Google Llc Supplementing voice inputs to an automated assistant according to selected suggestions
US11615793B1 (en) 2019-01-02 2023-03-28 Centene Corporation Voice assistant configured to leverage information from sensing devices
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US10936347B2 (en) 2019-01-19 2021-03-02 International Business Machines Corporation Contextual virtual assistant communications
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11170774B2 (en) 2019-05-21 2021-11-09 Qualcomm Incorproated Virtual assistant device
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11182130B2 (en) * 2019-05-28 2021-11-23 Oracle International Corporation Semantic analysis-based plug-in application recipe generation
US10671410B1 (en) 2019-05-28 2020-06-02 Oracle International Corporation Generating plug-in application recipe extensions
US11169826B2 (en) 2019-05-28 2021-11-09 Oracle International Corporation User-assisted plug-in application recipe execution
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11516221B2 (en) 2019-05-31 2022-11-29 Apple Inc. Multi-user devices in a connected home environment
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11580973B2 (en) * 2019-05-31 2023-02-14 Apple Inc. Multi-user devices in a connected home environment
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN110275444B (zh) * 2019-06-03 2020-11-27 珠海格力电器股份有限公司 一种自动关门的系统及方法
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11418503B2 (en) 2019-07-03 2022-08-16 Bank Of America Corporation Sensor-based authentication, notification, and assistance systems
US11017773B2 (en) 2019-07-09 2021-05-25 Bank Of America Corporation Voice-based time-sensitive task processing over a high generation cellular network
CN110430529B (zh) * 2019-07-25 2021-04-23 北京蓦然认知科技有限公司 一种语音助手提醒的方法、装置
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection
US11138975B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US11138969B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US11595272B2 (en) 2019-09-05 2023-02-28 Kong Inc. Microservices application network control plane
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
FR3102274A1 (fr) * 2019-10-17 2021-04-23 Psa Automobiles Sa Procédé et système pour déterminer des suggestions fournies par un assistant personnel virtuel d’un véhicule automobile
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11556307B2 (en) 2020-01-31 2023-01-17 Sonos, Inc. Local voice data processing
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11243991B2 (en) 2020-06-05 2022-02-08 International Business Machines Corporation Contextual help recommendations for conversational interfaces based on interaction patterns
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11700226B2 (en) 2020-08-03 2023-07-11 Google Llc Sending messages from smart speakers and smart displays via smartphones
US11275555B1 (en) 2020-08-19 2022-03-15 Kyndryl, Inc. Resolving a device prompt
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
DE112020007584T5 (de) * 2020-11-02 2023-09-07 Harman Becker Automotive Systems Gmbh Konfiguration eines virtuellen Assistenten
CN112744229B (zh) * 2021-01-18 2021-12-21 国汽智控(北京)科技有限公司 一种自动驾驶领域专有语言的生成系统
US11947783B2 (en) * 2021-01-25 2024-04-02 Google Llc Undoing application operation(s) via user interaction(s) with an automated assistant
US11551700B2 (en) 2021-01-25 2023-01-10 Sonos, Inc. Systems and methods for power-efficient keyword detection
CN113220373B (zh) * 2021-07-07 2021-12-14 深圳传音控股股份有限公司 处理方法、设备及存储介质
US11907357B2 (en) * 2021-07-19 2024-02-20 Motorola Mobility Llc Electronic devices and corresponding methods for automatically performing login operations in multi-person content presentation environments
JP2023069323A (ja) * 2021-11-05 2023-05-18 i-PRO株式会社 監視カメラ映像共有システムおよび監視カメラ映像共有方法
CN114924818B (zh) * 2022-04-28 2023-11-28 阿里巴巴(中国)有限公司 流量分流方法、装置、设备和存储介质
WO2024019767A1 (en) * 2022-07-20 2024-01-25 Google Llc Method(s) and system(s) for utilizing an independent server to facilitate secure exchange of data

Citations (13)

* 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
US20050246726A1 (en) * 2004-04-28 2005-11-03 Fujitsu Limited Task computing
US20050268032A1 (en) * 2004-05-11 2005-12-01 Somsubhra Sikdar Semantic processor storage server architecture
US7032002B1 (en) * 2000-09-06 2006-04-18 Xanboo, Inc. Service broker for processing data from a data network
CN1954292A (zh) * 2004-04-28 2007-04-25 富士通株式会社 语义任务计算
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
CN101477571A (zh) * 2009-01-07 2009-07-08 华天清 网络内容语义结构标注的方法和装置
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
CN103226949A (zh) * 2011-09-30 2013-07-31 苹果公司 在虚拟助理中使用情境信息来促进命令的处理
US20130268260A1 (en) * 2012-04-10 2013-10-10 Artificial Solutions Iberia SL System and methods for semiautomatic generation and tuning of natural language interaction applications
CN103577198A (zh) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 一种面向用户的物联网服务平台及远程控制方法
CN104122806A (zh) * 2013-04-28 2014-10-29 海尔集团公司 家电设备的控制方法和系统

Family Cites Families (48)

* 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
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
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
US7725577B2 (en) * 2006-07-31 2010-05-25 Sap Ag Method and system to adaptively manage the quality of service of interactions between smart item networks and enterprise applications
CN101105791A (zh) * 2007-08-08 2008-01-16 北京唐风汉语教育科技有限公司 基于多媒体的支持多平台多终端的多语种互译的方法
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 北京网秦天下科技有限公司 在手机用户之间推荐内容的方法和系统
KR20100117836A (ko) * 2009-04-27 2010-11-04 주식회사 시맨틱스 시맨틱 기술을 이용한 직답형 광고 서비스 시스템 및 방법
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
EP2716132A2 (en) 2011-06-02 2014-04-09 Interdigital Patent Holdings, Inc. Methods, apparatus, and systems for managing converged gateway communications
US20140153489A1 (en) 2011-06-02 2014-06-05 Interdigital Patent Holdings, Inc. Methods, Apparatus and Systems for Inter-Converged Gateway (ICGW) Communications
US20130219459A1 (en) * 2012-02-21 2013-08-22 Intertrust Technologies Corporation Content management systems and methods
US9064337B2 (en) 2012-06-05 2015-06-23 Apple Inc. Method, system and apparatus for rendering a map with adaptive textures for map features
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
US10109255B2 (en) 2012-06-05 2018-10-23 Apple Inc. Method, system and apparatus for dynamically generating map textures
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
US9041736B2 (en) 2012-06-05 2015-05-26 Apple Inc. Method, system and apparatus for rendering a map according to a stylesheet
AU2013271771B2 (en) 2012-06-05 2016-07-28 Nextnav, Llc 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
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
CN103853736A (zh) * 2012-11-29 2014-06-11 北京掌城科技有限公司 交通信息语音查询系统及其语音处理单元
KR101977087B1 (ko) 2012-12-24 2019-05-10 엘지전자 주식회사 자동응대 기능을 갖는 이동 단말기 및 그의 자동응대 방법
CN103945044A (zh) * 2013-01-22 2014-07-23 中兴通讯股份有限公司 一种信息处理方法和移动终端
CN103051734A (zh) * 2013-01-23 2013-04-17 广东志高空调有限公司 家电远程语音控制方法、系统及通信终端
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
CN104123940A (zh) * 2014-08-06 2014-10-29 苏州英纳索智能科技有限公司 一种基于智能家居系统的语音控制系统及方法
CN111414222A (zh) * 2014-12-11 2020-07-14 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
US9740379B2 (en) * 2015-03-04 2017-08-22 Flycatcher LTD Methods and systems for creating and using electronic coloring pages
EP3357205B1 (en) * 2015-09-28 2022-01-05 Microsoft Technology Licensing, LLC User assistant for unified messaging platform

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032002B1 (en) * 2000-09-06 2006-04-18 Xanboo, Inc. Service broker for processing data from a data network
US20050027708A1 (en) * 2003-07-31 2005-02-03 Stefan Mueller Semantic objects
US20050246726A1 (en) * 2004-04-28 2005-11-03 Fujitsu Limited Task computing
CN1954292A (zh) * 2004-04-28 2007-04-25 富士通株式会社 语义任务计算
US20050268032A1 (en) * 2004-05-11 2005-12-01 Somsubhra Sikdar Semantic processor storage server architecture
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
US20090234638A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Use of a Speech Grammar to Recognize Instant Message Input
CN101477571A (zh) * 2009-01-07 2009-07-08 华天清 网络内容语义结构标注的方法和装置
US20100257539A1 (en) * 2009-03-31 2010-10-07 Krishnakumar Narayanan System, method and apparatus for providing functions to applications on a digital electronic device
CN103226949A (zh) * 2011-09-30 2013-07-31 苹果公司 在虚拟助理中使用情境信息来促进命令的处理
US20130268260A1 (en) * 2012-04-10 2013-10-10 Artificial Solutions Iberia SL System and methods for semiautomatic generation and tuning of natural language interaction applications
CN104122806A (zh) * 2013-04-28 2014-10-29 海尔集团公司 家电设备的控制方法和系统
CN103577198A (zh) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 一种面向用户的物联网服务平台及远程控制方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107209549B (zh) 能够实现可动作的消息传送的虚拟助理系统
US10354014B2 (en) Virtual assistant system
US10992625B2 (en) Unified messaging platform
US10776103B2 (en) System, method, and computer program product for coordination among multiple devices
US11928309B2 (en) Methods and systems for provisioning a collaborative virtual experience based on follower state data
US20210378038A1 (en) Proximity Based Personalization of a Computing Device
US20220318442A1 (en) Methods and systems for provisioning a virtual experience of a building on a user device with limited resources
US20220286309A1 (en) Event management system, event management apparatus, and event management method

Legal Events

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