掌桥专利:专业的专利平台
掌桥专利
首页

统一的虚拟现实平台

文献发布时间:2023-06-19 11:45:49


统一的虚拟现实平台

本申请是国际申请日为2016年9月28日、于2018年3月23日进入中国国家阶段、中国国家申请号201680055775.6、发明名称为“统一的虚拟现实平台”的发明专利申请的分案申请。

本申请要求于2015年9月28日提交的美国临时专利申请No.62/233,601的权益,并且通过引用将其整体并入。

本申请进一步通过引用整体并入于2015年8月18日授予Sharma等人的美国专利No.9,111,214“Virtual Assistant System to Remotely Control External Servicesand Selectively Share Control”。

技术领域

本公开的实施例涉及信息技术领域,更具体地,涉及统一的虚拟现实平台。

背景技术

在虚拟现实(VR)系统中,用户与被设计为仿真真实世界的特性的数字模拟的虚拟环境进行交互。特别地,VR系统可以包括传感器以检测来自用户的输入,例如运动、语音、眼睛注视等,并且还为用户生成输出,例如立体图像、音频、触觉反馈等,以创造用户“存在”于虚拟环境中并且与其交互的感觉。

VR系统可以用于各种各样的应用,包括向用户提供娱乐和/或信息内容。VR系统还可以作为人类用户与非VR系统(诸如购物或社交联网应用)之间的接口。例如,由VR系统的用户做出的手势可以被解释为在非VR系统中执行任务的命令,诸如在社交网络上添加好友、对所提交的查询执行搜索、在购物网站上进行购买等等。为了促进VR系统模块与非VR系统模块的交互,期望提供一种支持VR模块类型和非VR模块类型的灵活统一的计算平台。

最先进的VR系统的另一关键特征将是它们为每个虚拟环境提供细节的广度和深度的能力。例如,集成的VR系统可以提供各种各样的虚拟体验,例如模拟沿着繁忙的街道行走的细节、进入具有用于购买的各种产品的虚拟商店的内部、驾驶虚拟汽车等等。由于期望每个虚拟体验将用户完全沉浸在模拟的环境中,所以统一的计算平台还将需要灵活地适应各种VR体验的复杂细节以及为用户管理VR体验之间的转换。

高级VR系统的又一特征将是它们允许“联合”VR环境中的多个用户之间的交互的能力。例如,多个用户将具有在单个联合环境中感知彼此的存在和动作的能力,从而允许在联合任务上的用户之间的协作。

为了满足上述要求,期望提供用于设计统一的计算平台以供在先进虚拟现实系统中使用的的灵活和通用的技术。

发明内容

提供本“发明内容”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

简而言之,本文中描述的主题的各个方面涉及用于为实现虚拟现实系统提供统一的计算平台的技术。在一方面,VR客户端包括用于为用户生成VR体验的输入模块和输出模块,以及将输入模块和输出模块耦合到助理服务器的助理接口。助理接口可以根据预定义的语义信息交换语言(SIIL)规范将用户输入封装成消息。

助理服务器可以包括用于将用户输入SIIL消息转换成命令输入SIIL消息的命令推断块。该转换将到VR系统的用户输入编码成可以由VR模块和非VR模块两者识别和处理的通用命令集。助理服务器可以进一步包括用于实现多个软件插件的硬件,每个插件专用于单个VR或非VR模块,并且被设计为将命令输入SIIL消息转译成由每个模块使用的定制或专有协议。本技术显著地简化和模块化VR系统中的模块的设计,并且减轻了这样的模块建立或存储用户输入与所执行的命令之间的它们自己的映射的负担。

从以下详细描述和附图中其他优点可以变得明显。

附图说明

图1示出了根据本公开的虚拟现实街道场景。

图2示出了根据本公开的虚拟现实驾驶场景。

图3示出了VR系统的特定实现。

图4示出了根据本公开的VR系统的示例性实施例。

图5示出了图4的VR系统的示例性实施例,其示出了VR模块和非VR模块。

图6示出了由命令推断块执行的操作的示例性实施例。

图7示出了VR系统的示例性实施例,其中应用模块是VR模块。

图8示出了利用VR系统在多个不同的VR体验之间提供无缝转换的方法的示例性实施例。

图9示出了根据本公开的容纳多个用户的示例性VR场景。

图10示出了根据本公开的联合VR系统的示例性实施例。

图11示出了根据本公开的使用联合VR系统来生成联合VR体验的方法的示例性实施例。

图12示出了根据本公开的计算设备的示例性实施例。

图13示出了根据本公开的装置的示例性实施例。

图14示出了用于将用户输入数字消息转换成虚拟现实系统的命令输入数字消息的方法的示例性实施例。

具体实施方式

本文中描述的技术的各个方面通常涉及用于生成促进单个VR体验中的多个不同模块的交互的虚拟现实平台系统的技术。应当理解,下面描述的技术的某些特征可以用于用户设备与外部服务或模块之间的交互的任何系统,并且这样的备选的示例性实施例预期在本公开的范围内。

以下结合附图阐述的详细描述旨在作为示例性手段“用作示例、实例或说明”的描述,并且不应当被解释为相对于其他示例性方面优选或有利。为了提供对本发明的示例性方面的透彻理解,详细描述包括具体细节。对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明的示例性方面。在一些情况下,以框图形式示出了公知的结构和设备,以避免模糊本文中呈现的示例性方面的新颖性。为了便于讨论,可能在下文中参考在附图中示出的没有对应的“.1”或“.2”后缀的标记元素,在这种情况下应当理解,这样的参考意指表示在附图中具有“.1”或“.2”后缀的任何或全部对应的元素,这从上下文中将是清楚的。

在虚拟现实(VR)系统中,用户可以沉浸在数字模拟的虚拟环境中并且与之交互。例如,参考图1,VR场景100包括一个或多个计算机102或移动设备、由用户110佩戴的VR耳机130、以及用于检测来自用户110的VR输入的一个或多个传感器(未示出),例如以运动、语音、姿势等的形式。VR输出可以被呈现给用户110,例如,VR耳机130可以向用户110呈现虚拟地模拟的VR环境101的三维(3D)立体视图,与VR环境101相对应的音频可以使用图1中未示出的音频输出设备(例如,耳机或扬声器)被生成,或者其他输出形式可以被包括,诸如温度、触觉响应等。

用户110可以使用多种输入形态(例如,口头命令、手势、对显示在环境中的图标的虚拟“触摸”、其他类型的身体取向和/或运动信号等)中的任何一种来与VR环境101交互。VR系统可以相应地使用视觉和/或其他VR输出形态来调节VR环境101向用户110的呈现。注意,图1的VR系统的特定细节在本文中仅出于说明的目的而被描述,并不表示将本公开的范围限制到具体提及的任何实施例,例如输入或输出形态的类型、VR环境或应用的类型等。

在示例性实施例中,VR系统的VR耳机130和其他输入/输出传感器可以与计算机102通信,计算机102又与支持下文中进一步描述的助理服务器的网络通信。在备选的示例性实施例中,VR耳机130可以直接与这样的网络通信。这样的备选的示例性实施例预期在本公开的范围内。

在图1中,VR环境101被说明性地示出为是街道级环境(在下文中表示为“VR街道101”)的VR模拟,尽管应当理解,可以使用本公开的技术来适应任何类型的VR环境。在VR街道101中,用户110可以沉浸在VR环境中,其中他或她经历在排列有很多场所和其他物体的街道上站立和移动的感觉。在VR街道101中,用户110可以选择接近模拟中的各种场所和物体并且与它们交互。例如,通过走向虚拟汽车112,并且使用特定手势执行手势(诸如触摸汽车门的手柄),VR系统可以推断用户110要进入汽车内部的意图,并且虚拟地驾驶汽车。

响应于检测到这样的手势或其他类型的VR输入信号,VR系统可以相应地使得VR环境101转换到第二VR环境,诸如图2所示的VR环境201。在图2中,VR环境201被说明性地示出为对应于虚拟驾驶模拟(在下文中表示为“VR驾驶”),并且从汽车内部的驾驶员侧的模拟角度示出。在VR驾驶201中,用户110可以虚拟地体验驾驶汽车,例如通过转动其运动由VR系统监测的虚拟方向盘210,踩踏虚拟油门踏板220和制动踏板230等等,所有这些都可以对应于由用户110物理地占用的机械输入传感器。VR系统可以连续地监测这样的机械输入传感器的状态,并且可以响应于所接收的输入而相应地调节所生成的VR环境201。

鉴于上文中的描述,应当理解,可以调用单个VR系统来适应多种不同类型的虚拟体验和环境,例如VR环境101和VR环境201,以及与非VR应用接口。图3示出了被设计为适应这些要求的VR系统的特定实现300。注意,图3仅出于说明的目的而被示出,并不表示将本公开的范围限制为VR系统的任何特定实现。

在图3中,VR系统300包括用于从用户110接收输入的输入模块320。这样的输入可以包括例如语音输入、手势、键盘等。VR系统300进一步包括用于为用户VR环境生成感官输出的输出模块322。这样的输出可以包括例如通过VR耳机130递送的3D视觉图像、声音、触觉输出、环境温度控制等。在本说明书和权利要求书中,由输入模块320接收到的输入可以被表示为“用户输入”或“VR输入”,并且由输出模块322生成的输出可以被表示为“VR输出”。VR系统300进一步包括用于处理所接收的VR输入信号并且生成VR输出信号的VR处理块310。

特别地,来自VR输入320的输入信号可以被提供给输入处理块312,输入处理块312将信号选择性地提供给多个应用模块311.1至311.N,统称为应用模块311。应用模块可以包括被设计为执行特定于VR体验的处理的一个或多个“VR模块”。例如,VR模块可以被配置为生成VR街道101,并且处理与这样的VR环境有关的输入和输出。应用模块还可以包括不特别为用户处理VR体验的一个或多个“非VR模块”。非VR模块的示例可以包括但不限于例如社交联网应用、购物网站、信息数据库等。

在由应用模块311处理之后,每个应用模块可以为集成块315生成输出信号。集成块315可以被配置为将来自应用模块311的输出信号集成为针对用户的单个无缝VR体验。然后,块315的输出被提供给输出模块322。

随着虚拟环境变得越来越复杂,用于实现整个VR系统的细节变得越来越复杂。例如,非VR模块通常是由VR系统300的设计者不可修改的预先存在的专有应用。因此,非VR模块可以指定用于与应用通信的它们自己的专有或自定义协议,VR的设计者系统300必须考虑到这一点。

此外,对于VR模块,提供完全沉浸式体验的任务要求VR环境并入更多细节和复杂性。例如,实现VR驾驶201的VR模块可以被配置为适应越来越复杂的算法以实际地模拟驾驶汽车的体验,例如提供更逼真和多样的驾驶场景、汽车响应、汽车控制等。同时,实现VR街道101的VR模块可以被配置为适应更多的街道布局,包括购物、娱乐和引导选项等。

鉴于个体VR体验的复杂性,应当理解,存在对于设计VR系统300以适应这样的复杂性的某些限制。特别地,由于需要协调的细节的庞大数量,设计VR系统300以适应多个虚拟体验之间的转换是具有挑战性的。此外,在高性能的VR系统中,期望提供统一的环境作为所有VR环境的背景,使得不同VR环境之间的转换从用户110的角度来看是“无缝的”。

例如,期望集成单独的VR体验之间的转换,使得例如当用户110在VR街道101中接近汽车112并且打开汽车112的门以虚拟地进入驾驶员座位时,通过VR耳机130显示的环境将从VR街道101连续地转换到VR驾驶201,如在对应的真实世界体验中将发生的。不期望引入与通过加载用于VR环境101和用于VR环境201的单独的软件系统而导致的转换间隔相对应的、例如由VR耳机130显示的图像中的突然中断,这可能过于迷惑用户。

作为另一示例,如果用户期望执行VR姿势(例如,手波或语音命令等)以控制某些非VR应用,则期望协调VR体验与非VR应用的集成以提供单个统一的VR环境的印象。

它可能容易超出单个实体(诸如单个软件设计团队或组织)设计单个VR系统310以适应所有类型的VR和非VR体验并且提供这样的体验之间的无缝转换(如将需要由参考VR系统300描述的转换块315来执行)的能力。因此,期望为VR系统提供适应个体应用模块的复杂性和多样性的新的灵活的计算架构,同时也促进它们的集成以确保针对用户在VR环境中进行导航时的无缝转换。

将进一步期望的是,在VR环境内维持单个后台控制面板和框架,使得例如特定的用户手势将带来“主菜单”或其他通用功能,而不管用户此刻参与的特定的VR体验。

将进一步期望的是,提供用于灵活地将VR模块与非VR模块集成的技术,例如以允许VR输入被理解和处理作为非VR应用的命令。

图4示出了根据本公开的VR系统400的示例性实施例。注意,图4仅出于说明的目的而示出,并不表示限制本公开的范围。例如,虽然出于说明的目的在图4中说明性地示出了两个应用模块430.1、430.2,但是应当理解,本文中描述的技术可以容易地适应多于两个应用模块。

在图4中,类似于图3中的VR系统300,VR系统400包括用于从用户110接收VR输入的输入模块320和用于为VR环境生成感官输出的输出模块322。VR系统400进一步包括配置为处理VR输入和VR输出的助理接口412。助理接口412、输入模块320和输出模块322也将在本文中统称为客户端410。注意,客户端410通常可以本地提供给用户,例如输入模块320和输出模块322可以对应于诸如图1中的耳机130和计算机102的元件以及未明确示出的其他元件,而助理接口412也可以在计算机102上实现。鉴于本公开,所示出的元件的其他布置对于本领域普通技术人员而言将是清楚的。

客户端410的助理接口412可以提供用于将专有或“定制”数据和信息转译成被称为“语义信息交换语言”或“SIIL”的单个通用语言的“转译功能”,用于与耦合到VR环境的各种应用模块通信。特别地,助理接口412可以从输入模块320接收VR输入信号,并且将这样的输入信号转译成根据由SIIL指定的格式而格式化的一个或多个消息。SIIL格式可以由公开可用的规范来定义,并且可以包含各种标准化的消息格式。在本说明书和权利要求书中,SIIL也可以表示为“第一协议”。

例如,在助理接口412处从输入模块320接收到的VR输入信号可以包括用户手势的参数,例如,如由运动检测相机和/或陀螺仪检测的,或者与由语音识别软件处理的用户语音命令相对应的参数等。助理接口412可以将所接收的参数编码或格式化成标准SIIL消息,例如,指示用户输入的SIIL消息或“用户输入SIIL消息”。

作为说明性示例,第一用户输入SIIL消息格式可以仅仅对应于手势,并且可以指定手势的标识特征,诸如典型的运动(例如,“轻扫”、“圆”、“重复轻扫”等)、手指配置(例如,“食指”、“拇指”等)等。第二用户输入SIIL消息格式可以对应于语音识别文本,并且可以指定标识特征,诸如所识别的文本的内容、语音递送速度、讲话者的声音的特征等。注意,特定类型的SIIL消息格式在本文中仅出于说明的目的来描述,而不表示限制本公开的范围。

在示例性实施例中,助理接口412可以通过通信信道412a向助理服务器420提供所生成的SIIL消息,例如,用户输入SIIL消息。注意,本文中提到的“信道”的各种实例通常可以表示物理和/或逻辑信道、和/或两者的组合。助理服务器420是可以包括运行一个或多个应用(即,软件)的计算机、专用计算机(即,后端服务器)或多个计算机的服务器,其允许经由互联网或其他通信信道与助理接口412通信并且还允许与潜在无限范围的应用模块430通信。

特别地,助理接口412可以向助理服务器420的命令推断块611提供所生成的用户输入SIIL消息。块611可以有效地推断在用户输入SIIL消息中指定的用户输入后面的意图。块611将用户输入SIIL消息转换成“命令输入”SIIL消息,如下文中将参考图6进一步描述的。去往应用模块430.1的命令输入SIIL消息425.1a和去往应用模块430.2的命令输入SIIL消息425.2a被提供给模块特定的插件425.1、425.2,本文中统称为插件425。

为了促进客户端410与应用模块430之间的接口的设计,助理服务器420可以支持开放型平台,例如,软件平台,任何软件工程师(也称为软件开发者)可以通过借此来创建软件连接器或插件425以与任何应用模块接口。特别地,插件425中的每个插件可以被配置为执行从命令输入SIIL消息到对应的应用模块的专有协议的消息的转译,并且反之亦然。因此,插件425中的每个插件处理由助理服务器420使用的SIIL与由应用模块中的相应应用模块使用的专有协议之间的转译。

例如,在其中模块430.1是用于实现VR街道101的VR模块的示例性实施例中,这样的VR模块的软件开发者可以指定专有的消息传送格式,到VR模块的输入和输出预期根据该专有的消息传送格式来指定。类似地,在其中模块430.2是用于实现社交联网应用的非VR模块的示例性实施例中,社交联网应用的软件开发者可以指定专有消息传送格式,应用的任务可以以该专有消息传送格式来进行,例如添加朋友、更新或检查状态等

应当理解,应用模块的开发者或工程师或任何其他方可以在助理服务器420处创建插件425以允许助理服务器420使用应用模块的特定专有协议与相应的应用进行通信。插件425可以基于对每个应用模块的SIIL和专有协议两者的知识来创建。

应用模块430可以生成去往客户端410的输出数据,该输出数据可以首先使用针对每个应用模块的专有协议被传达到相应的插件425。在这种情况下,插件425可以使用SIIL消息来封装这样的输出数据,并且在信道425.1b、425.2b上向助理接口412传输SIIL消息。在接收到这样的输出数据时,助理接口412将数据提供给由输出模块322提供的VR输出,以相应地为用户生成VR输出体验。

在示例性实施例中,助理服务器420和插件425可以一起被包括在单个硬件安装中,或者多个硬件安装中。VR模块与其相应的插件之间的通信430.1a、430.2a可以经由互联网、WiFi、蓝牙、WiFi直连(WiFi direct)、HDMI、USB、火线(FireWire)、NFC或其他手段来进行。在备选的示例性实施例中,插件425本身可以直接并入到对应的应用模块430中。例如,应用模块430.1可以在一个或多个计算机服务器上连同其专用插件425.1一起实现。这样的备选的示例性实施例预期在本公开的范围内。

图5示出了VR系统400的示例性实施例400.1,其中应用模块430.1是VR模块,并且应用430.2是非VR模块。注意,图5仅出于说明的目的而示出,并不表示限制本公开的范围。

在示例性实施例中,VR系统400.1可以支持用作到非VR服务的VR接口的VR环境。例如,VR模块430.1可以生成诸如VR街道101的VR环境。通过其专用插件425.1,VR模块430.1可以接收与显示在VR街道101中的产品(例如,显示在展示在VR街道101中的虚拟店面中的服饰)的选择相关的用户输入。一旦用户选择了服饰,例如通过使用诸如指向虚拟店面中的服饰的适当的VR输入手势,或者使用语音控制等,助理接口412可以生成对应的用户输入SIIL消息。然后命令推断块611可以将用户输入SIIL消息转换成命令输入SIIL消息,并且命令输入SIIL消息可以被传输到用于非VR模块430.2的插件425.2。

在示例性实施例中,非VR模块430.2可以是购物应用,其可以将用户在VR环境中对特定服饰的选择作为购买服饰的请求来处理。交易的进一步细节(例如,所选择的服饰的细节、用户的支付方法等)可以由非VR插件425.3例如使用信道420a经由SIIL消息从插件425.1获取,或者直接经由插件425.2从用户来请求。

在备选的示例性实施例中,VR用户可以与VR模块交互,并且使用SIIL消息跨越多个非VR应用模块传送数据。例如,VR模块430.1可以为用户生成VR店面体验,其中用户可以从显示多个这样的项目的虚拟店面中选择要购买的项目。通过插件425.1,VR模块430.1可以接收与显示在VR店面中的产品(例如,显示在虚拟店面中的服饰)的选择有关的用户输入。用户可能希望获取关于产品的进一步信息,并且相应地将产品“发送”到提供关于这样的产品的进一步信息的(非VR)数据库服务。

为了执行这个任务,用户可以提供诸如手势的VR输入,借此虚拟服装物品被拾取并且“投掷”到与数据库服务相对应的VR环境中的图标。该VR输入可以生成例如被发送到与数据库服务的应用模块(图5中未示出)相对应的非VR插件(图5中未示出)的命令输入SIIL消息。用户可以进一步提供附加的VR输入以命令数据库服务在另一非VR购物平台应用及其对应的非VR插件上查找和预览类似的项目。

如上文中讨论的,命令推断块611被配置为将用户输入SIIL消息转换成命令输入SIIL消息。例如,向VR环境中的图标“投掷”项目的手势的前述VR输入需要被转换成将该项目发送到数据库服务以检索进一步的信息的命令,即投掷的含义需要由系统进行推断。图6示出了由命令推断块611执行的操作的示例性实施例600。注意,图6仅出于说明的目的而示出,并不表示将本公开的范围限制为命令推断块611的任何特定实现。注意,操作的示例性实施例600可以由本说明书中(包括例如在VR系统400、400.1、400.2、1000等中)描述的命令推断块611的任何实例来执行。

在图6中,在框610处,命令推断块611从对应的用户接收用户输入SIIL消息。在示例性实施例中,用户输入SIIL消息可以从单个用户的客户端来接收,例如经由来自耦合到与助理服务器420通信的助理接口412的输入模块320的VR输入。在备选的示例性实施例中,用户输入SIIL消息还可以从其他用户来接收,例如经由图10所示的通信信道1020a从另一助理服务器420的命令推断块611(例如,驻留在另一子系统上)。以这种方式,任何助理服务器420可以识别由来自多个用户的输入组成的“多用户”命令。

在框620处,还接收在框610处接收到的用户输入SIIL消息的上下文。特别地,用户输入的含义可以取决于它们被接收的上下文而变化。在本说明书和权利要求书中,“上下文”可以指代形成特定用户输入所来自的背景的特定用户或整个系统配置或情况。例如,上下文可以表示在一个用户生成输入时在联合VR环境中的其他个体的共同存在、在生成输入时的用户的地理位置、在进行用户输入的一天中的时间、进行诸如手势等物理输入的方向、任何用户的先前的输入历史、或伴随特定用户输入的任何其他细节等。

例如,如果姿势用户输入是在光的方向上进行的,则命令推断块611可以将该姿势解释为例如减小亮度级别的命令。如果相同的姿势是在音乐播放器的方向上进行的,则块611可以将该姿势解释为例如减小音量级别的命令。

对于不同的用户,相同的输入也可以被不同地解释。例如,如果一个用户一致地使用姿势来执行第一命令并且另一人使用相同的姿势来执行第二命令,则块611可以学习基于将用户身份作为上下文来标识这些偏好。注意,这种使用自适应学习来为不同用户不同地解释用户输入也允许在不同用户群组或个体之间出现输入命令推理的“方言”。

在框630处,基于在框610处接收到的用户输入SIIL消息和在框620处接收到的上下文,命令推断块611从所存储的输入/上下文到命令映射的库中检索提议的命令。特别地,块611可以具有对助理服务器420中的存储器(未示出)的访问,该存储器存储与用户输入和上下文的不同组合相对应的候选命令。

例如,特定的用户输入SIIL消息可以包括“逆时针圆”手势,以及用户在使用VR系统的同时收听音乐播放器的上下文。在示例性实施例中,用户输入和上下文的这种组合可以由块611使用所存储的库被映射到音乐播放器的“增加音量”的提议的命令。注意,该映射仅出于说明的目的来描述,并不表示将本公开的范围限制为输入/上下文和命令之间的任何特定映射。

在框635处,将命令封装为命令输入SIIL消息。在示例性实施例中,在框630处检索到的提议的命令可以对应于在框635处封装的实际命令。在备选的示例性实施例中,在框630处检索到的提议的命令不必是在框635处封装的实际命令。特别地,可以采用各种技术来基于其他因素细化提议的命令,例如,由用户或其他用户应用的修正等。

特别地,当用户生成未被块611识别或者被块611不正确地解释的VR输入时,用户可以拒绝提议的命令,并且替代地通过图形界面(例如,可选图标的显示)明确地输入要执行的命令。以这种方式,提议的命令与执行的命令之间的差别可以被合并,以使得块611能够适应和学习与未被识别或错误地解释的VR输入相关联的适当的命令。

此外,在两个或更多个用户之间共享的联合VR体验中,例如,如下文中参考图9-11进一步描述的,一个用户可以做出用户输入,该用户输入然后可以由另一用户纠正或补充。例如,一个用户可以做出逆时针圆圈手势以从第一VR环境改变到第二VR环境。例如,如果执行环境中的变化的正确姿势实际上是打开然后关闭拳头姿势,如从助理服务器可访问的所存储的用户输入的所存储的库而确定的,则VR系统可能无法识别这个手势。在这种情况下,第二用户可能注意到第一用户的不正确的姿势,并且可以被使得能够通过信号通知正确的姿势(即,由当前存储的库内容确定的正确的姿势)来代表第一用户执行期望的任务。因此,在这种情况下,附加用户将提议的命令细化为实际的命令。

在框640处,向一个或多个应用模块提交封装提议的命令的命令输入SIIL消息。例如,在上文中描述的其中逆时针圆圈姿势被映射到用于音乐播放器的“增加音量”命令的示例性场景中,助理服务器420可以将封装命令“增加音量”的命令输入SIIL消息提交给实现音乐播放器的非VR模块。因此,在这种情况下,实现音乐播放器的非VR模块不需要具有从中导出命令输入SIIL消息的特定用户输入(例如,逆时针圆圈手势)或用户输入SIIL消息的知识。因此可以理解,通过提供指定命令的通用SIIL接口,本技术显著地简化和模块化VR模块和非VR模块两者的设计,从而将模块从构建或存储用户输入与命令之间的它们自己的映射的需求中解放出来。

在框650处,如果适当的话,可以基于在框635处封装的实际命令来更新由命令推断块611访问的库。特别地,参考上文中描述的场景,其中第二用户通过信号通知正确的姿势来代表第一用户执行任务,与第一用户通信的命令推断块611然后可以更新其库,以将逆时针圆圈手势的原始未识别的输入与变化的VR环境的预期命令相关联。对库的该更新是自适应学习的示例,其使得助理服务器能够自适应地扩展用户输入的词汇量。这种自适应学习可能是完全自动化的或涉及人类指导和管理。学习的自动化组件可以采用各种机器学习、深度学习或其他技术。

在框660处,可以与其他助理服务器交换在框650处对库的更新。特别地,助理服务器对库的更新可以被扩展到助理服务器的其他实例,例如对应于其他子系统。因此,助理服务器的不同实例可以向彼此传达用户输入与命令输入之间的自适应地学习的映射,以更新它们相应的库。

在示例性实施例中,在框610-630处,可以将来自一个或多个用户的多个VR输入捆绑在一起以例如使用多个用户之间的信道1020a来生成单个命令集合,如下文中讨论的图10所示。例如,如果作为由用户生成的对应的一组VR输入(例如,手势A跟随有语音命令B跟随有手势C)的结果而重复执行一组命令,则命令推断块611可以将这组VR输入自动捆绑成单个复合VR输入(例如,手势A),其执行将触发这组命令被执行。

在备选的示例性实施例中,由多个用户执行的“多用户”VR输入可以类似地被捆绑成单个复合VR输入以触发整组命令。例如,如果一些VR输入由用户A生成,然后跟随有用户B的VR输入,然后跟随有用户C的另一VR输入,并且这些用户通常一起执行这些动作,则所有这些VR输入可以一起被捆绑成单个复合VR输入,以触发否则将在每个VR输入由每个用户单独执行的情况下执行的命令序列。

在示例性实施例中,可以在用于特定用户输入的手持体验(例如,利用智能电话,如在美国专利9,111,214中描述的)与VR体验之间建立等同关系。因此,在用户输入库中,一些用户输入可以被标记(例如,通过在框620处接收到的上下文)以供在手持体验中使用,一些用户输入可以被标记用于VR体验,并且一些用户输入可以被标记用于手持体验和VR体验两者。在一些情况下,将存在映射,其中特定的移动用户输入(例如,图标触摸)对应于不同的用户输入(例如,手势)。这些映射可以由虚拟助理系统基于使用和反馈模式经由自适应学习来推断。映射也可以由插件开发者明确提供。

如上所述,通过使用SIIL来标准化VR和非VR模块与助理服务器之间的通信并且在助理服务器处提供推断功能(例如,在块611处),插件开发者可以用语义信息交换格式语言为插件定义一个或多个给定动作,而不事先定义哪些特定的VR输入应当使得这些一个或多个动作被执行。在示例性实施例中,插件开发者稍后可以定义VR输入与命令之间的VR模块特定的映射。备选地或附加地,助理服务器可以基于从其他VR模块和插件获取的数据来推荐VR输入与命令之间的一个或多个特定映射。例如,如参考框650所描述的,这些映射也可以基于用户行为来被调整以及调节。

作为示例,用于音乐播放器插件的插件开发者可以在开发插件的同时编程相关命令,例如改变音量、改变正在播放的音乐等。插件开发者稍后可以创建或改变从VR输入到这些命令的映射,例如,用于增加音量的拇指向上、用于改变音乐的图标触摸姿势等。

此外,如果助理服务器已经从其他插件(例如,通过信道1020a上的通信)自适应地学习到特定的VR输入(诸如手势)通常对应于提高音量的用户意图,则助理服务器的块611可以建议或提供在上面的示例中的音乐播放器插件的VR输入以对应于提高音量命令。

在一些情况下,VR输入与命令之间的映射可以基于潜意识用户行为来调节。如果用户无意识地一直执行某些动作,则这样的动作可以被输入模块320中的传感器拾取,并且可以被注册为不同的VR输入,即使当用户不是故意执行那些输入来生成任何对应的命令时。

例如,如果用户一直试图在VR街道101中侧向移动,则块611可以记录该要移动的企图并且使这样的侧向运动成为与侧向移动命令相对应的所支持的VR输入手势。VR输入的这种解释也可以取决于上下文。例如,当用户A在联合VR环境中由用户B伴随时与用于一个或多个VR模块的一个或多个命令相对应的姿势可以对应于当用户A代替由用户C伴随时用于那些相同的VR模块的不同命令。特别地,当用户正在使用VR街道101时与一个或多个命令相对应的VR输入手势可以对应于当同一用户正在使用VR驾驶201时的不同命令。

针对插件内的不同内部上下文,VR输入也可以在单个插件内具有不同的含义。例如,在VR街道101中,当用户正虚拟地在室外行走时,VR输入(例如,用户的脚的姿势或移动)可以导致侧向移动,但是如果用户在虚拟建筑物附近,则相同的VR输入可以导致用户进入虚拟建筑物。在这个示例中,用户在VR体验中的虚拟位置对应于用于解释一个或多个VR输入的上下文。

图7示出了VR系统400的备选示例性实施例400.2,其中应用模块430.1和430.2都是VR模块。注意,图7仅出于说明的目的而示出,并不表示限制本公开的范围。示例性实施例400.2的功能可以参考其中模块430.1实现VR街道101并且模块430.2实现VR驾驶201的场景来描述。

在这种情况下,为了提供VR街道101与VR驾驶201之间的平滑和“无缝”转换,模块430.2可以被设计为将VR街道101的某些元素和参数并入VR驾驶201中。例如,VR街道101的风景的某些方面可以被并入到在VR驾驶201中显示的风景中。

在这种情况下,模块430.2可以通过在信道430.2a上向插件425.2发送专有请求消息来请求模块430.1为VR街道101提供参数。插件425.2将专有请求消息转译成SIIL消息,并且向插件425.1传输SIIL消息,插件425.1将消息转译成模块430.1的专有请求消息,并且在信道430.1a上向模块430.1传输该消息。所请求的数据然后可以由模块430.1生成,并且在相同的通信信道(例如,430.1a、420a、430.2a等)上被发送回模块430.2。因此可以理解,插件425.1、425.2之间的通信信道420a允许传送SIIL消息,SIIL消息封装用于生成由这样的VR模块生成的VR体验之间的“无缝”转换的参数。

备选地,在信道420a上传送的数据可以包括与支付工具相关联的凭证或授权,其可以在用户在VR环境之间转换时与用户一起行进。例如,当用户在不同的VR体验之间移动时,使用某种类型的支付工具的权限(例如,对支付工具的收费交易)可以伴随用户。这可以通过允许与那些不同VR体验相对应的插件425.1、425.2使用SIIL消息在信道420a上交换支付凭证和授权数据来实现。

可以在信道420a上传送的另外的数据可以包括关于用户当前或“指派”状态的信息,例如,关于奖励计划或用户达到预定义状态,其可以与由每个VR模块生成的VR体验相关。例如,每个插件可以具有对特定状态的含义的其自己的定义。共享或提供关于这样的用户状态的数据允许用户在插件之间建立过去的体验。例如,一个或多个用户可以将他们在第一VR游戏体验中的密集发挥移到第二VR游戏体验,以在第二VR游戏中给一个或多个用户提供更高的起始点。

图8示出了利用VR系统400在多个不同的VR体验之间提供无缝转换的方法800的示例性实施例。注意,方法800仅出于说明的目的来示出,并不表示限制本公开的范围。

在图8中,在框810处,助理接口412向用户提供如由第一VR模块430.1生成的第一VR体验。鉴于上文中参考图4的描述,应当理解,助理接口412可以使用SIIL与专用于第一VR模块430.1的插件(例如,插件425.1)通信,并且因此接收用于根据由第一VR模块430.1生成的VR输出来为输出模块322生成VR输出所需要的参数。

在框820处,助理接口412接收由VR模块430.2实现的从第一VR体验到第二VR体验的转换的指示。在示例性实施例中,通过用户信号通知从一个VR体验转换到另一VR体验的意图,这样的指示可以从例如来自输入模块320的VR输入来导出。例如,在其中用户期望从VR街道101转换到VR驾驶201的示例性实施例中,用户可以朝着存在于VR街道101中的虚拟车门做出姿势,这可以向助理接口412提供在VR经验之间转换的指示。

在框830处,第一VR模块430.1与第二VR模块430.2经由它们相应的插件425.1、425.2共享VR数据和参数。特别地,VR模块430.1可以使用其专有协议向插件425.1传达相关的VR参数,插件425.1将这样的VR参数转译成SIIL消息。插件425.1在信道420a上向插件425.2传输经转译的SIIL消息,插件425.2将消息转译成第二VR模块430.2的专有协议。以这种方式,VR模块430.2可以访问与第一VR体验相关联的VR参数,并且将这些VR参数并入第二VR体验中,由此使得VR环境之间的转换对于用户好像是无缝的。

在框840处,助理接口412经由第二VR模块430.2向用户提供第二VR体验。

在示例性实施例中,通信信道412a、425.1b、425.2b中的任一个或全部可以被实现为Wi-Fi、Wi-Fi直连、近场通信、蓝牙、射频识别(RFID)、以太网、火线、通用串行总线(USB)、高清晰度多媒体接口(HDMI)或任何其他类型的无线或有线连接等。

在示例性实施例中,应用模块430中的一个或多个应用模块可以被配置为为VR系统400提供“通用平台”功能。特别地,如之前参考图3所描述的,期望跨越所有VR体验维持单个背景控制面板和框架,使得例如特定的用户手势将产生“主菜单”或其他通用功能,诸如“增加VR环境音频输出音量”。这样,应用模块430中的一个或多个应用模块可以被配置为监测输入为手势或其他关键字命令的、针对通用平台输入的用户输入,并且响应于这样的输入来采取动作。例如,诸如特定的预定义的手势的特定用户输入可以由助理接口412编码成SIIL消息,该SIIL消息信号通知从第一VR体验转换到第二VR体验的用户意图。

用于VR系统400的通用平台功能进一步可以包括将VR系统400的虚拟表示投影为VR环境中的虚拟助理。例如,VR系统400的客户端410的存在可以被虚拟地体现为VR环境(例如,VR街道101)中的图标或化身,或者以某种其他方式被体现,并且用户可以能够与客户端实施例交互,例如与客户端化身谈话或做出姿势。

例如,客户端可以被体现为鸟,用户在VR环境中感知这个鸟并且用户可以与这个鸟直接交互,例如以提供一个或多个用户生成的VR输入和/或从鸟接收来自其他VR模块的反馈。以这种方式呈现,特定用户的客户端可以仅由该用户可感知,或者备选地可以由参与联合VR体验的一个或多个其他用户可感知,如下文中参考图9进一步描述的。用户的客户端也可以在有限的时段内或永久地存在并且监测用户,而完全不会被用户人格化或者甚至可感知。换言之,用户可能没有意识到他们的客户端在VR会话中的存在,尽管在这种情况下客户端可能仍然正在监测用户的动作并且基于用户的动作接受VR输入。

在备选的示例性实施例中,用于VR系统400的通用平台功能可以进一步或替代地由助理接口412提供。例如,助理接口412可以包括一个或多个决策模块,用于将从输入模块320接收到的VR输入引导到应用模块430中的适当的一个或多个应用模块,和/或为VR系统400提供整体图形和用户界面,包括将VR系统400的虚拟表示投影为VR环境中的虚拟助手,如上所述。这样的备选的示例性实施例预期在本公开的范围内。

在备选的示例性实施例中,通用平台功能可以通过交换SIIL消息来在多个个体应用模块之间协调。例如,定义给定的通用手势的通用含义的某些参数(例如,“增加VR音频输出音量”)可以作为SIIL消息在应用模块430.1与应用模块430.2之间交换,并且以这种方式,通用统一VR环境可以被提供而不需要配置模块430中的任何单个模块来理解和处理一组复杂的VR输入。

在示例性实施例中,模块320、322中的任何组件可以将与助理接口412相关联的转译功能并入模块320或322的硬件/软件实现中,并且因此助理接口412不需要与模块320或模块322单独实现。这样的备选的示例性实施例预期在本公开的范围内。

本公开的其他方面提供用于使用本文中公开的技术在联合VR环境中适应VR系统的多个用户之间的交互。图9示出了根据本公开的容纳多个用户的示例性VR场景900。注意,图9仅出于说明的目的而示出,并不表示限制本公开的范围。为了便于说明,VR场景900省略了诸如计算机102的某些硬件块,尽管应当理解,在任何实际实现中都存在这样的元件和未明确描述的其他元件。

在图9中,第一用户110和第二用户910同时参与“联合”VR体验901,在本文中也被称为“联合VR街道”。特别地,联合VR体验可以是其中多个用户可以沉浸在共享相同参数(例如,图像、音频、上下文等)中的至少一些参数的相应VR环境中的体验,以及其中用户可以被提供彼此交互的一些机会的另外的体验。例如,在联合VR街道901中,通过对例如由VR耳机130、930、音频扬声器(未示出)等生成的相应输出信号的接收,用户110、910两者可以沉浸并且虚拟地存在于联合VR街道901中。在示例性实施例中,VR系统可以被配置为使得用户110、910能够彼此交互并且与虚拟环境交互。

例如,表示用户中的一个用户的虚拟化身(未示出)可以由VR系统生成并且投影到VR环境901中,并且其他用户可以查看并且与如同现实生活中的这样的化身交互。例如,第一用户110可以通过面对与VR环境901中的第二用户910相对应的化身(未示出)并且通过向麦克风或另一音频输入设备中直接说话来向第二用户910讲话。第一用户110和第二用户910还可以联合与存在于VR环境901中的其他物体交互。例如,第一用户110可以接近虚拟汽车112的驾驶员侧并且打开车门,而第二用户910可以同时接近虚拟汽车112的乘客侧并且打开车门。在这种情况下,VR系统可以将用户的输入解释为指示两个用户都希望参与相同的联合驾驶模拟,诸如驾驶指令模拟中的学生和教师。VR系统因此可以安排联合街道环境901以转换到其中两个(或更多个)用户可以参与的联合驾驶VR环境(未示出)。

图10示出了根据本公开的联合VR系统1000的示例性实施例。注意,图10仅出于说明的目的而示出,并不表示限制本公开的范围。例如,虽然出于说明的目的在图10中说明性地示出了两个子系统1001、1002,但是应当理解,本文中描述的技术可以容易地适应多于两个子系统,并且这样的备选的示例性实施例预期在本公开的范围。此外,可以理解,客户端410.1、410.2中的每个客户端可以共享与针对例如图4的VR系统400中的客户端410所描述的架构类似的架构。

在图10中,VR系统1000包括两个子系统:用于第一用户处理的第一子系统1001和用于第二用户处理的第二子系统1002。如上文中参考图4所述,第一子系统1001和第二子系统1002中的每一个可以包括与用于单个用户和多个VR模块的VR系统400相似的特征。因此,除非另有说明,否则VR系统400中的类似地标记的元素和子系统1001、1002可以指代执行类似功能的元素。

在图10中,第一子系统1001和第二子系统1002中的每一个分别从客户端410.1、410.2(例如,从第一用户和第二用户)接收VR输入。第一子系统1001的助理服务器420包括多个插件425.1,包括耦合到第一VR模块430.1-1的VR插件425.1-1和耦合到非VR模块430.1-2的非VR插件425.1-2。第二子系统1002的助理服务器420包括多个插件425.2,包括耦合到第二VR模块430.2-1的VR插件425.2-1和耦合到非VR模块430.2-2的非VR插件425.2-2。数据可以通过配置它们相应的插件在通信信道1030a上使用SIIL消息传达这样的数据来在第一子系统1001和第二子系统1002的应用模块(即,VR模块或非VR模块)之间被交换。信道1030a可以包括促进第一子系统1001的助理服务器420与第二子系统1002的助理服务器420之间的信息传送的任何链路,并且可以包括例如有线或无线互联网或局域网连接等。

在图10中,第一子系统1001和第二子系统的助理服务器420每个包括命令推断块611的实例。块611从其相应的客户端410.1或410.2接收信号,例如被封装为用户输入SIIL消息的信号。块611可以将用户输入SIIL消息转换成命令输入SIIL消息,如上文中参考图6所述。块611进一步向相应插件提供命令输入SIIL消息。

在示例性实施例中,VR模块430.1-1、430.1-2可以对应于被配置为为多个用户生成单个联合VR体验的分离模块。图11示出了根据本公开的用于使用VR系统1000生成联合VR体验的方法的示例性实施例1100。以下文中描述的方式,应当理解,方法1100为VR用户提供在联合VR体验中彼此“交互”的能力。注意,图11仅出于说明的目的而示出,并不表示限制本公开的范围。

在图11中,在框1110处,第一客户端经由第一VR模块向第一用户提供第一VR体验。在示例性实施例中,这样的操作可以通过客户端410.1向第一用户110提供由第一VR模块430.1-1生成的第一VR体验来实现。特别地,客户端410.1可以例如使用插件425.1-1经由SIIL与VR模块430.1-1通信。

在框1112处,第二客户端经由第二VR模块向第二用户提供第二VR体验。在示例性实施例中,这样的操作可以通过客户端410.2向第一用户110提供由第一VR模块430.1-1生成的第一VR体验来实现。特别地,客户端410.1可以例如使用插件425.1-1经由SIIL与第一VR模块430.1-1通信。

在框1120处,第一VR模块和第二VR模块使用SIIL经由第一助理服务器和第二助理服务器彼此交换数据。在示例性实施例中,这样的操作可以通过第一VR模块430.1-1和第二VR模块430.2-1在信道1030a上彼此交换数据(即,经由它们相应的插件)来实现。

通过在信道1030a上交换数据,第一VR模块430.1-1可以接收与第二用户有关的数据,以为第一用户生成第一VR体验,并且还传输与第一用户有关的数据,以允许第二VR模块430.2-1为第二用户生成第二VR体验。类似地,第二VR模块430.2-1也可以向第一VR模块430.1-1传输数据以及从第一VR模块430.1-1接收数据。在本说明书和权利要求中,两个或更多个彼此通信的助理服务器的布置被称为存在助理服务器的“多个实例”。

在示例性实施例中,第一VR模块可以在信道1030a上接收数据,例如对准VR环境的参考系的来自第二VR模块的参考坐标,和/或第一VR模块可以同步向第一用户和第二用户呈现的VR帧和/或音频的定时。第一VR模块可以进一步在信道1030a上接收与由第二VR模块支持的第二用户相对应的参数,例如空间坐标、简档信息等。

在框1130处,第一客户端经由第一VR模块430.1-1向第一用户提供联合VR体验。特别地,第一VR模块430.1-1可以使用在框1120处在信道1030a上接收到的参数来模拟第二用户在向第一用户显示的VR环境中的存在。例如,使用所接收的参数,第一VR模块430.1-1可以为第一用户生成与第一VR环境中的第二用户相对应的化身,并且可以进一步向该化身提供与在信道1020a上接收到的第二用户的简档参数相对应的特性。

在框1132处,第二客户端经由第二VR模块430.2-1向第二用户提供联合VR体验。特别地,类似的操作可以在第二VR模块430.2-1处执行,以如由第一客户端和第一VR模块在框1130处执行的那样为第二用户生成第二VR体验。

应当理解,助理服务器420的多个实例可以彼此交换各种类型的信息,以促进VR系统的用户之间的交互。这样的信息可以包括但不限于用户偏好、由用户输入的输入(例如,允许一个助理服务器理解另一助理服务器的用户输入)和用于命令推理的“上下文”,如上文中参考图6所述。以这种方式,由多个不同用户输入的命令可以在助理服务器的多个实例之间被传达并且被这些实例所理解。

尽管单独的用户被示出为连接到图10中的不同助理服务器420(例如,第一用户访问第一子系统1001的助理服务器420,而第二用户访问第二子系统1002的助理服务器420),但是在备选的示例性实施例中,多个用户可以访问相同的助理服务器420。在这样的示例性实施例中,单个助理服务器420可以同时支持多个插件,并且这样的插件之间的SIIL通信可以在相同的助理服务器420内进行,例如,在助理服务器420内部使用硬件总线电缆、网络连接或局域网类型的网络连接。

在本公开的备选的示例性实施例中,例如,使用具有VR系统400.1和VR系统1000的特性的VR系统,用户可以在一个服务上构建项目的集合,并且然后该列表可以跨越若干其他服务被分发。例如,在Rotten Tomatoes

在备选的示例性实施例中,VR系统1000可以进一步支持用于两个或更多个用户的联合VR环境,其用作到一个或更多个非VR服务的VR接口。例如,VR模块430.1-1、430.2-1可以为两个或更多个用户生成联合VR环境,诸如虚拟会场。由第一子系统1001服务的第一用户可以从非VR模块430.1-2中选择电影标题,诸如由第一用户可访问的电影服务(例如,Hulu Plus

在示例性实施例中,由任何VR模块对某些命令的执行可以以用户预授权为条件。例如,打开VR街道101的汽车112的车门以转换到VR驾驶201可以仅响应于用户拥有并且展示访问VR驾驶201的必要授权来执行。在示例性实施例中,VR模块的用户可以与其他用户共享访问VR环境的权限,例如利用用于在插件之间交换这样的数据的信道1030a。类似地,用户可以根据一些预定的限制(例如,仅在给定的时段内,或服从其他条件)来选择与一个或多个其他用户共享在VR环境的不同方面上的权限。

例如,在其中两个或更多个用户参与联合VR街道901的情况下,仅第一用户可以拥有从虚拟街道体验转换到虚拟驾驶体验的权限。(例如,第一用户可以已经向虚拟驾驶员模拟器支付了订购账户)。在这种情况下,第一用户可以在有限的基础上向第二用户扩展权限,例如,通过生成诸如姿势或语音命令的VR输入。作为另一示例,在其中用户可以选择虚拟显示的项目以进行购买的VR购物环境中,仅第一用户可以被授权进行购买。在这种情况下,例如受制于能够花费的金额上的限制等,第一用户也可以将权限扩展到第二用户或其他用户以也进行购买。

在另外的示例性实施例中,在VR会议环境中,多个用户可以联合参与审阅单个资产,例如,文件。与该资产的合法所有者相对应的第一用户可以生成VR输入以将查看和/或编辑权限扩展到其他用户。第一用户可以进一步选择为不同的用户指派不同级别的权限(例如,查看权限、编辑权限等),这个权限可以在任何时间由第一用户进一步撤销。

在本文中被称为“池化授权”的多用户绑定VR输入的特定示例性实施例中,可能需要多个用户共同信号通知他们各自的授权以执行单个命令。例如,可能存在其中不同用户已经为游戏的不同部分(或多个相互连接的游戏)付费的游戏,但是可以向彼此扩展在这些部分中玩的权限。在这些情况下,本公开的VR系统可以允许权限被池化。如上所述,有时还可以构造涉及来自多个用户的权限的组合动作。

在示例性实施例中,VR系统可以具有支持“权限交易”的能力,其中VR系统基于两个或更多个用户之间的协议布置在某个标的资产上的权限的同时交换,例如永久或暂时地向一个或多个服务发出命令的权限。这些权限交换可以是两个人之间简单的交易,但是也可以在多于两方之间进行安排复杂的交易。以同样的方式,用户可以将标的资产上的权限永久转移给另一用户,而不接收任何回报,或者换取支付的转移。在这样的权限转移之后,原始用户失去在标的资产上的权限。以这种方式,可以在虚拟现实中进行访问或权限的销售或转移。例如,出售他们家的用户可以向买家转移他们在家庭恒温器上的权限。虚拟助理系统还可以托管物品(例如,向一个或多个服务发出命令的权限)以确保交易正确完成。

在示例性实施例中,VR系统1000还可以被配置为基于由用户表达的偏好来为多个用户构造联合VR会话的参数。例如,联合VR体验的特定颜色设置、风景、音频背景和其他方面可以例如通过使用SIIL消息在多个插件和/或其他VR或非VR插件(未示出)之间交换数据来构造。出于该目的,可以存在在不同用户的VR系统中运行的助理服务器的多个实例,例如,每个用户可以具有自己的助理服务器,以上述方式与一个或多个其他用户的助理服务器通信。

虽然已经参考VR描述了本公开的各个方面,但是应当理解,所描述的技术也可以应用于增强现实(“AR”)系统,其在本文中将被理解为指代一种类型的VR系统。特别地,在AR中,用户也被呈现有虚拟环境,附加条件是用户仍然可以感知到他们的周围环境,并且仅附加的图形或其他覆盖图可以被提供。例如,尝试跟随去往目的地的方向的用户可以感知到地面上的箭头,以朝向目的地来引导用户。应当理解,本文中呈现的发明构思同样适用于AR。例如,AR系统通常可以采用与本文所述的相同的模块和架构,例如,助理接口、具有命令推断块的助理服务器、多个插件等。

例如,可以通过允许用户正常看到但是在用户的视野中显示图像的眼镜来提供AR体验。备选地或附加地,用户可以正在观看例如实时或时间延迟的相机馈送,其中显示了用于观看的附加元素。AR体验还可以例如经由音频信号或触觉反馈向一个或多个用户的其他感官提供附加数据。

如上文中所述,用户输入的解释和在AR中执行的动作也可以取决于伴随的上下文。然而,在AR中,上下文可以包括用户的周围环境。这样,虚拟助理系统可以包括或连接到例如检测用户周围环境并且允许虚拟助理系统对其作出反应的相机和其他传感器。作为示例,如果在用户家中有入侵者,则AR体验的相机(诸如,上述眼镜中包括的相机)可以捕获侵入者的脸部的图像,并且向当局报告。该图像捕获和报告功能可以响应于对用户的部分的有意识或无意识的动作来执行。

图12示出了计算设备1200的示例性实施例,计算设备1200包括保存指令的存储器1220,该指令由处理器1210可执行以:根据第一协议从客户端接收指定到虚拟现实系统的输入的用户输入消息;根据第一协议将用户输入消息转换成命令输入消息;向应用模块传输由命令输入消息指定的命令输入;根据第一协议将从应用模块接收到的定制服务消息转译成第一服务消息;以及向客户端传输第一服务消息。

图13示出了根据本公开的装置的示例性实施例1300。装置1300包括命令推断块1310,被配置为根据第一协议从客户端接收指定到虚拟现实系统的输入的用户输入消息,并且根据第一协议将用户输入消息转换成命令输入消息。装置1300还包括至少一个插件模块1320,被配置为:向应用模块传输由命令输入消息指定的命令输入;根据第一协议将从应用模块接收到的定制服务消息转译成第一服务消息;以及向客户端传输第一服务消息。

图14示出了用于将用户输入数字消息转换成用于虚拟现实系统的命令输入数字消息的方法的示例性实施例1400。在框1410处,根据第一协议接收至少一个用户输入消息。在框1420处,接收用于至少一个用户输入消息中的每个用户输入消息的上下文。在框1430处,如果提议的命令可用,则从将用户输入和上下文映射到命令输入的数字库中检索提议的命令。在框1440处,如果没有接收到对提议的命令的用户拒绝,则根据第一协议将提议的命令封装在至少一个命令输入消息中。在框1450处,向应用模块传输命令输入消息。

在本说明书和权利要求书中,应当理解,当元件被称为“连接到”或“耦合到”另一元件时,它可以直接连接或耦合到另一元件或者中间元件可以存在。相反,当元件被称为“直接连接到”或“直接耦合到”另一元件时,不存在中间元件。此外,当元件被称为“电耦合”到另一元件时,其表示在这样的元件之间存在低电阻路径,而当元件被简单地“耦合”到另一元件时,在这样的元件之间可以存在或不存在低电阻路径。

本文中描述的功能可以至少部分由一个或多个硬件和/或软件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。

虽然本发明易于进行各种修改和备选构造,但是其某些示出的实施例在附图中示出并且已经在上面详细描述。然而,应当理解,不存在将本发明限制于所公开的具体形式的意图,而是相反,意图为覆盖落入本发明的精神和范围内的所有修改、备选构造和等同物。

相关技术
  • 统一的虚拟现实平台
  • 统一的虚拟现实平台
技术分类

06120113048106