王志琪,朱婧雯,王振帥,盧新祥
(紹興文理學院數理信息學院,浙江紹興,312000)
關鍵字:STM32;門禁系統;聲紋識別;梅爾倒譜系數特征;高斯混合模型;訊飛開放平臺
在使用傳統鎖具前,人們需要進行學習及數次模擬如何使用鑰匙開鎖,并將時刻保持鑰匙不離身的長期行為習慣。基于信息技術的智能門禁則將人們從繁瑣中解放出來,這些技術包括人臉識別、指紋識別、聲紋識別、數字密碼等,它們各具優勢。應用聲紋鎖,我們只要像往常一樣說話、給機器下達指令,系統就會自動識別用戶身份,使用非常方便。更重要的是,在新冠疫情大流行的背景下,采用聲紋識別的方式無需使用者摘下口罩、接觸指紋識別模塊等,完全可以在無接觸的情況下提供身份驗證服務,為人們提供更安全高效的門禁服務。
現在成熟的聲紋識別技術大多基于聯合因子分析、卷積神經網絡等需要大量計算、數據的識別方法。本文設計一種利用高斯混合模型的聲紋識別系統并用于鎖具,基于STM32平臺,具有計算量小、無接觸等特點。
如圖1所示,本系統主要分為系統控制模塊、嵌入式聲紋處理模塊、鎖體模塊三個主要部分,以及兩個擴展模塊(虛線框):手機APP模塊和藍牙傳輸模塊。系統具有直接驗證和使用APP驗證兩種工作模式。在直接驗證模式,用戶僅需在初始化的聲紋錄入階段使用系統控制模塊中的屏幕、麥克風進行錄入,而在驗證時,只要靠近說話,當累積能量大于閾值時即可觸發聲紋驗證并執行開鎖。在APP驗證模式中,預先綁定的手機端APP進行交互和驗證,驗證通過后,通過藍牙向系統控制模塊發送驗證成功消息,在系統控制模塊接收到驗證成功的消息后驅動舵機開鎖。

圖1 系統框圖
圖2為系統實物圖,其中“1”是系統控制模塊,“2”是開鎖舵機,“3”是藍牙傳輸模塊,“4”是手機APP模塊。

圖2 系統實物圖
系統控制模塊位于鎖的外殼中,具有屏幕和按鍵與用戶進行交互。模塊選取高速、低功耗的STM32F429作為核心芯片,其主頻可達180 MHz,且具備一套完整的DSP指令集,有豐富的資源和可觀的處理速度來實現對聲音信號的保存、處理和建模。系統控制模塊的流程如圖3所示。

圖3 系統控制模塊流程圖
(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)聲紋識別
由于高斯混合模型是一個概率模型,可以采用后驗概率作為相似匹配的分數,可以通過最大化似然函數判別得到最相似的說話人。最大化對數似然函數公式:

此模塊為擴展模塊,用于安全性要求高、無接觸的身份驗證。用戶可以注冊賬戶登錄手機APP,能夠在手機中進行聲紋錄入和識別驗證兩種操作,具體流程如下:
當用戶選擇聲紋錄入時,手機上會顯示5段由8位數字組成的文本,用戶讀完這些文本,聲紋便建模成功。對于APP上的聲紋建模和識別,在訊飛開放平臺共享的庫中包含安卓平臺的聲紋識別接口,將用戶名和操作指令傳入接口即可對聲紋進行建模或驗證。
當需要聲紋驗證時,APP會隨機生成8位數字,在用戶朗讀8位數字時進行錄音建模,再將識別結果通過藍牙模塊發送給藍牙傳輸模塊,即可實現開門操作。整體流程見圖4。

圖4 擴展模塊流程圖
此模塊為擴展模塊。主控芯片通過HC-05藍牙模塊與手機APP實現通信,HC-05具有兩種工作模式:命令響應工作模式和自動連接工作模式,滿足STM32和安卓手機通信的需求。在登錄APP時,手機會向系統控制模塊自動發送配對信號,系統控制模塊收到此配對信號后,向手機返回驗證,形成連接。
門鎖模塊外部結構與傳統的鎖體相同,可以直接裝入傳統的門中。模塊主要包含舵機及其驅動、傳動部件、鎖舌等。模塊內部示意圖如圖5所示。

圖5 門鎖模塊示意圖
舵機的驅動信號由控制模塊提供,通過將舵機和傳動部件相連即可驅動鎖舌進行開關門動作。由于鎖體的空間狹小且鎖舌與外部結構往往存在不小的摩擦,門鎖模塊采用MG-995舵機來轉動傳動部件,MG-995扭矩可達13kg/cm,其扭矩可以輕松轉動傳動部件,且具有一定的冗余量。其次,它具有180°轉動角度,可以實現關門、反鎖等動作,滿足門鎖需求。
本文研究了基于Cortex-M4和安卓平臺的聲紋識別技術的門禁系統,將效率高、計算量小的聲紋識別模塊移植入STM32中,同時在APP中使用訊飛開放平臺的接口,有很好的識別精度和較高的安全性,再通過藍牙將安卓與主控模塊相連,從而實現無接觸式的門禁系統。