崔艷秋,張俊星,李 敏,許 爽
(大連民族學(xué)院信息與通信工程學(xué)院,遼寧大連116605)
語音是人的自然屬性之一,由于發(fā)音器官的生理性差異以及后天所形成的發(fā)音習(xí)慣的行為差異,不同說話人的語音具有鮮明的個人特征,這使得通過分析語音信號來識別說話人成為可能。說話人確認(rèn)屬于說話人識別中的一類,通過提取說話人語音中的個人特征來確定一個人的身份。說話人確認(rèn)所使用的語音是人體所固有的生物特征,不容易被冒充或竊取,可以隨時使用,并且可以利用電話網(wǎng)絡(luò)實現(xiàn)遠距離服務(wù),相對于傳統(tǒng)的密碼、鑰匙等身份識別方法更安全、更有效、更可靠,因此具有廣泛的應(yīng)用領(lǐng)域,越來越受到人們的重視。
LabVIEW是美國NI公司開發(fā)的一種編程語言和開發(fā)環(huán)境,是標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件[1],通過同計算機相結(jié)合可以組建自己的虛擬儀器。虛擬儀器利用計算機的軟、硬件資源,可以高效的實現(xiàn)數(shù)據(jù)的分析、處理、表達、傳遞、儲存,擴展了傳統(tǒng)儀器的功能。虛擬儀器的核心是軟件,用戶可以根據(jù)自己的需要自行設(shè)計或擴展儀器的功能,增強了工程人員構(gòu)建自己的科學(xué)或工程系統(tǒng)的能力,在各個領(lǐng)域得到廣泛應(yīng)用[2-4]。LabVIEW是一種圖形化的編程語言,編程簡單,而且提供了對聲卡進行操作的函數(shù)。借助LabVIEW軟件的這些優(yōu)勢,本文開發(fā)了一個說話人確認(rèn)系統(tǒng),該系統(tǒng)以計算機作為硬件平臺實現(xiàn)數(shù)據(jù)的采集,以LabVIEW和MATLAB作為軟件平臺實現(xiàn)語音的分析和說話人的確認(rèn)。該系統(tǒng)界面友好,操作方便,既可以作為一個系統(tǒng)用于出入境管理、金融服務(wù)、信息安全(個人隱私保護)等需要身份認(rèn)證的領(lǐng)域,也可以作為一個實驗平臺用于各種說話人識別和語音識別算法的仿真分析。
說話人識別是從說話人的語音信號中自動提取說話人的特征,并對說話人進行識別的研究。它同語音識別不同,目的不是識別說話人講的內(nèi)容,而是識別說話人是誰。按其最終完成的任務(wù),說話人識別可以分為兩類:說話人確認(rèn)和說話人辨認(rèn)。本質(zhì)上,它們都是根據(jù)說話人所說的測試語句或關(guān)鍵詞,從中提取與說話人本人特征有關(guān)的信息,再與存儲的參考模型比較,做出正確的判斷。不過,自動說話人確認(rèn)是確認(rèn)一個人的身份,只涉及一個特定的參考模型和待識別模式之間的比較,系統(tǒng)只做出“是”或“不是”的二元判斷。
說話人識別屬于語音信號的模式識別問題。典型的說話人識別系統(tǒng)的結(jié)構(gòu)如圖1,包括預(yù)處理、特征提取、建立參考模板、模式匹配和判決等幾大部分[5]。建立一個說話人識別系統(tǒng)可以分為兩個階段:訓(xùn)練階段和識別階段。訓(xùn)練階段的目的是提取說話人的特征參數(shù),建立每個說話人的模板或者模型參數(shù)參考集;識別階段的目的則是把待識別語音的特征參數(shù)和訓(xùn)練好的模板集進行比較,并根據(jù)一定的相似性準(zhǔn)則進行判定,給出識別結(jié)果。對于說話人確認(rèn)而言,則是將輸入語音中的特征參數(shù)與聲言為某人的參考量相比較,如果兩者的距離小于規(guī)定的閾值,則予以確認(rèn),否則予以拒絕。
圖1 說話人識別系統(tǒng)框圖
本文設(shè)計的說話人確認(rèn)系統(tǒng)由軟、硬件兩部分組成。硬件部分的主要任務(wù)是通過麥克風(fēng)和計算機上的聲卡將語音信號轉(zhuǎn)換為電信號,經(jīng)過A/D轉(zhuǎn)換,以數(shù)字信號的形式傳入計算機;軟件部分的主要任務(wù)是數(shù)字語音信號的分析和識別。
為了完成語音的采集和數(shù)字化,硬件一般包括三個部分:傳感器及信號調(diào)理電路,A/D轉(zhuǎn)換電路,PC機接口電路。但是由于聲卡已經(jīng)成為計算機的標(biāo)準(zhǔn)配置,而且LabVIEW提供了對聲卡進行操作的函數(shù),所以在本系統(tǒng)中直接采用話筒和聲卡實現(xiàn)這部分功能。
LabVIEW最顯著的特性之一是對數(shù)據(jù)的圖形化顯示提供了豐富的支持。本系統(tǒng)借助LabVIEW的這一優(yōu)勢設(shè)計了功能強大、友好的系統(tǒng)用戶界面。但是LabVIEW的數(shù)據(jù)處理功能不夠強大,而本系統(tǒng)需要進行大量復(fù)雜的運算。為了彌補Lab-VIEW這方面的不足,本系統(tǒng)在LabVIEW中通過MATLAB Script節(jié)點調(diào)用MATLAB程序來完成語音的預(yù)處理和說話人的確認(rèn)等復(fù)雜運算。本系統(tǒng)所用的LabVIEW版本為LabVIEW7.1。整個系統(tǒng)從功能上可以分為語音采集模塊、訓(xùn)練模塊、確認(rèn)模塊三部分,系統(tǒng)的前面板如圖2。
圖2 程序前面板
(1)語音采集模塊
該模塊對應(yīng)的程序框圖如圖3。
圖3 語音采集模塊程序框圖
LabVIEW7.1中提供了一系列與聲卡有關(guān)的函數(shù),這些函數(shù)集中在Sound VI子模板下。這些函數(shù)都是利用Windows底層函數(shù)編寫的,所以靈活、速度快,能夠滿足實時不間斷采集的需要。語音采集模塊主要利用這些函數(shù)來完成聲卡參數(shù)的設(shè)置、語音信號的采集、語音波形的顯示,以及最后聲卡等一系列系統(tǒng)資源的釋放。利用該模塊,用戶可以在前面板設(shè)置聲卡的技術(shù)參數(shù)、啟動語音信號的采集,并且可以同時看到采集的語音波形。
(2)訓(xùn)練模塊
訓(xùn)練模塊主要完成訓(xùn)練階段語音信號的預(yù)處理、特征提取以及特征的存儲等工作,對應(yīng)的程序框圖如圖4。預(yù)處理工作包括數(shù)字語音信號的預(yù)加重、分幀、加窗以及端點檢測,主要是通過調(diào)用MATLAB節(jié)點中的預(yù)處理函數(shù)MyPreprocessor來實現(xiàn)的。由唇端輻射引起的能量損耗,使得語音信號能量在高頻處要明顯地小于低頻和中頻處,這樣就導(dǎo)致語音信號的頻譜通常是頻率越高譜值越小[6]。預(yù)加重的目的就是增強語音信號的高頻部分,使信號的頻譜變得平坦,以便于統(tǒng)一的分析和處理。本系統(tǒng)讓語音信號通過一個傳遞函數(shù)為H(z)=1-0.937 5 z-1的濾波器來實現(xiàn)預(yù)加重的作用。分幀、加窗的目的是把語音信號分為一個個短時段,從而可以把語音信號近似為平穩(wěn)信號來處理。本系統(tǒng)采用的是交疊分幀的方法,幀長為256個采樣點,幀移為80個采樣點,所用的窗函數(shù)為漢明窗。端點檢測的目的是去除無聲段保留濁音和清音段以備進行特征參數(shù)分析。本系統(tǒng)采用的是基于短時能量和平均過零率的雙門限法[7]來進行端點檢測。特征提取是通過調(diào)用MATLAB節(jié)點中的特征提取函數(shù)mfcc來實現(xiàn)的,提取的特征是Mel頻率倒譜參數(shù)。訓(xùn)練時獲得的特征參數(shù)最后利用LabVIEW函數(shù)Write To Spreadsheet File.vi存儲在文件中。此外,為了防止訓(xùn)練中提取的有效語音段太短,在系統(tǒng)中設(shè)置了一個閾值。如果采用的幀數(shù)大于該閾值則訓(xùn)練成功,否則判定為訓(xùn)練失敗。如圖5為訓(xùn)練成功時對應(yīng)的前面板。
圖4 訓(xùn)練模塊的程序框圖
圖5 訓(xùn)練成功時的前面板
(3)確認(rèn)模塊
確認(rèn)模塊主要完成識別階段語音信號的預(yù)處理、特征提取以及模式匹配等工作,對應(yīng)的程序框圖如圖6。預(yù)處理和特征提取過程的作用同訓(xùn)練模塊中的預(yù)處理和特征提取過程類似,主要是完成識別階段語音信號的預(yù)加重、分幀、加窗、端點檢測以及Mel頻率倒譜特征參數(shù)的提取。模式匹配過程主要在MATLAB節(jié)點中進行,函數(shù)dtw利用動態(tài)時間規(guī)整(DTW)算法把待確認(rèn)者語音中提取出的特征參數(shù)同文件中讀出的特征模板進行匹配。如果最后算得的距離小于給定的閾值則予以肯定,否則予以拒絕。最后的識別結(jié)果顯示在前面板,如圖7。
圖6 確認(rèn)模塊的程序框圖
圖7 確認(rèn)成功時的前面板
本實驗在實驗室環(huán)境下進行。實驗時,聲卡參數(shù)通過前面板設(shè)置為單聲道、采樣頻率為11025 Hz,數(shù)據(jù)格式為16位字長。本系統(tǒng)為與文本有關(guān)的說話人確認(rèn)系統(tǒng),訓(xùn)練和識別所用的音節(jié)顯示在前面板的“口令”文本框中。訓(xùn)練時,每個說話人對指定的音節(jié)發(fā)音;識別時,每個說話人再對(同訓(xùn)練時)相同的音節(jié)發(fā)音。對于30個真的待確認(rèn)者,每人進行10次實驗,此系統(tǒng)的錯誤拒絕率為1%;對于20個假的待證實者,每人進行10次實驗,錯誤接受率為0.5%。從實驗結(jié)果可以看出,該系統(tǒng)較好的完成了對說話人身份的確認(rèn),識別準(zhǔn)確率較高。該系統(tǒng)采用的識別特征是Mel頻率倒譜參數(shù),匹配方法采用的是動態(tài)時間規(guī)整方法,用戶可以根據(jù)自己的需要靈活的升級算法,以獲得更好的識別效果。
本文設(shè)計了一個基于LabVIEW的說話人確認(rèn)系統(tǒng)。該系統(tǒng)以計算機作為硬件平臺、以麥克風(fēng)作為輸入設(shè)備,有強大的語音處理功能,能夠?qū)崟r、準(zhǔn)確地對說話人的身份進行確認(rèn)。同人臉識別、虹膜識別等其它生物特征識別系統(tǒng)相比,該系統(tǒng)輸入設(shè)備成本低,且不涉及隱私問題,用戶易于接受。系統(tǒng)界面友好,開發(fā)和維護費用低,易于同安全、監(jiān)控、管理系統(tǒng)整合,可以廣泛應(yīng)用于出入境管理、金融服務(wù)、信息安全等需要身份認(rèn)證的領(lǐng)域。同時,該系統(tǒng)也為構(gòu)建說話人識別和語音識別系統(tǒng)提供了一個有效的框架。用戶可以將它作為一個實驗平臺,根據(jù)需要靈活的升級算法,以實現(xiàn)對各種說話人識別和語音識別算法的仿真分析。
[1]侯國屏,王坤,葉齊鑫.LabVIEW7.1編程與虛擬儀器設(shè)計[M].北京:清華大學(xué)出版社,2005.
[2]王茜蒨,劉佳,彭中,等.基于LabView的激光束發(fā)散角測量系統(tǒng)[J].中國激光,2012,39(11):122-125.
[3]陳明星,朱靈,張龍,等.基于LabVIEW的光纖傅里葉變換光譜儀數(shù)據(jù)處理技術(shù)[J].儀器儀表學(xué)報,2010,31(3):488-492.
[4]LIU Yi.Analysis on virtual assembly technique of chemical engineering technological process based on labVIEW[J].Journal of Convergence Information Technology,2013,8(3):11-18.
[5]趙力.語音信號處理[M].2版.北京:機械工業(yè)出版社,2011.
[6]吳朝暉,楊瑩春.說話人識別模型與方法[M].北京:清華大學(xué)出版社,2009.
[7]何強,何英.MATLAB擴展編程[M].北京:清華大學(xué)出版社,2002.