一種基于聲紋二維碼的安全認(rèn)證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于二維碼編解碼技術(shù)和聲紋識(shí)別技術(shù)領(lǐng)域,具體涉及一種基于聲紋二維 碼的安全認(rèn)證方法。
【背景技術(shù)】
[0002] 二維碼(Two-dimensional code),又稱二維條碼,它是用特定的幾何圖形按一定 規(guī)律在平面(二維方向)上分布的黑白相間的圖形,是所有信息數(shù)據(jù)的一把鑰匙。我國(guó)對(duì)二 維碼技術(shù)的研究開始于1993年。中國(guó)物品編碼中心對(duì)幾種常用的二維碼roF417、QRCCode、 Data Matrix、Maxi Code、Code 49、Code 16K、Code One 的技術(shù)規(guī)范進(jìn)行了翻譯和跟蹤研 究。
[0003] 聲紋識(shí)別(Voiceprint Recognition, VPR),也稱為說(shuō)話人識(shí)別(Speaker Recognition),有兩類,即說(shuō)話人辨認(rèn)(Speaker Identification)和說(shuō)話人確認(rèn)(Speaker Verification)。說(shuō)話人辨認(rèn)用以判斷某段語(yǔ)音是若干人中的哪一個(gè)所說(shuō)的,是"多選一" 問題;而說(shuō)話人確認(rèn)用以確認(rèn)某段語(yǔ)音是否是指定的某個(gè)人所說(shuō)的,是"一對(duì)一判別"問題。 不同的任務(wù)和應(yīng)用會(huì)使用不同的聲紋識(shí)別技術(shù),如縮小刑偵范圍時(shí)可能需要辨認(rèn)技術(shù),而 銀行交易時(shí)則需要確認(rèn)技術(shù)。不管是辨認(rèn)還是確認(rèn),都需要先對(duì)說(shuō)話人的聲紋進(jìn)行建模,這 就是所謂的"訓(xùn)練"或"學(xué)習(xí)"過(guò)程。
[0004] 傳統(tǒng)票據(jù)驗(yàn)證需要人工核對(duì),例如火車票驗(yàn)票,要工作人員先驗(yàn)票、驗(yàn)身份證,之 后再對(duì)比身份證照片和人臉,進(jìn)而判斷是否為車票所有者本人,驗(yàn)證過(guò)程費(fèi)時(shí)、費(fèi)力,并且 存在驗(yàn)證過(guò)程安全性不高的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明針對(duì)目前紙質(zhì)票據(jù)驗(yàn)證安全性不足、驗(yàn)證費(fèi)時(shí)費(fèi)力的缺點(diǎn),以更方便應(yīng)用 于對(duì)安全性有較高要求的臨時(shí)身份認(rèn)證場(chǎng)景,提供了 一種基于聲紋二維碼的安全認(rèn)證方 法。
[0006] 本發(fā)明提供的基于聲紋二維碼的安全認(rèn)證方法,包括如下步驟:
[0007] 步驟1,聲紋二維碼編碼,具體是:用戶進(jìn)行多次語(yǔ)音輸入,提取語(yǔ)音的聲紋特征; 利用提取的聲紋特征訓(xùn)練生成用戶的聲紋模型;將聲紋模型的參數(shù)進(jìn)行數(shù)據(jù)壓縮并生成二 維碼;
[0008] 步驟2,用戶使用聲紋二維碼作為身份憑證購(gòu)票,購(gòu)票成功后返回帶有聲紋二維碼 及所購(gòu)票信息的電子或紙質(zhì)票據(jù),驗(yàn)票時(shí)輸入收到的聲紋二維碼進(jìn)行識(shí)別;
[0009] 步驟3,在用戶的聲紋二維碼憑證有效的情況下,用戶進(jìn)行語(yǔ)音輸入,對(duì)用戶輸入 的語(yǔ)音提取聲紋特征,并與用戶的聲紋模型進(jìn)行相似性比較,判斷用戶是否為本人。
[0010] 步驟1中所述的提取語(yǔ)音的聲紋特征,對(duì)語(yǔ)音信號(hào)依次進(jìn)行如下處理:對(duì)輸入的 語(yǔ)音信號(hào)進(jìn)行預(yù)加重,對(duì)預(yù)加重后的語(yǔ)音信號(hào)進(jìn)行交疊式的分幀,對(duì)分幀后的語(yǔ)音信號(hào)進(jìn) 行加窗,對(duì)語(yǔ)音進(jìn)行端點(diǎn)檢測(cè),識(shí)別出語(yǔ)音的開始段、噪聲段和結(jié)束段;再對(duì)處理后的語(yǔ)音 信號(hào)提取聲紋特征。
[0011] 本發(fā)明的優(yōu)點(diǎn)與積極效果在于:(1)本發(fā)明聲紋二維碼的概念,能夠有效地解決 傳統(tǒng)票據(jù)或憑證(例如火車票、門票等)驗(yàn)證過(guò)程安全性不高的問題。(2)本發(fā)明相對(duì)于傳 統(tǒng)臨時(shí)身份驗(yàn)證方法,使用過(guò)程簡(jiǎn)單,自然,并且能夠進(jìn)行大規(guī)模的自動(dòng)化,可以省去人工 驗(yàn)證過(guò)程,并且能提高驗(yàn)證效率。(3)本發(fā)明相對(duì)于傳統(tǒng)票據(jù)而言,更具有通用性,該聲紋二 維碼可以用在所有需要進(jìn)行身份驗(yàn)證的場(chǎng)景下,并且成本低廉,只需要圖像采集設(shè)備和語(yǔ) 音輸入設(shè)備。
【附圖說(shuō)明】
[0012] 圖1為本發(fā)明的基于聲紋二維碼的安全認(rèn)證方法的整體流程示意圖;
[0013] 圖2為本發(fā)明方法在火車票購(gòu)票和驗(yàn)票的場(chǎng)景下應(yīng)用的流程示意圖;
[0014] 圖3為本發(fā)明編碼生成聲紋二維碼的流程示意圖;
[0015] 圖4為本發(fā)明利用聲紋二維碼進(jìn)行識(shí)別與驗(yàn)證的流程示意圖; 圖5為本發(fā)明步驟3用戶輸入語(yǔ)音進(jìn)行聲紋驗(yàn)證的流程示意圖。
【具體實(shí)施方式】
[0016] 下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
[0017] 本發(fā)明提供的基于聲紋二維碼的安全認(rèn)證方法,主要包括兩部分:聲紋二維碼編 碼;聲紋二維碼識(shí)別與驗(yàn)證。聲紋二維碼編碼是:通過(guò)多次錄制用戶的語(yǔ)音進(jìn)行訓(xùn)練,產(chǎn)生 用戶的聲紋模型,并將該模型通過(guò)壓縮編碼生成聲紋二維碼。該聲紋二維碼即作為該用戶 固定的身份憑證,在其他業(yè)務(wù)系統(tǒng)(如火車票購(gòu)票系統(tǒng))需要記錄用戶身份憑證時(shí)進(jìn)行發(fā) 送。聲紋二維碼識(shí)別與驗(yàn)證是:在用戶需要進(jìn)行身份驗(yàn)證時(shí),用戶首先通過(guò)聲紋二維碼掃 描,獲得用戶聲紋信息。如果用戶的聲紋二維碼在系統(tǒng)中有記錄,則證明持有該聲紋二維碼 (如電子或紙質(zhì)火車票上的聲紋二維碼)的用戶具有合法身份。之后系統(tǒng)提示用戶進(jìn)行聲 紋輸入,系統(tǒng)將輸入聲紋與從聲紋二維碼中解析出的聲紋進(jìn)行相似性驗(yàn)證,并給出得分。如 果得分大于既定閾值,則該用戶為合法用戶。否則該用戶非法。通過(guò)二維碼和聲紋的兩步 的驗(yàn)證,系統(tǒng)能夠?yàn)橛懈甙踩砸蟮呐R時(shí)身份驗(yàn)證的場(chǎng)景(如火車票驗(yàn)票、貴重物品簽 收等),提供通用的快捷、安全的認(rèn)證方式。
[0018] 本發(fā)明的基于聲紋二維碼的安全認(rèn)證方法,如圖1所示。下面將結(jié)合在圖2所示 的在火車票購(gòu)票和驗(yàn)票的場(chǎng)景對(duì)各步驟進(jìn)行說(shuō)明。
[0019] 步驟1,用戶進(jìn)行多次語(yǔ)音輸入,對(duì)語(yǔ)音進(jìn)行處理生成聲紋二維碼。生成聲紋二維 碼的過(guò)程如圖3所示。步驟1的實(shí)現(xiàn)步驟分為步驟I. 1~步驟1. 3。
[0020] 步驟1. 1,用戶進(jìn)行多次語(yǔ)音輸入,提取語(yǔ)音的聲紋特征。設(shè)用戶通過(guò)語(yǔ)音輸入設(shè) 備進(jìn)行M次的語(yǔ)音輸入,M多1。提取語(yǔ)音聲紋特征的過(guò)程如圖3所示,包括步驟I. I. 1~ 步驟I. 1. 5。
[0021] 步驟1. 1. 1,對(duì)輸入的語(yǔ)音信號(hào)進(jìn)行預(yù)加重,所述預(yù)加重過(guò)程是通過(guò)高通濾波器來(lái) 完成,目的是為了對(duì)語(yǔ)音的高頻部分進(jìn)行加重,去除口唇輻射的影響,增加語(yǔ)音的高頻分辨 率。高通濾波器在z域的傳遞函數(shù)H(Z)如下:
[0022] H(z) = l_az 1 (1)
[0023] 通過(guò)一階有限長(zhǎng)沖激響應(yīng)(FIR)高通數(shù)字濾波器來(lái)實(shí)現(xiàn)預(yù)加重,設(shè)η時(shí)刻的語(yǔ)音 采樣值為S1(Ii),η-1時(shí)刻的語(yǔ)音采樣值為S1(Ii-I),S(η)為預(yù)加重之后的語(yǔ)音信號(hào),a為預(yù) 加重系數(shù),〇. 9〈a〈l. 0均可,本發(fā)明實(shí)施例中取a = 0. 98。
[0024] 對(duì)信號(hào)預(yù)加重處理后的結(jié)果如下:
[0025] S (n) = S1 (n)-BXS1 (n-1) (2)
[0026] 步驟I. I. 2,對(duì)預(yù)加重后的語(yǔ)音信號(hào)進(jìn)行交疊式的分幀。
[0027] 將語(yǔ)音信號(hào)分幀是為了將信號(hào)分成若干段來(lái)處理,每一段稱為一"幀"。本發(fā)明采 用的是交疊式分幀,即前后兩幀會(huì)產(chǎn)生交疊,即幀移。
[0028] 步驟1. 1.3,對(duì)分幀后的語(yǔ)音信號(hào)進(jìn)行加窗,加窗可以選取但不限于漢明 (Hamming)窗等方式。本發(fā)明實(shí)施例中采用漢明窗對(duì)信號(hào)進(jìn)行加窗。
[0029] 分幀后將會(huì)產(chǎn)生頻譜泄漏,因此需要采用漢明窗對(duì)信號(hào)進(jìn)行加窗。漢明窗具體如 下:
[0031] 其中,w (η)為Hamming窗函數(shù),N為幀長(zhǎng),通常取256,參數(shù)b = 0.46。
[0032] 假設(shè)預(yù)加重得到的語(yǔ)音信號(hào)為S (η),則加窗后得到的語(yǔ)音信號(hào)S'(η)= S (η) X w (η) 〇
[0033] 步驟I. 1. 4,對(duì)語(yǔ)音進(jìn)行端點(diǎn)檢測(cè),識(shí)別出語(yǔ)音的開始段、噪聲段和結(jié)束段??刹捎?基于短時(shí)能量或者短時(shí)過(guò)零率等指標(biāo)來(lái)進(jìn)行端點(diǎn)檢測(cè)。
[0034] 例如采用短時(shí)能量對(duì)語(yǔ)音信號(hào)進(jìn)行端點(diǎn)檢測(cè),判斷語(yǔ)音的開始和結(jié)束時(shí)刻。通過(guò) 設(shè)定短時(shí)能量的高低閾值來(lái)判斷語(yǔ)音的起始和結(jié)束段。當(dāng)語(yǔ)音狀態(tài)為靜音態(tài)時(shí),若信號(hào)的 短時(shí)能量大于高閾值,則標(biāo)記該時(shí)刻為起始時(shí)刻,進(jìn)入語(yǔ)音狀態(tài)。之后如果短時(shí)能量小于低 閾值,且其持續(xù)時(shí)間小于最短時(shí)間閾值,則認(rèn)為目前這段信號(hào)為一段噪聲,繼續(xù)處理后面語(yǔ) 音,否則認(rèn)為語(yǔ)音結(jié)束。所述第η幀的短時(shí)能量E (η)為:
[0036] 步驟I. 1. 5,提取用戶語(yǔ)音的聲紋特征,可以是梅爾倒譜系數(shù)或Ga_atone頻率倒 譜系數(shù)等能夠標(biāo)識(shí)用戶聲音特點(diǎn)語(yǔ)音特征。
[0037] 本發(fā)明實(shí)施例采用每一幀語(yǔ)音的梅爾倒譜系數(shù)對(duì)信號(hào)進(jìn)行特征提取,針對(duì)每一幀 語(yǔ)音X (η),通過(guò)計(jì)算,得到16維梅爾倒譜系數(shù)(MFCC)。
[0038] 步驟1. 2,利用提取的聲紋特征訓(xùn)練生成用戶的聲紋模型。
[0039] 通過(guò)用戶語(yǔ)音的聲紋特征進(jìn)行用戶聲紋模型的建模。例如,使用期望最大(EM)算 法訓(xùn)練高斯混合-通用背景模型(GMM-UBM模型),使用Layer-Wise算法訓(xùn)練深度信念網(wǎng) 等方法得到不同形式的聲紋模型。
[0040] 本發(fā)明實(shí)施例基于對(duì)得到的梅爾倒譜系數(shù)特征使用EM算法進(jìn)行高斯混合模型 (GMM)的參數(shù)訓(xùn)練。得到