Just Speak 论文精读
目录ABSTRACT传统GUI操作非视觉交互问题目标语音识别服务语音控制系统安卓可访问性apiJUSTSPEAK系统描述语音识别使用解析命令执行命令的链接用例和讨论对于盲人用户针对已设置的用户对于安卓电源用户未来的工作结论ABSTRACTJustSpeak,一种用于安卓操作系统非视觉访问的通用语音控制解决方案与现有的系统相比,JustSpeak提供了两种贡献。首先,它可以在安卓系统上实现系统...
目录
ABSTRACT
JustSpeak,一种用于安卓操作系统非视觉访问的通用语音控制解决方案
与现有的系统相比,JustSpeak提供了两种贡献。首先,它可以在安卓系统上实现系统范围内的语音控制,从而可以适应任何应用程序。JustSpeak基于应用程序上下文构建了一组可用的语音命令;这些命令是直接从屏幕上的标签和可访问性元数据合成的,不需要应用程序开发人员的进一步干预。其次,它提供了更有效和更自然的交互,支持同一语音中的多个语音命令
justSpeak可以显著提高盲人和运动受损用户的图形界面交互体验。
传统GUI操作
在图形用户界面(GUI)中,对象,如按钮、菜单和文档,供用户以操作方式类似于他们在真实工作空间中的操作方式,只是它们以图标的形式显示在屏幕上。与GUI交互的第一步也是最重要的步骤是目标定位,有视力的人可以通过快速的视觉扫描来直观地找到目标对象。但如果没有视觉访问屏幕,这个简单的任务通常很难完成,这是非视觉交互困难的主要原因
至于运动受损的人,在点定位上存在困难,因为大多数GUI交互技术,如鼠标和多点触摸需要用户的手或手指上的精确物理运动。
非视觉交互
当与屏幕进行非视觉交互时,语音命令优于鼠标或多点触摸的优点是,它不需要定位目标。例如,要完成一个简单的任务,比如关闭多点触控智能手机上的蓝牙,用户可以简单地告诉手机“关闭蓝牙”,而不是通过耗时的过程来寻找和点击设置图标,然后是蓝牙开关。
问题
鼠标和多点触控表面以其可靠的精度已被广泛应用于计算机和移动设备上的主要输入方法。但在视觉上无法访问显示器的情况下或者对于有灵巧性问题的用户来说,指向一个目标是错误的
其他人也经常面临这个问题,例如,在明亮的阳光下开车或使用智能手机时。语音控制是一种有效和有效的替代非视觉交互模式,不需要目标定位和指向。可靠和自然的语音命令可以显著降低时间和精力的成本,并支持直接操作图形用户界面。
不幸的是,现有的语音控制系统在很多方面都受到了限制。我们还没有看到一个系统支持能够控制任何应用程序的设备上的通用语音命令。其中大多数要么建立在应用程序级别上(例如语音输入方法),要么受到预定义的命令集的限制。例如,即使是Siri等最流行的语音助手和谷歌Now[2,4],也只能支持设备上的内置功能,如消息传递、呼叫和网络搜索等。
目标
JustSpeak的目标是在安卓操作系统上实现通用语音控制,帮助用户自由地快速自然地控制系统
该应用程序作为一个系统服务在后台运行,可以通过简单的手势、一个按钮或一个近场通信(NFC)标签来激活,无论哪个应用程序在前景中运行。当激活时,JustSpeak会记录用户所说的语音。然后将录制的音频转录成纯文本,并解析成计算机可理解的命令,由JustSpeak自动执行。
与大多数当前系统不同的是,JustSpeak可以容纳安装在设备上的任何应用程序的命令,例如,单击按钮、滚动列表和切换开关。此外,JustSpeak比其他作品更聪明、更自然,因为它在一个话语中支持多个命令。例如,要打开Gmail应用程序,然后刷新
这两个主要功能不同于JustSpeak与其他语音控制系统,并提供了更直观和高效的无眼和免提交互。
语音识别服务
语音识别,也被称为语音到文本或自动语音识别(ASR),已经研究了二十多年[14],最近被用于各种商业产品,从语音输入,语音即时输入,到自动虚拟代理,如Siri和谷歌Now在JustSpeak的框架下,我们使用谷歌ASR服务[10]来识别用户的语音。
在JustSpeak的框架下,我们使用谷歌ASR服务[10]来识别用户的语音。它们的应用程序编程接口(API)使移动应用程序中可扩展的文本到语音功能集成,并支持在线和语音识别。
谷歌ASR服务的性能在竞争领域也是一流的。当使用在线识别时,单词错误率(WER)约为15%,平均实时(RT)因子低于1秒[10]。它使JustSpeak能够为用户提供快速和准确的语音交互体验。
语音控制系统
我们将语音控制系统定义为通过人类语音控制的应用程序或设备。与直接使用语音识别,如语音输入镜或语音搜索不同,语音控制系统应用语音识别的结果来操作用户界面或执行指定的命令。所有主流智能手机现在都支持不同级别的语音控制,包括安卓、微软Windows手机、黑莓和iOS。[16]最先进和最流行的语音控制应用程序是安卓上的谷歌和iOS上的Siri。
虽然谷歌Now和Siri都被认为是最先进的语音控制系统,但它们都受到定义所支持命令的方式的限制。基本上,每个命令只能有一个关键字或短语,它指定了系统支持的某个功能,例如,“日历”或“告警”。如果在句子中没有找到关键词,或者句子不满足与关键词相关的语法,那么整个句子将被视为一个web搜索查询
此外,如果用户想要执行两个或多个语音命令,他必须多次重复这个过程,因为他们只能在每个对话框回合中处理一个命令。此外,由于所支持的功能是预定义的并内置到应用程序中,因此它们不能与受限范围之外的应用程序一起工作,例如,第三方电子邮件软件。
安卓可访问性api
根据安装可访问性服务的用户的权限,开发人员可以访问屏幕视图层次结构、可访问性事件,并通过可访问性api相应地增强用户体验。这些api是功能强大的工具,因为它们充当应用程序和系统之间的代理,因此可访问性服务可以知道用户执行的任何交互以及由事件触发的接口更改。例如,当用户启动Android应用程序时,可访问性api将通知注册的可访问性服务,并附加应用程序活动中显示的所有视图对象,包括按钮、标签、菜单等。到该通知。应用程序还可以利用可访问性api代表用户触发交互事件,包括但不限于单击、长按和滚动屏幕上可操作的对象。
JUSTSPEAK
系统描述
与其他安卓可访问性服务(如回调)相同,一旦安装,JustSpeak可以在>可访问性设置下启用(图1所示),此启用操作只需要执行一次,因为当设备重新启动时JustSpeak将自动重新启动。同样的可访问性设置页面也是关闭JustSpeak的地方。
如图2所示,JustSpeak有三个模块一起工作,以方便用户激活通用语音命令。第一步是语音识别,它将语音转录成纯文本。然后,话语解析模块开始将语音识别结果处理为形式化的命令。最后,我们使用命令参数在当前屏幕上搜索可操作的对象,并操作最高匹配的对象或相应地启动系统命令
JustSpeak在电池消耗方面是有效的,因为它在后台睡眠模式下运行,而不被使用。当用户想要发出语音命令时,JustSpeak可以通过几种不同的方式轻松激活
拖动主键,点击JustSpeak应用程序图标和扫描定制的NFC标签。然后播放一个图标,提醒用户JustSpeak已经准备好录制音频,屏幕右侧也将显示绿色层,显示检测到的音频随颜色变化的音量变化
语音识别
使用JustSpeak中的谷歌ASR服务来识别用户输入的语音。除了可靠的性能外,谷歌ASR通过提供离线和在线识别,为开发者提供了巨大的灵活性,因此,JustSpeak可以在没有互联网连接的情况下使用,当用户说“设置”时,谷歌ASR返回了三个不同的结果。这一特性使JustSpeak能够提高语音识别的容错度和语音命令的成功率,因为我们可以通过降低评分顺序来迭代所有的结果,并执行最有可能的操作。
使用解析
JustSpeak允许语音控制Android可访问性api支持的所有接口操作功能,以及一些全局系统命令下表2显示了当前支持的操作和示例的完整列表。
为了提供自然和灵活的用户体验,我们为JustSpeak设计了一个基于语法的话语解析过程我们还定义了一些触发常用应用程序的热门词,包括“浏览器/web”来打开默认浏览器,“确定谷歌现在来启动谷歌,“语音搜索”或“搜索”来启动语音搜索
一旦语音识别结果通过了我们的语法检查,我们将以命令名和参数的形式包装它,然后将它与识别分数一起传递给执行模块。如果用户语音的所有识别结果都不满足表2中列出的任何语法,JustSpeak将中止,并通过文本到语音的反馈通知用户失败。
命令执行
一旦命令被解析,JustSpeak就会尝试一个接一个地执行每个命令。大多数全局命令都可以通过简单地调用指定的系统事件来直接执行。另一方面,本地命令具有与屏幕上的控件和可访问性元数据关联的参数。因此,我们需要使用可访问性api来定位用户在发出本地命令时希望访问的交互式对象。
为了做到这一点,我们在JustSpeak中维护一个视图索引器,这个索引器本质上是一个映射文本标签或内容描述到关联的交互接口元素的散希图。,
如果一个图像按钮被开发人员标记为“合成”,即使这个标签没有显示在屏幕上,我们也会保留一个单词“合成”映射到这个按钮。
因为屏幕上显示的内容会不断更新。JustSpeak侦听所有类型的可访问性事件1。这些事件包括更新的视图和元数据的来源,如时间戳、修改的细节、对应的应用程序的识别等。它们授权JustSpeak动态更新索引器以保持其新鲜性
当将本地命令传递给执行模块时,这个索引器变得很方便,我们可以使用参数字符串查询索引器,以找到屏幕上显示的匹配节点。由于用户输入是自发的,并且并不总是与开发人员定义的标签相匹配,因此有必要设计一个允许灵活性的灵活机制。我们使用了一个基于单词重叠的排序算法,这样用户就不必说确切的标签来找到屏幕上的对象。例如,如果一个命令指定了“编写消息”,并且屏幕上有两个按钮包含单词“消息”,那么“编写一个新消息”将比“显示消息”得分更高,而JustSpeak将在“编写一个新消息”按钮上执行该命令
如前所述,当使用在线ASR时,通常有几个评分命令,JustSpeak试图处理每个命令,以通过降评分顺序确定它们的参数是否对应于索引器中唯一的可操作节点。通过这种方式,如果ASR由于用户的口音或其他因素而在得分最高的结果中产生错误,JustSpeak仍然有很大的机会执行所请求的命令。如果没有一个命令具有可以在索引器中验证的参数,则此执行尝试将被视为失败。通过合成语音来宣布了执行的结果。
命令的链接
单语音中支持多个命令是JustSpeak的重要特点,原因有二。首先,将多个命令组合成一个句子比重复整个对话回合几次更有时间效率;其次,自发语音表达有序请求的方式更自然
话语解析和命令执行模块一起工作理解包含多个命令的语音
表2中列出的所有受支持的函数都可以链接到一个句子中。如图3所示,话语按照它们放置在句子中的顺序被解析成命令数组。话语解析提出的挑战是消除歧义,例如,句子“点击重置和主键”可以视为一个命令:点击“重置和主键”或两个命令:点击“重置”按钮,然后导航回主屏幕。
为了获得更好的消歧义性能,必须对每个支持的操作的语法进行详细定义,JustSpeak还为可以在当前屏幕上验证的命令分配更高的优先级,以前面的句子为例,如果屏幕上有一个标记为“重置”的按钮,则这两个命令结果将是优先。由于一个操作的执行通常会导致界面更新的数量,例如,单击一个按钮通常会导致打开一个新页面、一个对话框或一个应用程序,因此命令不能同时执行该数组。
实际上,执行模块只尝试验证第一个命令参数并在可能的情况下执行它,然后等待短时间,直到之前命令触发的所有可访问性事件得到解决,然后继续到更新屏幕上的下一个命令
理论上,用户可以随心所欲地连接尽可能多的命令,但在实践中,我们发现语音识别错误会随着语音长度的增长而迅速增加。通过前面讨论的容错机制,JustSpeak能够可靠地支持包含四个或更少命令的正常长度的自发语音。
用例和讨论
JustSpeak创新地通过自然和快速的语音控制,为所有安卓应用程序和安卓系统本身提供了增强,可以在整个平台上非视觉和手动免费访问。它的价值并不局限于帮助盲人用户,事实上,所有的安卓设备用户都可以在各种情况下从JustSpeak中获益。
对于盲人用户
大多数盲人使用屏幕阅读器来与他们的电脑和便携式电子设备进行交互。在安卓智能手机和平板电脑上,JustSpeak不会干扰现有的屏幕阅读器和其他可访问性服务(例如,反馈)。相反,他们一起努力,为盲人用户提供更好的用户体验。
作为非视觉交互技术的主要用户组,我们相信在JustSpeak的帮助下,安卓设备的盲人用户可以更快、更容易地与他们的智能手机进行交互。事实上,这个项目最初是专门为盲人用户设计的,我们只在后期的开发过程中发现了它对其他用户组的价值。
事实上,由于盲人用户以屏幕阅读器读取的文本形式感知用户界面的表示,因此他们已经知道与每个对象相关联的字符串可以被称为有效的语音命令。因此,他们可以更容易地熟悉.
justSpeak可以显著减少为盲人用户访问应用程序控制所需的时间和精力。一个简单的安卓盲人用户可以从JustSpeak中获益,那就是启动应用程序。如今,人们可以很容易地找到安装在个人安卓设备上的数百个应用程序
针对已设置的用户
虽然GUI主要是为视力正常的用户设计的,但视力正常的用户往往会不可避免地将他们置于需要非视觉交互的情况下.在这些情况下,读者用户、他们的智能手机或平板电脑都非常渴望进行互动。如眼繁忙状态(如驾驶、会议)和使屏幕隐形或不可触摸的环境(如阳光直射,戴手套)以前已经描述过。在这种情况下,果汁演讲是完成紧急任务而不看屏幕的有效选择。
我们发现了另一个意想不到的用户组,它也受益于JustSpeak。我们的一位用户指出,JustSpeak对于“任何有灵巧问题的人”也是一个很好的工具。虽然这些安卓用户没有困难找到屏幕上的对象,他们通常是一项艰巨的任务用手指指向他们多点触摸屏幕,减轻他们的负担移动设备,这样他们就可以把它放在他们可以激活的地方,并使用口头命令让他们代表他们执行交互。JustSpeak对于完成复杂任务时运动受损的用户特别有用,因为通过链状的语音命令,他们只需要完成与正在激活的设备的一次物理交互。为了更好地为有灵巧问题的用户提供服务器,JustSpeak在最新版本中添加了一个“点击和说话”选项。一旦选择,用户可以通过触摸屏幕上的任何地方来激活JustSpeak。
对于安卓电源用户
与计算机相比,移动设备受到屏幕大小的限制,因此移动应用程序开发人员采用分层界面,将应用程序内容安排在不同的页面中。对于熟悉自己的应用程序并知道每个应用程序页面上需要访问的控件的安卓用户,JustSpeak可以为他们节省麻烦,通过将命令链接在一起来找到常用的功能。
一个例子是用谷歌悬挂系统中的联系人启动视频呼叫,这是一个三步骤的任务,如下图4所示。通过触摸交互,用户必须首先在主屏幕的左下角启动谷歌悬挂,然后点击中间的联系人,最后点击右上角的小视频通话按钮,使用JustSpeak,任务被简化为一个激活手势和一个单一的话语
用户在JustSpeak首选项中启用自动重新激活。一旦启用,JustSpeak将被自动激活,并在执行前一个语音命令堆栈后获取用户输入。这样用户就能够通过手动自由的语音命令无缝导航不同的应用程序。为了节省电池电量,如果JustSpeak没有检测到任何声音,它将在5秒后关闭。
未来的工作
希望通过添加更多的语言支持来接触到更多的用户。我们还在探索其他激活JustSpeak的技术,
结论
首先,它是第一个语音控制通过合成屏幕上下文设置的命令来增强在移动系统上运行的所有应用程序的应用程序。其次,它支持在同一话语中的多个命令的链接,从而实现更自然和无缝的交互体验。作为一款公开发布的应用程序,JustSpeak可以通过移动设备的通用无眼和无提语音控制使大量用户受益。用户反馈显示JustSpeak受到现实世界用户的欢迎。它的框架可能有助于塑造未来的语音控制设备。
更多推荐
所有评论(0)