当前位置:首页 期刊杂志

基于声纹识别技术的简易门禁系统

时间:2024-08-31

王志琪,朱婧雯,王振帅,卢新祥

(绍兴文理学院数理信息学院,浙江绍兴,312000)

关键字:STM32;门禁系统;声纹识别;梅尔倒谱系数特征;高斯混合模型;讯飞开放平台

0 引言

在使用传统锁具前,人们需要进行学习及数次模拟如何使用钥匙开锁,并将时刻保持钥匙不离身的长期行为习惯。基于信息技术的智能门禁则将人们从繁琐中解放出来,这些技术包括人脸识别、指纹识别、声纹识别、数字密码等,它们各具优势。应用声纹锁,我们只要像往常一样说话、给机器下达指令,系统就会自动识别用户身份,使用非常方便。更重要的是,在新冠疫情大流行的背景下,采用声纹识别的方式无需使用者摘下口罩、接触指纹识别模块等,完全可以在无接触的情况下提供身份验证服务,为人们提供更安全高效的门禁服务。

现在成熟的声纹识别技术大多基于联合因子分析、卷积神经网络等需要大量计算、数据的识别方法。本文设计一种利用高斯混合模型的声纹识别系统并用于锁具,基于STM32平台,具有计算量小、无接触等特点。

1 系统构成

如图1所示,本系统主要分为系统控制模块、嵌入式声纹处理模块、锁体模块三个主要部分,以及两个扩展模块(虚线框):手机APP模块和蓝牙传输模块。系统具有直接验证和使用APP验证两种工作模式。在直接验证模式,用户仅需在初始化的声纹录入阶段使用系统控制模块中的屏幕、麦克风进行录入,而在验证时,只要靠近说话,当累积能量大于阈值时即可触发声纹验证并执行开锁。在APP验证模式中,预先绑定的手机端APP进行交互和验证,验证通过后,通过蓝牙向系统控制模块发送验证成功消息,在系统控制模块接收到验证成功的消息后驱动舵机开锁。

图1 系统框图

图2为系统实物图,其中“1”是系统控制模块,“2”是开锁舵机,“3”是蓝牙传输模块,“4”是手机APP模块。

图2 系统实物图

2 系统设计

2.1 系统控制模块

系统控制模块位于锁的外壳中,具有屏幕和按键与用户进行交互。模块选取高速、低功耗的STM32F429作为核心芯片,其主频可达180 MHz,且具备一套完整的DSP指令集,有丰富的资源和可观的处理速度来实现对声音信号的保存、处理和建模。系统控制模块的流程如图3所示。

图3 系统控制模块流程图

2.2 嵌入式声纹处理模块

(1)音频信号预处理

考虑到主控芯片的处理效率、减少用户等待时间等因素,在进行建模之前,先对收集到的音频进行预处理:

①将环境声音和人声分离,通过计算累积能量区分环境声和人声,若累积能量大于阈值,则该段语言为有效训练语音。累积能量公式如下:

②对于采集到的一整段不定长的音频信号,为了从其中提取出固定长度的特征向量,需要将音频信号进行分帧,每25ms为一帧,每两帧的开始时间间隔10ms。如此经过分帧之后再提取特征,不仅能大幅减少需处理的数据量,还能很好地提取出声纹特征。

③加窗以减小吉布斯现象和频谱泄露的影响。分帧之后,若对信号直接进行傅里叶变换,由于不连续点的存在,会产生高频分量,即吉布斯效应。因此需要将分帧之后的数据乘以汉明窗,将接近于零的权重赋予不连续点。加窗公式如下:

其中汉明窗为:

式中,0 ≤n≤N−1,N-1为总帧数。

(2)梅尔倒谱系数的提取

通过离散傅里叶变换将预处理后的信号v′(n)转换成频谱。鉴于人耳对低频更加敏感的特性,还需将频谱通过一组按照梅尔刻度。设计好的三角带通滤波器组,再计算每帧语音的对数能量:

式中,MEL为梅尔滤波器组。再对此对数能量进行逆离散余弦变换得到倒谱,其系数数组就是一帧语音信号的MFCC参数:

式中D为每组MFCC参数数量(D=20)。

(3)训练说话者高斯混合模型

利用上一步已经保留的说话者的所有MFCC参数,可训练出包含说话者特征的GMM0。高斯混合模型主要公式为:

其中→为n维随机矢量,→表示GMM所有参数的集合,ci为第i个高斯分量的权重且满足为第i组高斯分量,是一个标准的多元正态分布。

由此,一个说话者的特征可由以下参数表示:

在明确了主要公式之后,采用期望值最大化算法。设定起始参数λ,迭代计算。由k-均值算法获取,M是MFCC参数矢量维度(M=20)。

在第t步迭代中,假设当前参数是t-1,则在第i个高斯分量上的后验概率为

(4)声纹识别

由于高斯混合模型是一个概率模型,可以采用后验概率作为相似匹配的分数,可以通过最大化似然函数判别得到最相似的说话人。最大化对数似然函数公式:

2.3 手机APP模块

此模块为扩展模块,用于安全性要求高、无接触的身份验证。用户可以注册账户登录手机APP,能够在手机中进行声纹录入和识别验证两种操作,具体流程如下:

当用户选择声纹录入时,手机上会显示5段由8位数字组成的文本,用户读完这些文本,声纹便建模成功。对于APP上的声纹建模和识别,在讯飞开放平台共享的库中包含安卓平台的声纹识别接口,将用户名和操作指令传入接口即可对声纹进行建模或验证。

当需要声纹验证时,APP会随机生成8位数字,在用户朗读8位数字时进行录音建模,再将识别结果通过蓝牙模块发送给蓝牙传输模块,即可实现开门操作。整体流程见图4。

图4 扩展模块流程图

2.4 蓝牙传输模块

此模块为扩展模块。主控芯片通过HC-05蓝牙模块与手机APP实现通信,HC-05具有两种工作模式:命令响应工作模式和自动连接工作模式,满足STM32和安卓手机通信的需求。在登录APP时,手机会向系统控制模块自动发送配对信号,系统控制模块收到此配对信号后,向手机返回验证,形成连接。

2.5 门锁模块

门锁模块外部结构与传统的锁体相同,可以直接装入传统的门中。模块主要包含舵机及其驱动、传动部件、锁舌等。模块内部示意图如图5所示。

图5 门锁模块示意图

舵机的驱动信号由控制模块提供,通过将舵机和传动部件相连即可驱动锁舌进行开关门动作。由于锁体的空间狭小且锁舌与外部结构往往存在不小的摩擦,门锁模块采用MG-995舵机来转动传动部件,MG-995扭矩可达13kg/cm,其扭矩可以轻松转动传动部件,且具有一定的冗余量。其次,它具有180°转动角度,可以实现关门、反锁等动作,满足门锁需求。

3 总结

本文研究了基于Cortex-M4和安卓平台的声纹识别技术的门禁系统,将效率高、计算量小的声纹识别模块移植入STM32中,同时在APP中使用讯飞开放平台的接口,有很好的识别精度和较高的安全性,再通过蓝牙将安卓与主控模块相连,从而实现无接触式的门禁系统。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!