一种虚拟现实设备及语音辅助交互方法
文献发布时间:2023-06-19 11:16:08
技术领域
本申请涉及虚拟现实技术领域,尤其涉及一种虚拟现实设备及语音辅助交互方法。
背景技术
虚拟现实(Virtual Reality,VR)技术是通过计算机模拟虚拟环境,从而给人以环境沉浸感的显示技术。虚拟现实设备是一种应用虚拟显示技术为用户呈现虚拟画面的设备。通常,虚拟现实设备包括两个用于呈现虚拟画面内容的显示屏幕,分别对应于用户的左右眼。当两个显示屏幕所显示的内容分别来自于同一个物体不同视角的图像时,可以为用户带来立体的观影感受。
虚拟现实设备可以与用户之间进行交互,根据虚拟现实设备所支持的交互方式不同,用户可以通过不同的方式输入控制指令。例如,用户可以应用键盘、三维鼠标、力反馈手套、深度相机等设备实现与虚拟现实设备的人机交互。
但是,由于这些设备所能够支持的交互动作有限,导致其应用在虚拟现实设备的人机交互过程中需要对虚拟现实设备的用户界面布局具有严格限制,并且操作不灵活。此外,键盘等设备还存在与虚拟现实设备连接关系复杂、不便于携带等缺点,使得其难以广泛应用于虚拟现实设备。
发明内容
本申请提供了一种虚拟现实设备及语音辅助交互方法,以解决传统交互方式操作不灵活的问题。
一方面,本申请提供一种虚拟现实设备,包括:显示器、语音输入装置以及控制器。其中,所述显示器用于显示用户界面;所述语音输入装置用于检测语音交互信息;所述控制器被配置为执行以下程序步骤:
获取用户输入的语音交互信息;
响应于所述语音交互信息,获取当前场景的虚拟物体列表,所述虚拟物体列表包括虚拟物体名称以及虚拟物体的当前属性信息;
从所述语音交互信息中解析用户指令;
对当前场景中的虚拟物体执行所述用户指令,以及根据所述用户指令的执行结果更新所述属性信息。
另一方面,本申请还提供一种语音辅助交互方法,应用于上述虚拟现实设备所述语音辅助交互方法包括以下步骤:
获取用户输入的语音交互信息;
响应于所述语音交互信息,获取当前场景的虚拟物体列表,所述虚拟物体列表包括虚拟物体名称以及虚拟物体的当前属性信息;
从所述语音交互信息中解析用户指令;
对当前场景中的虚拟物体执行所述用户指令,以及根据所述用户指令的执行结果更新所述属性信息。
由以上技术方案可知,本申请提供的虚拟现实设备及语音辅助交互方法可以根据用户输入的语音交互信息,解析出用户指令,并获取当前场景的虚拟物体列表,从而在对虚拟物品执行用户指令后,根据用户指令的执行结果实时更新虚拟物体列表。其中,虚拟物体列表包括当前虚拟场景下的虚拟物品名称以及每个虚拟物品当前的属性信息。所述方法可以通过语音输入,对虚拟场景中的物体执行交互动作,并实时更新虚拟物体列表,实现在不借助外置设备的情况下,使用户可以对虚拟空间中的物体执行操作,提高虚拟现实设备的交互灵活性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中包括虚拟现实设备的显示系统结构示意图;
图2为本申请实施例中VR场景全局界面示意图;
图3为本申请实施例中全局界面的推荐内容区域示意图;
图4为本申请实施例中全局界面的应用快捷操作入口区域示意图;
图5为本申请实施例中全局界面的悬浮物示意图;
图6为本申请实施例中VR画面示意图;
图7为本申请实施例中虚拟场景示意图;
图8为本申请实施例中语音辅助交互方法的流程示意图;
图9为本申请实施例中虚拟现实设备与语音输入装置连接关系示意图;
图10为本申请实施例中打开木箱示意图;
图11为本申请实施例中生成用户指令的流程示意图;
图12为本申请实施例中语音交互过程示意图;
图13为本申请实施例中更新属性信息的流程示意图;
图14为本申请实施例中佩戴过程更新虚拟物体列表的流程示意图;
图15为本申请实施例中交互操作更新虚拟物体列表的流程示意图。
具体实施方式
为使本申请示例性实施例的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
应当理解,本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
本申请实施例中,所述虚拟现实设备500泛指能够佩戴于用户面部,为用户提供沉浸感体验的显示设备,包括但不限于VR眼镜、增强现实设备(Augmented Reality,AR)、VR游戏设备、移动计算设备以及其它可穿戴式计算机等。所述虚拟现实设备500可以独立运行,或者作为外接设备接入其他智能显示设备,其中,所述显示设备可以是智能电视、计算机、平板电脑、服务器等。
虚拟现实设备500可以在佩戴于用户面部后,显示媒资画面,为用户双眼提供近距离影像,以带来沉浸感体验。为了呈现媒资画面,虚拟现实设备500可以包括多个用于显示画面和面部佩戴的部件。以VR眼镜为例,虚拟现实设备500可以包括外壳、镜腿、光学系统、显示组件、姿态检测电路、接口电路等部件。实际应用中,光学系统、显示组件、姿态检测电路以及接口电路可以设置于外壳内,以用于呈现具体的显示画面;外壳两侧连接镜腿,以佩戴于用户面部。
在使用时,姿态检测电路中内置有重力加速度传感、陀螺仪等姿态检测元件,当用户头部移动或转动时,可以检测到用户的姿态,并将检测到的姿态数据传递给控制器等处理元件,使处理元件可以根据检测到的姿态数据调整显示组件中的具体画面内容。
需要说明的是,根据虚拟现实设备500的类型不同,其所呈现具体画面内容的方式也不同。例如,如图1所示,对于部分轻薄VR眼镜,其内置的控制器一般不直接参与显示内容的控制过程,而是将姿态数据发送给外接设备,如计算机中,由外接设备进行处理,并在外接设备中确定要显示的具体画面内容,再回传给VR眼镜中,以在VR眼镜中显示最终的画面。
在一些实施例中,所示虚拟现实设备500可以接入显示设备200,并与服务器400之间构建一个基于网络的显示系统,在虚拟现实设备500、显示设备200以及服务器400之间可以实时进行数据交互,例如显示设备200可以从服务器400获取媒资数据并进行播放,以及将具体的画面内容传输给虚拟现实设备500中进行显示。
其中,显示设备200可以是液晶显示器、OLED显示器、投影显示设备。具体显示设备类型,尺寸大小和分辨率等不作限定,本领技术人员可以理解的是,显示设备200可以根据需要做性能和配置上一些改变。显示设备200可以提供广播接收电视功能,还可以附加提供计算机支持功能的智能网络电视功能,包括但不限于,网络电视、智能电视、互联网协议电视(IPTV)等。
显示设备200以及虚拟现实设备500还与服务器400通过多种通信方式进行数据通信。可允许显示设备200和虚拟现实设备500通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。示例的,显示设备200通过发送和接收信息,以及电子节目指南(EPG)互动,接收软件程序更新,或访问远程储存的数字媒体库。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。通过服务器400提供视频点播和广告服务等其他网络服务内容。
在进行数据交互的过程中,用户可通过移动终端100A和遥控器100B操作显示设备200。移动终端100A和遥控器100B可以与显示设备200之间采用直接的无线连接方式进行通信,也可以采用非直接连接的方式进行通信。即在一些实施例中,移动终端100A和遥控器100B可以通过蓝牙、红外等直接连接方式与显示设备200进行通信。当发送控制指令时,移动终端100A和遥控器100B可以直接将控制指令数据通过蓝牙或红外发送到显示设备200。
在另一些实施例中,移动终端100A和遥控器100B还可以通过无线路由器与显示设备200接入同一个无线网络,以通过无线网络与显示设备200建立非直接连接通信。当发送控制指令时,移动终端100A和遥控器100B可以将控制指令数据先发送给无线路由器,再通过无线路由器将控制指令数据转发给显示设备200。
在一些实施例中,用户还可以使用移动终端100A和遥控器100B还可以直接与虚拟现实设备500进行交互,例如,可以将移动终端100A和遥控器100B作为虚拟现实场景中的手柄进行使用,以实现体感交互等功能。
在一些实施例中,虚拟现实设备500的显示组件包括显示屏幕以及与显示屏幕有关的驱动电路。为了呈现具体画面,以及带来立体效果,显示组件中可以包括两个显示屏幕,分别对应于用户的左眼和右眼。在呈现3D效果时,左右两个屏幕中显示的画面内容会稍有不同,可以分别显示3D片源在拍摄过程中的左相机和右相机。由于用户左右眼观察到的画面内容,因此在佩戴时,可以观察到立体感较强的显示画面。
虚拟现实设备500中的光学系统,是由多个透镜组成的光学模组。光学系统设置在用户的双眼与显示屏幕之间,可以通过透镜对光信号的折射以及透镜上偏振片的偏振效应,增加光程,使显示组件呈现的内容可以清晰的呈现在用户的视野范围内。同时,为了适应不同用户的视力情况,光学系统还支持调焦,即通过调焦组件调整多个透镜中的一个或多个的位置,改变多个透镜之间的相互距离,从而改变光程,调整画面清晰度。
虚拟现实设备500的接口电路可以用于传递交互数据,除上述传递姿态数据和显示内容数据外,在实际应用中,虚拟现实设备500还可以通过接口电路连接其他显示设备或外设,以通过和连接设备之间进行数据交互,实现更为复杂的功能。例如,虚拟现实设备500可以通过接口电路连接显示设备,从而将所显示的画面实时输出至显示设备进行显示。又例如,虚拟现实设备500还可以通过接口电路连接手柄,手柄可以由用户手持操作,从而在VR用户界面中执行相关操作。
其中,所述VR用户界面可以根据用户操作呈现为多种不同类型的UI布局。例如,用户界面可以包括全局界面,AR/VR终端启动后的全局UI如图2所示,所述全局UI可显示于AR/VR终端的显示屏幕中,也可显示于所述显示设备的显示器中。全局UI可以包括推荐内容区域1、业务分类扩展区域2、应用快捷操作入口区域3以及悬浮物区域4。
推荐内容区域1用于配置不同分类TAB栏目;在所述栏目中可以选择配置媒资、专题等;所述媒资可包括2D影视、教育课程、旅游、3D、360度全景、直播、4K影视、程序应用、游戏、旅游等具有媒资内容的业务,并且所述栏目可以选择不同的模板样式、可支持媒资和专题同时推荐编排,如图3所示。
业务分类扩展区域2支持配置不同分类的扩展分类。如果有新的业务类型时,支持配置独立TAB,展示对应的页面内容。业务分类扩展区域2中的扩展分类,也可以对其进行排序调整及下线业务操作。在一些实施例中,业务分类扩展区域2可包括的内容:影视、教育、旅游、应用、我的。在一些实施例中,业务分类扩展区域2被配置为可展示大业务类别TAB,且支持配置更多的分类,其图标支持配置,如图3所示。
应用快捷操作入口区域3可指定预装应用靠前显示以进行运营推荐,支持配置特殊图标样式替换默认图标,所述预装应用可指定为多个。在一些实施例中,应用快捷操作入口区域3还包括用于移动选项目标的左向移动控件、右向移动控件,用于选择不同的图标,如图4所示。
悬浮物区域4可以配置为在固定区域左斜侧上方、或右斜侧上方,可配置为可替换形象、或配置为跳转链接。例如,悬浮物接收到确认操作后跳转至某个应用、或显示指定的功能页,如图5所示。在一些实施例中,悬浮物也可不配置跳转链接,单纯的用于形象展示。
在一些实施例中,全局UI还包括位于顶端的状态栏,用于显示时间、网络连接状态、电量状态、及更多快捷操作入口。使用AR/VR终端的手柄,即手持控制器选中图标后,图标将显示包括左右展开的文字提示,选中的图标按照位置自身进行左右拉伸展开显示。
例如,选中搜索图标后,搜索图标将显示包含文字“搜索”及原图标,进一步点击图标或文字后,搜索图标将跳转至搜索页面;又例如,点击收藏图标跳转至收藏TAB、点击历史图标默认定位显示历史页面、点击搜索图标跳转至全局搜索页面、点击消息图标跳转至消息页面。
在一些实施例中,可以通过外设执行交互,例如AR/VR终端的手柄可对AR/VR终端的用户界面进行操作,包括返回按钮;主页键,且其长按可实现重置功能;音量加减按钮;触摸区域,所述触摸区域可实现焦点的点击、滑动、按住拖拽功能。
用户可以通过全局界面进入不同的场景界面,例如,如图6所示,用户可以在全局界面中的“浏览界面”入口进入浏览界面,或者通过在全局界面中选择任一媒资启动浏览界面。在浏览界面中,虚拟现实设备500可以通过Unity 3D引擎创建3D场景,并在3D场景中渲染具体的画面内容。
在浏览界面中,用户可以观看具体媒资内容,为了获得更好的观影体验,浏览界面中还可以设置不同的虚拟场景控件,以配合媒资内容呈现具体场景或实时交互。例如,在浏览界面中,可以在Unity 3D场景中设置面板,用来呈现图片内容,在配合其他家居虚拟控件,以实现影院银幕的效果。
虚拟现实设备500可以在浏览界面中展示操作UI内容。例如,在Unity 3D场景中的显示面板前方还可以显示有列表UI,在列表UI中可以显示当前虚拟现实设备500本地存储的媒资图标,或者显示可在虚拟现实设备500中进行播放的网络媒资图标。用户可以在列表UI中选择任一图标,则在显示面板中可以实时显示被选中的媒资。
在本申请的部分实施例中,虚拟场景是虚拟现实设备500在通过执行3D场景渲染算法所创建的虚拟空间。虚拟现实设备500可以在虚拟场景中添加各种虚拟物体,如虚拟相机、3D模型、媒资播放模块等。通过场景渲染,虚拟现实设备500可以在虚拟场景中呈现各种用户界面中所需要的画面内容。
例如,如图7所示,虚拟现实设备500可以通过unity 3D引擎渲染虚拟影院环境,在渲染的虚拟场景中,可以添加银幕等媒资播放模块、座椅、音响设备等虚拟3D模型。在观影过程中,银幕可以播放媒资画面,座椅和音响设备可以用于模拟影院场景,给用户以在电影院中观影的感受。
此外,在虚拟场景中,还可以设置有两个虚拟相机,两个虚拟相机可以对虚拟场景进行拍摄,以根据虚拟场景中的虚拟物体生成显示影像,并分别输出给虚拟现实设备500的两个显示器,以分别在虚拟现实设备500的两个显示器显示拍摄的影像,达到模拟影院的效果。其中,虚拟相机可以与虚拟现实设备500的位姿传感器建立连接关系,从而在用户佩戴虚拟现实设备500时,可以根据头部转向和位置,调整虚拟相机的拍摄角度,以便拍摄虚拟场景中虚拟物体的不同角度,模拟实际观影效果。
需要说明的是,虚拟场景可以为虚拟现实设备500提供在运行某一应用时所呈现的具体应用界面,例如上述虚拟影院界面,也可以为虚拟现实设备500的操作系统提供操作界面,例如上述全局UI界面。不同的用户界面需要构建不同的虚拟场景,并在虚拟场景中添加不同的虚拟物品。
在部分虚拟场景中,虚拟物体还可以被执行操作动作。例如,对于上述全局UI界面构建的虚拟场景,用户可以通过交互操作调整全局UI界面中推荐内容区域1、业务分类扩展区域2、应用快捷操作入口区域3以及悬浮物区域4位置和大小。
为了实现对虚拟物体执行操作动作,虚拟现实设备500可以提供交互入口,以使用户输入交互动作。用户输入的交互动作可以按照操作系统中设置的交互规则对应不同的操作动作。例如,用户通过3D鼠标控制焦点光标进行移动,并在移动至悬浮物区域时长按鼠标左键,并移动鼠标位置,从而将悬浮物区域拖拽至目标位置。显然,根据虚拟现实设备500所支持的交互方式的不同,用户输入交互动作的方式也不同,相应的操作动作内容也不同。
但是,由于虚拟现实设备500在使用中需要佩戴在用户的面部,不便于用户执行相互动作。并且,对于常用的交互动作,通常需要满足按键和移动位置的动作检测。因此虚拟现实设备500本身无法满足交互动作要求,需要外接手柄、键盘、三维鼠标、力反馈手套、深度相机等设备,才能够实现交互动作。
对于外接的设备,不仅增加了使用成本,而且由于外接的设备类型不同,虚拟现实设备500所支持的交互动作也不同,因此虚拟现实设备500本身的操作系统不能够配置涵盖外接的所有设备,需要对虚拟现实设备500进行额外功能配置。
并且,由于虚拟场景是一个三维空间,虚拟物体之间不仅具有界面上的平面位置关系,而且还有空间上的前后位置关系。例如,当用户在使用VR设备时,需要用手柄控制选择视野中的虚拟物品,而由于在三维空间中,选择要控制的虚拟物品相对困难,并且在虚拟物品模型重复的时候,需要更换位置或者视角去执行选中操作,这样的交互方式容易失准,为用户带来极大的不便。
而三维空间跟二位空间相比,多了一个远近的维度,这将导致距离虚拟相机位置近的虚拟物品模型和离得远的虚拟物品模型的选中操作就会不同。由于在视野范围内离得近的模型大,远的模型小,光标难以触控到,或者选择到以后光标抖动的问题,也会引起用户使用不适。
为了便于用户执行交互操作,在本申请的部分实施例中,提供一种虚拟现实设备500,该虚拟现实设备500可以内置或外接语音输入装置,用于接收用户输入的语音信号,并转化为语音交互信息。语音交互信息可用于对虚拟场景中的虚拟物体执行操作动作,以实现语音交互,如图8所示,具体的交互方式如下:
S1:获取用户输入的语音交互信息。
在执行语音交互的过程中,用户可以通过语音输入装置输入各种语音,语音输入装置可以将语音对应的声音信号转化为计算机可进行处理的电信号,并发送给控制器执行后续处理。
语音输入装置可以是内置虚拟现实设备500的麦克风设备。例如,可以在虚拟现实设备500内直接设置麦克风,麦克风可以实时检测用户在佩戴过程中发出的声音,生成包含声波内容信息的电信号。语音输入装置还可以是外接虚拟现实设备500的麦克风设备,可以在虚拟现实设备500上设置外接设备接口,如3.5mm耳机/麦克风接口等,在使用过程中,用户可以在接口插入麦克风,并通过麦克风实时检测声音信号,并将检测的声音信号转化为电信号发送给虚拟现实设备500。
语音输入装置还可以通过与虚拟现实设备500连接同一个设备,实现语音输入装置外接虚拟现实设备500。例如,如图9所示,可以将虚拟现实设备500连接至显示设备200,同时将麦克风也连接在显示设备200上,从而通过麦克风检测语音交互信息,并发送至显示设备200,由显示设备200执行后续处理或者由显示设备200转发给虚拟现实设备500。
S2:响应于所述语音交互信息,获取当前场景的虚拟物体列表。
在获取用户输入的语音交互信息后,控制器可以获取当前虚拟场景的虚拟物品列表,所述虚拟物体列表包括虚拟物体名称以及虚拟物体的当前属性信息。其中,虚拟物体名称可以根据虚拟场景的应用范围统一定义的名词词组,例如,“开关”、“链接”等。属性信息是指在当前使用情况下,虚拟物体的状态。例如,属性信息可以包括“是否可见(isVisible)”、“是否可被操作(isOperable)”等。显然,当虚拟场景需要高精度控制时,可以增加更多的属性信息项目,例如将“可操作”属性进行细化,细化为“是否可旋转”、“是否可向左、右、上、下、前、后移动”、“是否可放大/缩小”等属性信息。
虚拟物体列表可以在构建虚拟场景时自动建立,即在一些实施例中,虚拟现实设备500可以接收用户输入的用于进入虚拟场景的控制指令,并响应于控制指令,遍历当前虚拟场景下所有虚拟物体的虚拟物体名称和当前属性信息,从而根据虚拟物体名称和当前属性信息生成虚拟物体列表。例如,用户佩戴VR设备进入虚拟场景时,VR设备可以遍历当前虚拟场景中所包含的所有虚拟物体,并获取虚拟物体对应的属性信息,以建立虚拟物体列表。
虚拟物体列表还可以根据用户在佩戴过程实时更新其中的属性信息。例如,随着用户的位置移动,部分距离虚拟相机距离较远的虚拟物品会被距离虚拟相机较近的虚拟物体遮挡,因此距离较远的虚拟物体的“是否可见”属性信息将从“可见”(isVisible=true)更新为“不可见”,即isVisible=false。
S3:从所述语音交互信息中解析用户指令。
在获取虚拟物体列表的同时,虚拟现实设备500还可以从语音交互信息中解析用户指令。虚拟现实设备500在接收到语音输入时,可以对输入的语音进行语音识别,并在识别成功后得到语音识别结果,从而解析出用户指令。通常,用户指令可以分为两个部分,即操作动作(Action)和操作对象名称(Title)。其中,操作动作代表用户想要进行的具体交互行为,操作对应名称即指定的交互目标物的名称。例如,如图10所示,当用户输入语音内容为“打开木箱”,则相应的操作对象名称为“木箱”,操作动作为“打开”。
显然,为了能够准确的执行相应用户指令,在对语音交互信息进行解析的过程中,还可以对语音交互信息进行进一步处理。处理过程可以为对语音交互信息进行筛选,确定可以应用于当前虚拟场景的语音信息。例如,在解析出操作对象名称后,可以使用操作对象名称,在虚拟物体列表中进行匹配,以筛选出虚拟物品列表中不存在的操作对象名称。
对于一些操作界面所构建的虚拟场景,有时针对某一虚拟物品所执行的操作可以进行app跳转,对于这种界面,可直接用界面词技术确定操作对象名称和操作动作。例如,在媒资选择界面下,用户输入语音内容为“播放《我不是药神》”时,由于“我不是药神”是一个电影名称,其在虚拟物体列表中可能不采用此名称,而采用“链接1”的名称。此时,可以通过界面词技术确定操作对象名称为“链接1”,操作动作为“播放”。
S4:对当前场景中的虚拟物体执行所述用户指令,以及根据所述用户指令的执行结果更新所述属性信息。
在解析出用户指令后,虚拟现实设备500可以对当前场景中的虚拟物体执行用户指令,即针对操作对象执行操作动作。例如,如图10所示,在用户输入“打开木箱”的语音指令时,虚拟现实设备500可以对名称为“木箱”的虚拟物体,执行点击动作,使虚拟物体变形为“开启”的形状。
对于部分应用场景,在对虚拟物体执行用户指令的过程中,还可以根据用户指令的执行结果更新虚拟物体列表中的属性信息。例如,用户输入“锁定悬浮物位置”的语音指令时,虚拟现实设备500一方面对“悬浮物”的虚拟物体位置进行锁定,另一方面,更新虚拟物体列表中“悬浮物”的属性信息。即修改属性信息为“isOperable=false”。
由以上技术方案可知,上述实施例通过在虚拟现实设备500中增加语音输入装置,使虚拟现实设备500可以在使用中检测用户的语音交互信息,并根据语音交互信息对虚拟物体执行交互动作。同时,根据交互动作的执行结果实时更新虚拟物体列表中的属性信息,以便继续执行语音交互。通过语音交互,可以实现在不借助复杂的外置设备的情况下,使用户可以对虚拟空间中的物体执行操作,提高虚拟现实设备的交互灵活性。
在一些实施例中,如图11所示,为了能够从语音交互信息中解析用户指令,在获取语音交互信息后,虚拟现实设备500还可以执行以下步骤:
S301:将所述语音交互信息转化为文字信息;
S302:将所述文字信息输入语义识别模型;
S303:获取所述语义模型根据所述文字信息的输出结果,以生成所述用户指令。
本实施例中,可以在虚拟现实设备500内置语音转文字应用。在获取语音交互信息后,可以通过语音转文字应用将语音交互信息转化为文字形式。显然,经过语音转文字应用处理获得的文字信息内容与语音输入的内容相同。即用户在此时获得的文字信息为偏向口语化的文字信息。例如,当用户输入语音“打开木箱”,则获得的文字信息为“打开木箱”,而当用户输入偏口语化的语音信息“我想看看木箱里是什么”,则获得的文字信息也为“我想看看木箱里是什么”。
可见,对于不同形式的语音信息其中解析出的用户指令也可能相同,因此为了准确解析用户指令。在转化为文字信息后,虚拟现实设备500还可以将转化获得的文字信息输入语义识别模型,以通过语义识别模型将文字信息输出为包含操作对象名称和执行动作的特定指令形式。
其中,所述语义识别模型为通过训练文本训练获得的机器学习模型,可以是能够输出分类概率的神经网络模型,也可以是基于神经网络模型和相关处理程序的处理模型。对于虚拟现实设备500,由于其在不同应用环境时所进行的交互方式不同,因此可以针对应用环境设置训练文本,并将训练文本输入神经网络模型中,以进行模型训练。训练文本可以带有分类标签,以便在模型输出结果时,根据分类标签反向传播,以调整模型参数。经过一定数量的训练样本后,获得语义识别模型。
将文字信息输入语义识别模型后,语义识别模型会根据文字信息输出语音交互信息对应关键词的分类概率,从而获得语音交互信息中的语义。例如,对于文字信息“我想看看木箱里是什么”,可以在输入语义识别模型后对该文字信息进行分词、分类概率计算、转化等处理,从而输出该文字信息的语义识别结果“打开木箱”。
在获得语义识别结果后,还可以根据语义识别结果生成用户指令。其中,所述输出结果为包括操作对象名称和操作动作的结构化文本,相应的用户指令可以为由操作对象名称和操作动作构成的控制指令。例如,“打开木箱”对应的用户指令为“/openbox”。这个用户指令可以被虚拟现实设备500的系统运行,从而完成打开木箱的交互动作。
由以上技术方案可知,本实施例可以通过语义识别模型对用户输入的语音交互信息进行处理,从而在用户输入口语化的语音内容时能够将语音内容转化为特定形式的用户指令,以使虚拟现实设备500能够针对更多的语音内容实施交互动作,提高语音交互过程的灵活性。
在从语音交互信息中解析出用户指令后,虚拟现实设备500可以按照用户指令执行交互动作。由于在实际应用,虚拟现实设备500可以在多种场景下使用语音交互,而不同的应用场景下,虚拟现实设备500所能够支持的语音交互方式不同。使得一些语音交互信息可以在当前应用场景中使用,而在另一种场景中无法使用。因此为了能够使用户输入能够使用的语音信息,在一些实施例中,如图12所示,在对当前场景中的虚拟物体执行所述用户指令的步骤还包括:
S411:在所述虚拟物体列表中匹配所述用户指令中的操作对象名称;
S412:如果所述虚拟物体列表中含有与所述操作对象名称相同的虚拟物体名称,对当前虚拟物体执行所述用户指令中的操作动作;
S413:如果所述虚拟物体列表中不含有与所述操作对象名称相同的虚拟物体名称,将所述语音交互信息输入语义识别模型,以执行语义解析。
不同的应用场景所构建的虚拟场景不同,虚拟场景中所包含的虚拟物体也不相同。例如,在全局UI界面对应的虚拟场景中可以包括推荐内容区域、业务分类扩展区域、应用快捷操作入口区域以及悬浮物区域等显示控件的虚拟物体;而在虚拟影院应用对应的虚拟场景中则包括显示控件(银幕)、3D模型(座椅、音响)等虚拟物体。显然,在全局UI界面下,可输入的语音交互信息不能完全适应虚拟影院应用环境。
为此,在本实施例中,可以在不同的应用场景下获取不同的虚拟物体列表,获取的虚拟物体列表中可以包括当前虚拟场景中的全部虚拟物体。在获取用户输入的语音交互信息并解析出用户指令后,可以先在虚拟物体列表中匹配用户指令中指定的操作对象名称,以确定当前虚拟物体列表中是否包含要控制的虚拟物体名称。
例如,用户在全局UI界面场景下,虚拟现实设备500的控制器可以全局UI界面的虚拟物体列表。在用户输入“移动悬浮物”的语音交互信息后,虚拟现实设备500会从该语音信息中解析出用户指令,并获得操作对应名称为“悬浮物”。此时,虚拟现实设备500可以在全局UI界面的虚拟物体列表中匹配是否含有虚拟物体名称为“悬浮物”的表项。如果虚拟物体列表中含有与操作对象名称相同的虚拟物体名称,对当前虚拟物体执行用户指令中的操作动作,即对“悬浮物”对应的虚拟物体执行“移动”操作动作。
如果虚拟物体列表中不含有与操作对象名称相同的虚拟物体名称,则可以通过提示界面提醒用户当前场景没有该操作对象。例如,在全局UI界面场景下,用户输入“打开箱子”的语音交互信息后,由于当前场景的虚拟物体列表中并没有名称为“箱子”的虚拟物体,因此可以显示提示界面,提示界面中可以包括诸如“当前场景没有箱子,请重新输入”的提示文字。
在匹配过程中,如果虚拟物体列表中不含有与操作对象名称相同的虚拟物体名称,还有可能是由于用户输入的语音交互信息过于口语化,而导致虚拟现实设备500识别出的操作对象名称与虚拟物体列表中的虚拟物品名称不同。因此,为了提高语音识别的准确率,在确定虚拟物体列表中不含有与操作对象名称相同的虚拟物体名称时,还可以将语音交互信息输入语义识别模型,以执行语义解析。语义解析的过程可以与上述实施例中的处理过程相同,此处不再赘述。
如果所述虚拟物体列表中含有与所述操作对象名称相同的虚拟物体名称,则可以对该虚拟物体执行交互操作。在一些实施例中,如图12所示,在执行交互操作前虚拟现实设备500还可以执行以下程序步骤:
S421:在所述虚拟物体列表中提取当前虚拟物体的状态属性;
S422:如果所述状态属性为可见状态,对当前虚拟物体执行所述操作动作;
S423:如果所述状态属性为不可见状态,控制所述显示器显示用于提示当前虚拟物体不在可视范围内的提示界面。
在对虚拟物体执行交互动作前,还可以在虚拟物体列表中先提取当前虚拟物体的状态属性,从而根据状态属性执行操作动作。其中,虚拟物体的状态属性是用于指示虚拟物体的可见状态的属性,根据当前虚拟现实设备500的视野范围和虚拟物体在虚拟场景中的位置,虚拟物体的状态属性可以包括可见状态和不可见状态。
虚拟场景为一个三维场景,虚拟现实设备500所呈现的画面是虚拟相机在虚拟场景视野覆盖范围内的虚拟物体影像,即在视野范围内的虚拟物体是可见的,而在视野范围以外的虚拟物体是不可见的。并且,在同一视野范围内,距离虚拟相机较远的虚拟物体可能被距离虚拟相机较近的虚拟物体遮挡,即被遮挡的虚拟物体也处于不可见状态。
显然,由于在虚拟物体处于可见状态下时才便于用户执行准确的交互操作,因此如果状态属性为可见状态,对当前虚拟物体执行操作动作。例如,在用户输入语音交互信息“打开箱子”时,虚拟现实设备500可以先获取当前虚拟物体列表中的状态属性,如果状态属性isvisible=true,则确定当前虚拟现实设备500的视野范围内存在虚拟物体“箱子”,因此可以对该虚拟物体执行“打开”操作。
在提取当前虚拟物体的状态属性后,如果状态属性为不可见状态,则可以在虚拟现实设备500的显示器中显示提示界面,以提示用户当前操作的对象不在视野范围内,无法对该虚拟物体执行交互操作。显然,提示页面中可以包括用于提示当前虚拟物体不在可视范围内的文字或图案内容。例如,在用户输入语音交互信息“打开箱子”时,虚拟现实设备500可以先获取当前虚拟物体列表中的状态属性,如果状态属性isvisible=false,则确定当前虚拟现实设备500的视野范围内不存在虚拟物体“箱子”,因此可以显示提示内容,如“该物体不在可视范围内,请调整角度再试试。”
在部分情况下,为了便于操作,根据界面类型的不同,虚拟场景中的部分虚拟物体可能被锁定,例如,在全局UI界面中,应用快捷操作入口区域可固定在界面中的特定位置,无法被用户移动或缩放。对此,当用户输入用于移动或缩放该区域的控制指令时,响应的交互动作无法被执行。这一功能的实现可以在提取虚拟物体的状态属性为可见状态时,还可以对当前虚拟物体是否可以被操作进行检测,以使用户能够输入正确的控制指令。
即在一些实施例中,如图12所示,如果所述状态属性为可见状态,虚拟现实设备500还可以执行以下程序步骤:
S431:在所述虚拟物体列表中提取当前虚拟物体的操作属性;
S432:如果所述操作属性支持所述操作动作,对当前虚拟物体执行所述操作动作;
S433:如果所述操作属性不支持所述操作动作,控制所述显示器显示用于提示当前虚拟物体不可被操控的提示界面。
在本实施例中,在确定当前操作对象在的状态属性为可见状态后,可以再从虚拟物体列表中提取当前虚拟物体的操作属性,以根据操作属性确定当前虚拟物体是否支持执行语音交互信息中指定的交互动作。
其中,虚拟物体的操作属性可用于反映当前虚拟物体是否可以被执行操作动作,包括支持操作动作和不支持操作动作。由于操作动作可以根据用户输入呈现为多种形式,因此可以根据每种操作形式设置相应的多种操作属性。例如,操作动作为移动时,操作属性可以包括支持移动和不支持移动;操作动作为旋转时,操作属性可以包括支持旋转和不支持旋转。实际应用中,虚拟现实设备500可以根据用户界面类型的不同,设置不同的操作属性。
在提取操作属性后,虚拟现实设备500可以对当前状态下虚拟物体的操作属性是否支持该操作动作进行判断,如果操作属性支持操作动作,对当前虚拟物体执行该操作动作。例如,在用户输入语音内容为“打开木箱”时,如果通过虚拟物体列表可以确定名称为“木箱”的虚拟物体操作属性isOpreable=true,因此当前虚拟物体支持“打开”操作,则对当前虚拟物体“木箱”执行“打开”操作。
同理,在对当前虚拟物体的操作属性是否支持该操作动作进行判断结果为操作属性不支持该操作动作,则可以通过显示提示界面提示用户输入正确的语音交互信息。例如,用户在全局UI界面下输入语音“旋转应用快捷操作入口”,由于应用快捷操作入口对应的虚拟物体被锁定,不支持旋转操作,因此在虚拟物体列表中提取的操作属性为isOpreable=false,此时可以通过显示器显示提示界面。其中提示界面中可以显示文字“该物体目前不能操控,请输入其他指令”。
需要说明的是,对于不支持当前操作动作的虚拟物体,用户还可以根据需要输入用于接触锁定状态的语音交互信息,以使当前虚拟物体能够支持当前操作动作。例如,在用户输入“移动木箱”,而当前“木箱”被锁定不支持移动操作时,可以显示提示界面并呈现提示内容“木箱被锁定,无法移动,请先接触锁定或输入其他指令”,此时,用户可以再输入“解除木箱锁定状态”的语音交互信息,从而将木箱的操作属性修改为“isMovable=true”。
由以上技术方案可知,在上述实施例中,虚拟现实设备500在执行交互动作前可以首先进行名称匹配,若名称匹配成功,则匹配状态属性和操作属性,即从虚拟物体列表中读取当前属性信息isVisible和isOpreable是否为true,同时满足条件,则执行用户的操作。若只有名称匹配成功,但是状态属性isVisible=false,则可根据情形提示用户当前物体不可见;若名称匹配成功,并且可见isVisible=true,但是操作属性isOpreable=false,则提示用户当前物体不可操控;若名称匹配不成功,直接执行语义解析。通过上述对属性信息的判断,可以确保用户能够输入更正确的语音交互信息,提高交互过程的操作便利性和灵活性。
在一些实施例中,为了后续执行交互操作,虚拟现实设备500可以对虚拟物体列表实时进行更新,即如图13所示,对当前虚拟物体执行所述操作动作的步骤后,虚拟现实设备500还可以执行以下步骤:
S441:提取当前虚拟物体的所述操作动作执行结果;
S442:获取虚拟现实设备的当前位姿信息;
S443:根据所述位姿信息计算所述虚拟现实设备在当前虚拟场景中的可视范围;
S444:检测所述当前虚拟物体是否在所述可视范围内,以更新当前虚拟物体的状态属性。
本实施例中,由于虚拟物体的属性信息可以包括状态属性和操作属性,因此每次在对虚拟物体执行交互操作后,可以根据操作动作的执行结果,更新虚拟物体列表中的状态属性和操作属性。其中,操作属性可以根据操作动作确定执行后的属性内容。例如,对任一虚拟物体执行“解除锁定”操作后,其操作属性由isOpreable=false变更为isOpreable=true。因此,虚拟现实设备500可以根据操作动作的执行结果直接修改虚拟物体列表中的属性信息。
而对于状态属性,由于虚拟物体在被执行操作动作后,其是否可见有可能发送改变,因此在提取当前虚拟物体的所述操作动作执行结果后,可以通过执行结果可以获取当前虚拟物体在虚拟场景中的位置,同时获取虚拟现实设备500当前位姿信息,以确定当前状态下,虚拟相机在虚拟场景中的视野范围。
位姿信息可以通过虚拟现实设备500中内置的重力加速度传感器、陀螺仪等位姿检测部件获取。显然,不同的位姿信息可以确定虚拟相机在当前虚拟场景中具有不同的可视范围。而位于可视范围内的虚拟物体状态属性isVisible=true,因此虚拟现实设备500可以通过检测当前虚拟物体是否在所述可视范围内,以更新当前虚拟物体的状态属性。
例如,当用户输入“移动木箱”的语音交互信息后,虚拟现实设备500可以对语音木箱执行移动操作,以改变其在虚拟场景中的位置。如果经过移动操作后,木箱从可视范围内移动至可视范围以外,则在虚拟物体列表中,将木箱的状态属性isVisible=true修改为isVisible=false,以完成对虚拟物体列表的更新。
在一些实施例中,虚拟物体列表可以在实际应用中,不仅可以根据用户输入的语音交互信息更新属性信息,而且可以根据用户的佩戴状态和操作动作实时更新属性信息。即虚拟现实设备500可以实时检测用户的使用状态,并根据使用状态更新列表中的状态属性和操作属性。
对于状态属性,如图14所示,虚拟现实设备500可以通过实时检测位姿信息,监测用户佩戴时的动作。如果位姿信息发生改变,则可以获取改变后位姿信息下虚拟现实设备在虚拟场景中的可视范围;并遍历处于可视范围内的虚拟物体,以更新处于可视范围内的虚拟物体的状态属性。
例如,当用户佩戴VR设备时候,等效于在虚拟空间内设置与位姿检测部件关联的虚拟相机(Camera),用户转头、走动的时候,虚拟相机可跟随转动或移动,而整个三维虚拟空间是不变化的。因此,如果随着用户动作,使虚拟物体处在虚拟相机的可视范围内,并且不被遮挡,则这个虚拟物体在虚拟物体列表中的状态属性为isVisible=true;如果随着用户动作这个虚拟物体不在虚拟相机的可视范围内,或者被遮挡,则这个物体在虚拟物体列表中的状态属性变更为isVisible=false。
而对于操作属性,如图15所示,虚拟现实设备500可以通过获取用户输入的交互操作指令,并响应于交互操作指令,对虚拟物体执行交互操作指令中的操作动作;如果操作动作修改虚拟物体的操作属性,更新虚拟物体的操作属性。
例如,虚拟现实设备500要在虚拟物体每次执行操作完成后,重新赋予虚拟物体是否可被操控属性。如果该物体的移动或者执行动作不被限制,如物体有没有可操作属性,或者物体的操控性是否被限制住等,如果物体满足可被操控属性,则其操作属性isOperable=true;如果物体不满足可被操控属性,则其操作属性为isOperable=false。
需要说明的是,在本实施例中,用户输入的交互操作指令可以为语音交互指令以外的其他方式输入的交互操作指令,如用户通过手柄、键盘、3D鼠标等外接设备输入的交互操作指令。这种交互指令也可以对虚拟场景中的虚拟物体执行操作动作,从而更改虚拟物体的属性信息。显然,用户输入的交互操作指令还可以改变虚拟物体的状态属性,因此可以在执行操作动作后再对虚拟物体的状态属性进行检测,而虚拟物体的isVisible属性所涉及到的数学运算,可以由虚拟相机拍摄方向发出射线检测,由于在Unity开发中已给封好OnBecameVisible和OnBecameInvisible接口,因此可以通过该接口直接获取状态属性。
此外,在VR设备使用中,每一个场景(Sence),都唯一对应一组虚拟物体列表,虚拟物体列表中可以包括虚拟场景空间内所有虚拟物体的名称词组,词组中每个词都会有多个属性参数,如isVisible、isOpreable等。在部分实施例中,虚拟物体列表中还可以设有一个执行参数,执行参数可以根据虚拟物体的类型执行不同的动作,以获得执行结果。
例如,如果虚拟物体的类型为开关、跳转按钮等功能,则该虚拟物体可以对应一个链接;如果虚拟物体的类型是展示功能控件,则对应的遥控属性。上述对应关系具有唯一性,虚拟现实设备500可以将所有的物体名称关系模块化后,生成虚拟物体列表。从而每次在用户输入语音交互信息的时候都去匹配,并执行相应的交互动作。
还可以对于一些常用的交互指令,比如:前进一步、退后一步、向左转90°、退出、切换等进行额外设定,以便快速执行此类交互动作。例如,针对于用户视角的操作或者是设备默认操作,虚拟现实设备500可以采用设置固定指令的方式,将预设的指令词条加入列表中,对应相应的指令。从而回避匹配成功后的语音解析和对交互物体聚焦及操作响应等流程,提高响应速度和执行效率。
基于上述虚拟现实设备500,在本申请的部分实施例中还提供一种语音辅助交互方法,该语音辅助交互方法可配置在虚拟现实设备500的控制器中,以使虚拟现实设备500可以通过语音交互,如图8所示,语音辅助交互方法包括以下步骤:
S1:获取用户输入的语音交互信息;
S2:响应于所述语音交互信息,获取当前场景的虚拟物体列表,所述虚拟物体列表包括虚拟物体名称以及虚拟物体的当前属性信息;
S3:从所述语音交互信息中解析用户指令;
S4:对当前场景中的虚拟物体执行所述用户指令,以及根据所述用户指令的执行结果更新所述属性信息。
由以上技术方案可知,本实施例中提供的语音辅助交互方法可以根据用户输入的语音交互信息,解析出用户指令,并获取当前场景的虚拟物体列表,从而在对虚拟物品执行用户指令后,根据用户指令的执行结果实时更新虚拟物体列表。其中,虚拟物体列表包括当前虚拟场景下的虚拟物品名称以及每个虚拟物品当前的属性信息。所述方法可以通过语音输入,对虚拟场景中的物体执行交互动作,并实时更新虚拟物体列表,实现在不借助外置设备的情况下,使用户可以对虚拟空间中的物体执行操作,提高虚拟现实设备的交互灵活性。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
- 一种虚拟现实设备及语音辅助交互方法
- 一种虚拟现实场景下的注视点语音交互装置及方法