陳晉音,葉林輝,鄭海斌,楊奕濤,俞山青
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
E-mail:chenjinyin@zjut.edu.cn
隨著深度學(xué)習(xí)模型在語音識別應(yīng)用中取得的成功,語音識別控制系統(tǒng)如Amazon Alexa,谷歌語音助手,蘋果siri,微軟Cortana和科大訊飛等商業(yè)產(chǎn)品在人機(jī)交互中獲得廣泛應(yīng)用,并在移動(dòng)設(shè)備、智能家居等多個(gè)領(lǐng)域取得成功,尤其在自動(dòng)駕駛、聲紋身份認(rèn)證等安全級別較高的應(yīng)用場景中實(shí)現(xiàn)了關(guān)鍵應(yīng)用.
傳統(tǒng)語音識別模型多數(shù)采用隱馬爾科夫高斯混合模型(HMM-GMM)[1],建立在似然概率基礎(chǔ)上,利用區(qū)分度訓(xùn)練在一定程度上擬合了模式類之間的差異性.深度學(xué)習(xí)的引入使語音識別系統(tǒng)原有的技術(shù)框架得到徹底改變[2-5].深度神經(jīng)網(wǎng)絡(luò)可以充分利用特征之間的關(guān)聯(lián)性,將連續(xù)幀的語音特征合并后進(jìn)行訓(xùn)練,使語音識別系統(tǒng)的識別率大幅度提高.
由于深度神經(jīng)網(wǎng)絡(luò)的優(yōu)異性能,已有較多基于深度神經(jīng)網(wǎng)絡(luò)模型的語音識別系統(tǒng).然而,Goodfellow[6]和Szegedy[7]發(fā)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)容易受到對輸入數(shù)據(jù)添加細(xì)微擾動(dòng)形式的對抗攻擊.例如在自動(dòng)駕駛領(lǐng)域,車載語音識別系統(tǒng)在輸入時(shí)被外加的細(xì)微擾動(dòng)所攻擊,語音識別系統(tǒng)將錯(cuò)誤地識別乘客的指令,這給自動(dòng)駕駛系統(tǒng)帶來了極大的安全隱患.
隨著圖像領(lǐng)域?qū)构舻难芯可钊?,音頻領(lǐng)域的對抗攻擊也逐步提出.兩種攻擊存在差異,首先,語音識別系統(tǒng)需要處理時(shí)間域上的信息變化,這比圖像分類系統(tǒng)更復(fù)雜;其次,音頻的采樣率通常都非常高.例如:采樣率為16kHz的音頻,每秒采樣16000個(gè)數(shù)據(jù)點(diǎn),相比于圖像分類,這意味著要處理更大的數(shù)據(jù)量.因此,語音識別領(lǐng)域?qū)箻颖镜纳蛇^程更加復(fù)雜.
Carlini[8],Cisse[9]和Iter[10]提出了語音識別對抗攻擊生成方法,在已知識別模型結(jié)構(gòu)的前提下基于梯度信息生成對抗樣本,屬于白盒攻擊方法,Carlini指定了攻擊的目標(biāo)短語,屬于目標(biāo)攻擊,而Cisse和Iter的攻擊方法未指定特定攻擊目標(biāo)短語,屬于無目標(biāo)攻擊(逃逸攻擊).而在實(shí)際應(yīng)用中,通常攻擊者很難獲得識別模型的結(jié)構(gòu)信息,且攻擊是為了達(dá)到特定目標(biāo)(例如,使得某一段語音識別成特定的指令),因此黑盒的目標(biāo)攻擊在實(shí)際應(yīng)用中更具有攻擊性與隱蔽性.
為實(shí)現(xiàn)面向語音識別系統(tǒng)的黑盒目標(biāo)攻擊,本文提出了一種面向語音識別系統(tǒng)的黑盒攻擊方法,主要工作包括:
1)提出了一種基于布谷鳥搜索優(yōu)化算法的黑盒對抗攻擊方法,實(shí)現(xiàn)對語音識別系統(tǒng)的黑盒攻擊;
2)通過設(shè)定攻擊目標(biāo)指令,可將任意正常樣本通過布谷鳥搜索算法自動(dòng)生成對抗樣本,實(shí)現(xiàn)了黑盒設(shè)置下的目標(biāo)對抗攻擊,驗(yàn)證了提出方法具有較強(qiáng)的目標(biāo)攻擊能力與樣本生成能力;
3)將本文提出的方法在多個(gè)實(shí)際數(shù)據(jù)集展開驗(yàn)證,包括:公共語音數(shù)據(jù)集、谷歌語音命令數(shù)據(jù)集、GTZAN數(shù)據(jù)集和LibriSpeech數(shù)據(jù)集,驗(yàn)證提出方法的有效性.并分析了生成對抗樣本的攻擊遷移性,驗(yàn)證其對其他語音識別模型具有遷移性攻擊,并對對抗樣本進(jìn)行了主觀評測,探究了其隱蔽性.
基于隱馬爾可夫模型(HMM)的語音識別模型是常用方法之一,Baum[11]率先使用最大似然原則對HMM模型進(jìn)行訓(xùn)練.Macherey[12]把比最大似然原則更優(yōu)的判別訓(xùn)練應(yīng)用在HMM上,采用了最小分類誤差優(yōu)化模型的參數(shù)并取得較好結(jié)果.Zheng[13]提出了一種新的判別訓(xùn)練標(biāo)準(zhǔn),使用最小通話幀誤差加速了模型的訓(xùn)練,并且使得模型的準(zhǔn)確率有所提高.Wu[14]提出了基于最小代誤差的HMM訓(xùn)練方法,提高了模型的識別精度.
在基于HMM的語音識別模型基礎(chǔ)上,利用高斯混合模型(GMM)狀態(tài)觀測概率進(jìn)行建模.Yu[15,16]用上下文相關(guān)的深度神經(jīng)網(wǎng)絡(luò)模型(DNN)來替代高斯混合模型,并取得了良好的效果.Mohamed[17]使用深度置信網(wǎng)絡(luò)代替高斯混合模型來提高模型的識別率.Yao[18]將自適應(yīng)的方法引入DNN-HMM的模型中,使詞錯(cuò)誤率進(jìn)一步降低.
近幾年,提出了較多基于深度學(xué)習(xí)模型的語音識別方法,端到端的語音識別方法直接將輸入的聲學(xué)特征序列映射到輸出的詞序列.Graves[19]利用連接主義時(shí)間分類(CTC)來建立端到端的語音識別模型.隨后,百度拓展了這項(xiàng)工作,利用大量的數(shù)據(jù)訓(xùn)練得到能成功商用于英語和普通話的語音識別模型[3].Zhang[20]將深度卷積網(wǎng)絡(luò)引入端到端模型,進(jìn)一步增強(qiáng)了模型的表達(dá)和泛化能力.谷歌的DeepMind團(tuán)隊(duì)推出了可以生成音頻的深度神經(jīng)網(wǎng)絡(luò)WaveNet模型[5],WaveNet不僅能作為一種生成模型,而且可以完成語音識別的任務(wù).Chan[21]提出了一種端到端的語音識別注意力模型,進(jìn)一步提高識別準(zhǔn)確率.
受到圖像領(lǐng)域?qū)构粞芯康膯l(fā),音頻領(lǐng)域的對抗攻擊正在受到越來越多的關(guān)注.Gong[22]使用2%大小的擾動(dòng)使得基于深度神經(jīng)網(wǎng)絡(luò)的語音識別系統(tǒng)誤識別,實(shí)現(xiàn)了無目標(biāo)攻擊.Carlini[23]提出了一種通過MFC層傳遞梯度的方法,并將其應(yīng)用到DeepSpeech模型[2]中,通過從一個(gè)梯度連接到原始輸入,其攻擊絕大多數(shù)情況下能夠成功.Wang[24]利用快速梯度符號法(FGSM),對基于注意力機(jī)制的深度關(guān)鍵詞識別模型生成了對抗樣本.Sch?nherr[25]利用心理聲學(xué)原理,基于梯度信息構(gòu)建了隱蔽性良好的對抗樣本,實(shí)現(xiàn)了目標(biāo)攻擊.Qin[26]同樣利用了心理聲學(xué)原理和梯度信息實(shí)現(xiàn)了目標(biāo)攻擊,與Sch?nherr[25]不同的是,Qin[26]構(gòu)建的對抗樣本具有更好的隱蔽性和更強(qiáng)的魯棒性.Yakura[27]在對抗樣本生成過程中引入了脈沖響應(yīng)和高斯白噪聲,提高了生成的對抗樣本對回聲和環(huán)境噪聲的魯棒性.而這些攻擊的方法均在已知模型結(jié)構(gòu)前提下展開攻擊,屬于白盒攻擊.
在黑盒攻擊方面,Alzantot[28]已經(jīng)證明,實(shí)現(xiàn)針對自動(dòng)語音識別系統(tǒng)的黑盒目標(biāo)攻擊是可行的.Zhang[29]通過調(diào)制超聲波載波的命令并利用麥克風(fēng)的漏洞提出了海豚攻擊.Du[30]提出了SirenAttack,利用粒子群優(yōu)化算法,分別在白盒和黑盒設(shè)置下成功生成了對抗樣本,他們在多種語音識別模型上進(jìn)行了實(shí)驗(yàn),并取得了較好結(jié)果.Khare[31]在黑盒設(shè)置下使用多目標(biāo)進(jìn)化優(yōu)化的方法對DeepSpeech[2]和Kaldi-ASR(Automatic Speech Recognition)[4]模型進(jìn)行目標(biāo)攻擊,成功實(shí)現(xiàn)黑盒攻擊.Gong[32]在黑盒設(shè)置下,利用強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)了實(shí)時(shí)對抗攻擊,但是只攻擊了指令識別模型,實(shí)現(xiàn)的是無目標(biāo)攻擊,且存在計(jì)算資源消耗大的問題.Abdullah[33]使用在語音信號處理階段加噪聲的方法,通過將目標(biāo)指令隱藏在噪聲中實(shí)現(xiàn)了黑盒攻擊,該方法生成的對抗樣能夠使模型識別,而人聽起來就像噪聲,無法獲取對抗樣本中隱藏的內(nèi)容.但現(xiàn)實(shí)中,當(dāng)人聽到揚(yáng)聲器傳來噪聲時(shí),很有可能會引起警覺發(fā)現(xiàn)異樣,也就是說該方法生成的對抗樣本隱蔽性不夠高.
針對語音識別系統(tǒng)的攻擊,也提出了一些防御方法用于消除攻擊帶來的影響.這些方法的一個(gè)共同特點(diǎn)就是檢測收到的信號是否來自于一個(gè)正在說話的人.Lei[34]提出了一種利用無線信號來檢測人體運(yùn)動(dòng)的虛擬按鈕,只有在檢測到人體運(yùn)動(dòng)時(shí)才能接受語音命令.Feng[35]提出了VAuth(Vee-Auth),這是第一個(gè)為語音助手提供連續(xù)和可用身份驗(yàn)證的系統(tǒng).通過可穿戴設(shè)備采集用戶的體表振動(dòng),并將其與語音助手的麥克風(fēng)接收到的語音信號相匹配,以此來驗(yàn)證語音命令是用戶發(fā)出的.然而,這些方法都是有限的,因?yàn)檎Z音命令不一定伴隨可檢測的運(yùn)動(dòng),可穿戴設(shè)備(例如眼鏡)也不方便.Zhang[29]提出了利用超聲波和麥克風(fēng)漏洞攻擊的方法,同時(shí)也提出了相應(yīng)的防御方法,利用一種能抑制超聲載體信號的增強(qiáng)型麥克風(fēng)來防御.在對抗性聲學(xué)系統(tǒng)的防御方面,Szegedy[7]提出了對抗訓(xùn)練,Wang[24]利用生成的對抗樣本和原樣本對關(guān)鍵詞識別模型進(jìn)行重訓(xùn)練,提高了模型的魯棒性,但對抗訓(xùn)練的局限性在于,經(jīng)過重訓(xùn)練的模型可實(shí)現(xiàn)相應(yīng)攻擊的防御,在實(shí)際中,攻擊者可以更改參數(shù)來繞過防御.Du[30]提出了滑動(dòng)平均濾波的防御方法,即把某個(gè)采樣點(diǎn)的前K-1個(gè)和后K-1個(gè)采樣點(diǎn)作為參考點(diǎn),用參考點(diǎn)的平均值代替這個(gè)采樣點(diǎn)的方式進(jìn)行防御,具有一定的防御效果.針對語音識別系統(tǒng)的防御研究,本文提出了兩種防御對抗攻擊的策略,嘗試實(shí)現(xiàn)語音識別模型的防御.
智能優(yōu)化算法如遺傳算法[36]、蟻群算法[37]、粒子群算法[38]、布谷鳥搜索算法[39]等,通過模擬生物的行為或自然界的現(xiàn)象求解目標(biāo)優(yōu)化問題.
布谷鳥搜索算法是Yang[39]提出的一種模仿自然界中布谷鳥育雛行為的啟發(fā)式算法.布谷鳥本身不筑巢、不孵卵、不育雛,而是通過將卵產(chǎn)在其他鳥(宿主)的鳥巢中,由宿主代為孵化和育雛的方式進(jìn)行繁衍.布谷鳥趁宿主外出時(shí)將自己的卵產(chǎn)入宿主的鳥巢中.為了不被宿主察覺,布谷鳥在產(chǎn)卵之前會把宿主鳥巢中的一枚或多枚卵移走,來保持鳥巢中原有的卵數(shù)量.一旦布谷鳥的寄生卵被發(fā)現(xiàn),這個(gè)卵便會被宿主移走或者宿主丟棄這個(gè)鳥巢去建立新的鳥巢,布谷鳥寄生繁殖失敗.
布谷鳥通過萊維飛行搜尋鳥巢.萊維飛行屬于隨機(jī)行走的一種,行走的步長滿足一個(gè)重尾的穩(wěn)定分布,在這種形式的行走中,高頻率的短距離飛行和低頻率的長距離飛行相間.
由于布谷鳥搜索算法的操作簡單、收斂速度快、具有較強(qiáng)的空間搜索能力,因而本文選用布谷鳥搜索算法優(yōu)化擾動(dòng),生成對抗樣本.在實(shí)際尋優(yōu)過程中,鳥巢就是解,鳥巢的數(shù)量作為種群大小,根據(jù)具體優(yōu)化問題而設(shè)定,通過萊維飛行更新鳥巢位置.宿主以一定的概率Pa發(fā)現(xiàn)異常卵,在實(shí)際問題中則以概率Pa剔除適應(yīng)度低的解.
本文提出基于布谷鳥搜索算法的對抗攻擊方法,輸入原始音頻樣本,通過布谷鳥搜索算法尋找近似最優(yōu)對抗擾動(dòng),并生成相應(yīng)的對抗樣本,樣本的攻擊效果通過輸入目標(biāo)模型(DeepSpeech)判定其輸出結(jié)果作出評價(jià),最終將搜索得到的最優(yōu)解輸出,即為有效對抗樣本,其系統(tǒng)框架如圖1所示.
本文利用布谷鳥搜索算法優(yōu)化擾動(dòng)生成對抗樣本.首先,原始音頻復(fù)制至設(shè)定鳥巢數(shù)量后通過添加隨機(jī)噪聲擴(kuò)大鳥巢之間的差異形成初步解;其次,通過萊維飛行產(chǎn)生新解,通過適應(yīng)度函數(shù),比較新舊解的優(yōu)劣,更新鳥巢.在優(yōu)化過程中,發(fā)現(xiàn)當(dāng)適應(yīng)度函數(shù)值低于一定值時(shí),布谷鳥算法不再高效,因此設(shè)定閾值ψ.當(dāng)適應(yīng)度函數(shù)值小于閾值ψ時(shí),在布谷鳥算法的基礎(chǔ)上添加變異操作,擴(kuò)大搜索范圍.最后,判斷對抗樣本是否識別為目標(biāo)短語或達(dá)到最大迭代次數(shù),若未產(chǎn)生對抗樣本并未達(dá)到最大迭代次數(shù),繼續(xù)迭代優(yōu)化對抗樣本.
圖1 系統(tǒng)框架
將原始音頻復(fù)制至設(shè)定鳥巢數(shù)量,由于復(fù)制后的各個(gè)解之間不存在差異,無法確定最優(yōu)解,因此不能直接通過布谷鳥搜索算法優(yōu)化.通過添加隨機(jī)噪聲的方法擴(kuò)大各個(gè)鳥巢之間的差異性,完成初始化.例如:DeepSpeech模型的輸入為采樣率為16kHz的音頻文件,恢復(fù)為模擬信號后的音頻文件的最高頻率為8kHz.根據(jù)Reichenbach[40]的研究表明,人耳對低頻比高頻更敏感,因此對噪聲使用截止頻率fcutoff=7kHz的高通濾波器,將噪聲限制在高頻范圍內(nèi),使人耳更難察覺.初始化后的鳥巢通過適應(yīng)度函數(shù)進(jìn)行評分,確定初始種群的最優(yōu)解,并記錄最優(yōu)適應(yīng)度值.
連結(jié)主義時(shí)間分類(CTC)是Graves[41]提出的一種端到端的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)訓(xùn)練方法.傳統(tǒng)的語音識別模型中,對語音模型進(jìn)行訓(xùn)練之前,需將文本與語音進(jìn)行嚴(yán)格對齊,即需要將每一幀對應(yīng)到標(biāo)簽,而CTC不需要對齊語音和文本.CTC的損失函數(shù)CTCLoss可以解釋為給定樣本后輸出正確label的概率之和.本文使用CTCLoss作為適應(yīng)度函數(shù)FCTCLoss(x),一方面得益于CTC不要求對齊,另一方面是CTCLoss可較好衡量對抗樣本與目標(biāo)短語之間的接近程度.
假定x為DeepSpeech的輸入,其輸出序列π為可能解碼為對應(yīng)文本T的序列,定義集合Z=(a,z)∪(_)∪(-),其中“_”表示空格,“-”為CTC引入的特殊字符,這個(gè)字符可以避免CTC解碼器在解碼過程中刪除序列π中可以解碼為對應(yīng)文本的字符,其中π∈Z.
DeepSpeech模型定義為y=F(x),其中x∈X,為輸入音頻X的某一幀,其輸出y為字符的概率分布,由此概率分布可以確定輸出序列為π的概率.對于輸入X,CTC解碼器在解碼時(shí),對序列π進(jìn)行移除相鄰重復(fù)字母和移除特殊字符“-”的操作.例如對輸入為10幀的音頻X,若其對應(yīng)文本T為“apple”,則對序列π1-“-aappp-ple”與序列π2-“ap-p-l-eee”進(jìn)行移除相鄰重復(fù)字母和特殊字符的操作,則序列π1和π2均可解碼為“apple”.因此對于一個(gè)輸入音頻X,其輸出預(yù)測序列π是不唯一的.因此在輸入X下,其輸出為序列π的概率為:
(1)
(2)
而CTCLoss定義如下:
CTCLoss(f(x),T)=-logP(T|f(x))
(3)
可以發(fā)現(xiàn),在模型訓(xùn)練時(shí),當(dāng)解碼為T的概率P(T|f(x))越大,CTCLoss越小,由此本文定義適應(yīng)度函數(shù)FCTCLoss(x)如下:
FCTCLoss(x)=-CTCLoss(f(x),t)
(4)
其中,t為設(shè)置的目標(biāo)短語,可見,當(dāng)對抗樣本解碼為目標(biāo)短語t的概率越大,F(xiàn)CTCLoss(x)越大,則評分越高.
布谷鳥搜索算法通過萊維飛行機(jī)制和隨機(jī)游走尋找鳥巢,萊維飛行是一種由小步長的短距離飛行和偶爾大步長的長距離飛行組成的隨機(jī)游走過程,因此布谷鳥搜索的尋窩路徑容易在不同的搜索區(qū)域間跳躍,導(dǎo)致布谷鳥搜索算法的局部精細(xì)搜索能力較差,在算法迭代后期容易在全局最優(yōu)解附近的區(qū)域出現(xiàn)震蕩現(xiàn)象,造成算法效率偏低.因此本文在達(dá)到一定條件后,在布谷鳥搜索算法中加入變異操作,提高算法尋找最優(yōu)解的效率.
3.3.1 萊維飛行
在自然界中,布谷鳥搜索以隨機(jī)或者類似隨機(jī)的飛行方式來尋找適合自己產(chǎn)卵的鳥巢位置,為了便于模擬布谷鳥搜索的繁殖策略,Yang等[39]將布谷鳥搜索算法假設(shè)為以下三個(gè)理想狀態(tài):
1)每只布谷鳥搜索一次只產(chǎn)一個(gè)卵,并隨機(jī)選擇一個(gè)位置的鳥巢進(jìn)行孵化.
2)在隨機(jī)選擇的一組鳥巢中,優(yōu)質(zhì)的鳥巢將會被保留到下一代.
3)可利用的鳥巢數(shù)量固定,宿主鳥發(fā)現(xiàn)外來鳥蛋的概率為Pa∈[0,1].當(dāng)宿主鳥發(fā)現(xiàn)外來的布谷鳥蛋的時(shí)候,它會將布谷鳥蛋丟棄或者重新建立新的鳥巢.
基于以上三個(gè)理想狀態(tài),使用Mentegna算法[42]實(shí)現(xiàn)萊維飛行.萊維飛行更新如下:
(5)
(6)
其中,u,v是兩個(gè)服從高斯分布的變量,β是常數(shù),其值由具體問題決定,σ2由公式(7)計(jì)算:
(7)
利用萊維飛行,對除最優(yōu)鳥巢以外的鳥巢的位置和狀態(tài)進(jìn)行更新,產(chǎn)生新鳥巢.比較每個(gè)新鳥巢與舊鳥巢的適應(yīng)度,將舊鳥巢中適應(yīng)度差的解替換為新鳥巢中適應(yīng)度優(yōu)的解,并找出當(dāng)前種群中適應(yīng)度最優(yōu)的鳥巢,保存至下一代.
3.3.2 局部隨機(jī)游走
局部隨機(jī)游走定義為宿主鳥以一定的概率Pa發(fā)現(xiàn)外來鳥后重新建窩的路徑.產(chǎn)生的鳥窩的位置采用偏好隨機(jī)游動(dòng)的方式,即利用了其它鳥窩的相似性.新建的鳥窩的位置公式定義如下:
Xt+1=Xt+γ*Heaviside(Pa-ε)*(Xi-Xj)
(8)
其中,γ和ε是服從均勻分布的隨機(jī)數(shù),相互獨(dú)立,Heaviside(x)是跳躍函數(shù),Xi,Xj是其它任意的兩個(gè)鳥巢.局部隨機(jī)游走產(chǎn)生的新鳥巢同樣需要與舊鳥巢比較,將舊鳥巢中適應(yīng)度低的解替換為新鳥巢中適應(yīng)度高的解,并記錄當(dāng)前種群中適應(yīng)度函數(shù)最優(yōu)的鳥巢,保存至下一代.
當(dāng)CTCLoss減小到一定范圍時(shí),對抗樣本接近目標(biāo)擾動(dòng),此時(shí)的萊維飛行由于種群個(gè)體太過相似而容易陷入局部最優(yōu),無法產(chǎn)生更優(yōu)解.因此,本文設(shè)計(jì)了變異操作拓展搜索空間,提高搜索效率.通過對所有解添加隨機(jī)噪聲的方式進(jìn)行變異,同時(shí),這個(gè)噪聲會通過一個(gè)截止頻率為fcutoff=7kHz的高通濾波器,將噪音限制在高頻范圍內(nèi).若變異操作產(chǎn)生比原來解中更優(yōu)的解,通過替換舊解更新鳥巢,最優(yōu)解將會被保留到下一代.變異算法在增加種群的多樣性的同時(shí),用變異概率限制或擴(kuò)大變異的程度.若變異概率太低,可能產(chǎn)生不了新的更好的最優(yōu)解,而變異概率過大,可能會錯(cuò)過最優(yōu)解.因此設(shè)置了動(dòng)量更新公式更新突變概率:
(9)
其中,pold表示種群原來的突變率,pnew表示種群新的突變率,currScore表示當(dāng)前種群的得分,preScore表示上一代種群的得分.μ和γ是相關(guān)系數(shù),μ值越大,新的突變率pnew越接近pold;γ越大,pnew變化的范圍越大.μ的取值應(yīng)比較大,γ應(yīng)較小,這是為了控制pnew的變化幅度,若變化幅度太大,可能會使原有解的較好形態(tài)的消失.動(dòng)量更新增加了突變概率的加速度,當(dāng)種群優(yōu)化停滯時(shí),通過保持高的突變概率,使得突變的部位累積并隨迭代次數(shù)而相加.變異操作將增加種群的多樣性,與萊維飛行結(jié)合,將更加高效的獲得最優(yōu)解.
布谷鳥搜索算法
輸入:原始音頻X,目標(biāo)短語t,迭代次數(shù)itr,最大迭代次數(shù)Max
輸出:對抗樣本Xadv
初始化鳥巢:產(chǎn)生n個(gè)寄主鳥巢,添加噪聲擴(kuò)大差異,形成初始解Xn
計(jì)算初始鳥巢最優(yōu)適應(yīng)度值Fbest,確定最優(yōu)解Xbest
while (itr 萊維飛行產(chǎn)生新解X′n 比較新舊解適應(yīng)度值F′n,Fn ifF′i>Fi(i=1…n) Xi=X′i IfF′best>Fbest Xbest=X′best ifF″i>Fi(i=1…n) Xi=X″i ifF″best>Fbest Xbest=X″best ifCTCLoss<ψ 加入變異操作 end while returnXadv=Xbest 為驗(yàn)證本文方法的有效性,在四個(gè)數(shù)據(jù)集上展開實(shí)驗(yàn),包括:公共語音數(shù)據(jù)集(1)https://voice.mozilla.org/zh-CN/datasets,谷歌語音命令數(shù)據(jù)集(2)http://download.tensorflow.org/data/speech_commands_v0.01.tar.gz,GTZAN音樂數(shù)據(jù)集(3)http://marsyas.info/downloads/datasets.html和LibriSpeech數(shù)據(jù)集(4)http://www.openslr.org/12/.其中,公共語音數(shù)據(jù)集是Mozilla開源的大型語音數(shù)據(jù)集,它由用戶朗讀來自于博客,書籍,電影等多個(gè)公共信息源的文本收集而成.它擁有超過500小時(shí)的樣本,大約有20000名志愿者提供了40000多份樣本.谷歌語音命令數(shù)據(jù)集是由谷歌的TensorFlow團(tuán)隊(duì)創(chuàng)建的語音數(shù)據(jù)集.該數(shù)據(jù)集包含30種短單詞的命令,總共有65000個(gè)時(shí)長為1秒的,只包含一個(gè)單詞的命令語音.GTZAN音樂數(shù)據(jù)集包含了10種音樂風(fēng)格的總量為1000個(gè)的30秒長的音樂片段.LibriSpeech語音數(shù)據(jù)集包含了1000小時(shí)采樣率為16kHz的有聲錄音,并且經(jīng)過切割和整理成每條10秒左右的、經(jīng)過文本標(biāo)注的音頻文件. 為了確定對抗樣本和原始樣本之間的擾動(dòng)大小,引入了分貝(dB).用分貝來衡量單個(gè)音頻樣本的相對強(qiáng)度: dB(X)=max(20log10X) (10) 其中,X表示輸入音頻.在本次實(shí)驗(yàn)中,在dB級別上,將生成的對抗樣本Xadv和原始音頻X比較,以此確定相對擾動(dòng)的強(qiáng)度: dBX(Xadv)=|dB(Xadv)-dB(X)| (11) 為了比較生成的對抗樣本和原音頻的相似度,引入了皮爾遜相關(guān)系數(shù)來衡量對抗樣本和原音頻的相似度,皮爾遜相關(guān)系數(shù)公式如下: (12) 其中cov(X,Y)是矩陣X,Y的協(xié)方差,δX,δY分別表示矩陣X,Y的標(biāo)準(zhǔn)差. 為了比較生成樣本的解碼結(jié)果與目標(biāo)短語的差距,引入了編輯距離.編輯距離是用來度量兩個(gè)序列相似程度的指標(biāo),指的是在兩個(gè)序列 本文設(shè)計(jì)攻擊的目標(biāo)模型為百度的DeepSpeech模型[2].DeepSpeech是一個(gè)開源的基于CTC的端到端深度語音識別模型(5)https://github.com/carlini/audio_adversarial_examples,其核心是一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),由五層隱藏單元組成.如圖2所示,網(wǎng)絡(luò)的前三層不是循環(huán)神經(jīng)元,第一層的輸出取決于每個(gè)時(shí)間的輸入xt以及xt左右相鄰的C幀音頻,第二、三層的輸入為前一層的輸出,對于每一時(shí)間步,前3層可以計(jì)算為: (13) 第四層是雙向遞歸層,這一層有兩類神經(jīng)元,一類是前向遞歸h(f),另一類是后向遞歸h(b): (14) (15) 若輸入音頻的總幀數(shù)為T,則h(f)必須從t=1到t=T依次計(jì)算,同時(shí)h(b)神經(jīng)元從t=T到t=1反向依次計(jì)算. 第五層將第四層中的前向和后向單元的輸出作為輸入: (16) (17) 模型通過CTCLoss計(jì)算預(yù)測誤差.DeepSpeech使用Switchboard(SWB)數(shù)據(jù)集和Fisher(FSH)數(shù)據(jù)集進(jìn)行訓(xùn)練,數(shù)據(jù)集總時(shí)長為2300小時(shí).模型通過數(shù)據(jù)并行和模型并行的方式訓(xùn)練,能在數(shù)小時(shí)內(nèi)完成2300小時(shí)的音頻數(shù)據(jù)的訓(xùn)練,并在300小時(shí)的Switchboard的數(shù)據(jù)集上進(jìn)行了評價(jià),在Hub500S數(shù)據(jù)集上進(jìn)行了測試.實(shí)驗(yàn)結(jié)果表明在使用可比較的數(shù)據(jù)量進(jìn)行訓(xùn)練時(shí),DeepSpeech與現(xiàn)有最佳ASR系統(tǒng)相比具有競爭力[2].另外DeepSpeech向Wall Street Journal(WSJ)數(shù)據(jù)集,Switchboard(SWB)數(shù)據(jù)集,F(xiàn)isher(FSH)數(shù)據(jù)集和Baidu數(shù)據(jù)集加入噪聲,將加入噪聲后的數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,并將所有數(shù)據(jù)重新采樣到16khz,數(shù)據(jù)集總時(shí)長超過10萬小時(shí).DeepSpeech的測試結(jié)果表明,其在噪音環(huán)境下的識別率優(yōu)于Bing,Apple等語音識別系統(tǒng)[2]. 為了驗(yàn)證本文提出的基于布谷鳥搜索算法的黑盒攻擊的有效性,在上述數(shù)據(jù)集上進(jìn)行了語音的黑盒攻擊.初始化40個(gè)鳥巢,最大迭代次數(shù)設(shè)為3000,參數(shù)β設(shè)為2.當(dāng)CTCLoss大于55時(shí),采用布谷鳥算搜索法優(yōu)化擾動(dòng).當(dāng)CTCLoss小于55時(shí),在布谷鳥算法的基礎(chǔ)上加入變異操作,變異率設(shè)為0.005.對于公共語音數(shù)據(jù)集和LibriSpeech數(shù)據(jù)集,分別從中隨機(jī)挑選50個(gè)訓(xùn)練樣本生成對抗樣本.對于谷歌語音命令數(shù)據(jù)集,隨機(jī)挑選5個(gè)指令,在每個(gè)指令中隨機(jī)挑選10條作為訓(xùn)練樣本.對于GTZAN數(shù)據(jù)集,隨機(jī)從5種風(fēng)格的音樂樣本中隨機(jī)挑選10條,截取為5秒后作為訓(xùn)練樣本.由于DeepSpeech模型的輸入為采樣率為16kHz的wav文件,因此將所選音頻樣轉(zhuǎn)化為采樣率為16kHz的wav格式的音頻文件.對于從每個(gè)數(shù)據(jù)集中隨機(jī)選出的50條樣本,隨機(jī)以10個(gè)音頻文件為1組,分成5組,共20組,分別設(shè)置不同的目標(biāo)短語.為了模擬自動(dòng)駕駛時(shí)的場景,對于從公共語音數(shù)據(jù)集,GTZAN音樂數(shù)據(jù)集和LibriSpeech語音數(shù)據(jù)集選出的15組樣本,將目標(biāo)短語設(shè)置為“turn left”,“turn right”,“speed up”等自動(dòng)駕駛時(shí)常用的短語.若在自動(dòng)駕駛時(shí),語音識別系統(tǒng)將“stop”識別為“go”,這很有可能帶來巨大風(fēng)險(xiǎn),考慮到這個(gè)場景,將谷歌語音命令數(shù)據(jù)集的目標(biāo)短語設(shè)置為與其相反的短語,如音頻的對應(yīng)文本為“on”,則目標(biāo)短語設(shè)置為“off”.另外,分別從4個(gè)數(shù)據(jù)集中,隨機(jī)挑選2個(gè)音頻文件作為樣本,每個(gè)樣本隨機(jī)設(shè)置10條不同的目標(biāo)短語,分析攻擊效果.根據(jù)上述4個(gè)語音數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果分析本文攻擊方法的有效性. 圖2 DeepSpeech模型結(jié)構(gòu) 定義攻擊成功,當(dāng)生成的對抗樣本被識別為目標(biāo)短語,則視為攻擊成功,否則失敗.表1列出了在各個(gè)數(shù)據(jù)集上的攻擊成功率,擾動(dòng)的相對強(qiáng)度的平均值和對抗樣本與原音頻相似度的平均值.對比公共語音數(shù)據(jù)集,谷歌語音命令數(shù)據(jù)集和LibriSpeech數(shù)據(jù)集的結(jié)果可以發(fā)現(xiàn),樣本詞長度越長,攻擊的成功率越低,所添加的擾動(dòng)越大,對抗樣本與原音頻的相似度越小.而對谷歌語音命令數(shù)據(jù)集的高攻擊成功率可以反映出在自動(dòng)駕駛領(lǐng)域,使簡單的指令誤識別為目標(biāo)指令是相對容易的,對自動(dòng)駕駛領(lǐng)域的語音控制系統(tǒng)的攻擊是存在較大可能性的.從擾動(dòng)相對強(qiáng)度和平均相似度上可以發(fā)現(xiàn),所添加擾動(dòng)的相對強(qiáng)度小,對抗樣本與原音頻有著較高的相似度.對于GTZAN音樂數(shù)據(jù)集的成功攻擊反映出可以將目標(biāo)短語嵌入到音樂中,而由于音樂能夠使人放松等特性,所加的噪聲將更難被發(fā)現(xiàn). 表1 基于布谷鳥算法的黑盒攻擊方法在不同數(shù)據(jù)集上的攻擊情況 Table 1 Black-box attack based on cuckoo algorithm on different data sets 數(shù)據(jù)集樣本平均詞長目標(biāo)短語平均詞長攻擊效果成功率相對擾動(dòng)強(qiáng)度(dB)平均相似度公共語音數(shù)據(jù)集5.482.851.43%0.18493.07%谷歌語音命令數(shù)據(jù)集1.00188.57%0.10895.07%GTZAN數(shù)據(jù)集/3.645.71%0.25496.16%LibriSpeech數(shù)據(jù)集8.06235.71%0.24594.12% 本文比較了布谷鳥搜索算法與Taori[43]提出的遺傳算法的攻擊成功率,平均編輯距離和平均相似度.從上述4個(gè)數(shù)據(jù)集中,每個(gè)數(shù)據(jù)集隨機(jī)挑選50條音頻作為樣本,將目標(biāo)短語設(shè)置為1000個(gè)最常用英語短語中詞長度為2的短語,每個(gè)樣本迭代3000代,分別用遺傳算法和布谷鳥搜索算法生成對抗樣本.如表2所示,本文提出的布谷鳥搜索算法的攻擊成功率和平均編輯距離要優(yōu)于遺傳算法,但布谷鳥搜索算法生成的對抗樣本在平均相似度上低于遺傳算法.布谷鳥搜索算法的核心是萊維飛行和局部隨機(jī)游走,而遺傳算法的核心是種群間的交叉變異.相比于布谷鳥搜索算法,遺傳算法的種群間的交叉變異可以把添加的擾動(dòng)限制在更小的范圍內(nèi).但通過萊維飛行和局部隨機(jī)游走,布谷鳥搜索算法可以搜索更大的空間,因此布谷鳥搜索算法的攻擊成功率要高于遺傳算法,但由于添加的擾動(dòng)比遺傳算法大,因此平均相似度要略低于遺傳算法. 為進(jìn)一步分析對抗樣本與原樣本之間的相似性,本文在每個(gè)數(shù)據(jù)集上,成功生成的對抗樣本中,隨機(jī)選取4條樣本進(jìn)行比較,并將原始波形和對抗樣本波形疊加以可視化擾動(dòng).表3列出了所選的樣本的對應(yīng)文本,目標(biāo)短語,擾動(dòng)相對強(qiáng)度等結(jié)果,為了比較所加的噪聲對原音頻的影響,將表3的結(jié)果用波形圖的形式呈現(xiàn),如圖3~圖6所示.其中,表3中的音頻文件的命名只是為了與圖3~圖6中的波形圖對應(yīng),與樣本的選擇無關(guān).如圖3~圖6所示,其中淺色波形表示原音頻,深色波形表示對抗樣本,將原音頻與對抗樣本疊加后進(jìn)行比較.首先,從圖3~圖6可以發(fā)現(xiàn)所有擾動(dòng)幾乎都加在原音頻波形幅值較小的位置,而這個(gè)部分通常被視為環(huán)境噪聲,這使所加擾動(dòng)不易被發(fā)現(xiàn).其次,從圖中可以發(fā)現(xiàn),在音頻的語音部分,所加的擾動(dòng)很小,因此此攻擊方法對音頻的語音部分的影響小,隱蔽性高.從圖5可以發(fā)現(xiàn),對于GTZAN音樂數(shù)據(jù)集,所添加的擾動(dòng)在各個(gè)位置的幅值都很小,這說明該攻擊方法對GTZAN音樂數(shù)據(jù)集的改動(dòng)小,把指令嵌入到音樂中有極高的隱蔽性. 表2 布谷鳥搜索算法與遺傳算法比較 Table 2 Comparison of cuckoo search algorithms and genetic algorithms 數(shù)據(jù)集攻擊方法成功率平均相似度平均編輯距離公共語音數(shù)據(jù)集布谷鳥搜索算法45%93.07%1.6遺傳算法35%94.6%2.3谷歌語音命令數(shù)據(jù)集布谷鳥搜索算法92%94.86%0.12遺傳算法92%99.07%0.08GTZAN數(shù)據(jù)集布谷鳥搜索算法48%96.75%1遺傳算法48%99.16%1.26LibriSpeech語音數(shù)據(jù)集布谷鳥搜索算法34%92.84%10.1遺傳算法32%93.45%10.32 表3 原始音頻與對抗樣本相似度比較 Table 3 Similarity comparison between original audio and adversarial examples 數(shù)據(jù)集音頻文件對抗樣本原音頻對應(yīng)文本目標(biāo)短語擾動(dòng)相對強(qiáng)度相似度1.wav1adv.wavthen I saw the way.start the engine0.10360.9143公共語音數(shù)據(jù)集2.wav2adv.wavshe half closed her eyes.0.21970.95753.wav3-1adv.wavno one notice herno one like her0.03610.95693-2adv.wavturn left0.12910.93664.wav4adv.wavnogo0.01310.9961谷歌語音命令數(shù)據(jù)集5.wav5adv.wavoff 0.01420.99246.wav6-1adv.wavoffyes0.01920.99456-2adv.wavok0.01260.99847.wav7adv.wav/turn off the air conditioner0.03410.9983GTZAN語音數(shù)據(jù)集8.wav8adv.wav/0.12960.99369.wav9-1adv.wav/slow down0.06420.96479-2adv.wavno one see her0.02890.998610.wav10adv.wavcomfortable dearturn left0.15160.9721LibriSpeech數(shù)據(jù)集11.wav11adv.wavvery characteristic perfectly tyfical0.25310.918312.wav12-1adv.wavyes not at all wellnot all bed0.07330.991912-2adv.wavthank you0.08590.9869 圖3 公共語音數(shù)據(jù)集的音頻文件與相應(yīng)的對抗樣本的波形比較 圖4 谷歌語音命令數(shù)據(jù)集的音頻文件與相應(yīng)的對抗樣本的波形比較 圖5 GTZAN音數(shù)據(jù)集的音頻文件與相應(yīng)的對抗樣本的波形比較 圖6 LibriSpeech語音數(shù)據(jù)集的音頻文件與相應(yīng)的對抗樣本的波形比較 進(jìn)一步把在4個(gè)數(shù)據(jù)集上生成的對抗樣本的識別結(jié)果與目標(biāo)短語進(jìn)行比較,用編輯距離衡量對抗樣本與目標(biāo)短語間的差距.如圖7所示,可以發(fā)現(xiàn)大部分樣本分布在編輯距離較小的這一側(cè),說明即使攻擊失敗,但對抗樣本已經(jīng)十分接近目標(biāo)短語,只有少部分對抗樣本與目標(biāo)短語相差很遠(yuǎn),若增加迭代次數(shù),攻擊的成功率將會更高. 圖7 3000次迭代后樣本的編輯距離所占的比例 本文進(jìn)一步在谷歌語音命令數(shù)據(jù)集上的命令做相互轉(zhuǎn)換.隨機(jī)選出10種指令,在每種指令中都隨機(jī)挑選10條作為原始音頻,將原始音頻的目標(biāo)短語依次設(shè)置為其他9種指令.圖8比較的是在谷歌語音命令數(shù)據(jù)集上做命令相互轉(zhuǎn)換后的結(jié)果.由于語音命令是單個(gè)單詞,目標(biāo)短語的長度也是單個(gè)單詞,與在另外三個(gè)語音數(shù)據(jù)集上的攻擊相比,攻擊的難度降低.可以發(fā)現(xiàn)不同的語音指令之間進(jìn)行對抗攻擊的成功率很高.從現(xiàn)實(shí)角度看,在自動(dòng)駕駛領(lǐng)域,這也說明語音識別控制系統(tǒng)是存在漏洞的.如簡單的“Stop”在加入擾動(dòng)后就能被識別為“Go”,這將導(dǎo)致汽車識別錯(cuò)誤的指令,造成危險(xiǎn). 本文對布谷鳥搜索算法的關(guān)鍵參數(shù)鳥巢個(gè)數(shù)n和參數(shù)β進(jìn)行研究,分別分析兩個(gè)參數(shù)對對抗樣本的影響,通過參數(shù)敏感性分析算法的穩(wěn)定性. 圖8 谷歌語音命令數(shù)據(jù)集實(shí)驗(yàn)結(jié)果 4.5.1 鳥巢個(gè)數(shù)對對抗樣本生成時(shí)間與相似度的影響 為了研究鳥巢個(gè)數(shù)對對抗樣本生成時(shí)間以及對抗樣本與原音頻相似度的影響,在不同的鳥巢個(gè)數(shù)下生成對抗樣本.從上述四個(gè)數(shù)據(jù)集中,每個(gè)數(shù)據(jù)集隨機(jī)挑選5條音頻作為樣本,在不同的鳥巢個(gè)數(shù)下生成對抗樣本,統(tǒng)計(jì)在不同鳥巢個(gè)數(shù)下生成對抗樣本的平均時(shí)間和平均相似度.實(shí)驗(yàn)結(jié)果如圖9所示,對抗樣本的平均生成時(shí)間隨著鳥巢個(gè)數(shù)的增加而增加,因?yàn)轼B巢個(gè)數(shù)越大,計(jì)算機(jī)需要處理的數(shù)據(jù)越多,生成對抗樣本的時(shí)間會越長.鳥巢個(gè)數(shù)與平均相似度間沒有明顯的關(guān)系,但是注意到鳥巢個(gè)數(shù)設(shè)定為40時(shí),平均相似度達(dá)到最大值. 4.5.2β值對相似度的影響 為了比較β值對對抗樣本相似度的影響,在不同的β值設(shè)置下,生成對抗樣本.從上述4個(gè)數(shù)據(jù)集中,每個(gè)數(shù)據(jù)集隨機(jī)挑選5條音頻作為樣本,在不同的β值設(shè)置下生成對抗樣本.迭代次數(shù)設(shè)置為500,使生成的樣本不能完全被解碼為目標(biāo)短語.迭代次數(shù)設(shè)置較大時(shí),對抗樣本可以成功生成,成功生成的對抗樣本間的迭代次數(shù)可能不同,所加的擾動(dòng)大小會存在較大差異.為了只比較β對對抗樣本的影響,將迭代次數(shù)設(shè)為500,排除迭代次數(shù)不同而帶來的差異.從圖10可以發(fā)現(xiàn),當(dāng)β<1.8時(shí),對抗樣本與原音頻間的相似度很低.β與萊維飛行的步長有關(guān),其值越小,步長越大,對原音頻加的噪聲就會越大.一方面過大的噪聲使對抗樣本不具有隱蔽性,另一方面添加的噪聲過大會造成模型無法識別音頻,導(dǎo)致攻擊失敗.β=2時(shí),步長很小,對原音頻添加的擾動(dòng)就小,對抗樣本與原音頻的相似度就高. 圖9 鳥巢個(gè)數(shù)實(shí)驗(yàn)結(jié)果 圖10 β值實(shí)驗(yàn)結(jié)果 本文提出的基于布谷鳥搜索算法的黑盒攻擊生成的對抗樣本具有攻擊的遷移性.分別從公共語音數(shù)據(jù)集,LibriSpeech語音數(shù)據(jù)集,谷歌語音命令數(shù)據(jù)集和GTZAN數(shù)據(jù)集中隨機(jī)挑選50條音頻作為訓(xùn)練樣本,對于GTZAN音樂數(shù)據(jù)集,對于每個(gè)樣本,截取其中的5秒作為訓(xùn)練樣本.在DeepSpeech上生成對抗樣本.選取用來做攻擊的遷移性的語音識別模型為2016年,主要由Google的Deepmind團(tuán)隊(duì)推出的一種用于生成音頻的深度神經(jīng)網(wǎng)絡(luò),WaveNet模型[5].WaveNet模型的主要成分是因果卷積,它利用卷積來學(xué)習(xí)t時(shí)刻之前的輸入數(shù)據(jù),預(yù)測t+1時(shí)刻的輸出.雖然該模型是作為一種生成模型設(shè)計(jì)的,但通過在擴(kuò)展后的卷積層之后添加平均池層,它可以直接適應(yīng)諸如語音識別等區(qū)別于生成音頻的任務(wù).將原音頻輸入WaveNet模型,計(jì)算對原音頻的識別率.由于對抗樣本是對DeepSpeech模型進(jìn)行攻擊生成的,因此只在WaveNet上統(tǒng)計(jì)對抗樣本的識別率.對于識別率,定義如下: (18) 只要WaveNet識別的對抗樣本與原音頻識別結(jié)果不同,就視為遷移成功.則遷移成功率: (19) 表4是本文提出的基于布谷鳥搜索算法的黑盒攻擊生成的對抗樣本的遷移性實(shí)驗(yàn)結(jié)果.從表4可以看出,WaveNet模型對對抗樣本的識別率相比原音頻的識別率下降了一半以上,而極高的遷移成功率說明了本文提出的黑盒攻擊方法產(chǎn)生的對抗樣本能極大的影響其他語音識別模型的識別結(jié)果. 表4 對抗樣本遷移性實(shí)驗(yàn)結(jié)果 Table 4 Experiments on migration of adversarial examples 數(shù)據(jù)集原音頻識別率對抗樣本識別率遷移成功率公共語音數(shù)據(jù)集71.5%21.9%100%谷歌語音命令數(shù)據(jù)集78%14%92%GTZAN數(shù)據(jù)集//80%LibriSpeech數(shù)據(jù)集78.7%37.84%98% 為了驗(yàn)證本文提出的基于布谷鳥搜索算法的黑盒攻擊生成的對抗樣本具有一定的隱蔽性,本文對生成的對抗樣本進(jìn)行了主觀評價(jià).從上述4個(gè)數(shù)據(jù)集中,每個(gè)數(shù)據(jù)集中隨機(jī)挑選5條音頻作為樣本,生成對抗樣本,共20條對抗樣本.在進(jìn)行主觀評價(jià)的實(shí)驗(yàn)中,一共召集了30個(gè)聽眾,他們都是浙江工業(yè)大學(xué)與語音識別領(lǐng)域、對抗攻防領(lǐng)域無關(guān)的在讀本科生.在安靜的教室使用揚(yáng)聲器播放音頻,在聽完每個(gè)音頻后,每個(gè)聽眾將會做一些問答(如你聽到的音頻存在任何的噪聲嗎;若存在噪聲你認(rèn)為噪聲來自哪里).為了更加接近現(xiàn)實(shí)環(huán)境,首先單獨(dú)播放了對抗樣本,因?yàn)橐粋€(gè)攻擊者對語音識別模型進(jìn)行攻擊時(shí),只會通過對抗樣本對模型進(jìn)行攻擊,不會播放原音頻,對于聽眾來說,原音頻是接觸不到的,因此通過對對抗樣本進(jìn)行主觀評價(jià)來探究對抗樣本的隱蔽性.然后,將對抗樣本和原始音頻先后播放,打亂播放順序,即對于對抗樣本和原音頻,先播放哪一個(gè)是隨機(jī)的,以此探究對抗樣本與原音頻在聽覺上的差異性.同樣的,在聽完每對對抗樣本和原音頻后,每個(gè)聽眾同樣會做一些問答(如你聽到的前后樣本是否有差異;若有差異你認(rèn)為差異來自哪里).圖11(a)是對對抗樣本進(jìn)行主觀評價(jià)的結(jié)果;圖11(b)是在聽出對抗樣本中存在噪聲的聽眾中,對噪聲來自于哪里的主觀評價(jià);圖11(c)是對抗樣本與原音頻相似性的主觀評價(jià)結(jié)果.從圖11(a)中可以發(fā)現(xiàn)大部分的聽眾未從音頻中發(fā)現(xiàn)噪聲,只有20%的聽眾認(rèn)為音頻中有明顯噪聲;而從圖11(b)中可以發(fā)現(xiàn)在聽出噪聲的聽眾中,超過一半的聽眾認(rèn)為噪聲來自于揚(yáng)聲器;從圖11(c)中可以發(fā)現(xiàn),認(rèn)為對抗樣本與原音頻完全不同的聽眾低于15%.由此可以說明基于布谷鳥搜索算法的黑盒攻擊生成的對抗樣本不易引起聽眾的察覺,在聽覺上與原音頻相差不大,具有一定的隱蔽性. 圖11 對對抗樣本,對抗樣本中的噪聲以及對抗樣本與原音頻相似性的主觀評價(jià)結(jié)果 對于本文提出的基于布谷鳥搜索算法的黑盒攻擊生成的對抗樣本,嘗試找到防御這類對抗攻擊的方法.針對擾動(dòng)的分布特點(diǎn),采用了兩種方法:重采樣和降噪. 為了更好的區(qū)分攻擊是否失效,從公共語音數(shù)據(jù)集中隨機(jī)挑選100個(gè)原始音頻樣本為大于6個(gè)詞以上的句子,生成對抗樣本的目標(biāo)短語設(shè)為2個(gè)詞.將對抗樣本音頻的識別結(jié)果與目標(biāo)短語結(jié)果不一致定為失效,則失效率: (20) 將完全失效定義為處理后的對抗樣本識別結(jié)果的詞長度大于4且總字母數(shù)大于目標(biāo)短語的總字母數(shù),則完全失效率: (21) 從上圖3~圖6可以發(fā)現(xiàn)擾動(dòng)幾乎在音頻的每個(gè)時(shí)刻都會出現(xiàn).考慮到語音的識別是逐幀進(jìn)行檢測的,具有連續(xù)性,通過實(shí)驗(yàn)希望驗(yàn)證擾動(dòng)對于模型的攻擊是否是通過持續(xù)的干擾起到的作用.對此,對對抗樣本進(jìn)行重采樣. 對抗樣本的音頻格式為采樣率16kHz的wav文件.首先,通過下采樣將其降為8kHz的音頻.下采樣是一個(gè)將音頻的采樣率降低的過程,設(shè)原始音頻格式的采樣率為Q,目標(biāo)原始音頻的采樣率為P,則下采樣就是對于原始音頻中的采樣點(diǎn)每隔P/Q-1個(gè)取一次點(diǎn),在本次實(shí)驗(yàn)中,每隔一個(gè)采樣點(diǎn)取一個(gè)點(diǎn).當(dāng)下采樣完成時(shí),與原對抗樣本相比,少了一半的采樣點(diǎn). 通過插值法進(jìn)行上采樣,將音頻重新通過兩個(gè)采樣點(diǎn)插值的方法重新擴(kuò)為16kHz,這是為了符合語音識別模型的要求.重新擴(kuò)充后的音頻文件與原對抗樣本相比,雖然每秒采樣點(diǎn)數(shù)相同,但其中一半的采樣點(diǎn)是通過重新插值而成,不再是原來的點(diǎn).從表5中可以發(fā)現(xiàn),重采樣的失效率較高,經(jīng)過重采樣后的對抗樣本幾乎不能被識別為目標(biāo)短語.但是重采樣的完全失效率較低,這說明黑盒攻擊雖然失效,但是其長度依然接近于目標(biāo)短語的長度,也就是說語音識別模型依然把它識別為和目標(biāo)短語相近的句子.從中可以發(fā)現(xiàn)由布谷鳥搜索算法得到的黑盒攻擊具有較強(qiáng)的魯棒性. 使用經(jīng)典的譜減法[44]對包括擾動(dòng)在內(nèi)的所有噪聲進(jìn)行降噪處理.譜減法假設(shè)的情況十分簡單,如果原音頻中只有加性噪聲時(shí),用原始音頻的頻譜減去噪聲的頻譜,剩下的就是純粹的語音.將一段音頻的前5幀視為無語音的背景噪聲部分,將這5幀的噪聲進(jìn)行取平均值,原音頻的各個(gè)部位都減去這個(gè)平均值.這個(gè)方法可以對音頻各個(gè)時(shí)間的噪聲都做出相減,在整體上對攻擊擾動(dòng)進(jìn)行干擾. 表5 不同防御方法的防御情況 Tabel 5 Defense situation of different defense methods 防御方法失效率(%)完全失效率(%)重采樣94%23%降噪100%100% 表5是降噪下對抗樣本的失效率和完全失效率.從結(jié)果來看,降噪法比起重采樣法對于對抗樣本的防御效果更強(qiáng).因?yàn)橄啾扔谥夭蓸?,降噪方法在整段音頻的各個(gè)位置上都做了處理,都減去了估計(jì)的噪聲.但是降噪法的不足在于對噪聲的估計(jì)是基于前幾幀估計(jì)的,這些噪聲的估計(jì)不足以表征各個(gè)位置所加噪聲的準(zhǔn)確值.在整段音頻中,有些位置的噪聲去除的多了,有些位置未完全去除,這會造成原音頻的失真,去噪后的識別結(jié)果也變的不理想. 本文提出了面向語音識別系統(tǒng)的黑盒對抗攻擊方法,從實(shí)驗(yàn)結(jié)果來看,本文提出的基于布谷鳥搜索算法的黑盒攻擊方法能夠攻擊語音識別系統(tǒng),所產(chǎn)生的對抗樣本具有攻擊的遷移性.在實(shí)際應(yīng)用中,如果攻擊者針對某一車載語音識別系統(tǒng)進(jìn)行攻擊,所產(chǎn)生的對抗樣本會影響其他車載語音識別系統(tǒng),這給車載語音識別系統(tǒng)帶來了安全隱患.針對這一問題,提出了兩個(gè)防御方法,并取得了一定的效果.我們希望本次設(shè)計(jì)的攻擊以及防御方法可以幫助研究者改善這方面的風(fēng)險(xiǎn),提高車載語音識別系統(tǒng)的安全性.但是我們的攻擊方法存在著對抗樣本生成時(shí)間較長,攻擊的精度不夠高,對于對抗樣本的隱蔽性還有提高的空間等問題.所以在接下來的工作中,我們將測試更多語音識別模型,優(yōu)化訓(xùn)練方法,提高攻擊的效率和精度,進(jìn)一步提高對抗樣本的隱蔽性.我們也希望找到這種攻擊方法的弱點(diǎn),提出相應(yīng)的防御方案,提高車載語音識別系統(tǒng)的安全性.4 實(shí)驗(yàn)與結(jié)果分析
4.1 數(shù)據(jù)集
4.2 評價(jià)指標(biāo)
4.3 目標(biāo)模型
4.4 攻擊的有效性實(shí)驗(yàn)結(jié)果分析
4.5 參數(shù)敏感性
4.6 攻擊的遷移性
4.7 主觀評價(jià)
5 語音攻擊的魯棒性測試
5.1 重采樣
5.2 降噪
6 總 結(jié)