ABSTRACT
语音控制已经成为一种流行的与智能设备(如智能手机、智能手表等)交互的方法。Siri和谷歌等流行的语音控制应用程序现在已经被大量智能手机和平板电脑用户使用。设计语音控制应用程序的一个主要挑战是,它需要通过麦克风持续监控用户的语音输入。这类应用程序利用“ok谷歌”或“Hi Galaxy”等热词来区分用户的语音命令和她的其他对话。语音控制应用程序需要持续监听热词,大大增加了智能设备的能耗。
为了解决语音控制的能量效率问题,本文提出了AccelWord。AccelWord基于经验证据,即当今移动设备中的加速度传感器对用户的声音很敏感。用户声音对加速度计数据的影响非常丰富,可以用来检测用户说的热词。为了实现低能耗但高检测精度的目标,我们应对了多个挑战,例如如何仅从加速度传感器数据中提取用户说话热词的唯一特征,以及如何减少用户移动带来的干扰。
我们最终将AccelWord实现为一个运行在Android设备上的独立应用程序。综合测试表明,AccelWord在静态场景和移动场景下的热词检测准确率分别达到85%和80%。与谷歌Now和三星Voice等基于麦克风的热词检测应用相比,AccelWord在静态和移动场景下分别达到98%和92%的准确率,能效提高了2倍。
Keywords
AccelWord, hotword detection, accelerometer, energy, measurement
1. INTRODUCTION
随着智能手机技术的显著进步和可穿戴设备的日益普及,语音控制正在成为一种与智能设备交互的方式。iOS设备上的Siri[1]和Android设备上的[2]等语音控制应用程序已经被许多智能手机和平板电脑用户使用。对于智能眼镜和智能手表等可穿戴设备来说,语音控制尤其具有吸引力。这些设备具有非常小的触摸屏,这限制了基于触摸的控制的适用性,而不是简单的触摸手势。因此,目前商用智能手表[3]和智能眼镜[4]中普遍使用语音控制。随着我们周围的物体(在家里、办公室和其他地方)变得越来越智能,并可以提供各种功能,如电子辅助,它也具有巨大的潜力。这种设备已经商业化(例如,语音控制的智能扬声器[5],也充当电子助手)。
虽然语音控制为用户提供了直观的交互方式,但其主要挑战是需要持续感知音频信号。这意味着,设备应该打开麦克风,以持续监视用户的语音命令。这导致了巨大的能源消耗,这对智能手机、智能手表和智能眼镜等以电池为动力的移动设备是一个重大挑战。语音控制设备实现热词(例如“Okay谷歌”,“Hi Galaxy”),以区分用户对设备的语音命令和她的其他对话。这就要求设备通过麦克风录制音频,并检查所朗读的单词是否为热词,从而持续进行热词检测。降低热词检测的能耗是一个极具挑战性的问题。为了减少能量消耗,一些设备使用其他低功耗传感器,如加速计。在这里,语音控制应用程序监视用户执行的某些动作或手势(如双击屏幕[3]或倾斜[4]),然后打开麦克风收听语音命令。然而,这样的解决方案往往不是用户友好的(只有当用户可以触摸/佩戴设备时才有效),并且需要用户习惯不同设备的不同唤醒模式。在一些最新的智能手机(例如Nexus 6[6])中,专用的低功耗处理器用于音频感知。然而,这带来了额外的成本,不适用于普适物联网应用的低成本设备。此外,还有许多新的智能设备(如健身手环和智能手表)没有嵌入麦克风。在这些设备上启用语音命令仍然是一个困难的挑战。
本文提出了AccelWord——一种使用加速度计传感器进行热词检测的节能解决方案。AccelWord基于智能手机、智能手表和几乎所有智能设备中可用的MEMS (microelectromechanical System)加速度计传感器对用户语音敏感的观察。当用户说话时,产生的音频信号会导致加速度计传感器中观测到的加速度发生变化。事实上,这些变化惊人地好地表示了用户的口语单词,并且可以简单地从加速度计数据中提取用户说热词的独特签名。在此基础上,构建了AccelWord系统,该系统仅使用加速度计数据进行热词检测,一旦加速度计数据与提取的热词特征相匹配,就打开麦克风。实验结果表明,AccelWord在静态场景下的热词检测准确率达到85%,且误报率低于5%。与基于麦克风的热词检测相比,AccelWord在准确率达到98%的同时节能2倍。由于低功耗低成本的加速度计传感器在大多数设备中都可用于动作识别,我们认为AccelWord将实现准确、低功耗和低成本的语音控制。
最近的研究如[7]、[8]等发现,MEMS加速度计/陀螺仪传感器对用户的语音和附近的按键非常敏感,存在严重的信息泄露隐私风险。然而,本文主要关注如何将这种灵敏度用于节能的热词检测。accelword解决了创建准确和节能热词检测的多个挑战。首先,由于用户语音对加速度计的影响可以认为是用户语音信号的调制频率较低(当前加速度计为200Hz),目前尚不清楚哪些特征可以用来提取热词特征;为了获得更高的能量效率,计算特征的计算成本不太高是至关重要的。为了应对这一挑战,AccelWord利用了低复杂度的特征,这些特征经常通过加速度计用于活动识别(例如步行、跑步等)。研究表明,这些特征能够准确地区分热词和用户的其他口语词汇。
使用加速度计进行热词检测的另一个重要挑战是将由于用户移动引起的加速度计变化与由于用户声音引起的加速度计变化分开。这一点尤其重要,因为智能手机和智能手表等移动设备在用户携带或佩戴时始终在移动。在这种情况下,即使在存在移动的情况下,热词检测的准确性仍然应该很高。通过在加速度计数据上应用适当的高通滤波器,AccelWord可以达到与静态情况相似的精度水平(94.5%)。
本文的贡献可以归纳为以下几个方面:
- 本文提供了基于测量的证据,表明当今移动设备中使用的加速度计对用户的声音很敏感。实验还表明,当用户说不同的单词时,加速度计数据的变化有很大的差异,这使得我们可以提取热词的唯一特征。
- 该文设计并实现了AccelWord框架,该框架仅通过监测加速度传感器数据来检测用户的谈话量。它利用统计模式和频率分析,利用加速度计读数创建热词的特征。然后,提取的特征被用于训练一个可以实时检测热词的分类器。AccelWord即使在用户移动和高音频噪声存在的情况下也可以进行准确的热词检测。
- 在Android智能手机上实现了AccelWord,并对10名用户进行了实验评估。实验结果表明,AccelWord能够在静态场景下检测热词,平均准确率为85%,平均误报率为4.7%。当用户处于移动状态时,准确率和误报率分别为80%和5.6%。与基于麦克风的热词检测应用谷歌Now和三星的Voice - accelword相比,在静态、移动和噪声场景下,热词检测的准确率分别达到了98%、92%和93%。
- 实验表明,AccelWord能够在消耗相对非常低的能量的同时实现准确的热词检测。在两款手机上的测试结果显示,AccelWord比谷歌Now和三星Voice分别节省50%和57%的电量
论文的其余部分组织如下。我们将在第二节中简要概述AccelWord。第3节验证了AccelWord的可行性。在第4节中,我们介绍如何提取语音签名以及如何进行训练。第5节和第6节介绍了AccelWord的实现和性能评估。第7节和第8节分别讨论了未来的研究方向和相关工作。第9节总结本文。
2. OVERVIEW OF ACCELWORD
2.1 Motivation: Energy Expensive Voice Control
在本节中,我们首先了解当前语音控制应用程序的运行方式及其能效。目前大多数语音控制应用程序使用“热词”检测来实现完整的语音识别。如图1所示。当语音控制应用程序运行时,它会不断地监听用户说的热词。例如谷歌Now[2]的“ok谷歌”和三星语音[9]的“Hi Galaxy”等。当检测到热词时,使用语音识别技术识别用户接下来的任何口语单词。使用热词检测而不是连续识别用户所说的每个单词的目的是为了提高计算效率。这是因为热词检测仅将口语单词分为两类----热词和其他单词-轻量语音签名匹配。
虽然热词检测需要的计算量比完整的语音识别少,但它们都需要设备的麦克风一直处于开启状态。不断地在麦克风上收听使得当前的语音控制应用程序非常节能。为了证明这一点,我们测量并比较了两种语音控制应用程序——谷歌Now和三星的voice的功耗。我们使用季风电源监视器[10]来记录两款智能手机上的功耗——三星Galaxy S4和谷歌Nexus s。为了了解基线功耗,我们创建了一个android应用程序(称为“麦克风”),它只是打开麦克风,但不执行任何语音识别。图2展示了这三个应用程序的功耗轨迹。为了隔离应用程序的耗电量,禁止使用飞机模式的所有网络接口(三星语音除外,需要主动连接网络),并将后台进程数限制为0个。”在确保只有所需的应用程序正在运行后,我们在启动热词检测之前测量应用程序的图形用户界面(GUI)的功耗。从app运行时的总功耗中扣除该功耗,得到听力、热词检测和语音识别的功耗。图3显示了30分钟的平均值。“三星语音”是三星手机专用的,在Android app store上无法使用,因此,Nexus上的“三星语音”的耗电量并不适用。
从图3中可以看出,由于两款语音控制app对热词检测和语音识别有额外的计算需求,因此其功耗要高于麦克风app。根据热词检测和语音识别算法的不同,当用户说话时,功耗略有增加。然而,在任何情况下,所有应用程序的平均功耗的主要因素是当应用程序侦听热词时。因为这样的应用程序被设计为随时监听用户的命令,保持麦克风开着并检测hotword会消耗大量的能量。
在当前的语音控制应用中,持续使用麦克风收听和热词检测是能源低效的。这促使我们研究一种既准确又节能的连续语音感知的替代方法。
2.2 Design Goals and Challenges
一个热词检测方案应该满足以下设计目标,才能真正普及。
准确率:我们将热词检测方案的准确率定义为正确检测到用户说出热词的次数与用户说出该热词的总次数的比率。准确地检测热词对任何语音控制应用程序都是必不可少的。尽管最近的语音控制应用如谷歌在热词检测方面取得了较高的准确率,但频繁的热词检测失败是阻碍语音控制在智能手机和可穿戴设备中广泛使用的主要因素之一。请注意,语音控制应用程序适应缓慢的另一个主要因素是检测到热词后语音识别的不准确性。然而,由于已经有大量的研究[11-15]针对这个主题,我们在这项工作中没有考虑完整的语音识别,而只是专注于热词检测。
鲁棒性:另一个重要的设计目标是语音控制应用程序应该对其动态操作环境具有鲁棒性。这意味着它在以下三种情况下的热词检测应该是稳健的:
(1)用户移动性:即使在设备不断运动的情况下,热词检测的准确率也必须高。例如,即使在用户走路的时候,智能手表也必须检测用户的热词。
(2)不同的语音频率(女性或男性):语音控制应用程序必须同时检测女性和男性用户的热词。由于女声的[16]频率高于男声,因此准确性受输入语音频率的影响最小。
(3)嘈杂环境:特别是当用户在嘈杂的户外场所,如商场、咖啡馆等,周围环境的噪声可以↵等语音输入识别。热词检测的准确性不应受到周围噪声的影响。
能源效率:正如我们在上一节中所展示的,当前的语音控制应用程序在能源消耗方面是昂贵的。为了在所有电池驱动的智能设备中普遍部署语音控制,它需要以更小的能源足迹运行。这要求语音输入感知和使用签名匹配的热词检测都是节能的。
2.3 System Architecture
为此,设计并实现了AccelWord,实现了高精度、节能的热词检测。AccelWord利用加速度计代替麦克风来监听输入语音的声音信号。然后从加速度计数据中提取特定的特征,并插入到AccelWord应用程序中进行热词检测。图4说明了系统的体系结构。
- 热词特征提取:由于加速度计的低功耗特性,我们尝试从加速度计上提取热词的特征,而不是从麦克风样本中提取。通过比较热词的听觉加速度计数据集和其他随机句子的听觉加速度计数据集,构建特征向量。出于能源效率的考虑,培训是在线下进行的。
- AccelWord app: AccelWord是一款运行在Android设备上的独立应用。在初始化阶段,AccelWord将加载提取的hotword签名。AccelWord动态缓冲一定数量的加速度计样本,并周期性地计算样本的特征。将计算得到的特征与初始化阶段加载的签名进行比较。如果检测到热词,AccelWord将向Android操作系统发送启动语音控制的意图,否则将重复该过程。
3. FEASIBILITY OF ACCELWORD
3.1 Accelerometer Design
目前智能手机和其他智能设备(如智能手表和智能眼镜)中的加速度传感器是微机电系统(MEMS)。这种MEMS加速度计有三个主要组件-惯性质量,弹簧腿和固定的手指。如图5所示。惯性质量用两对柔性弹簧腿固定在基座上。当施加加速度时,惯性质量移动,导致静止手指之间的电容发生变化。这种变化被记录下来,以便准确地测量加速度。在三轴加速度计中,使用三组独立的组件分别测量加速度。
3.2 Impact of Voice Signal on Accelerometer
当用户说话时,产生的声音信号会击中加速度计的惯性质量,导致它移动并报告加速度的微小变化。从加速度计的角度来看,这种变化被认为是不良噪声,[17-19]研究了其影响并提出了对抗噪声的方法。根据加速度计的采样频率,加速度变化可以反映用户声音和说话词的一部分特征。当今MEMS加速度计的典型最大采样频率为几千赫兹。例如,在苹果iPhone 6、谷歌Nexus 5和三星Galaxy S5中发现的Invensense MPU-65xx加速度计的最高采样频率为4000 Hz(在[20]中称为“输出数据率”)。然而,我们在Android 4.4操作系统上的实验表明,为了降低功耗,操作系统将加速度计的最大采样频率限制在200 Hz(陀螺仪[7]也观察到类似的限制)。该采样频率对语音信号如何影响加速度计读数具有重要意义。
人的耳朵可以感知20赫兹到20千赫[21]范围内的任何声音。这就是为什么典型的麦克风的采样频率超过40 KHz,因为奈奎斯特采样定理指出,采样频率应该至少是信号中最高频率(20 Hz)的两倍()以进行重建。这意味着使用加速度计的200Hz采样频率,我们无法完美地重建声音。在这项工作中,我们对使用加速度计完全重建声音不感兴趣。这种重建需要非常高的采样率,这可能会导致非常高的能量成本。相反,我们感兴趣的是通过分析以较低采样频率提供的加速度计读数,生成用户所说的不同热词的签名。
由于男性说话声音的典型基频在85 ~ 155 Hz之间,女性说话声音的典型基频在165 ~ 255 Hz[22]之间,因此AccelWord是可行的。这意味着即使在200hz的采样频率下,加速度计的数据也可以反映出人类声音的某些部分。首先用实验证明,即使以200 Hz采样,人类声音对加速度计数据也有可测量的影响。
实验设置:为了验证语音对智能手机加速度计的影响,我们使用如图6所示的实验设置。设置的目标是模拟一个场景,用户正在对她手中或桌上的智能手机,或她手腕上的智能手表说话。为了可重复性,用户的声音由专业录音软件(Audacity)录制,采样频率为384000 Hz,并根据需要在手机(iPhone 4S)上重复播放。另一款智能手机(运行Android 4.4.2的三星Galaxy S4)充当语音接收器。接收手机以最高采样率(测量为199 Hz)收集加速度计数据。扬声器和听筒手机固定在12英寸的距离(用户的嘴巴和手机或手表之间的典型距离)。为了避免任何直接的表面振动,我们把两个手机放在不同的桌子上,彼此不接触。第一组实验是在一所大学大楼里的一间安静的房间里进行的。为了避免人为干扰,我们使用MacBook Air从另一个房间无线遥控扬声器iPhone。
扬声器的输出音量是可变的,以产生不同的声压级(SPL)在接收器。SPL通过接收手机(三星Galaxy S4)上的Android应用程序(声音计[23])进行测量。表1显示了在接收机处测量到的SPL以及观察到SPL的示例场景[16,24]。
对加速度计的影响:图7显示了说话人播放两位作者朗读的元音“A”时加速度计读数的变化情况。两个用户的频谱分析和背景噪声如图7a所示。接收机测得的背景噪声平均声压级为25 dB。不同声压下的接收机加速度计读数如图7b和图7c所示。由于声音来自接收器的正上方,Y轴上的加速度计读数变化不大()。然而,在X轴和Z轴上,当公声压级从25dB增加到70dB时,我们可以观察到加速度计读数有相当大的差异(
)。在女性语音输入上也观察到了类似的现象。虽然女性声音在X轴和Z轴上引起的变化略小于男性声音,但仍然显著高于Y轴上的变化。这表明,在SPLs足够高的情况下,人类声音将对智能手机加速度计产生可检测到的影响。
3.3 Accelerometer vs. Gyroscope - Energy Comparison
加速度计之所以对声信号敏感,主要是因为它是一种MEMS传感器。另一种MEMS传感器——陀螺仪——也广泛应用于智能手机和其他智能设备。陀螺传感器也会受到[7]语音信号的影响。由于我们的目标是利用加速度计的声学灵敏度进行高能效热词检测,而不是重建完整的声音,因此有必要对加速度计和陀螺仪的能量效率进行比较。由于MEMS的设计差异,已知即使在相同的采样频率下,陀螺仪传感器比加速度计传感器消耗更多的能量[17,20]。对比各大智能手机使用的加速度计和陀螺仪传感器的规格,发现仅运行陀螺仪的正常工作电流比仅运行加速度计的正常工作电流平均高6倍[17,20]。然而,采集这些传感器数据时的实际功耗取决于许多其他因素,如数据采集应用程序、操作系统、CPU和内存等其他硬件组件。我们测量了Nexus S和三星Galaxy S4的总耗电量。在这里,我们的Android应用程序以200 Hz的频率收集传感器数据,并使用季风电源监视器测量功率。在我们的应用程序中,我们使用完全相同的实现来从两个传感器收集数据。功耗结果如图8所示。可以看到,采集陀螺仪数据比加速度计多消耗55.8%的功率,并且正如预期的那样,加速度计和陀螺仪的能量都明显低于麦克风的能量(如图8d所示)。
根据观察,可以得出以下结论:(i)加速度计对人的声音敏感,(ii)它也是节能的。因此,我们利用加速度计传感器实现了AccelWord,一款使用加速度计检测特定语音信号(热词)的app。
4. HOTWORD DETECTION USING ACCELWORD
从上一节中,我们知道加速度计传感器会受到用户声音的影响。在本节中,我们将演示用户的声音对加速度计数据的影响是非常丰富的,因此它也可以用来检测用户所说的热词。为此,我们首先展示了加速度计数据的哪些特征可以用来创建热词的签名。基于该特征,我们构建了一个机器学习分类器来进行热词检测 .
在使用加速度计数据创建热词签名时,我们关注两个目标:
(1)我们只对区分热词和用户的其他口语词汇感兴趣。这样,我们的热词检测是机器学习方面的一个二分类问题,而不是所有口语单词都被重构的语音识别问题。一旦发现热词,就可以打开麦克风录制用户的声音,使用现有的语音识别方法。
(2)热词检测应该是在线且节能的。这就意味着加速度传感器数据的收集、分析以及与热词特征的匹配过程都需要非常高效的计算,才能保证热词检测的节能性。从图8中我们已经知道,加速度计数据收集比通过麦克风记录消耗更少的功率。然而,需要设计有效的方法来分析和匹配加速度计数据。
准确检测热词的难点之一是用户的移动性会引起加速度传感器数据的显著变化。即使用户在移动状态下,也有必要检测热词。为此,我们需要从加速度计信号中过滤移动性干扰,以便在执行热词分类之前提取用户声音的效果。首先展示了在静止情况下如何从加速度计数据中提取热词特征,然后将分析扩展到用户的移动性。
4.1 Extracting Hotword Signature
识别热词的一种可能方法是对以200 Hz到40 KHz收集的加速度计数据进行上采样,然后从生成的音频文件中重现用户说话的某些部分。然而,由于上采样和分析额外产生的数据的计算复杂性,这将导致巨大的能量开销。此外,由于我们对再现声音不感兴趣,因此这种额外的处理不适合我们的应用程序。相反,我们采取一种不同的方法来分析加速度计数据,如下所述。
候选特征:提出使用行为识别相关特征来分析加速度传感器数据。表2列出了一组特征,这些特征被发现与人类的身体活动(如走路、跑步、坐着、站着等)高度相关。与音频分析相关特征(用于语音识别[26,27])相比,使用这些特征的主要优势是其较低的计算复杂度。表2中的大部分特征都是对数据进行时间序列分析,可以有效地计算出快速在线处理的特征。
特征选择:由于我们想要使用的候选特征集主要是在行为识别方面进行的研究,因此尚不清楚它们在热词检测方面的应用效果如何。为了评估它们的有用性,我们计算用户说出热词和其他句子或随机选择的文本时的特征值。我们使用第3节中讨论的实验设置。通过扬声器电话以100%的音量播放两段用户说话的录音(接收电话为70分贝声压级)。在第一段录音中,用户说一次热词“Okay谷歌”,重复200次。在第二段录音中,用户说出常用的句子(“Good morning”,“How are you”,“Fine, thank you”等),然后随机重复400次。通过扬声器播放录音后,使用来自接收设备的加速度计数据来计算候选特征集。我们观察到大多数用户可以在2秒内说出热词,因此将特征计算的时间窗口设置为2秒。请注意,在线热词检测需要考虑许多实际问题,例如使用滑动窗口进行连续评估,我们在第5节的accaccword应用程序设计中解决了这些问题。在这里,我们首先试图理解如何使用所呈现的特征来区分热词和其他单词。
为了确定给定的特征能在多大程度上区分热词和其他口语单词,我们使用基于信息增益的特征选择。[28]是一种常用的特征评估方法,在给定特征存在和不存在的情况下比较分类熵。设为实例的集合,其中
是热词实例,
是其他口语单词的实例。设
为
的熵。如果
和
是热词和非热词实例的分数,则
可以计算为
设是特征
的信息增益。
可以计算为
其中是特征
可以取的值的集合,
是
的子集,其中特征
。这样,
可以被认为是特征
在分类热词和其他词时可用的额外信息的度量。信息增益的值在0到1之间,越大表示该特征在分类中越有用。
图9显示了候选特征相对于热词和非热词两类的信息增益。实验结果表明,候选特征集中的大部分特征具有较高的信息增益,可以用于热词分类。有些特征(峰度、偏度和MCR)的信息增益为零,对热词的分类没有任何帮助。我们使用其余的特征来构建AccelWord分类器。
4.2 Combating Mobility Interference
为了消除用户移动性带来的噪声,首先通过一系列的移动性实验来了解用户移动性对问题的干扰。基于对移动场景的观察和数值结果的分析,我们能够设计合适的技术来检测用户移动状态下的热词。
移动性实验设置:对于移动性实验,我们使用与静态实验(第3.2节)中相同的手机。如图10所示,将听筒手机包裹在用户的左手腕处,扬声器紧贴在用户的嘴部。当距离为12英寸时,调整扬声器的音量以确保接收器的SPL为70 dB。用户以大约1米/秒的速度沿着椭圆轨迹在一个的房间里行走。为了实验的可重复性,我们将只关注行走和说话的移动模式,因为其他移动模式,例如跑步和说话,跳跃和说话,对于我们的实验者和志愿者来说很难大量重复。因此,我们将其他移动模式的研究留给未来的探索。
移动性干扰的影响:移动实验结果如图11和图12所示。图11显示了用户行走和说话时加速度计读数的示例1秒窗口。对比图11和图7,我们可以看到移动场景下加速度计的读数比静态场景下的读数至少高出一个数量级,表明信号干扰比极低。换句话说,在用于生成热词签名之前,必须对加速度传感器上收集的数据进行预处理。
利用加速度传感器数据识别人类活动已经有了相当多的研究。从之前的工作[25,29,30]可知,大多数人类活动(如走路,改变姿势等)表现出较低的频率(0.1-2 Hz)。图12比较了静止和移动场景下加速度计读数的频域。可以观察到,即使用户处于移动状态,进行高强度活动,能量也主要集中在较低的频段(<= 30 Hz)。这在图12中得到了证实,图12比较了静态和移动场景下加速度计信号的FFT系数。可以观察到,在低于30hz的频带中的能量对于移动机箱来说要高得多。本文还分析了另一种移动场景,即用户坐在椅子上进行工作场所的日常活动。与步行相比,这种活动强度较低,然而,它形成了AccelWord的一个重要用例,用户坐在家里或工作场所向她的手机提供语音命令。图13显示了这种坐着活动的FFT系数,并将其与典型的清醒活动进行了比较。在这两种情况下,用户都被假定为不说话。我们观察到,在较低的频率下(<= 20hz),坐着比走路更少能量。
这意味着在计算4.1节中讨论的特征之前,可以使用高通滤波器滤除加速度计信号中的移动性干扰。
然而,问题是选择正确的截止频率为高通滤波器,因为衰减信号超过必要的较低频率也可能消除用户声音的影响。由于在我们的例子中,加速度计“接收”到人类声音,30Hz的高通滤波可能会导致热词检测的准确性严重降低。本文依靠经验数据寻找合适的截止频率,既能准确地消除移动干扰,又能保留用户语音对加速度计信号的影响。我们在图9中观察到,在平稳情况下,所有三个频域特征- DomFreqRatio, Entropy和Energy -都具有较高的信息增益。这意味着它们在将热词从其他口语单词中分类时很有用。在应用不同截止频率的高通滤波器时,评估了这三种特征的信息增益。图14显示了截止频率从1hz增加到30hz时信息增益的变化情况。当信息增益减小时,可以推断出以前在分类中很重要的频域特征不再有用,整体分类精度也会降低。我们观察到,三个特征的信息增益首先增加,直到截止频率2hz。这意味着,到目前为止,高通滤波器在消除移动干扰和改进分类方面效果很好。然而,在2hz之后,信息增益值急剧下降(对于DomFreqRatio和Entropy),这表明过滤超过2hz的信息会删除对分类有用的信息。在此基础上,我们选择了2hz作为高通滤波器的截止频率。
4.3 Training AccelWord Classifier
为了训练AccelWord分类器,在收集加速度计数据时,用户需要说出一定次数的hotword。用户还需要说出任何其他随机选择的单词或句子。一旦收集到加速度计数据,就可以训练AccelWord分类器。热词被说了多少次等其他细节在第5节中提供。一旦提供了训练实例,就可以计算特征并构建机器学习分类器。计算特征和构建分类器的过程可以在智能手机上完成,也可以将其迁移到云端以节省能源。说明此过程仅执行一次,培训结束后无需重复。此外,我们没有为静止和移动情况建立单独的分类器,因为这样做需要首先检测用户是移动的还是静止的。在所有情况下,我们简单地使用一个分类器,其中训练实例中的任何移动性都使用高通滤波器进行过滤。一旦建立分类器,它就可以通过监测加速度计数据实时地进行热词检测。
决策树分类器:对于实时分类,我们建议使用一种简单的基于滑动窗口的方法,在任何时间实例中,缓冲加速度计信号的最后t秒。每隔一定的时间,对缓存的数据进行特征计算,并使用分类器进行签名匹配,以检查热词是否在最近t秒内被说出。由于特征计算和模型检测都需要周期性地进行,因此需要选择一个计算高效的机器学习分类器。我们使用简单的决策树来构建我们的AccelWord分类器。由于基于决策树的分类器可以使用简单的if-else条件实现,因此可以以很低的计算复杂度完成分类。这对于我们实现AccelWord的低能耗目标至关重要。
我们注意到,使用更复杂的机器学习方法(如bagging决策树或boosting[31])可以提高热词检测的准确率,但也可能会增加热词检测的计算成本和能耗。我们将优化AccelWord的精度和能量的探索留给未来的工作。
5. IMPLEMENTATION
我们将AccelWord作为一个独立的应用程序运行在Android 4.4.2 (API Level 19)设备上。为了避免任何GUI相关的功耗变化,我们将AccelWord的前端设计得非常简单,如图15所示。为了高效地计算特征,我们依赖于广泛使用的Java库commons math中定义的数据结构。由于典型热词的长度通常很短,大多数用户可以在2秒内说出它们,所以AccelWord在FIFO队列中缓冲了2秒的加速度计数据(400个样本)。请注意,这可以根据说出热词的典型时间进行调整。在特征计算的每次运行中,AccelWord首先使用截止频率为2hz的高通滤波器对数据进行滤波。然后将计算得到的特征与提取的热词签名进行比较;我们将每次特征计算之间的时间间隔设置为一个变量,并使用不同的间隔长度进行测试。
我们在工作站上离线训练AccelWord分类器,并将模型导入应用程序。这类似于谷歌等其他语音控制应用程序,现在将用户说热词的预训练模型纳入应用程序中。这允许在能耗方面进行公平的比较,因为在运行期间没有额外的能量消耗用于训练
一旦AccelWord应用程序检测到热词,它就会使用Android意图“搜索动作”启动“谷歌语音搜索”。在这里,麦克风被打开,用户的语音命令被谷歌语音搜索引擎识别。为了更好的重复性,我们在应用程序中实现了两种模式。在第一种模式(称为加速词能量模式)中,我们只是记录热词检测算法的结果,即使检测到热词,也不启动谷歌搜索。这允许我们以一种更可控的方式测量能量,在这种方式下,Android intent访问和其他相关进程不会消耗额外的能量。在第二种模式(称为AccelWord性能模式)中,应用程序不仅会进行热词检测,如果检测到热词,还会切换到谷歌语音搜索GUI。
6. PERFORMANCE EVALUATION
为了评估AccelWord的性能,我们对10名志愿者(5女5男)进行了热词检测测试。另外,还使用了谷歌Now和三星电子的voice等2种语音控制软件进行了性能比较。实验是在三星Galaxy S4和谷歌Nexus S两种手机上进行的。因为三星的声音是Galaxy手机独有的,所以在一些场景(不到两种)中没有被报道(标记为N/A)。
在实验中,我们选择“Okay谷歌”作为我们的热词——和现在的谷歌一样。三星电子的声音是“Hi Galaxy”。为了训练AccelWord分类器,每个志愿者说10次hotword。这里的valid是指,只有谷歌或三星的声音能够识别hotword语音实例时,才会在训练中使用。每个志愿者还会说20个其他随机选择的短句(<= 2秒),他们喜欢生成非热词的测试实例。记录热词和随机句子后,在实验中对每个句子重复播放10次(静态5次,移动5次)(“Okay谷歌”100次,“Hi Galaxy”100次,其他随机句子200次),以评估是否存在其他随机性(背景噪声等)。
从精度和能耗两个方面对AccelWord的性能进行评估
- 真阳性(TP)率:定义为说热词被正确识别为说热词的实例所占的百分比。
- 假阳性(FP)率:它被定义为说到其他句子被认为是说到热词的实例的百分比。
值得注意的是,AccelWord是一个特定于用户的分类器,这意味着为每个用户构建一个单独的分类器。这是因为基于加速度计的热词检测有一个额外的优势,它可以将分类器所训练的用户与其他用户区分开来。这种松散形式的用户身份验证对语音控制应用程序特别有益,因为它不仅可以检测热词,而且还可以识别是否是说热词的所有者用户。我们将在第6.3节中评估说话人识别的这一声明。由于男性和女性语音的频率差异很大,我们分别给出了男性和女性用户的准确率结果。标记为female的结果是5名女性志愿者的平均值,5名男性志愿者的结果也是如此。
能量:为了比较能量消耗,我们首先测量了在应用程序处于前台(打开屏幕)但没有运行热词检测时,AccelWord、谷歌Now和三星的语音应用程序各自的GUI功耗。当应用程序执行热词检测时,该GUI功耗将从后续测量中删除。这允许一个公平的比较,因为GUI功耗可以根据前端设计的不同而显著不同。分别给出了两种器件的能量比较。
实验结果表明,AccelWord可以达到与谷歌Now和三星语音应用相近的热词检测精度,而消耗的能量仅为二者的50%。第6.1节、6.2节和6.3节分别展示了热词检测准确率、能量效率和说话人识别结果。为了更好地展示,我们将所有的TP率以数字形式显示,所有的FP率以表格形式一致地显示。
6.1 Accuracy
我们从三个方面研究了热词检测的准确性:(1)接收电话的声压强度,(2)背景噪声和(3)用户的移动性。
声压级(SPL):直观上,接收手机上的SPL值越大,热词检测效果越好。我们用两种情况来评估这一点-一种是训练和测试实例都具有相同的SPL,另一种是它们具有多个不同的spll。为了在接收手机上达到预期的音高,我们在图6和图10所示的iPhone 4S上播放热词和非热词句子的录制音频,并在不改变iPhone与接收手机距离的情况下调节iPhone音量。
使用相同的SPL进行训练和测试:我们使用5个不同的SPL值(70、65、60、55、50 dB),并为每个SPL训练和测试单独的分类器。在每种情况下,训练和测试的所有实例都具有相同的SPL值。采用10折交叉验证方法评估TP率和FP率。图16显示了TP和FP的值。结果表明,TP率随SPL的减小而单调减小,FP率随SPL的增大而增大。这表明在较高的SPLs下生成的签名更好,从而可以改进分类。当SPL为50db时,TP速率和FP速率几乎为0。原因是50db SPL的非常低的声音输入不能引起加速度计数据的任何明显变化。与其他应用程序相比,谷歌和S的声音在50db SPL下也不能识别任何人类声音。
使用多个声压级进行训练和测试:实际上,当用户说出热词时,接收电话上报告的声压级在不同时间可能不同。为了测试这个现实案例,我们使用多个di↵不同SPLs的实例训练分类器,然后用给定SPL的实例测试它。例如,分类器可以使用60、65和70 dB SPL的实例进行训练,并使用60 dB SPL的实例进行测试。结果如图17和表3所示。实验结果表明,当SPL >= x时,当测试样例SPL >= x时,分类器在所有情况下的识别率都很高,例如,当SPL >= 60 dB时,60、65和70 dB的测试样例在男性用户中的识别率都在80%以上。与使用相同的spll进行训练和测试相比,我们观察到,使用多个spll进行训练时,精度略有下降。这是意料之中的,因为使用相同的SPL实例进行训练和测试可能会产生更适合的模型。然而,由于使用多个SPLs实例进行训练更真实,因此在本文的其余部分中,我们将使用使用SPL >= 55 dB实例训练的模型,以便与其他应用程序在噪声环境中进行比较和评估。
从图中我们还可以观察到,男性志愿者场景的TP率相对高于女性志愿者场景。如果只考虑55dB及以上的场景,AccelWord在男性志愿者上的TP率平均比女性志愿者高4.1%。这是因为女性的音域比男性略高,而加速度计的采样频率被限制在200Hz。因此,男性声音实例生成的签名相对于女性声音实例生成的签名更重要。
AccelWord与其他应用程序:我们现在比较AccelWord与谷歌now和不同SPL的S语音的热词检测精度。结果如图18所示。由于我们考虑的所有加速词训练实例都是在谷歌Now和S Voice中有效的实例,这两个应用程序在70 dB时都能达到100%的TP率。相比之下,AccelWord在70 dB SPL时达到86%的精度。对于65db和60db, AccelWord实现了比谷歌更高的TP速率,与S Voice相当的TP速率。从60分贝开始,我们观察到谷歌现在对大多数热词都没有反应。由于其内部实现细节未知,我们不清楚为什么热词检测在60 dB后急剧下降。一个可能的原因是,在较低的SPL时,计划生育率显著增加。三星电子的声音从55db开始也出现了同样的现象。因此,我们只比较65dB及以上的TP速率。在65dB及以上的SPLs条件下,AccelWord语音的平均TP率分别为谷歌Now和S语音的99.1%和97.6%。
噪声环境下的准确性:另一个需要研究的重要方面是音频噪声对加速度的影响。当用户处于嘈杂的环境中(如公共场所、商场、咖啡馆等),周围的音频噪声可能足够高,导致加速度计发生变化。为了评估AccelWord在音频噪音存在下的工作方式,我们生成了两种背景噪音——使用Audacity的白噪音和在当地自助餐厅录制的背景噪音。我们改变音频噪声水平从30到70分贝。请注意,70分贝的音频噪声已经被大多数国家视为可接受的噪声污染上限,例如美国(65dBA)[32],中国(70分贝)[33],日本(65分贝)[34]。图19和表4显示了不同背景噪声SPLs下的TP率和FP率。本文给出的结果是两种噪声分别作用时的平均值。在噪声环境实验中,三个应用程序的hotword SPL固定为70dB。
从图中可以看出,在噪声环境下,AccelWord可以取得比谷歌和S语音更低的TP速率。AccelWord的平均TP率仅比谷歌Now和S Voice低9%和13%。从表4中,我们可以观察到加速词的FP率随着噪声声压级的增加而增加。然而,在噪声高达70 dB SPL的环境中,accel - word的FP率仍然小于10%。我们认为这是《AccelWord》当前形式的局限性之一。今天的麦克风采用了先进的降噪技术,可以滤除背景噪声。然而,在目前的形式中,AccelWord并没有任何机制来消除音频噪声对加速计的影响。这将在第7节进一步讨论。
移动场景下的准确性:我们还测试了AccelWord在移动场景下的性能。实验采用图10所示的设置。在这里,每个志愿者绕圈走5分钟,重复3次。我们将扬声器电话和接收电话之间的距离固定为30英寸,并调整扬声器电话音量,使接收到的SPL为70 dB。
如4.2节所述,移动性会对加速词热词检测造成干扰,可以用高通滤波器消除。结果表明,可以使用截止频率为2hz的高通滤波器,因为它可以在不影响音频信号的情况下消除移动干扰。我们通过改变高通滤波器的截止频率来验证这一点,并观察由此产生的加速速度。结果如图20所示。与图14相同,我们观察到热词检测TP速率首先从不加滤波器增加到截止频率2hz。这是因为高通滤波器去除了用户行走运动的低频噪声,提高了提取的热词特征,从而提高了分类精度。进一步提高截止频率会导致TP速率下降,因为在消除移动干扰的同时,越来越多的“有用”信号被过滤掉,生成更弱的hotword特征。
虽然accel - word的准确率略低于静态场景,但TP率(2Hz高通滤波器为84%)仍然足够高,可以进行准确的热词检测。进一步的改进可以通过设计更先进的移动干扰消除方法来实现。
6.2 Energy Efficiency
在本节中,我们将比较三个应用程序的功耗:AccelWord,谷歌Now和S Voice。耗电量是用季风功率监测器在5 kHz采样频率下测量的。《AccelWord》在Galaxy S4上的运行轨迹如图21所示。在0秒到51秒之间,AccelWord应用程序在前台但没有运行。这是AccelWord app的GUI功耗。AccelWord app启动时间为51s,初始化时间为57s,如图21b所示。初始化过程包括:初始化队列缓存,将加速度计侦听器注册到操作系统并加载预训练分类器模型。57秒后,AccelWord开始监控热词。在本例中,我们将每个特征计算之间的间隔设置为500毫秒,因此,我们每5秒可以观察到大约10个脉冲,如放大的图21c所示。
我们在Galaxy S4和Nexus s上测量了AccelWord的功耗。我们将每个特征计算之间的时间间隔从500ms调整到1500ms。对于每个时间间隔设置,每台手机上进行5次测量,每次测量持续30分钟。平均值如图22所示。
从图中我们可以观察到,如果每次特征计算之间的间隔较长,则预计可以减少计算能量。但是,加速器采样的能耗不会受到影响。对比图3所示的500ms间隔(最高)的功耗与谷歌Now和S Voice的功耗,我们可以发现,AccelWord只消耗了谷歌Now和三星Voice的一半的功耗,如表5所示。值得注意的是,目前的语音识别采用了更复杂的机器学习技术,如早期拒绝(首先计算低成本的特征以快速拒绝非热词,仅在必要时计算高成本的特征)。值得注意的是,在处理和实施方面,与谷歌和三星等拥有大型开发和维护团队的同行相比,AccelWord的效率可能较低。有必要指出的是,AccelWord的节能主要是由于通过加速计而不是使用麦克风的低能耗传感。考虑到我们目前对AccelWord的实现并没有优化(与谷歌等设计良好的解决方案相比),当使用更复杂的机器学习方法并更好地实现AccelWord时,可能会有更多的能源节省。
6.3 Speaker Identification
虽然设计AccelWord的目标是实现节能热词检测,但我们观察到它也可以将用户的声音与其他用户区分开来。我们声称AccelWord热词签名是特定于用户的。由于每个用户的语音频率不同,加速计提取的热词特征也反映了说热词的用户。这种说话人识别在有多个用户且每个用户都只想与自己的智能设备交互而不想产生任何串音的场景中特别有用。
为了评估AccelWord用户之间是否可以相互区分,我们执行了一个多分类。这里,我们使用讲热词的10个用户的所有实例进行训练和测试,并进行10折交叉验证。分类结果以混淆矩阵的形式呈现在图23中。
从图23中可以看出,AccelWord能够以非常高的准确率识别说话人(女性- 82%,男性- 88%)。有趣的是,没有一个女性用户被划分为男性用户(反之亦然)。这意味着使用加速度计数据对用户是男性还是女性进行分类可以以非常高的精度完成。在使用AccelWord进行热词检测的同时,还可以利用说话人及其性别识别的可行性来提供用户身份认证。
7. DISCUSSION
在本节中,我们讨论了AccelWord的局限性,并提出了进一步利用加速度计进行特定单词检测的方向。
更高的采样率:提高加速度计采样频率是提高加速词精度的一种可能策略。另一方面,增加采样频率可能会增加采样消耗的能量。因此,在精度和能量效率之间存在一个优化问题。
低功耗处理器:最新的智能手机如Moto X[35]和Nexus 6[6]使用专用的低功耗处理器进行持续感知相关任务(例如音频感知)。当通过这种处理器执行AccelWord时,节省的能量仍然可能按比例低于这种处理器上的音频感知。
音频噪声消除:在基于麦克风的语音识别研究领域中,存在许多高性能、高效的噪声消除技术,如最小均方(Least Mean square, LMS)、归一化最小均方(Normalized Least Mean square, NLMS)和单投影(Ane Projection, AP)[36]。然而,在基于加速度计的热词检测场景中,噪声的消除更为复杂,因为噪声来自背景音频噪声和移动性推断两个方面。深入研究如何在加速度计上调制语音,有助于设计基于加速度计的热词检测机制中的噪声消除算法。
其他移动模式:在这项工作中,我们只考虑了走路和说话的移动模式。在现实中,用户的移动性可能更加复杂,如跑步、驾驶或乘坐飞机,这将导致更严重的干扰。为了解决这些问题,需要研究新的方法来消除或减少不同移动模式带来的干扰。
隐私的影响。图23所示的混淆矩阵揭示了使用accaccword识别用户某些隐私信息(如用户性别)的潜在风险。更糟糕的是,如果攻击者能够在Android系统上应用补丁来调整加速度计的采样频率,那么它也可以使用加速度计读数来重建人类语音的部分内容。如果这是可能的,具有加速计访问权限的应用程序也可以听到用户的语音,从而产生巨大的隐私风险。在我们正在进行的工作中,我们正在探索这种隐私泄露的可行性和严重性,以及可能的保护机制。
8. RELATED WORK
麦克风语音识别:在[11]中,作者介绍了JustSpeak,一种通用的语音控制解决方案,可以在Android系统的任何屏幕上进行谷歌语音识别。在[12]中,Ignacioet al.使用深度神经网络(DNN),一种最先进的机器学习技术,来识别智能手机用户所说的语言。也有大量的理论论文关注提高语音识别训练过程的计算效率[13-15]。这些工作与我们的工作有很大的不同,因为AccelWord依赖于加速计来监控语音信号,而只针对热词检测。
通过加速度计识别用户活动:有许多工作专注于通过分析加速度计数据来识别或检测用户活动。[25,29,30,37,38]讨论识别移动活动的通用机器学习算法,例如说话,走路,跑步,跳舞,上楼,下楼。在[39]中,作者设计了一个可穿戴环平台来检测用户高达2Hz频率的手势。在[8]中,作者展示了(sp)iPhone,它使用智能手机上的加速度计通过桌面传播的振动来检测人类的按键。这与accaccword不同,在accaccword中,加速度计的变化是由于声音而不是物理表面的直接振动。Accelword不要求扬声器和接收器放在同一个固体物体的表面上。
音频重建:Davis等人提出了视觉麦克风系统,通过记录一个薯片袋在房间[40]中的振动来被动重建房间中的声音。在[41]中,作者提出了AVASR,它通过处理Microsoft Kinect捕捉到的说话人的唇动来重建人类语音。陀螺仪[7]是一种将4000hz接收到的陀螺仪样本上采样以重建音频的系统。的,
采样和重构过程计算量大,不适合节能热词检测的目标。我们已经证明,以200hz采样的加速度计变化足以以低能量成本进行热词检测。
9. CONCLUSION
介绍了一种基于加速度计的智能设备热词检测系统AccelWord。AccelWord验证了利用加速度传感器检测语音信号特征的可行性。实验结果表明,AccelWord能够以较低的能耗实现准确的热词检测。为进一步提高AccelWord的性能,给出了未来的探索方向。