Justin Link 于 2015 年 7 月 8 日提交。
在我的上一篇文章中,英特尔® 实感™ 技术自然用户接口用户反馈(第 1 部分),我论述了用户与计算机自然互动的期望,以及创建自然用户界面 (NUI) 用户反馈的重要性和涉及的挑战。 我还根据我们基于英特尔® 实感™ 技术创作游戏 Space Between* 和 The Risen* 时的经验,讨论了用户用手控制时的反馈。 在这片文章中,我将论述英特尔实感技术提供的其它输入方式:头部和声音。
2015 年英特尔信息技术峰会的参与者正在玩 The Risen。
在应用程序中用手进行交互(一旦您突破识别硬件和软件的技术限制)将是一种自然、直观的体验。 我们每天几乎都用双手做每一件事。 它们是我们在现实世界的操纵器,因此用它们来操纵虚拟世界合情合理。 然而,用您的头部和脸执行操纵或控制则是一项比较抽象的任务。 相对而言,使用语音控制应用程序很直观,但却带来了其它挑战,主要是围绕技术状态和自身期望的挑战。 在这两种情况下,为了应对这些挑战,在为用户设计应用程序时需要采用特殊设计并关注用户反馈。
关于用户反馈(以及为什么重要)的简单说明
鉴于您可能并没有阅读此系列文章的第一篇,我在此简单说明什么是应用程序的用户反馈。 简而言之,应用程序中的用户反馈就是应用程序给出的各种形式的通知,告诉用户软件已经识别了他们的输入或已经变更状态。 例如,如果在应用程序中使用按钮,当鼠标悬停、点击或用户执行点击时,通常会有一个视觉变化。 这些视觉变化非常重要,因为它们告诉用户这是一个可以交互的元素,以及什么样的输入可以影响该元素。 这种用户反馈甚至可以延伸到软件之外,到达我们用于接入软件的硬件。 但点击鼠标时,鼠标会给与按下按钮的用户声音和触觉响应,与软件里的按钮原理相同。 所有这些都源于我们与身边的人和环境互动的自然方式。
用户反馈对于 NUI 非常重要,原因包括: (1) 大多数 NUI 无触感,因此任何触觉反馈都不可能,(2) NUI 没有像其它软件输入形式那样的用户反馈标准,(3) 当使用 NUI 时,用户希望行为自然。 在任何输入形式中缺少触觉反馈都意味着软件必须在视觉或听觉上弥补这个缺失。 如果您在设计中不考虑这个问题,软件就会非常不直观,会让新用户有更多挫败感。
没有任何适用于这种反馈的通用标准意味着不但您要确定什么方式效果最好,而且您的用户不熟悉他们获得的反馈类型,必须学习,从而增加了应用程序的学习曲线。 满足用户的期望值是最终的挑战,因为该媒介直接(或试图)源于人类语言。 遗憾的是,目前的技术状态还不够成熟,无法复制自然的对话,因此你会发现,如果用户以对待他人的方式对待软件,就会发现在软件中不那么有效。
英特尔® 实感™ SDK 的头部跟踪功能
图 1. 英特尔实感 SDK 的头部跟踪功能显示用户头部的朝向
从应用程序内部获悉用户头部的位置,这个优势并没有那么显而易见。 与手部跟踪不同,您可能不会想开发基于位置跟踪的复杂控制机制,否则您可能冒险给用户一个责怪自己的理由。 然而,轻度使用头部位置跟踪可以在您的应用程序中成为一个独特的层,甚至可以用于让用户深入你的虚拟世界。英特尔实感 SDK在头部跟踪方面有几个需要考虑的限制,尤其是在为您的应用程序设计用户反馈时。
头部跟踪的限制
跟踪体积
图 2. 英特尔实感 SDK 的跟踪体积是有限的,可能对应用程序构成限制。
正如我在第一部分中所述,要明白英特尔实感 SDK 的跟踪活动发生在摄像头视野范围内,这一点对于了解如何使用设备非常关键。这是用户与任何英特尔实感应用程序交互时的首要问题,适用于除语音之外的所有英特尔实感应用程序输入方式。 这个限制在使用头部跟踪模块时没那么明显,因为用户通常坐着,但这仍然是一个问题,尤其是如果您的应用程序使用户向左或向右倾斜。
跟踪功能基于面部检测
大多数时间,用户将面向摄像头,因此软件通过检测面部来跟踪头部的需求不会构成大问题。 首次检测和后续检测中跟踪中断时,将需要进行面部检测。 当摄像头位于用户头部上方或下方时(导致与摄像头视野成锐角),软件检测用户的脸部将十分困难。 解决方案与手部识别类似,就是让摄像头看到它寻找的对象,本例中是人脸。 检测人脸的需求对于头部跟踪还有其它影响,例如无法跟踪头部后方(如果用户转身)。
将头部作为光标
图 3.Space Between 的 Twilight Zone 关卡使用闪烁光标跟踪用户头部。
在 Space Between 中,我们使用头部光标表示玩家头部在屏幕上的二维位置。 尽管我们不会让用户像通常使用鼠标那样用头部选择目标,但我们终于摆脱了“以手为光标”控制鲸鱼。
接下来,我将谈论设计这种头部跟踪交互时的一些挑战,检查我们的实施,并从可用性角度讨论哪些有效,哪些无效。
我们的挑战
人们经常探出跟踪范围。
这是使用英特尔实感应用程序的新用户最常见的问题,但不同的用户参与我们的应用程序的程度不同,一些人身体倾斜程度会超出我们的预期。 如果离开跟踪范围时不需要英特尔实感应用程序重新检测用户,那么这种情况就不构成问题。 我们发现这会破坏我们的整个体验,因此我们需要围绕这个问题进行设计。
上下移动对人们来说并没有我们想象的那么直观。
当使用头部输入时,倾斜的水平输入可以轻松映射到光标,但垂直运动却不尽相同。 抬高和降低头部对于垂直定位并没有什么意义,因为那将意味着用户必须站起来或趴下来上下移动头部相对于摄像头的位置。 我们选择使用与摄像头之间的距离(靠近和远离)来控制光标的垂直位置,但是我们发现对于一些用户而言并没有我们预期的那么直观。
Space Between 中的光标
在 Space Between 中,我们使用了头部光标在 Twilight Zone 关卡控制鲸鱼。 在这一关卡,玩家可以通过左右倾斜身体来控制左右游动,通过靠近和远离控制下沉和上浮。 鲸鱼固定在轨道上,倾斜可以让鲸鱼在轨道的特定距离范围内游动,玩家可以沿途拾取奖励点。
哪些有效
从用户反馈的角度,显示映射头部位置的光标可以帮助我们了解头部跟踪的状况。 我们还在每一款游戏中提供了预先说明和图解,显示采用哪些输入方式,帮助玩家探索输入方法。 一旦用户理解了光标具体显示的意义(头部位置),光标也可以帮助玩家直观地了解摄像头的视野范围,光标处于屏幕边缘即表示玩家的头部处于摄像头视野的边缘。
图 4. Space Between 的说明截图,显示了我们借助英特尔实感 SDK 执行的输入。
哪些无效
当您左右晃动时确实看到鲸鱼转弯的动画,非常微妙,有时用户不知道他们正试图向那个方向移动。 我们需要更明显的视觉指示,将晃动直接关联到鲸鱼的上下左右移动。 有时最初也会混淆光标表达的含义。 为了减少混淆,我想我们本可以更明确地显示或说明光标表示头部的位置。
要点
- 要让用户准备好他们要执行的输入类型,这一点非常重要。
- 为了减少跟踪丢失的几率,需要跟踪所使用的输入方式,显示摄像头视野的边缘位置。
- 当视觉反馈与用户输入控制的对象之间建立关联时,控制就会更加直观。
英特尔实感 SDK 中的语音识别
我将最具挑战性的一方面留到最后说,并且先提出免责声明:我们学到的大多数东西都有局限性,并且没有效果。 对于那些不熟悉的用户,英特尔实感 SDK 有两个选项:命令和听写。 在命令模式下,您在英特尔实感 SDK 中设置要听从的具体的命令,而在听写模式下,为您提供已识别的一段语音文字。 尽管我们经过努力,在使用语音模块时无疑提高了用户体验,但从用户使用和我们实施的角度看,它仍然是迄今为止最让人感到挫败的功能。 这里的难点在于利用用户反馈缓解语音识别的局限性。
语音识别的限制
该模块的精度不符合客户的期望值。
大多数人都曾经体验过一些类型的语音识别软件,例如苹果的 Siri*、谷歌的 Now* 或微软的 Cortana*。 在这些解决方案中,软件都基于云,利用不计其数的数据、复杂的算法等等。 这些功能在本地解决方案中不可用,例如英特尔实感 SDK 使用的解决方案。 因为用户根据功能更强大的云解决方案设定了期望值,您需要通过精心设计以及提供说明和用户反馈来处理和缓解局限性。
有时说出的命令和识别的语音之间有明显的延迟。
根据应用情况,有时从用户说出命令到英特尔实感 SDK 处理该命令并转化为文本之间有明显的延迟。
音高、音色和音量对语音识别的准确性发挥重要作用
根据我们的经验,成年男性声音的识别效果最佳,而高音和轻柔的声音识别效果不好。
口音在语音识别的准确性中发挥作用
对于英语,您可以在英特尔实感 SDK 中设置两个版本。 美式英语和英式英语。 这显然不包括这些方言中口音的细微差别,因此有口音的人更难成功使用语音识别。
麦克风质量对语音识别的准确性发挥重要作用
英特尔实感摄像头 (F200) 内置的麦克风的效果像全功能摄像头麦克风效果一样好,但在语音识别方面,我们发现耳机麦克风效果更好。
环境噪音在语音识别准确性中发挥重要作用
这是任何支持语音识别的应用程序面临的最大挑战。 各种环境的环境噪音差异很大,语音识别在能够清晰辨别语音的安静环境中效果最好。 耳机麦克风有助于减轻这个问题,但不要指望语音识别在相对安静的住宅办公环境以外能有好效果。
以语音识别作为输入控制器
图 5.我正在“The Risen”中对我的骷髅士兵下达强势的命令。
使用语音对应用程序下达命令是推到人类与计算机之间的隔墙的最有力途径。 如果奏效,效果将非常神奇。 如果无效,则令人感觉挫败。 在我们的游戏“The Risen”中,我们使用语音让玩家对他们的骷髅兵下达真实的命令。 接下来,我要谈谈我们遇到的一些挑战,以及我们如何从用户反馈的角度应对这些挑战。
我们的挑战
语音命令经常无法识别。
这足以引起深刻思考其内容,但在英特尔实感 SDK 的技术限制内通过设计用户反馈来缓解这个问题是一个挑战。
用户通常不知道他们的命令为什么无法识别。
是因为我声音不够大,说的不够清晰,模块没有初始化,还是因为系统就是不喜欢我? 这是用户尝试使用语音识别时会提出的一些问题。
首次玩游戏时,很容易忘记命令是什么。
我们已经尽力用图标表示语音命令,但当您只看过一次文字,还是会很容易忘记。
“The Risen”中的语音识别
在“The Risen”中,您可以发起四个简单的命令来只会骷髅兵:前进、后退、攻击、防御。 每个命令将会让骷髅兵进入特定的攻击状态,支持高水平控制他们的行动。 骷髅兵的状态以 GUI 中的彩色图标和骷髅兵自身的效果表示。
当语音检测已经开始和已经结束时,我们让 GUI 开启用户反馈,并通过一个滑块控制麦克风输入音量。 对于检测命令的反馈,当我们收到 LABEL_SPEECH_BEGIN 提示时会在 GUI 玩家骷髅兵上播放动嘴的动画,当接收到 LABEL_SPEECH_END 提示时停止播放。 麦克风滑块用于提高已识别语音的音质,但也通过颜色变化指示检测到的语音是否过大或过小。
图 6.“The Risen”的麦克风滑块
有效操作
要了解骷髅兵所处的状态,骷髅兵上的视觉效果是最有用的。 在此之前,用户会因为不知道他们已经处于该状态或不知道为什么某个骷髅兵的状态与全体骷髅兵的状态不同(一种有意图的游戏机制)而重复命令。 视觉效果还可以帮助我们更好地调试我们的骷髅兵人工智能。
麦克风音量滑块实际上有很大帮助,因此我建议所有采用语音识别的游戏实施这个功能。 它不但提供了动态调节麦克风输入音量的方式,提高了识别命令的成功率,而且还可以告诉用户为什么输入可能无效。 这对于减少玩家的挫折感有重要作用,因为它含蓄地告诉用户,麦克风正在工作,正在识别命令,并提示他们怎样改善输入效果。
无效操作
用于指示用户何时讲话的玩家骷髅兵动画效果并不能十分有效地告诉用户何时在识别命令。 我想,这是因为界面中有很多要寻找的内容,动画细节往往被忽视了。 这就是说,我们只为这款游戏制作了简短的演示,因此用户没有太多时间熟悉用户界面。
我也想过,我们用于表示骷髅兵状态的图标大多被忽视了。 这对于非语音控制的游戏可能没有问题,但如果目的是通知用户(何时)检测到了什么命令,这就有问题。 为了显示语音命令已被识别,我想我们需要在屏幕上闪烁显示文字一秒左右,引起用户注意,让他们知道系统已经识别了他们的命令。 这种方法还将帮助用户记住他们需要使用的特定命令。
要点
- 在处理语音之前告诉用户何时正在检测语音,避免产生挫败感以及在处理语音时重复命令。
- 让语音控制的效果和各种状态之间的变化更加明显。
- 为用户提供麦克风输入音量滑块,指示检测到的语音音量过大或过小。
- 考虑在屏幕上显示命令,用于帮助用户记住系统命令。
- 当已识别命令时,为用户提供明显的指示。
人类最佳新朋友
计算机正在介入我们生活的方方面面。 随着技术的持续改进,我们发现使用计算机的新途径,并让它们承担更大的责任。 很快就会有一天,甚至我们自己体内也会集成电脑元件。 因此,我们与电脑的关系变得越来越人性化。
英特尔实感技术和其他 NUI 是向这个发展方向迈出的第一步。 这些技术让我们能够真正转移视角,关注我们看待周围的世界和与之交互的方式。 但是这种关系还处于萌芽阶段,作为设计者和开发者,我们有责任将其引导至正确的方向。 终有一天,我们的计算机就像我们的朋友,甚至能够在我们还未开始表达时就能提前预测到我们的意图;但现在,他们更像我们的宠物,仍然需要一些帮助,告诉我们他们何时需要外出。
关于作者
Justin Link 是佛罗里达州奥兰多的 Chronosapien Interactive 公司的互动媒体开发人员。 他的游戏“Space Between”在英特尔® 感知计算挑战赛中排名第二。 该游戏采用英特尔感知计算手势摄像头,主要使用手势和语音在三款小游戏中控制水下海洋生物。 在排名前 10% 的英特尔创新者中,他已经为 1,000 多名开发人员提供了感知计算培训,包括最新的 2014 英特尔实感技术。
更多信息
英特尔® 实感™ 技术自然用户接口用户反馈(第 1 部分) - 作者:Justin Link
使用英特尔® 实感™ 创作“Space Between”– 英特尔软件 TV 视频
“Space Between*”采用英特尔® 实感™ 技术探索海洋深度– 与 Chronosapien 的 Ryan Clark 共同开展的案例研究
获取英特尔实感 SDK
获取英特尔® 实感™ 摄像头