(个人)VR太极拳学习系统-创新实训第一周(1)

项目简述

我们预计开发一个基于虚幻4引擎的帮助用户学习太极拳的实时系统,该系统会使用到当前比较热门的人机交互技术来实现功能,例如虚拟现实、动作捕捉、语音控制等。我们预计当该系统开发完毕后,它应该能够为用户的学习情况评分,直观地显示用户的错误,并能够让用户对自己掌握不足地部分有针对性地进行强化训练。

个人分工

我在此次项目中主要负责的部分是用户与系统的交互与管理git仓库。

具体情况

我们的系统使用 HTC vive 虚拟现实套件,在虚拟场景中,该套件使用左右手各一个手柄来操纵虚拟角色和与系统交互,但是在我们要实现的太极拳学习系统中,用户在学习过程中显然不可能将手柄时刻握在手中,也就无法使用手柄来控制系统,因此我们需要寻求另外的解决方案。
此时自然会想到,可以使用我们的动捕设备来与系统交互,但是我们目前拥有的动捕设备并没有追踪到用户手指的动作,所以没有办法直接使用手指与虚拟菜单交互。因此我们能够利用动捕设备来交互的方式只有像kinect那样,通过用户身体姿势或者是在场景中放置实体按钮等,更具体的方案还没有想到,但是后期可能会追加 Leap Motion 用来捕捉用户的手部动作,这样就可以实现较灵活的交互方案,所以这一部分预计放到语音控制实现后再做讨论。
最后一种交互手段就是语音控制,这种方案在我们的系统中是比较合适的,但是其缺点也很明显,就是语音识别的准确度可能不高,且控制也不够灵活,我认为实际上只能作为一种辅助手段来使用。
我认为最终还是会将语音与手势结合起来实现交互系统。

目前进展

目前我的计划是先将语音识别模块整合进ue4,这样就有三个步骤:
1. 在ue4中利用麦克风获取用户语音输入
2. 将麦克风输入处理为语音识别api可以使用的格式
3. 调用api识别并获取结果

从这几天查阅的资料看,ue4中获取麦克风输入大概有三种方式:
1. 在ue4.19之前的版本中,使用OnlineSubsystem模块中提供的IVoiceCapture接口。这种方式实际上应该是利用了网络模块的功能,所以需要先创建subsystem session才能够正常工作。我对unreal c++的使用并不熟悉,所以还需要按照论坛中的讨论来摸索具体如何实现。据虚幻论坛这种方式取得的数据是 16 bit PCM at 16khz, single channel。
2. 在ue4.19中官方更新了Audio Capture Plugin,据论坛中的讨论,其中提供了麦克风相关的组件可以获取输入,该方式获得的数据应该也是PCM,大概率与第一种方式的相同,但是ue4.19才刚刚放出,网络上相关的讨论很少,因此需要自己尝试,我目前没有找到相关的文档。
3. 在ue4中通过 windows api 访问麦克风。有一篇博客使用了这种方式,但是这样做是否没有隐藏的问题还不明确。

下一步计划

我将依次尝试上面说到的三种方式,先从官方提供的api开始,尝试获取麦克风的数据。

猜你喜欢

转载自blog.csdn.net/dying_isaac/article/details/79843597