徐劍, 簡志華,于佳祺,金易帆,游林,汪云路
(1. 杭州電子科技大學通信工程學院,浙江 杭州 310018;2. 杭州電子科技大學網(wǎng)絡空間安全學院,浙江 杭州 310018)
隨著人工智能技術(shù)的深入發(fā)展,說話人證實得到廣泛研究與應用[1]。但說話人證實系統(tǒng)容易受到偽裝語音攻擊,其安全性非常值得關注。偽裝語音檢測是通過對說話人的聲音進行分析,進而識別它是真實說話人的語音還是人為惡意偽裝的語音[2]。偽裝語音通常由設備回放、語音轉(zhuǎn)換及語音合成等技術(shù)生成[3-5],通過蓄意的操作能夠偽裝成特定的說話人聲音,從而達到欺騙說話人證實系統(tǒng)的目的。偽裝語音識別系統(tǒng)可針對惡意的偽裝語音實現(xiàn)偽裝檢測,提高說話人證實系統(tǒng)安全性能,具有廣闊的應用前景。
偽裝語音識別通常需要對目標語音信號進行特征提取,再與其對應的真實語音特征對比分析進而判定真/偽。傳統(tǒng)的偽裝語音識別系統(tǒng)提取的特征參數(shù)主要分為兩種:一種是語音信號的幅度譜特征,通常有高階梅爾倒譜系數(shù)、梅爾主頻率和對數(shù)幅度譜等[6-8];另一種是語音信號的相位譜特征,通常有修正的群時延和相對相移等[9-11]。但這些特征在應對未知類型偽裝語音的攻擊時,檢測效果往往不是很理想。
近些年,紋理分析逐漸成為計算機視覺和模式識別領域的研究熱點,并在圖像的分類處理中得到較大的發(fā)展。局部二進制模式(local binary pattern,LBP)是一種流行的紋理分析方法,最初在面部圖像識別中有廣泛的應用[12-13]。最近,Alegre等[14]提出了一種基于LBP的反偽裝說話人證實方法,利用了LBP對級聯(lián)排列的聲學特征向量進行紋理分析,從而區(qū)別真/偽語音。這種基于LBP的偽裝語音檢測策略相較于傳統(tǒng)的偽裝語音檢測策略所需要的先驗知識(如偽裝語音類型、生成的算法等信息)較少,對于未知偽裝語音的檢測效果較好,有利于實際的應用。不過,這種方法在面對由語音轉(zhuǎn)換生成的偽裝欺騙時檢測效果不如傳統(tǒng)的偽裝語音檢測方法,而且它的步驟較為復雜,需預先提取語音信號的聲學特征向量并級聯(lián)處理后才可獲取紋理特征向量。
本文提出了一種利用完整局部二進制模式(completed local binary pattern,CLBP)[15]提取語音信號的紋理特征向量的方法,它可以有效地實現(xiàn)偽裝語音檢測。該方法的好處在于不用提前獲取、級聯(lián)語音信號的聲學特征向量,而是直接對語音信號的語譜圖進行分析獲得語音信號的紋理特征向量。CLBP通過計算語音信號語譜圖的完整局部二進制模式的符號差值(CLBP-sign,CLBP_S)、完整局部二進制模式的幅度差值(CLBP-magnitude,CLBP_M)以及完整局部二進制模式的中心灰度(CLBP-center,CLBP_C)而得,所獲取的圖像紋理特征更加全面,有助于提高偽裝語音檢測的準確率。
LBP算法是一種對圖像局部紋理和空間結(jié)構(gòu)的測量方法,它的中心思想是比較圖像像素點間的局部差異,即圖像某一像素點跟其周圍像素點進行灰度值大小的對比生成一串二進制數(shù),計算式為:
其中,gp表示相鄰像素點的灰度值,gc表示中心像素點灰度值,P表示相鄰像素點的個數(shù),R是相鄰像素點與中心像素點的半徑距離,而s(x)表示符號函數(shù),有:
若相鄰像素點的灰度值pg大于其中心像素點灰度值gc,二進制位設置為1,否則設置為0。
基于LBP的偽裝語音檢測方法是應用LBP對語音信號的聲學特征向量進行紋理分析,從而獲取反映語音聲學特性的紋理特征向量并用以真/偽語音的檢測,具體過程如圖1所示。包含的步驟有:首先,對一段語音信號進行聲學特征提取并形成特征矢量序列,即矩陣。之后用LBP對整個矩陣進行紋理分析,同時映射至LBPP,R,由此得到一幅紋理特征模式圖;最后將紋理特征模式圖中每一行的LBPP,R值用統(tǒng)計直方圖表示并垂直級聯(lián)得到紋理特征向量,用該紋理特征向量訓練分類器,從而達到偽裝語音檢測的目的。
這種偽裝檢測策略有以下方面的缺陷:第一,在檢測語音轉(zhuǎn)換的欺騙攻擊時,偽裝檢測效果有欠缺;第二,步驟較為復雜,需預先提取傳統(tǒng)的語音信號的聲學特征向量,而且檢測的效果依賴該聲學特征,面對部分通過改變語音聲學特征生成的偽裝欺騙時,偽裝語音檢測效果較差。應用LBP提取語音信號的紋理特征如圖1所示。
CLBP算法[15]是一種改進的LBP算法,由CLBP_S、CLBP_M和CLBP_C 3部分組成,CLBP的組成框架如圖2所示。一段語音的聲學特征參數(shù)矢量序列構(gòu)成原始圖像,其紋理特征分為兩部分:局部差異和中心灰度。通過局部符號和幅度差異轉(zhuǎn)換分析圖像的局部符號差異和局部幅度差異分別得到CLBP_S和CLBP_M,再計算中心灰度與整幅圖像的灰度平均值的差值得CLBP_C,最后將三者組合構(gòu)成一幅CLBP圖并統(tǒng)計生成CLBP直方圖。
3.1.1 CLBP_S特征
CLBP_S特征表示圖像局部的符號差異,計算方法與LBP相同,首先讀取圖像的每個像素點灰度值,設置3×3的評估窗口進行二進制編碼,使其相鄰像素點與中心像素點進行灰度值比較,若相鄰像素點的灰度值gp大于中心像素點灰度值gc,二進制位設置為1,否則設置為0,即:
圖1 應用LBP提取語音信號的紋理特征
圖2 CLBP的組成框架
該評估窗口可以生成8位二進制數(shù),同時轉(zhuǎn)換為十進制值,每一個十進制值代表一種紋理模式,從00000000(0)到11111111(255)一共有256種紋理模式。用該評估窗口分析整幅圖像,可以得到一幅包含256種紋理模式的特征圖像,通過直方圖統(tǒng)計并生成統(tǒng)計直方圖,將每一種紋理模式作為特征向量的一個維度,再將該紋理模式的數(shù)量作為特征向量在該維度下的值,所以一段語音可以得到1×256維的CLBP_S特征向量。
3.1.2 CLBP_M特征
CLBP_M特征表示的是圖像局部的幅度差異。先對相鄰像素點灰度值與中心像素點灰度值的差值取絕對值,記為相鄰像素點與中心像素點的幅度差值mp;再取整幅圖像所有幅度差值的平均,記為幅度差值的閾值c,即:
其中,gp為相鄰像素點的灰度值,gc為中心像素點灰度值;k為幅度差值pm的序號,N為mp的總數(shù)。將每個相鄰像素點與中心像素點的幅度差值的絕對值mp作為新的相鄰像素點灰度值,幅度差值的閾值c作為新中心像素點灰度值。設置3×3的評估窗口進行二進制編碼,使其新相鄰像素點與新中心像素點進行灰度值比較,若新相鄰像素點的灰度值大于其新中心像素點灰度值,二進制位設置為1,否則設置為0。該評估窗口同樣可以生成8位二進制數(shù)并轉(zhuǎn)換為十進制值,每一個十進制值代表一種紋理模式,共有256種紋理模式。這樣一段語音的特征矢量序列構(gòu)成的圖就可以得到包含256種紋理模式的紋理特征,再將所有的紋理特征采用直方圖統(tǒng)計就可以得到1×256維的完整局部二進制模式的幅度差值CLBP_M特征向量。CLBP_S特征和CLBP_M特征提取過程示意圖如圖3所示。
3.1.3 CLBP_C特征
CLBP_C特征表示整幅圖像的中心灰度水平,通過計算整幅圖像中所有中心像素點灰度值的平均cI,記為新的閾值,即:
其中,表示第k個中心像素點gc的灰度值,M為gc的總數(shù)。將每一局部區(qū)域的中心像素點的灰度值gc與cI比較,若中心像素點的灰度值大于cI記為1,否則記為0。這樣通過二進制編碼就可以得到CLBP_C特征的值。
圖3 CLBP_S特征和CLBP_M特征提取過程示意圖
在分別計算CLBP_S特征、CLBP_M特征以及CLBP_C特征之后,將這些特征進行串聯(lián),得到用作偽裝語音檢測的CLBP特征向量。按照上述步驟,從所有真實語音和偽裝語音的特征參數(shù)矢量構(gòu)成的圖中求得CLBP特征向量,用作支持向量機的訓練。
本文采用支持向量機[16]作為真/偽語音的分類器。給訓練集設置標簽,記為其中,N是訓練樣本的總數(shù),M是樣本空間的維數(shù),yi是樣本的分類類別,yi=1表示偽裝語音,yi=-1表示真實語音。選用徑向基核函數(shù)(radial basic function,RBF),引入?yún)?shù)γ和錯誤懲罰因子C同時進行優(yōu)化,訓練最優(yōu)支持向量確定一個最優(yōu)超平面。使目標函數(shù)最大化,即:
受限條件為:
采用的RBF核函數(shù)為:
其中,iα為每個樣本對應的拉格朗日乘子,錯誤懲罰因子C在確定RBF核函數(shù)后,控制錯誤分類樣本的懲罰程度。解中只有一部分iα不為零,所對應的樣本就是訓練所得的支持向量。
分類器支持向量機示意圖如圖4所示,支持向量機共有3層,從下至上分別為SVM輸入層、SVM隱藏層以及輸出層。通過上述步驟,可得分類函數(shù):
其中,b為分類閾值,可由支持向量求得。應用此分類決策函數(shù)可對待識別的語音信號的紋理特征分類,達到識別真/偽語音的目的。
圖4 分類器支持向量機示意圖
本文提出的基于CLBP的偽裝語音檢測算法,通過CLBP分析語音信號的特征參數(shù)矢量序列圖提取用以偽裝檢測的語音紋理特征向量。在提取語音信號的語譜圖時,首先對說話人語音信號進行變量Q變換(VQT)得到清晰紋理的語譜圖,表示為:
其中,wNk是長度為Nk的窗函數(shù),Q是VQT中的變量因子,k表示VQT譜的頻率序號,Nk值和k值有關。變量Q因子通過引入一個附加參數(shù)γ使Q因子向低頻平滑減小,以提高低頻處的分辨率,即:
將得到的語譜圖轉(zhuǎn)換為灰度圖,并提取CLBP特征,將其用作SVM訓練及分類的語音紋理特征向量。采用上述方法獲取真實語音庫及偽裝語音庫中所有語音信號的CLBP紋理特征向量用作訓練集,將訓練得到的SVM作為識別偽裝語音的分類器。在識別時,同樣需要提取待識別的說話人語音紋理特征向量,進而采用訓練得到的SVM區(qū)分真/偽語音。
實驗選用ASVspoof 2015語音庫[17]評估本文所提算法的性能,該語音庫包含了真實語音和偽裝語音,真實語音是在無噪環(huán)境下由106位說話人錄制,其中包含45名男性和61名女性,而偽裝語音是采用多種不同算法修改真實語音而得。語音信號的采樣頻率為16 kHz,以16位比特量化,音頻文件格式為RIFF/WAVE。將語音庫中的數(shù)據(jù)集分為訓練集、開發(fā)集和評估集3個子集,各個子集之間沒有重復,具體情況見表1。
表1 訓練集、開發(fā)集和評估集的說話人和語音數(shù)量
實驗語音庫中的偽裝語音由語音轉(zhuǎn)換和語音合成兩種偽裝方式生成見表2,共分為10個子集,分別表示為S1~S10,具體情況介紹可以參考文獻[18]。
表2 語音庫中各子集語音的數(shù)量及偽裝方式
實驗采用等錯誤率(equal error rate,EER)的指標來評價偽裝語音檢測系統(tǒng)的性能。在偽裝語音檢測系統(tǒng)中,為判別語音樣本是否是真實的說話人聲音,會為該語音樣本計算打分。分數(shù)越高,是真實語音的概率越大;反之越小,更可能是偽裝語音。檢測系統(tǒng)預先設定閾值θ,若得分高于閾值θ判定為真實語音,反之判定為偽裝語音。由此,可以得到兩種常見的指標。
(1)錯誤拒絕率(false rejection rate,F(xiàn)RR)
真/偽語音分類問題中,若真實語音樣本的得分小于閾值θ被系統(tǒng)誤認為偽裝語音,則為錯誤拒絕。錯誤拒絕數(shù)量在所有真實語音案例的比例即錯誤拒絕率PFR(θ),計算式為:
(2)錯誤接受率(false acceptance rate,F(xiàn)AR)
若偽裝語音樣本的得分大于閾值θ被系統(tǒng)誤認為真實語音,則為錯誤接受。錯誤接受數(shù)量在所有偽裝語音數(shù)量中的比例即錯誤接受率PFA(θ),計算式為:
其中,PFR(θ)會隨著閾值θ的增大單調(diào)增大,而PFA(θ)會隨著閾值θ的增大單調(diào)減小。當閾值θ=θEER時,這兩種錯誤檢測率相等,便是等錯誤概率EER,計算式為:
錯誤拒絕率和錯誤接受率相等時,EER大小可以用來評估偽裝語音檢測系統(tǒng)性能,EER越小,偽裝語音檢測效果越好,反之偽裝語音檢測效果越差。
實驗采用LBP算法與本文所提CLBP算法進行性能對比,采用的特征參數(shù)如下。
(1)分別提取線性倒譜系數(shù)(linear frequency cepstral coefficient,LFCC)和梅爾倒譜系數(shù)(mel-frequency cepstral coefficient,MFCC)這兩種聲學特征參數(shù)。應用SPro5工具提取訓練集中語音信號的38維LFCC特征(12LFCC、 12 ΔLFCC、12 ΔΔLFCC、ΔEnergy、 ΔΔEnergy)以及38 維MFCC特征(12 MFCC、 12 Δ MFCC、12 ΔΔMFCC、ΔEnergy、ΔΔEnergy),并用LBP和CLBP的紋理分析方法提取上述兩種聲學特征中各自的LBP特征向量和CLBP特征向量。
(2)利用VQT將訓練集中每一個語音轉(zhuǎn)換為語譜圖,并用LBP和CLBP的紋理分析方法分別提取每一張語譜圖的LBP特征向量和CLBP特征向量。
將上述各類參數(shù)在開發(fā)集和評估集中進行測試,比較各種情況下的偽裝語音檢測性能。在進行VQT時,為了選擇合適的附加參數(shù)γ的值,實驗在3個不同的分類器中進行了性能測試。這3個分類器包括GMM-UBM、具有因子分析(factor analysis,F(xiàn)A)信道補償?shù)腉MM(GMM-FA)以及SVM-RBF系統(tǒng),實驗結(jié)果見表3。從表3的實驗結(jié)果來看,在各類分類器,當γ=50時,檢測系統(tǒng)的等錯誤率最小,性能最好。另外,不論附加參數(shù)γ取何值,本文采用的方案CLBP_S/M/C+SVM-RBF具有最佳的性能。
采用不同特征參數(shù)在開發(fā)集數(shù)據(jù)中進行性能對比,實驗結(jié)果見表4。由表4可知,當提取特征的對象相同時,采用CLBP_S/M/C的系統(tǒng)檢測效果普遍要好于采用LBP的系統(tǒng);當提取特征的方法相同時,對語譜圖提取紋理特征的檢測性能優(yōu)于LPCC和MFCC。因此,從實驗結(jié)果來看,采用CLBP_S/M/C方法對語譜圖提取紋理特征向量具有最好的檢測效果。同時,實驗也發(fā)現(xiàn),不管采用哪個方法,在檢測S2這種偽裝語音類型時,EER都明顯增大,因為S2是通過改變聲學特征而生成的偽裝語音,單純依靠聲學特征參數(shù)進行檢測會比較困難。
表3 評估集中各個偽裝語音檢測系統(tǒng)的等錯誤率比較
表4 開發(fā)集不同特征參數(shù)情況下等錯誤率對比
從MFCC特征可以看出,通過它提取的紋理特征向量訓練的系統(tǒng)檢測S2欺騙的效果最差,這是由于S2為通過調(diào)整第一階梅爾倒譜系數(shù)生成的語音轉(zhuǎn)換欺騙。在檢測S3、S4這兩種語音合成偽裝欺騙時,得到的等錯誤率普遍小于檢測S1、S2和S5這3種由語音轉(zhuǎn)換偽裝欺騙求得的等錯誤概率,可見基于紋理特征的檢測方法對語音合成的欺騙檢測效果較好。在檢測S1、S2和S5這3種語音轉(zhuǎn)換偽裝欺騙時,采用CLBP_S/M/C方法對語譜圖提取紋理特征向量進行偽裝檢測相比于傳統(tǒng)基于LBP的方法具有更小的EER值,可見本文所提出的基于CLBP對語譜圖提取紋理特征向量的偽裝語音檢測方法比傳統(tǒng)的基于LBP的方法有更好的性能,提升了對語音轉(zhuǎn)換偽裝欺騙的檢測效果。
表5是系統(tǒng)在評估集的性能測試結(jié)果。從表5可知,由語譜圖提取紋理特征向量在S1~S9這9種偽裝欺騙中進行偽裝檢測的等錯誤率較小,檢測效果較好。同時,不管哪種情況,在檢測未知欺騙S10時,EER值均明顯增大。這說明與其他攻擊相比,使用MaryTTS的S10欺騙語音是最難檢測的攻擊類型,原因是S10欺騙語音不使用聲碼器,而是使用了單元選擇合成算法選擇語音段并級聯(lián)生成欺騙語音,保留了較多的紋理特征。在檢測S2和S6偽裝欺騙時,由LPCC和MFCC這些聲學參數(shù)提取紋理特征向量的性能表現(xiàn)較差,因為這依賴于語音信號提取的聲學特征,導致在檢測由語音信號的聲學特征生成的語音轉(zhuǎn)換欺騙時系統(tǒng)的偽裝檢測性能明顯降低。在檢測未知的語音轉(zhuǎn)換欺騙攻擊(S6~S9)時,傳統(tǒng)基于LBP對聲學特征提取紋理特征向量的偽裝語音檢測性能較差,而采用CLBP_S/M/C方法對語譜圖提取紋理特征向量的檢測性能較好。整體來看,基于CLBP_S/M/C紋理提取方法相比基于LBP的紋理提取方法在檢測效果上有了較大的提升。
表5 評估集中幾種偽裝語音檢測方法的EER對比
本文提出了一種基于CLBP的偽裝語音檢測算法,它有效地改善了傳統(tǒng)的基于LBP的偽裝語音檢測方法的性能,特別是在面對由語音轉(zhuǎn)換生成的偽裝語音時效果更加明顯。實驗結(jié)果表明,當VQT的附加參數(shù)γ=50時,由CLBP特征參數(shù)和SVM-RBF分類器構(gòu)建的偽裝語音檢測系統(tǒng)具有最佳的性能。