◆南兆營
(中國刑事警察學(xué)院 遼寧 110854)
說話人識別又稱為聲紋識別,是一種將某個語音樣本與其他語音樣本相比較,從而判斷兩者是否來自同一人的技術(shù),研究基礎(chǔ)是基于語音的個體差異性和短時不變性。說話人識別已經(jīng)成為一種類似于指紋識別和人臉識別的新型身份認證方式[1],被廣泛應(yīng)用于軍事、司法以及銀行、互聯(lián)網(wǎng)金融等領(lǐng)域[2]。隨著技術(shù)的不斷進步,說話人識別方法也從早期的聽覺檢驗、聲紋圖檢驗發(fā)展到現(xiàn)在的自動識別。自動說話人識別包括半自動說話人識別和全自動說話人識別,半自動說話人識別仍然需要人工提取語音特征,仍然依賴鑒定人的經(jīng)驗。由于語音特征提取方法眾多,不同方法提取出的語音特征對識別效果的影響是不一致的。另外,語音特征建模難,語音的復(fù)雜性無法用一個簡單的模型來表達;噪音也是影響說話人識別的關(guān)鍵因素,電腦無法分辨哪些聲音是目標(biāo)聲音,也無法像人耳一樣專注于目標(biāo)聲音。
深度學(xué)習(xí)的發(fā)展,使上述問題逐步得到解決。有實驗表明,深度學(xué)習(xí)提取的語音特征分類效果要好于傳統(tǒng)的MFCC、PLP 等特征[3]。相對于傳統(tǒng)的說話人識別,基于深度學(xué)習(xí)的說話人識別具有以下優(yōu)點:(1)深度學(xué)習(xí)強大的非線性表達和自動學(xué)習(xí)能力,使網(wǎng)絡(luò)對數(shù)據(jù)有更好的識別效果,解決了人為無法用數(shù)學(xué)表達式對語音精確建模的問題。張濤濤等人利用深度網(wǎng)絡(luò)的非線性特點提取語音特征,去除語音信號中信道和噪聲的干擾,系統(tǒng)錯誤率低于傳統(tǒng)的MFCC 特征[4]。(2)深度學(xué)習(xí)技術(shù)可以自動從數(shù)據(jù)中提取特征,彌補了傳統(tǒng)說話人識別中人為提取特征不全面、容易忽略細微特征的問題。(3)深度學(xué)習(xí)在學(xué)習(xí)訓(xùn)練過程中將對識別有消極作用的特征賦予負梯度,逐漸弱化其對識別結(jié)果的影響,對噪聲有很強的抑制能力。(4)深度學(xué)習(xí)通過對大量數(shù)據(jù)的學(xué)習(xí)訓(xùn)練,形成對數(shù)據(jù)強大的表達能力,這種表達能力可以將不完整的數(shù)據(jù)恢復(fù)成完整的數(shù)據(jù)。這種數(shù)據(jù)聯(lián)想能力,可以幫助人類解決很多復(fù)雜的難題。
卷積神經(jīng)網(wǎng)絡(luò)是當(dāng)前應(yīng)用廣泛的一種深度學(xué)習(xí)模型,該模型模仿人類理解圖像的思維方式,通過卷積和池化計算提取圖像特征,在計算機視覺領(lǐng)域取得了非常好的成績,尤其擅長處理圖像分類問題。研究人員也將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到自然語音處理中,提取語音的深層空間特征[5-6]。卷積神經(jīng)網(wǎng)絡(luò)由多個卷積層和池化層組成,網(wǎng)絡(luò)層數(shù)越多,特征提取能力越強,但是隨著網(wǎng)絡(luò)層數(shù)的增加,神經(jīng)元的個數(shù)也成倍增長。為了使網(wǎng)絡(luò)更好的表達數(shù)據(jù),需要大量的數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò),但在現(xiàn)實情況中,經(jīng)常很難找到大量的可訓(xùn)練數(shù)據(jù)集,即便可以收集到足夠的數(shù)據(jù),前期的數(shù)據(jù)處理也需要大量的人力和時間。
遷移學(xué)習(xí)是機器學(xué)習(xí)的一個分支,是一種借助于已訓(xùn)練好的網(wǎng)絡(luò),在其基礎(chǔ)之上完成新數(shù)據(jù)集訓(xùn)練的方法。遷移學(xué)習(xí)早期主要解決的是圖像領(lǐng)域的問題,Bengio 等人發(fā)現(xiàn)經(jīng)過對網(wǎng)絡(luò)的遷移可以提高圖像的識別效果,并且遷移學(xué)習(xí)縮小了源域和目標(biāo)域中數(shù)據(jù)特征的差距,增強了網(wǎng)絡(luò)的泛化能力[7]。Mishkin 在文獻[8]中指出將預(yù)訓(xùn)練的網(wǎng)絡(luò)參數(shù)遷移到新的任務(wù)中,訓(xùn)練效果比隨機參數(shù)的初始化訓(xùn)練效果要好的多。遷移學(xué)習(xí)利用先驗知識來實現(xiàn)對目標(biāo)域數(shù)據(jù)的訓(xùn)練,這種學(xué)習(xí)方式不但降低了對數(shù)據(jù)量的要求,還可以縮短網(wǎng)絡(luò)的訓(xùn)練時間,同時也可提高模型的泛化能力?;谶@種思想,本文提出了一種基于網(wǎng)絡(luò)遷移的說話人識別方法。
說話人識別的任務(wù)是識別輸入語音片段屬于誰,也就是說系統(tǒng)的輸入是語音信號,輸出是該語音片段對應(yīng)的標(biāo)簽?;诰W(wǎng)絡(luò)遷移的說話人識別架構(gòu)圖如圖1所示。
圖1 基于網(wǎng)絡(luò)遷移的說話人識別架構(gòu)圖
基于網(wǎng)絡(luò)遷移的說話人識別核心思想是先將說話人語音信號轉(zhuǎn)換成聲紋圖,然后將源域聲紋圖輸入訓(xùn)練模型,模型訓(xùn)練至一定輪數(shù)時保存預(yù)訓(xùn)練模型,將預(yù)訓(xùn)練模型參數(shù)遷移到目標(biāo)域,最終實現(xiàn)對目標(biāo)域數(shù)據(jù)的分類。從圖1 可以看出,說話人遷移模型有兩個關(guān)鍵模塊,分別是聲紋圖生成模塊和參數(shù)遷移模塊。
(1)聲紋圖生成模塊,首先對語音信號進行預(yù)處理,包括預(yù)加重、分幀、加窗,再將處理的語音信號轉(zhuǎn)換成隨時間變化的二維圖像。
(2)參數(shù)遷移模塊,由于目標(biāo)域的數(shù)據(jù)量較小,無法很好地訓(xùn)練神經(jīng)網(wǎng)絡(luò),源域比目標(biāo)域數(shù)據(jù)量要大得多,首先使用目標(biāo)域數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)的特征提取能力,再將預(yù)訓(xùn)練模型的參數(shù)遷移到目標(biāo)域。卷積神經(jīng)網(wǎng)絡(luò)的卷積和池化是提取圖像特征的過程,參數(shù)遷移通過固定某些卷積層的學(xué)習(xí)率使其不參與到目標(biāo)域數(shù)據(jù)的訓(xùn)練,只讓一部分卷積層參與訓(xùn)練。這種遷移方式不但可以降低對目標(biāo)域數(shù)據(jù)的要求,還可以提高網(wǎng)絡(luò)的泛化能力,加快模型的收斂速度,縮短模型的訓(xùn)練時間。
卷積神經(jīng)網(wǎng)絡(luò)是一種仿生的網(wǎng)絡(luò)結(jié)構(gòu),由多層卷積層、下采樣層以及全連接層構(gòu)成,具有很強的非線性表達能力,可以通過觀測數(shù)據(jù)使計算機進行自我學(xué)習(xí)。AlexNet 是典型的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),曾在2012年圖像識別比賽中獲得冠軍[9],本文參考AlexNet 網(wǎng)絡(luò)結(jié)構(gòu),針對說話人識別任務(wù)做出修改,使其可以更好為說話人識別服務(wù)。網(wǎng)絡(luò)各層參數(shù)設(shè)置如表1所示:
表1 網(wǎng)絡(luò)參數(shù)設(shè)置
其中第一層(卷積層)輸入為圖像的像素參數(shù),聲紋圖格式為RGB,實驗中目標(biāo)域共有50 人的語音樣本,故最后一層的輸出向量設(shè)置為50。
基于遷移學(xué)習(xí)的說話人識別訓(xùn)練過程主要包括以下四個步驟:
(1)模型預(yù)訓(xùn)練
模型預(yù)訓(xùn)練是使用源域數(shù)據(jù)作為輸入的訓(xùn)練模型,經(jīng)過多次迭代訓(xùn)練模型,達到一定識別能力時停止訓(xùn)練,將模型各層權(quán)值參數(shù)保存用于遷移。本文使用的源域數(shù)據(jù)集包括ImageNet 數(shù)據(jù)集和自建庫數(shù)據(jù)集,科研工作人員做了大量基于ImageNet 數(shù)據(jù)集的訓(xùn)練工作,我們可以在互聯(lián)網(wǎng)上直接找到基于ImageNet 數(shù)據(jù)集的AlexNet 模型參數(shù)。
(2)模型遷移
模型遷移過程是將預(yù)訓(xùn)練模型應(yīng)用于目標(biāo)域,在預(yù)訓(xùn)練的基礎(chǔ)上繼續(xù)對目標(biāo)域數(shù)據(jù)進行訓(xùn)練,遷移模型時需要根據(jù)目標(biāo)域數(shù)據(jù)類別對模型最后的全連接層進行修改,使模型可以適用于目標(biāo)域。這個過程不需要對卷積層和池化層的參數(shù)進行修改,直接將其復(fù)用即可。
(3)模型參數(shù)調(diào)整
源域數(shù)據(jù)與目標(biāo)域數(shù)據(jù)在圖像的類型和圖像質(zhì)量上都存在一定的差異,如果直接遷移網(wǎng)絡(luò)參數(shù)進行目標(biāo)域訓(xùn)練,會導(dǎo)致網(wǎng)絡(luò)的泛化能力和識別效果較差,需要根據(jù)目標(biāo)域類別數(shù)調(diào)節(jié)Softmax 的神經(jīng)元個數(shù),使其保持一致性。
研究表明,卷積神經(jīng)網(wǎng)絡(luò)的前幾層提取的是圖像邊角或顏色等一般特征,隨著層數(shù)的加深,網(wǎng)絡(luò)提取特征的能力增強。由于源域的數(shù)據(jù)量足夠大,可以充分訓(xùn)練網(wǎng)絡(luò)提取一般特征的能力,如果在目標(biāo)域訓(xùn)練中繼續(xù)對這些卷積層訓(xùn)練,會導(dǎo)致網(wǎng)絡(luò)出現(xiàn)過擬合現(xiàn)象,所以我們在遷移過程中不需要再對這些卷積層進行訓(xùn)練。通過控制卷積層的學(xué)習(xí)率,在目標(biāo)域訓(xùn)練中使這些不需要改變的層權(quán)值參數(shù)不參與到訓(xùn)練中。本文只研究三層之后各層對識別效果的影響,通過凍結(jié)部分層的訓(xùn)練方式,對比模型不同層的特征提取能力。
(4)模型預(yù)測
將測試集數(shù)據(jù)作為輸入,模型對數(shù)據(jù)進行特征提取,最后經(jīng)Softmax 層對數(shù)據(jù)進行分類預(yù)測,得到分類結(jié)果。模型訓(xùn)練過程如圖2所示,對應(yīng)的識別算法如表2所示。
表2 基于網(wǎng)絡(luò)遷移的說話人識別算法
圖2 模型訓(xùn)練示意圖
實驗室錄制的自建庫,包含250 位說話人,每位說話人語音時長在2-3 分鐘,采樣率為8000HZ,采用中文普通話的方式閱讀固定文本,參與者的年齡在18-25 歲。從語音庫中選擇200 人作為源域數(shù)據(jù)集,50 人作為目標(biāo)域數(shù)據(jù)集,并且每個數(shù)據(jù)集按照4:1 的比例分成訓(xùn)練集和測試集。
實驗首先將所有語音轉(zhuǎn)換成聲紋圖,每1.5s 生成一張聲紋圖,不足1.5s 的語音片段以留白的形式處理。對語音進行預(yù)處理,幀長設(shè)置為512,幀移為60,窗型為Hanning 窗。因為人類語音主要的頻帶范圍在500-3000HZ,所以選取0-4000HZ 范圍內(nèi)的語音信號,最后生成的聲紋圖大小為256dpi*256dpi。
實驗在 Windows10 系統(tǒng)上搭建了 Tensorflow 環(huán)境,基于Python3.5 語言開發(fā),顯卡為GeForce GTXl060Ti,內(nèi)存為16GB。
在卷積神經(jīng)網(wǎng)絡(luò)初始化中,如果將權(quán)值w 初始化為0 或其他常數(shù),會導(dǎo)致網(wǎng)絡(luò)在更新參數(shù)時各層出現(xiàn)等比例變化,這種情況不利于網(wǎng)絡(luò)訓(xùn)練,并且權(quán)值初始化過大可能導(dǎo)致網(wǎng)絡(luò)出現(xiàn)梯度爆炸,過小也可導(dǎo)致網(wǎng)絡(luò)出現(xiàn)梯度消失,無論是梯度爆炸還是梯度消失都不是我們想要的。本文將權(quán)值w 初始化以均值為0,方差為0.01 的正態(tài)分布,偏置b 初始化為0,Batch size 設(shè)置為100,將網(wǎng)絡(luò)的最后一層的輸出設(shè)置為50,Dropout 層的比率設(shè)置為0.2。
由于ImageNet 數(shù)據(jù)集圖像與聲紋圖無關(guān),為了檢驗源域與目標(biāo)域相關(guān)性對網(wǎng)絡(luò)遷移的影響,本文分別使用ImageNet 數(shù)據(jù)集和自建庫進行遷移實驗。
實驗首先載入ImageNet 數(shù)據(jù)訓(xùn)練好的AlexNet 模型,選取不同層進行遷移,實驗結(jié)果如圖3所示。從實驗結(jié)果可知,凍結(jié)fc1-3 的識別效果最差,凍結(jié)fc1-4 的識別效果相對較好,但是凍結(jié)fc1-5 時識別效果又顯著下降。有一種可能的解釋:卷積神經(jīng)網(wǎng)絡(luò)的各層之間存在復(fù)雜的關(guān)系,前幾層卷積層提取的特征是圖像的淺層特征,這些淺層特征不含或者只含有少量與圖像種類相關(guān)的信息,通過遷移學(xué)習(xí)可以繼承預(yù)訓(xùn)練模型的特征提取能力,隨著卷積和池化的次數(shù)增加,網(wǎng)絡(luò)逐漸提取圖像的深層特征,這些深層特征與圖像的類別相關(guān),直接遷移導(dǎo)致網(wǎng)絡(luò)的識別能力下降,所以遷移學(xué)習(xí)只適合遷移淺層特征。
圖3 遷移ImageNet 數(shù)據(jù)集識別率變化曲線
利用搭建的AlexNet 模型對自建庫的源域數(shù)據(jù)進行訓(xùn)練并保存訓(xùn)練模型,訓(xùn)練結(jié)果如圖4所示。模型迭代5000 次時,訓(xùn)練集準(zhǔn)確率為79.5%,驗證集準(zhǔn)確率為80.6%。載入預(yù)訓(xùn)練模型并微調(diào)模型參數(shù)對目標(biāo)域數(shù)據(jù)進行遷移學(xué)習(xí),其識別結(jié)果如圖5所示。
圖4 自建庫源域數(shù)據(jù)訓(xùn)練變化曲線
圖5 遷移自建庫數(shù)據(jù)集識別率變化曲線
從圖5 可以看出,三種凍結(jié)卷積層的遷移方式首次識別率在20%以上,在迭代50 次左右時凍結(jié)fc1-4 識別率達到60%以上,其余兩種識別率在50%左右。從源域預(yù)訓(xùn)練曲線中可以看出,網(wǎng)絡(luò)的首次識別率不到10%,在迭代1000 次時識別率在40%左右,可知遷移學(xué)習(xí)提高了網(wǎng)絡(luò)的識別率,加快了網(wǎng)絡(luò)的收斂速度。與跨域遷移相比,自建庫三種凍結(jié)卷積層的識別效果與跨域遷移相似,但是總體識別率要高于遷移ImageNet 數(shù)據(jù)集。由此可知,遷移學(xué)習(xí)可以提高網(wǎng)絡(luò)的識別能力,且同域遷移要比跨域遷移的效果好,不同遷移方式結(jié)果對比如表2所示。
表2 不同遷移方式結(jié)果對比
通過實驗結(jié)果我們可以看出,使用源域數(shù)據(jù)訓(xùn)練模型,將預(yù)訓(xùn)練模型參數(shù)遷移到目標(biāo)域的方法是可行的。源域和目標(biāo)域的相關(guān)性對遷移學(xué)習(xí)有一定的影響,同域遷移比跨域遷移的效果要好。無論是同域遷移還是跨域遷移都要注意凍結(jié)層對遷移的影響,遷移淺層特征可以提高網(wǎng)絡(luò)的識別能力,加快訓(xùn)練速度,深層特征屬于數(shù)據(jù)集特有的屬性,不適用于不同數(shù)據(jù)集的遷移。
本文提出了一種基于聲紋圖和網(wǎng)絡(luò)遷移的說話人識別方法,傳統(tǒng)的說話人識別都是以語音信息或者語音特征作為輸入,由于聲紋圖可以反映出說話人的語音特征,以識別聲紋圖的方式從另外的角度來實現(xiàn)說話人識別,可以成為一種新的研究方向。
伴隨著科學(xué)技術(shù)的發(fā)展,說話人識別技術(shù)不斷提高,遷移學(xué)習(xí)在圖像識別、自然語音處理等領(lǐng)域取得了顯著的成效,但是如何利用已有的網(wǎng)絡(luò)以及參數(shù)實現(xiàn)目標(biāo)域的任務(wù),并且在提高識別率的基礎(chǔ)上進一步提高識別效率,這些工作依然有待繼續(xù)研究。