王會清,張 濤, 周 帆
( 1.武漢工程大學(xué)智能機(jī)器人湖北省重點實驗室,湖北 武漢 430074; 2.武漢工程大學(xué)計算機(jī)科學(xué)與工程學(xué)院.湖北 武漢 430074 )
聲紋識別系統(tǒng)是對人的聲音進(jìn)行特征識別和確認(rèn),分辨不同個體的裝置,是信息安全的重要組成部分.在網(wǎng)絡(luò)時代,電子商務(wù)、網(wǎng)絡(luò)銀行等網(wǎng)絡(luò)上的雙方交互,利用聲紋識別技術(shù)不需要采用加密算法和建立嚴(yán)密的安全認(rèn)證體系,不需本人到場,只需在網(wǎng)絡(luò)服務(wù)器上安裝聲紋識別軟件,用戶的客戶機(jī)上備有話筒即可.這種識別方法不會出現(xiàn)遺忘、被盜現(xiàn)象,滿足“隨身攜帶”的特點,很難進(jìn)行偽造,是確保信息安全的好方法.并且,其應(yīng)用價值還可體現(xiàn)在諸如門禁系統(tǒng),用語音控制門鎖的自動開啟;電話銀行可用語音控制轉(zhuǎn)賬密碼;以及情報監(jiān)聽、各種聲音的鑒別系統(tǒng)等方面.
以聲卡為數(shù)據(jù)采集卡,LabVIEW(虛擬儀器)軟件為開發(fā)平臺,進(jìn)行語音采集、分析與識別研究.系統(tǒng)首先采集鑒別體發(fā)出的語音樣本,通過學(xué)習(xí)建立該個體的應(yīng)用模型.一旦該模型被調(diào)入系統(tǒng),系統(tǒng)就會對待測語音進(jìn)行識別,并提示匹配程度.
聲紋識別技術(shù)與語音的生理特性及行為特性密切相關(guān).說話者嗓音體現(xiàn)其生理學(xué)和行為特征,可以運用語言學(xué)模式進(jìn)行分析,根據(jù)說話人語音波形中反映其生理和行為特征的語音參數(shù)來識別說話人的身份.聲紋識別本質(zhì)上是一種模式識別的過程,是對個性特征的認(rèn)識,所以特征提取非常重要.每個人的聲音都有自己的頻率、聲調(diào)以及斷續(xù)特征,經(jīng)過學(xué)習(xí)和鑒別,分析并處理說話人語音信號波形,在確定的頻率段提取頻率時間序列,為每個人構(gòu)造一個具有指紋特征的數(shù)字化文件,以特征模型的形式存儲在計算機(jī)中.應(yīng)用時系統(tǒng)采集待識別的目標(biāo)聲音數(shù)據(jù),經(jīng)過相同的分析和處理,與存檔的樣本聲音文件進(jìn)行精確匹配,從而得出二者是否一致的判斷[1].
聲紋識別系統(tǒng)的主要任務(wù)包含:語音信號的采集與處理、聲紋特征提取和構(gòu)建模型、模型匹配與識別,其工作過程如圖1所示,分為建模和識別兩個分支過程.首先建立鑒別對象的聲紋模型文件.采集和分析語音信號,經(jīng)過濾波降噪等必要的處理后,進(jìn)行特征提取,即從聲音數(shù)據(jù)中選取唯一表現(xiàn)說話人的有效且穩(wěn)定可靠的特征,將其提取后生成用戶聲紋模型文件存放在計算機(jī)中.在聲紋識別過程中最主要的內(nèi)容是特征提取和模式匹配.特征提取就是從聲音中選取唯一表現(xiàn)說話人身份的有效且穩(wěn)定可靠的特征;模式匹配就是把提取的特征與建模存檔文件做相似性匹配.識別時,現(xiàn)場向系統(tǒng)輸入特定語音,提取其特征,同預(yù)先存儲的特征模式進(jìn)行相似性匹配,根據(jù)匹配結(jié)果確定其真假.
圖1 聲紋識別系統(tǒng)工作流程Fig.1 The voiceprint recognition systems workflow
從圖1可知系統(tǒng)的設(shè)計與實現(xiàn)分二步進(jìn)行:一是建模步驟,包括語音的學(xué)習(xí)與注冊階段.考慮到用戶聲紋模型應(yīng)該代表該用戶的常態(tài)語音特征,建模步驟中系統(tǒng)多次、重復(fù)從注冊語音信號中提取聲紋特征序列,取平均構(gòu)建說話人的特征模型;二是識別步驟,包括語音特征提取和聲紋確認(rèn)階段.對待認(rèn)證人的語音信號進(jìn)行特征提取后,與學(xué)習(xí)階段的模板進(jìn)行比較,通過判斷測試語音與所聲稱說話人的模型之間的相似度是否大于所規(guī)定的判決閾值作為識別的結(jié)果.無論是建模還是識別,都需要首先對輸入的原始語音進(jìn)行預(yù)處理,并進(jìn)行特征提取.注冊語音錄入和待檢語音錄入兩個子系統(tǒng)由同一個硬件及軟件機(jī)構(gòu)完成.本文的聲紋識別系統(tǒng)是文本聲紋認(rèn)證,要求說話人提供指定的語句或詞語,即注冊語音,進(jìn)行學(xué)習(xí),認(rèn)證時必須輸入與注冊語音相同的內(nèi)容.學(xué)習(xí)時,每個說話人重復(fù)一定次數(shù)的發(fā)音,然后檢測并分析每次發(fā)聲的語音段,以提取特征,并利用動態(tài)時間規(guī)整技術(shù),在時間上對齊特征序列且多次平均,形成每個說話人的參考模型.識別時,對語音信號進(jìn)行特征分析,然后計算與參考模型的差距,與設(shè)定的閾值比較,若高于閾值則拒絕判決,低于閾值則接受判決.
數(shù)據(jù)采集過程分為三步:初始化配置聲卡、采樣、釋放聲卡.首先對聲卡進(jìn)行設(shè)置,用LabVIEW自帶的Sound Input config(聲音輸入設(shè)置)來配置聲卡采樣所需的各個參數(shù).將聲卡的采樣率設(shè)為11 025 Hz,采樣位數(shù)為8位,采樣方式為單通道,并設(shè)置131 072字節(jié)大小的緩沖區(qū),以保證聲卡與CPU(中央處理器)協(xié)調(diào)工作.然后進(jìn)入樣本聲音錄入程序[2].
聲卡對外部信號的采樣在起始部分會有一些不穩(wěn)定的數(shù)據(jù),因此忽略開始的一段數(shù)據(jù).在前面板設(shè)置了一個啟動按鈕,沒有按動啟動按鈕時,程序處于等待循環(huán)階段.當(dāng)用戶單擊按鈕時,開始錄制聲音,根據(jù)用戶設(shè)置的聲音格式從聲卡獲得數(shù)據(jù)、存儲以及轉(zhuǎn)到信號分析處理模塊.在程序框圖設(shè)計中,為避免系統(tǒng)對聲音的錯誤記錄,安排了有效音頻等待環(huán)節(jié),只有當(dāng)系統(tǒng)檢測到的語音信號幅值超過預(yù)先設(shè)定值8(經(jīng)多次實驗確定)后,開始對聲音信號進(jìn)行采集.該子程序?qū)⒉杉男盘栕鳛橐粋€波形,通過“提取單頻信息”模塊提取信號主頻率的幅值,當(dāng)信號的主頻率幅值大于8,則進(jìn)入信號處理環(huán)節(jié),即將有效的波形信號用帶通濾波器濾波后,對波形作快速傅立葉變換,提取出主頻率,否則繼續(xù)等待.啟動前后的等待環(huán)節(jié)均采用While循環(huán).將單擊啟動按鈕作為啟動前循環(huán)停止的條件.在單擊按鈕之前,系統(tǒng)處于等待錄制命令的狀態(tài).當(dāng)單擊事件發(fā)生,進(jìn)入后面的等待循環(huán).程序每循環(huán)一次,聲卡采集的信號形成一個波形,再用“提取單頻信息”模塊提取波形的主頻率的幅值進(jìn)行判斷,當(dāng)幅值高于設(shè)定值8時,退出While循環(huán),進(jìn)入錄制環(huán)節(jié).
語音錄制與建模子程序主要是實現(xiàn)系統(tǒng)用戶注冊聲音樣本功能,即用戶向系統(tǒng)輸入自己的語音,經(jīng)過提取聲紋的主要特征,然后作為唯一的“密鑰”存檔.由于每個人說話時,內(nèi)容不同,語音特征頻率也不同,因此,當(dāng)有語音輸入時,對語音信號進(jìn)行連續(xù)10次采樣.每循環(huán)一次,將聲卡采集的信號用“提取單頻信息”模塊提取波形主頻率的幅值[3-4].
其核心是通過對錄入的語音按時間順序進(jìn)行采集,提取出每一段信號的主頻率,組成一個頻率時間序列.這個頻率時間序列表征了用戶語音的特征信息.該特征信息不僅和語音的頻率有關(guān),還與語音的內(nèi)容有關(guān).用戶需要說一句特定的話,并且用特定的語速,才能被系統(tǒng)正確識別.這樣,就將聲音樣本信號變換成特征矢量文件.然后根據(jù)樣本信號的特征矢量的分布狀態(tài),建立聲紋識別模型.
該子程序通過SI Read(聲音讀入子)模塊讀取聲音輸入,輸入的語音信號捆綁為一個波形后,按時間先后創(chuàng)建波形,通過濾波器和窗模塊對信號進(jìn)行處理,窗是用于時間信號的時域窗,選為Hanning(漢字窗).濾波后的信號分兩路:一路是時間信號作為時域波形的輸入數(shù)組.通過連線數(shù)據(jù)至FFT(快速傅立葉變換)模塊的時間信號輸入端,計算時間信號的平均FFT頻譜,輸出的結(jié)果為平均FFT譜的幅度范圍,至前面板的波形圖顯示;另一路的信號作為提取部分信號模塊的輸入信號,將動態(tài)數(shù)據(jù)類型轉(zhuǎn)換成數(shù)組數(shù)據(jù)類型,其輸出轉(zhuǎn)換為波形數(shù)據(jù)一維數(shù)組送給提取單頻信息模塊.實現(xiàn)在輸入的時域波形信號中,查找幅值最高的單頻,返回單頻的頻率、幅值和相位.在該模塊的輸出端檢測到的單頻的頻率,就是提取的單頻信息,輸出給前面板的樣本聲音頻率顯示控件.
作為提取信號特征模塊的輸入信號,查找幅值最高的單頻,或在指定頻域內(nèi)搜索,返回單頻的頻率、幅值和相位.輸入信號可以是實數(shù)或復(fù)數(shù)、單個通道或多通道.其時間信號輸入為時域波形,檢測到的頻率是檢測到的單頻的頻率,以赫茲為單位.檢測到的幅度是檢測到的單頻的幅度,以Vp為單位.該子VI(虛擬儀器子程序)用于在While循環(huán)內(nèi)部連續(xù)處理單通道或多通道.提取單頻信息的詳細(xì)信息可通過下式表示實數(shù)單頻信號:
式中,A、f和φ分別是單頻信號的是幅值、頻率和相位,F(xiàn)s是輸入波形信號的采樣率.
復(fù)數(shù)單頻信號可通過下式表示:
式中,A、f和φ分別是單頻信號的是幅值、頻率和相位,F(xiàn)s是輸入波形信號的采樣率.
對于實數(shù)信號,頻率范圍=(0,F(xiàn)s/2).對于復(fù)數(shù)信號,頻率范圍=(-Fs/2,Fs/2).
程序設(shè)計同樣采用While循環(huán)對輸入的語音信號連續(xù)進(jìn)行10次采集,每次采集前都要進(jìn)入等待模式,以防止聲音的錯誤記錄.當(dāng)有語音信號輸入這一環(huán)節(jié)時,就進(jìn)行一次信號采集,對于采集的波形進(jìn)行帶通濾波,濾掉過低和過高的頻率成分,獲取有效的語音頻率成分.系統(tǒng)將濾波后的波形進(jìn)行快速傅立葉變換,提取出主頻率.然后等待下一次輸入,直到完成10次信號的采集.在這一過程中,用戶輸入的聲音信號被轉(zhuǎn)換成一個頻率時間序列.濾波器的參數(shù)設(shè)置為帶通濾波器.考慮到對系統(tǒng)產(chǎn)生干擾的噪聲頻率均較低,集中在幾十赫茲,因而低頻截止頻率設(shè)定為100 Hz,遠(yuǎn)大于工頻頻率,基本可以將低頻噪聲部分濾除,改善采集信號的質(zhì)量.高頻截止頻率設(shè)定為2 000 Hz,因為大多數(shù)人的語音主要成分在2 000 Hz以下,通過對高頻的濾波以避免系統(tǒng)對主頻率的誤判.此外,為了提高濾波器的選頻特性,選擇有限長沖激響應(yīng)濾波器.
用戶登錄系統(tǒng)時的用戶名是調(diào)取庫存語音特征文件的句柄,系統(tǒng)按用戶名檢索到該用戶的庫存密鑰.密鑰讀取模塊使用文件讀取控件讀出注冊的序列值.在輸入待測語音步驟用戶按下啟動按鈕,輸入自己的聲音.待檢聲音被采集后得到采樣數(shù)據(jù),系統(tǒng)通過聲音數(shù)據(jù)前端處理,提取其特征矢量.產(chǎn)生的頻率時間序列與讀取密鑰文件得到的序列被送入檢測模塊,進(jìn)行匹配計算.模型匹配計算過程如下:使用取整模塊對密鑰語音和待檢聲音兩個時間頻率序列取整數(shù),并對兩個取整后的時間頻率序列做減法,得到一個差值序列.這一差值序列體現(xiàn)了兩組聲音樣品的匹配程度.然后對差值序列取絕對值,使每一個元素為正數(shù),與設(shè)定的閾值序列做比較.最后將比較結(jié)果用LED(發(fā)光二極管)指示燈陣列顯示出來.若差值序列的某一元素大于閾值,則說明該位置不匹配,在LED燈陣列中對應(yīng)的燈上顯示關(guān)閉狀態(tài);反之,差值序列的某一元素小于或等于閾值,對應(yīng)LED燈顯示打開狀態(tài).10個燈分別對應(yīng)顯示10個頻率的匹配結(jié)果.當(dāng)差值序列所有元素均在閾值范圍之內(nèi)時,則用另一個LED燈顯示100%匹配.本文的閾值序列值取50,它體現(xiàn)了系統(tǒng)容許的匹配誤差范圍,其確定方法采用預(yù)定初始值,然后根據(jù)測試數(shù)據(jù)進(jìn)行多次調(diào)整取得[5-7].
在基于LabVIEW的語音識別系統(tǒng)的前面板的下方有10個LED燈分別顯示頻率時間序列10個元素的匹配情況,其旁邊的另外一個LED燈顯示全部頻率的匹配結(jié)果.當(dāng)頻率時間序列全部匹配時,綠燈亮.
例如,在系統(tǒng)程序測試中,選擇某密鑰語句,錄入的樣本密鑰序列為:302 Hz、220 Hz、396 Hz、243 Hz、533 Hz、748 Hz、1 175 Hz、988 Hz、1 200 Hz、920 Hz,輸入的待檢聲音也采用與密鑰相同的語音內(nèi)容,測試結(jié)果為:其中有9個頻率特征匹配綠燈亮,顯示為匹配,基本正確地反映了注冊的語音樣本密鑰.反復(fù)測試的結(jié)果,基本大同小異,并多次出現(xiàn)完全匹配,綠燈全部亮的結(jié)果.當(dāng)說出不同的語音內(nèi)容則沒有綠燈亮.一般來說,若有80%左右的綠燈亮,表示基本匹配.所以,本系統(tǒng)基本可以正確對密碼聲音進(jìn)行匹配.作者還選定其它十余個密鑰語句分別測試,匹配率都在80%以上.
請10個不同年紀(jì)和性別的參試者,每個人自己選擇一個密鑰語句進(jìn)行測試,全部準(zhǔn)確識別,沒有出現(xiàn)漏識案例.
他人偽冒待測人,套用其密鑰語句、模仿其聲調(diào)測試誤識率.請兩個男聲和兩個女聲分別仿冒另外的一個男聲和女聲進(jìn)行測試,以及男女聲相互仿冒的測試,都沒有匹配率大于40%的情況,即誤識率為零.由于測試誤識的樣本數(shù)量太少,語音特征的代表性不夠廣泛,還不能得出系統(tǒng)的誤識率為零的結(jié)論.還沒有對更復(fù)雜的語音對象進(jìn)行測試研究,例如,沒有對聲音相似的兄弟、姊妹等等的測試及誤識率數(shù)據(jù).
整個用戶測試案例超過100余次,僅有一個匹配率低于8個綠燈.以80%以上的綠燈表示基本匹配,全部測試結(jié)果表明:聲紋確認(rèn)的漏識率小于1%.
筆者用MP3(音頻器件及軟件格式)反復(fù)向聲卡輸入同一個測試語句,經(jīng)過60余次測試,識別匹配率都為9個以上綠燈.表明識別系統(tǒng)運行穩(wěn)定,聲源的重復(fù)性是影響系統(tǒng)漏識率的主要因素.
通過對聲紋識別的研究,設(shè)計了基于LabVIEW和聲卡的聲紋識別系統(tǒng).實現(xiàn)了對說話人的語音采集與處理,以及進(jìn)行聲紋特征的提取、建模和匹配等功能.系統(tǒng)測試結(jié)果表明,用提取文本語音頻率時間序列進(jìn)行身份認(rèn)證是一種能滿足實際要求的可行方法,該方法可以區(qū)分不同的說話人,能有效地克服環(huán)境噪聲帶來的影響,并且在做說話人確認(rèn)測試時達(dá)到較高的識別率.在采用麥克進(jìn)行語音錄入與匹配時,學(xué)習(xí)、識別時間短,聲紋確認(rèn)的漏識率小于1%,認(rèn)證準(zhǔn)確、安全可靠、具有無區(qū)域限制、簡單方便、成本低等特點.
但還存在一些實際問題有待進(jìn)一步解決,如說話人的確定,即使是同一個人的語音,也會隨著音量、語速以及身體狀況帶來的音質(zhì)變化而變化,進(jìn)而影響說話人的模型精確匹配.此外,不同設(shè)備之間的語音采樣率、壓縮性、傳輸率等也會影響特征提取和識別結(jié)果.人的語音復(fù)雜、多樣,地域、方言、年齡、身體狀態(tài)等等都影響識別結(jié)果,誤識問題更是一個高安全系統(tǒng)的重要指標(biāo),有待使用更多、更廣泛的樣本檢驗系統(tǒng)的誤識率.
參考文獻(xiàn):
[1] 趙力. 語音信號處理[M].北京:機(jī)械工業(yè)出版社,2011.
[2] 王會清,程勇.家庭安防系統(tǒng)中聲音信號的小波分析與降噪[J].武漢工程大學(xué)學(xué)報,2011,33(10):96-100.
[3] National Instruments.LabVIEW User Manua1[M].Texas:National Instruments, 2005.
[4] 黃松嶺,吳靜. 虛擬儀器設(shè)計基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社,2008.
[5] 王會清,程勇.基于LabVIEW的軟件許可證系統(tǒng)設(shè)計[J].武漢工程大學(xué)學(xué)報,2011,33(4):81-84.
[6] 談宏華,潘正春,騰達(dá). 基于LabVIEW的液壓站監(jiān)控系統(tǒng)[J].武漢工程大學(xué)學(xué)報,2010,32(12):94-97.
[7] 李振國,宋吉江,李月然. 基于虛擬儀器的聲音識別系統(tǒng)設(shè)計[J].山東理工大學(xué)學(xué)報:自然科學(xué)版, 2011,25(1):101-103.