基于音节的操作。收集整个激活词是一项耗时的任务,尤其是当激活词包含一些专有名词时,如“Bixby”。因此,本文提出了一种基于音节的语音处理方法,只需要记录与激活词发音相同的音节。以激活词“ok,google”为例,“ok”包含两个音节(o-k),可以由“oh”和“cake”合成。google包含两个音节(goo-gle),可以由good和go合成。当检测到呼入/呼出呼叫时,AVM模块会记录相关的音节并将它们存储在音频文件中。一旦每个音节被记录下来,AVM模块就从收集的音节中合成激活关键词。尽管基于音节的操作更加灵活,但与基于单词的操作相比,它的成功率较低。由音节合成的大约40%的激活关键词可以成功激活语音助手。
0x03 Stealthy Attacking Module
A、挑战
当攻击者从用户那里获得激活语音后,会出现一个关键的问题没有回答,就是什么时候开始攻击?显然需要考虑的因素有很多,例如用户是否持有手机或与手机互动,发起攻击时用户是否会注意到声音,发起攻击时手机是否会“听到”声音,等等。这个问题很关键,因为一旦用户注意到攻击,他可能会调查这个问题,并且不会有第二次发起攻击的机会。为发动攻击而播放的声音的音量也是影响攻击成功的一个重要因素。音量应该足够低以避免被用户听到,并且足够高以确保智能手机可以接收到攻击语音命令。最佳音量取决于周围环境的噪音水平以及手机所处的真实环境。
B、触发算法
为了应对上述挑战,提出了一个智能环境检测模块,它决定何时发起攻击以及播放攻击声音的最佳音量是多少 。
(1)传感器设置
从麦克风、环境光传感器和加速度计收集数据。智能手机没有内置的噪声传感器,因此通过麦克风记录周围的声音,并用以下公式计算噪声级(分贝):LdB = 10log10 (A1²/A0²),其中A1是所记录声音的振幅,A0是设置为1的标准振幅。为了模仿运动模式,从加速度计中以50Hz的频率收集数据。为了节省功耗,每隔200毫秒收集一次噪声和光照数据,因为它们在短时间内比运动数据更稳定。所有采集到的数据都用最近邻插值法重新采样到50Hz。收集了系统APIPowerManager.isInteractive()的锁屏打开/关闭状态,以及AudioManager.getDevices()的蓝牙和耳机连接状态。
(2)数据收