廣州城市職業(yè)學(xué)院 蘇卓藝
現(xiàn)今,隨著語(yǔ)音處理算法及相應(yīng)工具的成熟,這給社會(huì)帶來(lái)便利的同時(shí),亦面臨不少新的安全問(wèn)題。其中,偽裝語(yǔ)音便是亟待解決的重要安全問(wèn)題之一。根據(jù)已有的研究記錄表明:偽裝語(yǔ)音能輕易騙過(guò)人耳及說(shuō)話人識(shí)別系統(tǒng),從而冒充他人或隱藏說(shuō)話人身份,對(duì)人身、經(jīng)濟(jì)等領(lǐng)域均帶來(lái)嚴(yán)重威脅。目前,針對(duì)偽裝語(yǔ)音的檢測(cè)研究已經(jīng)有了一定的進(jìn)展。但大多數(shù)的研究所都只針對(duì)一種類型的偽裝語(yǔ)音進(jìn)行研究和檢測(cè),在應(yīng)對(duì)其他類型的偽裝攻擊時(shí),往往檢測(cè)率不高。而在實(shí)際應(yīng)用場(chǎng)合中,一般不能提前知道偽裝語(yǔ)音的類型。因此,本文研究了可以應(yīng)對(duì)多種類型偽裝語(yǔ)音的檢測(cè)模型,提出了一種利用殘差網(wǎng)絡(luò)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)相結(jié)合來(lái)檢測(cè)偽裝語(yǔ)音的方法。
近年來(lái),自動(dòng)說(shuō)話人驗(yàn)證(Automatic Speech Verification,ASV)系統(tǒng)這種低成本的生物識(shí)別技術(shù)已被廣泛地應(yīng)用在許多場(chǎng)合。但隨著自動(dòng)語(yǔ)音處理算法的不斷成熟,ASV系統(tǒng)很容易受到來(lái)自偽裝語(yǔ)音的攻擊。為此,2015 年首屆ASV 欺騙挑戰(zhàn)計(jì)劃出現(xiàn),目的是促進(jìn)偽裝語(yǔ)音的研究,為評(píng)估和比較欺騙對(duì)策提供一個(gè)通用平臺(tái)。并且形成一個(gè)基于振幅、相位、線性預(yù)測(cè)殘差和基于振幅-相位的聯(lián)合對(duì)抗措施組成的偽裝攻擊檢測(cè)系統(tǒng)[1-3]。
現(xiàn)有的關(guān)于偽裝語(yǔ)音檢測(cè)的研究主要集中在三種不同的偽裝類型:
(1)語(yǔ)音轉(zhuǎn)換(Voice Conversion,VC)和語(yǔ)音合成(Speech Synthesis,SS)方面:F.Hassan 等人提出了一種由頻譜通量和頻譜質(zhì)心組成的融合特征向量用于分類識(shí)別的方法[4]。Muckenhirn 等人提出利用一階和二階譜作為特征的檢測(cè)方法[5]。此外還有運(yùn)用高斯混合模型(Gaussian Mixture Model,GMM)、動(dòng)態(tài)時(shí)間規(guī)劃(DTW)模型、卷積神經(jīng)網(wǎng)絡(luò)等其他方法的檢測(cè)算法[6-10]。
(2)關(guān)于重播語(yǔ)音的研究,Patil 等人提出了采用倒譜均值和方差歸一化(CMVN)的方法[11]。M.R.Kamble等人提出使用泰格能量算子(TEO)來(lái)計(jì)算重放與自然信號(hào)的子帶能量并映射到MFCC 中用于檢測(cè)識(shí)別[12]。G.P.Prajapati 等人提出基于能量分離算法(ESA)的特征以及高斯混合模型(GMM)作為模式分類器的方法[13]。R.Acharya 提出交叉能量倒數(shù)系數(shù)(CTECC)作為特征,高斯混合模型(GMM)和光卷積神經(jīng)網(wǎng)絡(luò)(LCNN)作為分類器的檢測(cè)方法[14]。
(3)關(guān)于語(yǔ)音變形(Voice Transformation,VT)的研究,大多利用如頻譜圖、修改群延遲(MGD)和梅爾普倒譜系數(shù)(MFCC)作為特征再利用支持向量機(jī)(SVM)、隱含馬爾柯夫模型(HMM)等分類器及深度學(xué)習(xí)的方法檢測(cè)語(yǔ)音真?zhèn)蝃15,16]。
偽裝語(yǔ)音檢測(cè)的研究目前較為系統(tǒng)和豐富,但是這些檢測(cè)方法大多都只適用一種偽裝語(yǔ)音類型的檢測(cè)識(shí)別上,當(dāng)偽裝語(yǔ)音的欺騙類型與所設(shè)計(jì)模型訓(xùn)練不一致時(shí),效果往往不如意。因此,本文提出一種基于ResNet-LSTM 的偽裝語(yǔ)音檢測(cè)的模型,將語(yǔ)音數(shù)據(jù)轉(zhuǎn)換成時(shí)頻圖的方式輸入到設(shè)計(jì)好的ResNet-LSTM 的網(wǎng)絡(luò)中輸出判斷結(jié)果。實(shí)驗(yàn)結(jié)果表明,該方法在多種類型的偽裝語(yǔ)音檢測(cè)上都有超過(guò)90%的識(shí)別精度,能應(yīng)對(duì)各種不同時(shí)長(zhǎng)及不同類型的偽裝語(yǔ)音攻擊。
基于ResNet-LSTM 的偽裝語(yǔ)音檢測(cè)系統(tǒng)包括訓(xùn)練階段和測(cè)試階段,訓(xùn)練階段分別利用ResNet 和LSTM獲取語(yǔ)音片段時(shí)域特征和頻域特征并用于訓(xùn)練和分類,ResNet 通過(guò)卷積操作獲取語(yǔ)音在頻譜上的空間特征,并通過(guò)引入短連接解決過(guò)擬合的問(wèn)題,提高分類性能和準(zhǔn)確度。LSTM 體系結(jié)構(gòu)可以將長(zhǎng)時(shí)段信息存儲(chǔ)在其記憶塊中,并通過(guò)窺視連接來(lái)學(xué)習(xí)語(yǔ)音的上下文依賴性,多類型的偽裝語(yǔ)音檢測(cè)系統(tǒng)如圖1 所示。

圖1 基于RseNet-LSTM 的偽裝語(yǔ)音檢測(cè)系統(tǒng)Fig.1 Spoofing speech detection system based on RseNet-LSTM
2.1.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種備受關(guān)注的檢測(cè)模型。近年來(lái),CNN 已經(jīng)成為許多研究領(lǐng)域的熱門話題,特別是在語(yǔ)音識(shí)別、圖像識(shí)別和自然語(yǔ)言處理領(lǐng)域。這是因?yàn)镃NN 避免了對(duì)數(shù)據(jù)復(fù)雜的前期預(yù)處理操作,能夠直接向網(wǎng)絡(luò)輸入原始數(shù)據(jù),因此得到廣泛重視。CNN 結(jié)構(gòu)中的特征提取器,使得數(shù)據(jù)樣本在卷積的過(guò)程中,特征不斷地被提取以及壓縮,并最終能得到比較高維度的特征。
總的來(lái)說(shuō),CNN 結(jié)構(gòu)可以分為兩部分,一部分是特征提取,一般包括卷積操作、激活函數(shù)以及池化;另一部分是全連接層的分類和識(shí)別。
2.1.2 殘差網(wǎng)絡(luò)
通常,為了提取更深層的特征用于模型分類,會(huì)設(shè)計(jì)一個(gè)層數(shù)更多的模型。但是,隨著CNN 層數(shù)的增加,在訓(xùn)練過(guò)程中經(jīng)過(guò)許多層后,網(wǎng)絡(luò)梯度信號(hào)會(huì)慢慢消失。當(dāng)訓(xùn)練到一定程度時(shí),模型的訓(xùn)練精度雖然隨著訓(xùn)練次數(shù)的增加而提高,但測(cè)試精度卻降低,稱為退化現(xiàn)象。殘差網(wǎng)絡(luò)[17]中提出了一種數(shù)據(jù)短路徑的方法,使信號(hào)能夠在輸入層和輸出層之間高速流通。該方法的核心思想是在網(wǎng)絡(luò)的前一層和后一層之間建立一條短路徑連接,對(duì)退化現(xiàn)象有很好的抑制作用。殘差模塊是由一系列殘差塊組成,如圖2 所示,一個(gè)殘差塊可以用公式表示如式(1)所示:

圖2 殘差模塊結(jié)構(gòu)圖Fig.2 Residual module structure diagram
殘差模塊分為兩部分:直接映射部分和殘差部分。直接映射,體現(xiàn)在圖2 中右側(cè)曲線中;殘差部分,一般由兩個(gè)或者三個(gè)卷積操作組成,即圖2 中左側(cè)包含的卷積部分。
2.2.1 循環(huán)神經(jīng)網(wǎng)絡(luò)
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory networks,LSTM)是在循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)基礎(chǔ)上改進(jìn)的。RNN 是一種具有短時(shí)記憶能力的神經(jīng)網(wǎng)絡(luò),適合用于處理視頻、語(yǔ)音、文本等與時(shí)間序列相關(guān)的問(wèn)題。在常規(guī)的RNN 中,神經(jīng)元既可以接收來(lái)自其他神經(jīng)元的信息,也可以接收自身的信息,形成一個(gè)循環(huán)的網(wǎng)絡(luò)結(jié)構(gòu)。這使得RNN 可以共享不同時(shí)刻的參數(shù),如圖3 所示。RNN 的單個(gè)神經(jīng)元包含一個(gè)反饋輸入,網(wǎng)絡(luò)中上一時(shí)刻神經(jīng)元的“歷史信息”將通過(guò)權(quán)值與下一時(shí)刻的神經(jīng)元相連接。這樣,RNN 在t時(shí)刻的輸入與輸出映射都參考了t時(shí)刻之前所有輸入數(shù)據(jù)對(duì)網(wǎng)絡(luò)的影響,形成了反饋網(wǎng)絡(luò)結(jié)構(gòu),使RNN 中的參數(shù)在不同時(shí)刻共享。

圖3 RNN 單個(gè)神經(jīng)元結(jié)構(gòu)圖Fig.3 Single neuron structure of RNN
給定一個(gè)輸入序列X1:T=(X1,X2,...,Xt,...,XT),RNN通過(guò)如式(2)所示的公式來(lái)更新帶反饋的隱含層活性值ht:
其中h0=0,f(·)是一個(gè)非線性操作。但是常規(guī)的RNN 很難學(xué)到長(zhǎng)期依賴,因此模型訓(xùn)練十分困難。
2.2.2 長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)
LSTM 在常規(guī)RNN 的結(jié)構(gòu)上做了改進(jìn),它的主體結(jié)構(gòu)與RNN 相似。不同的是,常規(guī)RNN 中的神經(jīng)元被LSTM 隱藏層中的記憶區(qū)塊所代替。記憶區(qū)起到對(duì)信息的限制作用,里面的門結(jié)構(gòu)對(duì)信息進(jìn)行篩選和限制,使該記住的信息傳遞下去,不該記的信息被門限制住,這樣的結(jié)構(gòu)使得梯度不論傳播多少層,都不可能真正消失。通過(guò)這種結(jié)構(gòu)來(lái)解決長(zhǎng)期依賴問(wèn)題,使得網(wǎng)絡(luò)能記住長(zhǎng)期的信息,這樣后期的早期信息也能對(duì)后面的網(wǎng)絡(luò)輸出起作用。相比于RNN 網(wǎng)絡(luò),LSTM 網(wǎng)絡(luò)收斂性更好。研究表明,LSTM 網(wǎng)絡(luò)是目前應(yīng)用最好的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)之一,在處理時(shí)間序列問(wèn)題上具有很好的效果。如語(yǔ)音識(shí)別、溫度預(yù)測(cè)、發(fā)病率預(yù)測(cè)等。
LSTM 網(wǎng)絡(luò)結(jié)構(gòu)中每一層的神經(jīng)元都含有3 個(gè)門來(lái)控制并保護(hù)結(jié)構(gòu)狀態(tài),這3 個(gè)門分別是輸入門、遺忘門、輸出門,它們都包含在LSTM 網(wǎng)絡(luò)記憶單元中,通過(guò)調(diào)節(jié)門的開(kāi)關(guān)可以實(shí)現(xiàn)初始序列對(duì)最后結(jié)果的影響,具體的LSTM 網(wǎng)絡(luò)記憶單元的網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,輸入門控制新輸入到記憶單元的強(qiáng)度,遺忘門控制記憶單元保持上一時(shí)間值的強(qiáng)度,輸出門控制輸出記憶單元的強(qiáng)度。圖4 中it表示輸入門,ft表示遺忘門,ot表示輸出門,ct表示記憶單元的向量值。另外Sigmoid 激活函數(shù)作為門函數(shù),其作用是通過(guò)記憶單元保持與上層特征的聯(lián)系,增強(qiáng)記憶的時(shí)效性,輸出0-1 的數(shù)值,從而決定有多少信息可以輸入到記憶單。

圖4 LSTM 記憶單元結(jié)構(gòu)圖Fig.4 LSTM memory unit structure diagram
LSTM 網(wǎng)絡(luò)對(duì)序列數(shù)據(jù)xt按照如式(3)-式(8)所示的公式進(jìn)行處理。
其中U1,W1,b1為線性關(guān)系的系數(shù)和偏置,σ為Sigmoid激活函數(shù),?為Hadamard 積(對(duì)應(yīng)位置相乘)。
本文提出的ResNet-LSTM 結(jié)構(gòu)如表1 所示。網(wǎng)絡(luò)由一個(gè)初始卷積層、兩個(gè)殘差塊、一個(gè)轉(zhuǎn)換層和兩個(gè)LSTM層組成。初始層包含64 個(gè)7×7 的卷積核,池化采用3×3的最大值池化,步長(zhǎng)為2。殘差塊1 中包含3 個(gè)連續(xù)的1×1和3×3 卷積層,每層卷積核個(gè)數(shù)為64,池化采用2×2 的均值池化,步長(zhǎng)為2。殘差塊2 與殘差塊1 結(jié)構(gòu)基本一致,但每層卷積層的卷積核個(gè)數(shù)增加到128 個(gè)。經(jīng)過(guò)轉(zhuǎn)換層后,把輸出特征圖的通道鋪平,變成6×6×128=4608 的一維張量,并輸入到最后的兩個(gè)LSTM 層中,兩個(gè)LSTM 層分別包含4608 個(gè)神經(jīng)元和100 個(gè)神經(jīng)元。

表1 ResNet-LSTM 網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 ResNet-LSTM network structure

表2 ASVspoof 2019 數(shù)據(jù)集分布Tab.2 ASVspoof 2019 data set distribution
ResNet-LSTM 檢測(cè)網(wǎng)絡(luò)的輸入是96×96 大小的頻譜圖,通過(guò)卷積操作提取語(yǔ)音段時(shí)域和頻域上的有效信息,利用池化層不斷壓縮特征圖大小獲取高緯度的深層特征。特征信息最終通過(guò)兩層LSTM 結(jié)構(gòu)對(duì)該特征序列進(jìn)行處理并輸出最終的分類結(jié)果,分類器采用Softmax。
ASVspoof 2019 語(yǔ)料庫(kù)包含46 名男性和61 名女性在內(nèi)的107 名說(shuō)話人的真實(shí)語(yǔ)音,所有的真實(shí)語(yǔ)音均采用了相同的錄音設(shè)備和環(huán)境,且沒(méi)有信道和噪聲的干擾。數(shù)據(jù)集中的偽裝語(yǔ)音均是由獲取的真實(shí)語(yǔ)音經(jīng)過(guò)語(yǔ)音合成和語(yǔ)音轉(zhuǎn)換得到,語(yǔ)音數(shù)據(jù)的采樣率均為16kHz。
數(shù)據(jù)集包括3 個(gè)子集:訓(xùn)練集(Train)、驗(yàn)證集(Development)和測(cè)試集(Evaluation)。其中訓(xùn)練集和驗(yàn)證集中的偽裝語(yǔ)音來(lái)自6 種相同且已知的語(yǔ)音偽裝技術(shù),用于對(duì)偽裝語(yǔ)音檢測(cè)系統(tǒng)進(jìn)行訓(xùn)練和參數(shù)調(diào)整。而測(cè)試集中的偽裝語(yǔ)音則包含上述2 種已知的攻擊類型和11 種未知的攻擊類型。
需要注意的是,由于偽裝(負(fù)樣本)語(yǔ)音的數(shù)量是真實(shí)(正樣本)語(yǔ)音數(shù)量的大約9 倍。為了確保訓(xùn)練數(shù)據(jù)的平衡,本文對(duì)真實(shí)(正樣本)語(yǔ)音的訓(xùn)練集和驗(yàn)證集進(jìn)行了擴(kuò)充,使正樣本的數(shù)量與負(fù)樣本的數(shù)量相等。
本文使用一個(gè)ADAM 優(yōu)化器[18]訓(xùn)練提出的ResNet-LSTM 模型的損失函數(shù),其中第一和第二的指數(shù)衰減率估計(jì)β1,β2 分別為0.9 和0.999。學(xué)習(xí)率設(shè)置為10-4,訓(xùn)練Epoch 為50 次,批量大小為32。
語(yǔ)音檢測(cè)實(shí)驗(yàn)部分,本文采用的是1s 的極短時(shí)長(zhǎng)的語(yǔ)音進(jìn)行實(shí)驗(yàn),認(rèn)為1s 的語(yǔ)音段極具代表性,采用1s 的語(yǔ)音訓(xùn)練模型可以使得到的模型可以應(yīng)用到幾乎所有時(shí)長(zhǎng)的偽裝語(yǔ)音的檢測(cè)中,不會(huì)出現(xiàn)因測(cè)試語(yǔ)音片段過(guò)短而導(dǎo)致測(cè)試結(jié)果不準(zhǔn)確的情況。而ASVspoof2019 數(shù)據(jù)集中的語(yǔ)音段均為30~60s 的語(yǔ)音段,數(shù)據(jù)量較大,實(shí)際獲取語(yǔ)音時(shí)未必能達(dá)到上述的要求。
所以本文在原始語(yǔ)音的基礎(chǔ)上,將語(yǔ)音段切割成1s的多個(gè)短語(yǔ)音段并作為訓(xùn)練及測(cè)試數(shù)據(jù)應(yīng)用到設(shè)計(jì)的ResNet-LSTM 網(wǎng)絡(luò)中,并采用錯(cuò)誤拒絕率與錯(cuò)誤接受率去判斷所提出方法的有效性。其中錯(cuò)誤拒絕率指錯(cuò)誤拒絕真實(shí)語(yǔ)音的概率,錯(cuò)誤接受率是表示錯(cuò)誤接受偽裝語(yǔ)音的概率。一般是使用等錯(cuò)誤率(Equal Error Rate,EER)來(lái)代表檢測(cè)方法的性能,其表達(dá)式如式(9)所示:
其中,θEER是錯(cuò)誤拒絕率Pmiss與錯(cuò)誤接受率Pfa相等時(shí)的閾值。
本文把ASVspoof2019 中測(cè)試集中包含的13 種攻擊類型的數(shù)據(jù)分別進(jìn)行了實(shí)驗(yàn),并計(jì)算等錯(cuò)誤率,實(shí)驗(yàn)結(jié)果如表3 所示。

表3 跨數(shù)據(jù)庫(kù)檢測(cè)等錯(cuò)誤率Tab.3 The equal error rate of cross-database speech
根據(jù)表3 的實(shí)驗(yàn)結(jié)果表明,ResNet-LSTM 網(wǎng)絡(luò)在檢測(cè)未知語(yǔ)音合成或語(yǔ)音轉(zhuǎn)換的偽裝攻擊時(shí),依然保持較低的等錯(cuò)誤率。此外測(cè)試數(shù)據(jù)集中的A16 和A19 的檢測(cè)結(jié)果要優(yōu)于其他11 個(gè)測(cè)試數(shù)據(jù)集的結(jié)果,這是由于A16與A04,A19 與A06 是來(lái)自相同的偽裝攻擊算法,測(cè)試的等錯(cuò)誤率相較于其他未知偽裝攻擊更低。
在這一部分的實(shí)驗(yàn)中,本文還對(duì)語(yǔ)音變形的偽裝語(yǔ)音進(jìn)行了檢測(cè),以此驗(yàn)證該檢測(cè)網(wǎng)絡(luò)在應(yīng)對(duì)其他類型的語(yǔ)音攻擊時(shí)的效果。這部分實(shí)驗(yàn)數(shù)據(jù)包含3 個(gè)語(yǔ)料庫(kù),分別是Timit(630 個(gè)說(shuō)話人,6300 段語(yǔ)音)、UME(202個(gè)說(shuō)話人,4040 段語(yǔ)音)和NIST(356 個(gè)說(shuō)話人,3560段語(yǔ)音)。語(yǔ)音數(shù)據(jù)為WAV 格式,采樣率均為8kz。語(yǔ)料庫(kù)的分組如下:
訓(xùn)練集:Timit-1(3000 段語(yǔ)音),UME-1(2040 段語(yǔ)音),NIST-1(2000 段語(yǔ)音);
測(cè)試集:Timit-2(3300 段語(yǔ)音),UME-2(2000 段語(yǔ)音),NIST-2(1560 段語(yǔ)音)。
實(shí)驗(yàn)的訓(xùn)練集和測(cè)試集來(lái)源于同一個(gè)語(yǔ)料庫(kù),實(shí)驗(yàn)結(jié)果對(duì)比了其語(yǔ)音檢測(cè)的方法。實(shí)驗(yàn)采用如式(10)所示的公式中的檢測(cè)精度方法來(lái)測(cè)量性能。
其中G和S為測(cè)試集中真實(shí)和偽裝語(yǔ)音的數(shù)量,Ga和Sa分別為從G中正確檢測(cè)到的真實(shí)片段和從S中正確檢測(cè)到的偽裝語(yǔ)音片段的數(shù)量。實(shí)驗(yàn)結(jié)果如表4 所示。
實(shí)驗(yàn)結(jié)果表明,本文提出的方法檢測(cè)精度比Liang等人提出的檢測(cè)方法[16]高1.79%,比Wu 等人提出的方法[15]高2.87%。本文提出的方法優(yōu)于另外兩種方法,是因?yàn)镽esNet-LSTM 比普通的CNN 卷積層數(shù)更多,提取到更多更深層的特征用于分類。此外,普通CNN 的決策僅僅是由深層特征決定,但在ResNet-LSTM 引入了短路徑的連接,并在分類時(shí)不僅可以參考深層特征,同時(shí)又參考了早期的淺層特征,從而提高檢測(cè)精度。
本文對(duì)多種不同類型的偽裝語(yǔ)音分別進(jìn)行了檢測(cè),提出了基于ResNet-LSTM 的多類型偽裝語(yǔ)音檢測(cè)模型。該模型通過(guò)對(duì)語(yǔ)音時(shí)頻圖卷積能自動(dòng)提取語(yǔ)音特征,并利用殘差模塊的短連接實(shí)現(xiàn)同時(shí)保留語(yǔ)音的深層特征和淺層特征信息,并最終通過(guò)LSTM 的門結(jié)構(gòu)過(guò)濾掉無(wú)效信息,留下有效特征,從而提高偽裝語(yǔ)音的檢測(cè)效果。實(shí)驗(yàn)的結(jié)果顯示,ResNet-LSTM 在多種類型的偽裝語(yǔ)音的檢測(cè)效果均表現(xiàn)很好,檢測(cè)精度均超過(guò)90%。