文/胡星刚
HAL9000是亚瑟·克拉克著名小说《2001太空漫游》中的AI,它可以理解人类的语音指令,并且完成人类交给的任务。语音识别通常是便携式电话等小型设备最方便的输入形式,并且可能是唯一的方式为可穿戴设备供输入,因为这些设备太小以至于无法支持物理键盘或触摸屏输入。这些设备往往是用户日常携带和使用的设备,因此包含大量的个人信息,如电话通信,计费或身份验证凭证和用户的位置。
语音识别其实是一个很复杂的过程。主要分为两大类:
(1)特定人语音识别 (Speaker-Dependent),语音识别的标准模板或模型只适应于特定的人,实际上,该模板或模型 就是该人通过输入词汇表中的每个字、词或短语的语音建立起来的。其他人使用时,需同样建立自己的标准模板或模型。
(2)非特定人语音识别(Speaker-Independent),语音识别的标准模 板或模型适用于指定的某一范畴的说话人(如标准普通话),标准模板或模型由该范畴的多个人通过训练而产生。识别时可供参加训练的发音人使用,也可供未参加训练的同一范畴的发音人使用。现在流行的语音识别系统都是基于以上两种分类实现的。
目前抵御上述组合式语音攻击的方法主要是基于多模态的检测方法,基于多模态进行语音攻击检测是依据多个生物特征做假比单一生物特征做假难度高很多的原理。若两个生物特征有具有强相关性,作假则更难,因此骗过系统的可能性就低很多。已有的基于多模态的检测方法有下述三种:
(1)基于会话脸(talking-face)的身份认证综合利用了人脸、唇动和语音信息。通过同时记录语音信息和人脸信息,计算两者的相似度来防御攻击。
(2)基于特定加速度传感器的检测方法。利用特定加速度传感器测量高频段语音信号,计算麦克风记录的语音信号和传感器测得的语音信号做相关性比对,如果相关性低于一定的阈值则说明检测到语音攻击。
(3)基于多普勒效应的检测方法。利用移动设备麦克风,当用户向智能手机说出语音指令时,内置扬声器将发射超声波,用以记录用户发声时发声系统多个咬合架导致反射信号中的多普勒频移,再使用高通滤波器将多普勒频移特征与语音信号分离,最后计算相似性得分,如果相似性得分超过预定阈值,则声明合法用户。
综上所述,目前方法都存在一些缺点,基于此本文拟研究一种符合人类使用习惯、适用于当前普及的移动设备、不易受环境干扰的抗重放攻击语音认证方法。
该模块的关键在于语音数据和陀螺仪数据的采集。具体说,本论文开发了一个用来同时采集语音数据和陀螺仪数据的Android应用(如图1所示),并且此应用能在如下三种商业化设备上运行,谷歌 Nexus 5X智能手机、MOTO 360安卓可穿戴手表和Storm Mirror智能VR眼镜。每个志愿者戴着这三种设备中的每一种说话10次。此应用运行的时候麦克风和陀螺仪会分别以44.1kHz和50Hz的频率采集数据。
本论文旨在确保与文本相关的语音识别任务(即说话人识别),其中要求说话人在注册时说出预定的密码短语,并且在在线身份验证阶段将使用相同的短语进行验证。与文本无关的说话人识别相比,文本相关的语音认证具有准确性高,口令短的优点,因此被广泛采用。
图1:采集数据的应用程序
本论文可以应用于不同类型的COTS可穿戴设备,例如项链,眼镜,手环,头盔和手机,只要该设备配备了陀螺仪并具有一定的计算能力即可。此外,本文要求设备应由用户携带或佩戴,以便智能设备的惯性传感器可以捕获说话人说话所引起的微小震动。
通常情况下,语音是由肺部的肺压力产生的,发声则是通过喉中的声门产生震动,然后通过声道将声音修改为不同的元音和辅音。在产生某些音节词的过程中,涉及到相对不变的肌肉组合,并且激活了从肺部到嘴唇分布的几个分离的身体部位即时反馈的协调运动。
本论文观察到每个音素的声音产生通常涉及多个发音器的多维运动。 例如,音素[p]的发音需要上下嘴唇水平运动和下颌角度改变。此外,尽管某些音素共享相同类型的发音器姿势,但移动速度和强度可能会有所不同。例如,[d]和[z]都需要舌尖收缩,但是它们在确切的舌尖径向位置和角度位置方面有所不同。
本模块假设已经从麦克风和陀螺仪收集一对时间序列,具体来说,采样的语音命令和语音运动在时间上是同步的。本模块使用静音段消除方法去除音频信号中无声片段。使用去计算两个特征阈值,其中M1和M2是对应特征序列的第一和第二局部最大值的位置。
为了测量不同长度的陀螺仪信号段之间的相似度,一种常用的测距方法是DTW。DTW是为了解决未对齐的两个序列无法进行相似度对比的问题。
设两条陀螺仪的信号为:
基于DTW的特征提取算法,包括以下步骤:
(1)计 算Gi和Gj的DTW距 离。本论文给出的距离函数为欧式距离,即定义为d(i,j)=(aj-bj)2。求解两条陀螺仪信号的累计距离如公式(3)所示:
则DTW距离即为公式(3)中取得最小值的数据,使得累积距离最小:
(2)计算Gi和Gj的DTW的扭曲分数。这个模块的关键是用Gi和Gj精确地表示并求出Gi和Gj间的DTW扭曲分数。具体公式如下:
Gi和Gj的扭曲分数是而且Φ(Gi,Gj)的值是0到1之间的值,至此本模块可以计算出Gi'和 Gj'的扭曲分数为Φ(Gi,Gj)。
(3)最后本论文将上述两个维度的值生成一个包含两列属性的矩阵,其中第一列是Gi和Gj的DTW距离值,第二列是与第一列对应的Gi和Gj的扭曲分数,如公式(6)所示:
这个模块的关键在于在离线训练阶段,假定两对麦克风和陀螺仪数据信号Si和Sj都需要被比较。首先两对数据需要使用数据预处理模块方法,将信号分割成两个信号序列,例如然后本模块针对这两个信号序列构建一个距离向量Di,j,如下:
所有由比较模板获得的距离向量都被放进一个分类器里面,支持向量机(Support Vector Machine,SVM)分类器。
在在线认证中,测试样本Si将通过计算与top-K训练模板的两列属性矩阵取平均值来判断分类器是接受还是拒绝。具体来说,本实验将Si与top-K模板进行比较,得到K个距离向量,例如Di,k(1≤k≤K),然后计算这些向量的中心,例如最后将输入到分类器中进行判断。
图2:语音指令长度对实验性能的影响
本实验招募了15个志愿者来完成试验任务,其中男性11人,女性4人。每组实验需要一人独立完成,测试过程中需要参与者模拟语音安全认证系统的典型使用场景。参与者佩戴的商业化的可穿戴设备是MOTO 360 安卓智能手表,谷歌 Nexus 5X智能手机和Storm Mirror智能VR眼镜。
本论文选择在数据集上使用一分类SVM分类器作为模型分类器,本论文研究语音指令长度对于预测性能的影响。句子长度从2至12词不等,进行句子长度对预测性能影响的实验。
最直观的想法是,更长的语音命令可以提供更强的保护。根据语音命令的长度,本文将语音命令分为三类不同的组分别为:2至3、4至5和6至7个单词。实验结果展示为图2。从实验中可以看出,DTW距离加上相应的扭曲分数作为特征的方法优于仅用DTW距离作为特征的方法。对于6至7个单词的命令,FAR和FRR分别为3.06%和2.92%。同时本论文也可以推断,随着语音指令长度不断的增长相应的误报率和漏报率将继续下降,这应该是显而易见的。
本论文中首先介绍了语音的语音运动序列是由许多肌肉的协调动作导致的,可以通过使用可穿戴设备的内置运动传感器来捕获这些动作。这为本文基于语音运动序列的说话人检测系统奠定了基础。本论文可以在说出语音指令时提取出用户的语音运动序列,以进行实时的用户检测。最后招募志愿者收集语音和陀螺仪数据进行分析,进行了语音指令长度对实验性能的影响实验,FAR和FRR分别达到3.06%和2.92%。