在这个移动互联网大行其道的年代,人们不用互相见面就可以完成很多事情,比如社交、购物、网上开店、金融交易等等,但是如何验证身份变成了人和人在不见面的情况下最难的事情。传统的解决方案就是密码或者秘钥,它需要你记住或者存起来,容易忘又容易丢,还容易被黑客利用各种手段攻击。有多少人使用“123456“这种简单密码在网络上行走,他们就是黑客们最喜欢的目标;你家的路由器是不是还在用”admin”这种默认密码,这就是物联网领域中安全最薄弱的环节。不过,好在我们每个人身上都长满了“活密码”,指纹、脸、声音、眼睛等等,都是人和人之间相互区分的独一无二的标识,我们称之为“生物特征”。声音就是这种一种可以反映人身份的生物特征,参考“指纹”的命名方式,我们可以叫它“声纹”。
各种生物特征比较
声纹是指人类语音中携带言语信息的声波频谱,它同指纹一样,具备独特的生物学特征,具有身份识别的作用,不仅具有特定性,而且具有相对的稳定性。声音信号是一维连续信号,将它进行离散化后,就可以得到我们现在常见的计算机可以处理的声音信号。
计算机可以处理的离散声音信号
声纹识别(也称说话人识别)技术也如同现在在智能手机上应用十分广泛的指纹识别技术一样,从说话人发出的语音信号中提取语音特征,并据此对说话人进行身份验证的生物识别技术。每个人都具有独一无二的声纹,这是由我们的发声器官在成长过程中逐渐形成的特征。无论别人对我们的说话模仿的多么相似,声纹其实都是具有显著区别的。
现实生活中的“未见其人,先闻其声”就是人类通过声音去识别另一个人身份的真实描述,你妈甚至通过你电话里的一个“喂”字就知道是你,而不是隔壁老王家的儿子打的电话,这是我们人类经过长期进化所获得到的超常的能力。虽然目前计算机还做不到通过一个字就判断出人的身份,但是利用大量的训练语音数据,可以学出一个“智商”还不错的“声纹”大脑,它在你说出8-10个字的情况下可以判断出是不是你在说话,或者在你说1分钟以上的话后,就可以准确地判断出你是否是给定的1000人中的一员。这里面其实包含了大部分生物识别系统都适用的重要概念:1:1 和 1:N,同时也包含了只有在声纹识别技术中存在的独特的概念:内容相关和内容无关。
工作原理
对于一个生物识别系统而言,如果它的工作模式是需要你提供自己的身份(账号)以及生物特征,然后跟之前保存好的你本人的生物特征进行比对,确认两者是否一致(即你是不是你),那么它是一个1:1的识别系统(也可以叫说话人确认,Speaker Verification);如果它只需要你提供生物特征,然后从后台多条生物特征记录中搜寻出哪个是你(即你是谁),或者哪个都不是你,那么它是一个1:N的识别系统(也可以叫辨认,Speaker Identification),见图1。技术上,简单的声纹识别的系统工作流程图来见图2。
图1 说话人确认和说话人辨认
图2 声纹识别工作流程图
对于声纹识别系统而言,如果从用户所说语音内容的角度出发,则可以分为内容相关和内容无关两大类技术。顾名思义,“内容相关”就是指系统假定用户只说系统提示内容或者小范围内允许的内容,而“内容无关”则并不限定用户所说内容。前者只需要识别系统能够在较小的范围内处理不同用户之间的声音特性的差异就可以,由于内容大致类似,只需要考虑声音本身的差异,难度相对较小;而后者由于不限定内容,识别系统不仅需要考虑用户声音之间的特定差异,还需要处理内容不同而引起的语音差异,难度较大。
目前有一种介于两者之间的技术,可以称之为“有限内容相关”,系统会随机搭配一些数字或符号,用户需正确念出对应的内容才可识别声纹,这种随机性的引入使得文本相关识别中每一次采集到的声纹都有内容时序上的差异,这种特性正好与互联网上广泛存在的短随机数字串(如数字验证码)相契合,可以用来校验身份,或者和其他人脸等生物特征结合起来组成多因子认证手段。
具体到声纹识别算法的技术细节,在特征层面,经典的梅尔倒谱系数MFCC,感知线性预测系数PLP、深度特征Deep Feature、以及能量规整谱系数PNCC 等,都可以作为优秀的声学特征用于模型学习的输入,但使用最多的还是MFCC特征,也可以将多种特征在特征层面或者模型层面进行组合使用。在机器学习模型层面,目前还是N.Dehak在2009年提出的iVector框架一统天下,虽然在深度学习大红大紫的今天,声纹领域也难免被影响,在传统的UBM-iVector框架下衍化出了DNN-iVector,也仅仅是使用DNN(或者BN)提取特征代替MFCC或者作为MFCC的补充,后端学习框架依然是iVector。
图3示出了一个完整的声纹识别系统的训练和测试流程,可以看到在其中iVector模型的训练以及随后的信道补偿模型训练是最重要的环节。在特征阶段,可以使用BottleNeck特征取代或者补充MFCC特征,输入到iVector框架中训练模型,如图4所示。
图3 声纹识别算法的完整训练和识别框架
图4 使用BottleNeck特征训练iVector模型
在系统层面,不同的特征及模型,可以从不同的维度刻画说话人的声音特征,加上有效的分数规整,将各子系统融合能有效的提高系统的整体性能。
在此次的阿里聚安全攻防挑战赛,参赛选手便可以真实的感受这一过程。由阿里巴巴集团安全部主办的“阿里聚安全攻防挑战赛”即日起在天池平台开始报名。据了解此类比赛已成功举办过两届,并逐渐成为安全行业经典赛事品牌,主要是让参赛选手真实的挑战阿里巴巴移动安全和业务安全的防御。
本届挑战赛的最大亮点之一就是声纹身份验证攻防。参赛者可以尝试用声音攻击一套声纹验证系统,通过设计攻击用的音频骗过声纹验证系统,让系统验证成功。
赛事官方网址:https://tianchi.shuju.aliyun.com/mini/aliJuActivity.htm
作者:王炎@阿里聚安全,更多安全类技术文章,请访问阿里聚安全博客