王 泳,蘇卓藝,朱錚宇,2
(1.廣東技術(shù)師范大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,廣東 廣州 510665;2.華南理工大學(xué) 音頻、語音與視覺處理實(shí)驗室,廣東 廣州 510641)
語音欺騙可以分為兩類[1]:① 假冒欺騙,即利用某種手段產(chǎn)生或獲得被假冒的目標(biāo)人物的語音,從而令識別系統(tǒng)誤判該語音為被假冒人所說,主要包括語音轉(zhuǎn)換(Voice Conversion,VC)、語音合成(Speech Synthesis,SS)和語音重播等操作;② 隱藏欺騙,即通過變換說話人的聲音(沒有模仿任何目標(biāo)人物)令識別系統(tǒng)無法判斷該說話人的身份,此類操作一般也統(tǒng)稱為語音變換(Voice Transformation,VT)欺騙。已有研究[2-3]表明,兩類欺騙均可輕易騙過目前的說話人識別(Automatic Speaker Recognition,ASR)系統(tǒng),對社會安全構(gòu)成威脅。
目前相關(guān)的安全研究主要集中在假冒欺騙的檢測上[4-21],而對VT欺騙的檢測研究則相對非常不足。文獻(xiàn)[22-24]提出利用梅爾頻率倒譜系數(shù)特征和支持向量機(jī)分類器的VT檢測算法,跨數(shù)據(jù)庫的識別率低于90%,且該方法計算量非常大。LIANG等人提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[25]的VT檢測方法,但準(zhǔn)確率小于95%,表明實(shí)際應(yīng)用中仍需要改進(jìn)。
事實(shí)上,假冒欺騙通常需要大量的目標(biāo)說話人的語音信息,實(shí)現(xiàn)成本相對較高;而隱藏欺騙不需要任何額外的信息,且已有成熟的算法產(chǎn)生自然度極高的欺騙語音,已集成在眾多的音頻、語音處理工具中,相較假冒欺騙更多地運(yùn)用在各種欺詐案件之中。因此,研究VT隱藏欺騙的檢測具有重要的理論和實(shí)用價值。另一方面,目前已有的檢測方法一般采用人工設(shè)計特征和分類識別結(jié)合的傳統(tǒng)機(jī)器學(xué)習(xí)方法,特征設(shè)計比較困難且不穩(wěn)定,影響檢測效果。綜合以上情況,并鑒于深度學(xué)習(xí)框架具有自動提取深度特征的功能,筆者提出了一種基于密集卷積神經(jīng)網(wǎng)絡(luò)的VT欺騙檢測方法,總共包含135層的網(wǎng)絡(luò)層,該網(wǎng)絡(luò)通過最大化短路徑的連接強(qiáng)化數(shù)據(jù)傳輸,可同時利用深層和淺層邊緣特征進(jìn)行分類,抑制退化現(xiàn)象。
語音欺騙操作涉及改變信號的頻域成分。由傅里葉變換性質(zhì)可知,頻域的變化會帶來信號的時長(節(jié)奏)變化。但通常情況下,欺騙操作希望保持時長(節(jié)奏)不變。另外,由于頻域的離散化,離散傅里葉變換得到的系數(shù)一般并非真實(shí)頻率,而是與真實(shí)頻率有一定誤差。為此,眾多音頻處理工具中的VT操作是基于相位-聲碼器原理,即利用短時傅里葉變換(STFT)中的相位信息估計信號的真實(shí)頻率(瞬時頻率),并進(jìn)而修改瞬時頻率。此方法既能提高頻率估計精度,從而得到聽覺更自然的變換語音,同時亦打破由傅里葉變換造成的時域和頻域之間的關(guān)聯(lián),在伸縮瞬時頻率的同時保持節(jié)奏不變。VT操作[26]的一般過程如下。
(1) 對信號x(n)分幀、加窗(窗函數(shù)可采用漢寧窗或海明窗):
(1)
(2) 計算瞬時幅值:
(2)
(3) 通過本幀與前一幀的相位關(guān)系計算瞬時頻率:
(3)
其中,F(xiàn)s是抽樣頻率,Δ是相對中心頻率的偏移頻率。具體計算過程與文中內(nèi)容無關(guān),不再贅述;若有興趣則請參閱文獻(xiàn)[26]。
(4) 頻譜伸縮。首先是瞬時幅值線性插值:
|F(k′)|=μ|F(k)|+(1-μ)|F(k+1)|, 0≤k (4) 接著進(jìn)行頻線搬移: ω′(kα)=ω(k)α, 0≤k (5) 在不會引起誤會的前提下,仍記搬移之后的瞬時頻率為ω(k)。 (5) 由瞬時頻率計算瞬時相位φ(k),獲得變換后的快速傅里葉變換系數(shù): F(k)=|F(k)|exp[jφ(k)] 。 (6) (6) 對F(k)進(jìn)行快速傅里葉變換反變換,即可獲得變換后的信號。 根據(jù)語音學(xué)原理,α可以表示為以半音s為自變量的方程[27],其表達(dá)式為 α(s)=2s/12, (7) 其中,可以取[-12,+12]范圍內(nèi)的任何整數(shù)值,代表不同的偽裝程度。偽裝程度過低,會與原始語音非常接近;偽裝程度過高,容易引起不自然的聽覺效應(yīng),這兩種情況均不容達(dá)到欺騙目的。因此,文中考慮的偽裝程度為s取[-8,-4]和[+4,+8]兩個范圍內(nèi)的值,這兩個范圍具有最強(qiáng)的欺騙效果。 根據(jù)前面描述的VT欺騙原理,VT操作會向語音信號的頻譜引入變化,這些頻率成分的變化可以作為區(qū)別原始語音和偽裝語音的依據(jù)。另外,直接的時域采樣數(shù)據(jù)的特征分布通常非常稀疏,并不適用于卷積神經(jīng)網(wǎng)絡(luò),而時頻圖的語音特征分布則相對密集,更有利于神經(jīng)網(wǎng)絡(luò)提取特征。因此,筆者將時頻圖作為網(wǎng)絡(luò)的輸入數(shù)據(jù)。 常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)為前一層網(wǎng)絡(luò)的輸出Xl-1傳送到下一層作為輸入,經(jīng)過非線性操作Hl輸出Xl,即 Xl=Hl(Xl-1) 。 (8) 此非線性操作一般包括卷積、池化以及激活函數(shù)。 一般情況下,為了提取到更深層的特征用于分類,會設(shè)計出層數(shù)較多的模型。但隨著網(wǎng)絡(luò)層數(shù)的加深,網(wǎng)絡(luò)在訓(xùn)練過程中的前傳信號和梯度信號在經(jīng)過若干層之后會逐漸消失,從而會出現(xiàn)訓(xùn)練到一定程度時,訓(xùn)練精度隨著訓(xùn)練次數(shù)的增加而緩慢升高,而測試精度卻反而下降的情況,稱為退化現(xiàn)象。為解決退化問題,殘差網(wǎng)絡(luò)(ResNets)[28]、高速公路網(wǎng)絡(luò)(Highway Networks)[29]和分形網(wǎng)絡(luò)(FractalNets)[30]中都提出了一種數(shù)據(jù)短路徑(Skip-Layer)技術(shù)來使得信號可以在輸入層和輸出層之間高速流通。核心思路是通過創(chuàng)建一個跨層連接來連通網(wǎng)絡(luò)中的前后層,從而抑制退化現(xiàn)象,即 Xl=Hl(Xl-1)+Xl-n, (9) 其中,Xl-1代表短路徑。 然而,這種連接方式導(dǎo)致許多網(wǎng)絡(luò)層貢獻(xiàn)很小,卻占用大量計算。為此,筆者進(jìn)一步拓展加入短路徑這種思路,提出了一種改進(jìn)結(jié)構(gòu)的密集卷積神經(jīng)網(wǎng)絡(luò)(DenseNet)。具體做法是:為了最大化網(wǎng)絡(luò)中所有層之間的信息流,將網(wǎng)絡(luò)中的所有層兩兩進(jìn)行連接,使得網(wǎng)絡(luò)中每一層都接受它前面所有層的特征作為輸入[31]。即在此結(jié)構(gòu)中,任何層都直接連接到網(wǎng)絡(luò)中的所有后續(xù)的層,其表達(dá)式為 Xl=Hl([X0,X1,…,Xl-1]) , (10) 其中,X0,X1,…,Xl-1表示l層前面所有層的輸出,[…]表示連續(xù)操作。此外,密集卷積神經(jīng)網(wǎng)絡(luò)中每個網(wǎng)絡(luò)層都有k個特征映射,得到k個特征圖,k通常設(shè)置為一個較小的值。 這種密集連接方式相對于前面提到的網(wǎng)絡(luò)具有顯著的優(yōu)勢:① 每層的輸出特征圖都是之后所有層的輸入,保證了層間最大的信息流,增強(qiáng)了特征傳播;② 網(wǎng)絡(luò)層變得更窄(即k值變小),減少了參數(shù)數(shù)量,減輕了退化問題,并且支持有限神經(jīng)元的復(fù)用。另外,參數(shù)數(shù)量減少亦產(chǎn)生正則化效果,對過擬合有一定的抑制作用;③ 不需要重新學(xué)習(xí)冗余的特征圖,更利于模型的訓(xùn)練。 基于2.1節(jié)介紹的網(wǎng)絡(luò)結(jié)構(gòu),筆者進(jìn)一步構(gòu)建135層密集神經(jīng)網(wǎng)絡(luò)分類模型(135-DenseNet),結(jié)構(gòu)如圖1所示。輸入是語音信號的時頻圖,圖片大小為90×88。本網(wǎng)絡(luò)使用長寬等長的卷積核和池化,較適合長寬等長的輸入圖片。利用Matlab中的spectrogram計算時頻圖,當(dāng)片段長度為1 s、采樣率為8 kHz且窗長度取127時,獲得的視頻圖大小為90×88,最接近正方形,故輸入時頻圖取90×88。網(wǎng)絡(luò)由1個初始化層(initial layer)、3個密集模塊(dense block)、2個轉(zhuǎn)換層(transition layer)、1個全局池化層(global pooling layer)以及1個線性層(linear layer)組成。3個密集模塊分別由6層、12層和48層瓶頸層(bottleneck layer)組成。線性層是一個完整的全連接層,利用softmax輸出“真實(shí)”和“欺騙”兩個概率。 各層的內(nèi)部結(jié)構(gòu)如圖2所示。圖2中k表示的是卷積核的數(shù)量。每個卷積瓶頸層包含2個卷積層,每個轉(zhuǎn)換層包含1個卷積層,這樣整個網(wǎng)絡(luò)總共包含2×(6+12+48)+1+1+1=135個卷積層。值得注意的是,瓶頸層包含1個1×1卷積層和1個3×3卷積層,對比一般的兩個3×3的卷積層減少了計算。轉(zhuǎn)換層的作用是連接兩個相鄰的模塊且可以減少特征圖的大小。 筆者以其中一段語音作為例子,其原始語音及欺騙語音的時頻圖以及圖1中模塊1的特征映射在圖3中給出。筆者知道,通常原始語音的時域特征分布過于稀疏,不利于卷積神經(jīng)網(wǎng)絡(luò)提取特征。而從圖3(a)中可以看出,時頻圖具有相對集中的紋理結(jié)構(gòu),意味著特征相對集中,更有利于神經(jīng)網(wǎng)絡(luò)的特征提取。從圖3(b)和(c)中可以看出,該神經(jīng)網(wǎng)絡(luò)能有效地捕獲有用特征。 實(shí)驗中使用了3種語料庫,分別是Timit(6 300個片段,630個說話人)、NIST(3 560個片段,356個說話人)和UME(4 040個片段,202個說話人)。語料庫都是WAV格式,8 kHz采樣率,16 bit量化和單聲道。每個語料庫分為以下兩組: (1) 訓(xùn)練集:Timit-1(3 000個片段),NIST-1(2 000個片段),UME-1(2 040個片段); (2) 測試集:Timit-2(3 300個片段),NIST-2(1 560個片段),UME-2(2 000個片段)。 每個片段被進(jìn)一步切割成多個1 s的片段。每組1 s片段的數(shù)量如表1所示。 (a) 原始語音時頻圖 (b) 欺騙語音(變換工具Audacity,偽裝程度系數(shù)S取+6)時頻圖 (d) 欺騙語音時頻圖經(jīng)由神經(jīng)網(wǎng)絡(luò)模塊1后的特征映射 表1 每個語料庫中的1 s片段數(shù) 本實(shí)驗考慮Audacity、Cool Edit、PRAAT和RTISI等4種常見的欺騙方法(工具),偽裝因子在[-8,-4]和[+4,+8]之間。由于欺騙樣本的數(shù)量是真實(shí)樣本的40倍,為解決此數(shù)據(jù)不平衡的問題,在計算真實(shí)語音的時頻圖時,每次移動200個采樣點(diǎn)計算一個頻譜圖,使真實(shí)樣本的數(shù)量與欺騙樣本的數(shù)量相等。 筆者使用ADAM優(yōu)化器來訓(xùn)練帶有L2正則化的密集卷積神經(jīng)網(wǎng)絡(luò)損失函數(shù),其中β1和β2分別為第1指數(shù)和第2指數(shù)衰減率估計,大小為0.900和0.999。學(xué)習(xí)率和舍棄率分別設(shè)置為0.000 1和0.300 0。訓(xùn)練批次數(shù)為100 000次,批次大小為64個。采用檢測準(zhǔn)確率d來測量模型的性能,即 d=(Gd+Sd)/(G+S) , (11) 其中,G和S分別為測試集中真實(shí)和欺騙片段的數(shù)量,Gd和Sd分別為從G中正確檢測到的真實(shí)片段和從S中正確檢測到的欺騙片段的數(shù)量。 測試集和訓(xùn)練集來自同一個語料庫。該方法的檢測結(jié)果和其他方法的結(jié)果如表2所示。從表2可以看到,筆者方法的平均檢測準(zhǔn)確率比LIANG等人采用傳統(tǒng)CNN模型的方法高2.58%,比WU等人提出的MFCC-SVM方法高3.66%。 筆者提出的方法優(yōu)于另外兩種方法,是因為DenseNet模型比常規(guī)的CNN擁有更多的網(wǎng)絡(luò)層,它可以提取更多更深層次的特征以作分類。此外,在常規(guī)的CNN中,決策僅僅是由深度特征決定的。但在DenseNet中,由于連接方式密集,決策既具有深度特征又參考了早期的邊緣特征,從而進(jìn)一步提高了檢測的準(zhǔn)確率。 表2 同源語料庫測試的檢測準(zhǔn)確率 % 在現(xiàn)實(shí)場景中,測試語音和訓(xùn)練語音可能有不同的來源,所以它們可能具有不同的特征。因此,筆者進(jìn)行了跨語料庫的評估,以測試所提方法的泛化能力。實(shí)驗選取3個語料庫中的一個作為測試數(shù)據(jù)集,另外兩個庫作為訓(xùn)練數(shù)據(jù)集,實(shí)驗結(jié)果如表3所示。筆者可以看到,實(shí)驗1和實(shí)驗2具有優(yōu)良的結(jié)果,但實(shí)驗3并不理想。筆者分析的原因是NIST的數(shù)據(jù)量遠(yuǎn)大于表1所示的另外兩組,其訓(xùn)練得到的模型具有更好的泛化能力。在LIANG等人的方法[25]中,實(shí)驗1的準(zhǔn)確率約為94.37%,而筆者的準(zhǔn)確率約為96.45%,說明筆者提出的方法優(yōu)于LIANG等人的方法。其他兩個方案的結(jié)果沒有在LIANG等人的實(shí)驗中顯示。 表3 跨語料庫檢測準(zhǔn)確率 % 在實(shí)際應(yīng)用中,錄音和傳輸過程可能會引入噪聲,影響檢測的準(zhǔn)確率。在這部分,筆者將高斯白噪聲加入到數(shù)據(jù)集中以評估其對噪聲的魯棒性。具體來說,筆者在每個干凈的語音訓(xùn)練集上分別加入10 dB、20 dB和30 dB的高斯噪聲,然后利用加噪數(shù)據(jù)集和干凈數(shù)據(jù)集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。 在測試中,筆者在每個干凈測試集上分別加入10 dB、15 dB、20 dB和30 dB的高斯噪聲,然后測試每個加噪測試集和每個干凈測試集的正確率,如表4所示。從表4第4列可以看出,即使在加入10 dB信噪比噪聲的情況下,準(zhǔn)確率基本保持在90%左右,說明筆者的方法對噪聲攻擊具有良好的魯棒性。需要注意的是,15 dB噪聲的數(shù)據(jù)集是沒有出現(xiàn)在訓(xùn)練集中的,其測試結(jié)果在第4列的數(shù)據(jù)中顯示。筆者可以看到,與第3、5、6、7列中的其他條件相比,即使沒有15 dB的訓(xùn)練樣本,亦獲得較高的測試準(zhǔn)確率。 表4 噪聲條件下的檢測準(zhǔn)確率 % 由于音頻壓縮在存儲與傳輸中幾乎是必需的,在本節(jié)中測試文中方法對MP 3壓縮的魯棒性。筆者分別對訓(xùn)練集和測試集進(jìn)行MP 3壓縮,壓縮比為16∶1,實(shí)驗準(zhǔn)確率如表5所示。在壓縮情況下,平均準(zhǔn)確率約為92%,與非壓縮情況相比,經(jīng)過壓縮的語音檢測準(zhǔn)確率只有輕微的下降,說明該方法具有較強(qiáng)的抗壓縮能力。 表5 在壓縮和非壓縮情況下的檢測準(zhǔn)確率 % 筆者提出了一種基于密集卷積神經(jīng)網(wǎng)絡(luò)的欺騙語音檢測方法。所設(shè)計的135層密集神經(jīng)網(wǎng)絡(luò)能自動提取淺層的特征以及深層的邊緣特征并用于分類。實(shí)驗結(jié)果表明,其檢測性能優(yōu)于目前已有的方法。并且通過對卷積核的優(yōu)化和瓶頸層的使用提高了計算效率。未來的工作將集中在應(yīng)用更深層次的網(wǎng)絡(luò)結(jié)構(gòu)來提取更深層次的特征,進(jìn)一步提高準(zhǔn)確率。2 模型框架說明
2.1 密集神經(jīng)網(wǎng)絡(luò)
2.2 135層密集神經(jīng)網(wǎng)絡(luò)
3 實(shí)驗結(jié)果
3.1 實(shí)驗語料庫和設(shè)置
3.2 同源語料庫測試
3.3 跨語料庫評估
3.4 噪聲魯棒性
3.5 壓縮魯棒性
4 結(jié)束語