论文部分内容阅读
USB接口借助其通用性和使用方便性,成为越来越多的手持设备乃至较大型外接设备的标准接口。以USB为传输接口的密钥系统也在安全系统领域普及,但是单纯把加密数据保存在USB密钥中并不能完全保证用户数据的安全,密钥的丢失会给用户数据带来失窃的可能。语音识别技术从上世纪五六十年代即开始研究,目前已经进入了一个较为成熟的应用阶段,所以本文考虑使用用户永远丢不了的东西:声音作为安全保证。选择求取语音信号的MFCC特征值作为用户数据比对留存。此外,提出了一种把语音信号的采集与处理放置在手持嵌入式设备上完成的方案。这样既有助于把语音特征数据在设备端做单独加密,进一步增强系统的安全性;也减轻了服务器端的运算压力,使服务器远程验证密钥成为可能。本文采用USB接口作为密钥设备与服务器主机端的信息交互接口,基于USB Audio设备类协议,设计了控制麦克风的USB音频设备结构。为了增强系统的通用性,选择Windows xp作为服务器工作的操作系统,在设备端和主机端设计了USB密钥系统通讯协议,用于主机配置设备端音频ADC采样特性和MFCC特征值提取方案,以及设备向主机端反馈音频ADC当前配置和发送提取得到的MFCC特征值。这套通讯协议建立在操作系统标准usbaudio.sys驱动基础之上,在主机端通过调用Windows api音频库函数实现,使该系统无需开发和安装专用主机驱动程序,也简化了本系统的使用。本文分析了MFCC特征提取算法,提出了在语音输入准备期先录入一定帧数的环境噪声,通过对环境噪声的频谱分析,对其后录入的语音做改进谱相减操作,以消除白噪声。而对音乐噪声残留,设计了“首次录入密语掩蔽比较法”,即在主机端,对在较安静环境下首次录入的密语做谱相减后的语音信号,求取其掩蔽门限值并保存,这样之后每次做验证操作时,比较环境噪声功率谱密度和掩蔽门限以决定是否进行掩蔽门限去噪操作。增强算法准确性的同时,尽可能降低了算法的复杂度。针对嵌入式系统运行环境,本文改进了浮点转定点的运算结构,按照MFCC算法步骤需要,将浮点转定点的转换分为三类:单纯浮点参数转换、单纯浮点函数转换和特定浮点函数转换。其中对单纯浮点函数转换,采纳了坐标旋转数字计算机(CORDIC)算法实现。而对特定浮点函数转换,采用查表法实现,为了减小设备端固件程序大小,将特定浮点函数值列表预先建立和保存在主机端,在开启语音验证操作前,通过自定义USB音频密钥通讯协议,按照用户在主机端对音频设备和MFCC特征提取的配置,将相应函数值列表通过USB发送给设备使用,大大缩小了代码占用空间。本文尝试采用结合USB接口的通用性和语音识别技术的安全性,达成一个安全方便的手持式音频密钥,并且完成了从设备端固件到服务器主机端应用程序的设计,实验测试结果表明,本系统对时长3秒左右的密语,最高在16K赫兹采样率下能同时保证实时性和82.5%的辨识率。本文提出的方案、音频密钥通信协议和改进的算法均达到了预期的效果。