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