張明鍵 張悅
(湖南警察學(xué)院信息技術(shù)系 湖南省長沙市 410138)
說話人識別是指通過提取說話人語音信號中的特征,并根據(jù)特征辨認(rèn)說話人是誰,也被稱為聲紋識別[1-4]。相對于其他生物特征識別技術(shù),說話人識別有以下幾方面優(yōu)勢:語音信號采集是非接觸式的,被采集對象接受度高;在手機(jī)語音通話等應(yīng)用場景中,語音特征是唯一能采集到的說話人生物特征[1];語音信號中還包含說話人的性別、情感、健康狀況等信息[5]。說話人識別在電子商務(wù)、安保、反恐等需要進(jìn)行身份驗(yàn)證的領(lǐng)域有著廣泛的應(yīng)用[6-8]。20 世紀(jì)后期,隱馬爾科夫模型、高斯混合模型等機(jī)器學(xué)習(xí)算法被成功應(yīng)用于說話人識別領(lǐng)域[6]。
方言辨識是語音信號處理領(lǐng)域的一個(gè)分支。早期的方言辨識研究采用人工辨識方法,辨識過程基于音韻學(xué)知識。20 世紀(jì)90 年代以后,方言自動(dòng)辨識作為模式識別和人工智能領(lǐng)域的一種嶄新應(yīng)用開始受到研究人員的重視。前述用于說話人識別的機(jī)器學(xué)習(xí)方法也可以在方言自動(dòng)辨識中加以應(yīng)用。當(dāng)說話人所講語言是方言時(shí),兩步法是一個(gè)可行的方法:即,先用方言自動(dòng)辨識技術(shù)對方言語種進(jìn)行辨識,然后再利用說話人識別技術(shù)確定說話人的身份。顧明亮等[9-11]在方言自動(dòng)辨識和方言聲學(xué)特征方面取得了一系列研究成果。
本世紀(jì)以來,深度學(xué)習(xí)(Deep Learning)技術(shù)的理論和應(yīng)用研究取得了重大突破,在模式識別和人工智能領(lǐng)域取得了巨大成功。曾春艷等[2]從特征表達(dá)、后端建模、端到端聯(lián)合優(yōu)化等幾個(gè)方面對基于深度學(xué)習(xí)框架的說話人識別進(jìn)展進(jìn)行了綜述。張學(xué)祥等[3]以基音周期為特征,提出了基于深度神經(jīng)網(wǎng)絡(luò)的說話人識別新算法。賈艷潔等[4]提出了一種基于特征語譜圖和自適應(yīng)聚類SOM 的快速說話人識別算法。
語音信號中低頻部分能量占主體,為了讓頻譜中高頻部分的幅度得到提升,對語音信號做后續(xù)處理之前,通常需要用一個(gè)一階高通濾波器對語音信號進(jìn)行預(yù)加重[6][12][13]。本文研究基于孤立詞的方言自動(dòng)辨識和說話人識別,為了將整段語音信號分割成一個(gè)個(gè)孤立詞,需要利用端點(diǎn)檢測技術(shù)確定每個(gè)孤立詞語音的起始位置和終止位置[6][7]。雙門限判決法是一種常用的語音信號端點(diǎn)檢測方法[6][7],王滿洪等提出了一種改進(jìn)的雙門限算法[14]。
圖1
圖2:3×3 矩形鄰域LBP 計(jì)算過程
圖3:兩種圓形鄰域LBP 算子
語音信號具有非平穩(wěn)的特性,其特征是隨著時(shí)間變化的。但是,在一個(gè)很小的時(shí)間片段里,語音信號可以視為平穩(wěn)信號,語音的特征參數(shù)在短時(shí)間內(nèi)近似看作沒有變化[6-8][12][13]。也就是說,語音信號可以視為短時(shí)平穩(wěn)的。為此,對語音信號進(jìn)行處理時(shí)通常先將語音信號分割為一個(gè)個(gè)小的片段(幀)。語音信號以幀為單位進(jìn)行處理,每幀的時(shí)間長度一般在10~30ms 范圍內(nèi)[6]。為了使得提取的語音特征在相鄰幀之間能夠平滑過渡,相鄰幀之間一般設(shè)有一定量的重疊部分[6-8][12][13]。用一個(gè)窗函數(shù)與語音信號相乘可達(dá)到對語音信號分幀的目的[6],窗口的寬度即為幀的長度。加窗處理通常使用漢明窗,相對于矩形窗它的旁瓣衰減較大[6-8][12][13]。
計(jì)算每一幀語音信號的短時(shí)功率譜,再將各幀的功率譜按照時(shí)間先后順序拼接起來,就形成了語譜圖[4][7]。語譜圖的橫軸方向代表時(shí)間,縱軸方向代表頻率,灰度值的大小表示對應(yīng)頻帶能量的高低[4][7]。語譜圖的紋理結(jié)構(gòu)中反映了說話人的基音頻率、共振峰、音韻學(xué)特征等信息。語譜圖的實(shí)例如圖1 所示。
從圖1 中可以看出普通話數(shù)字‘9’和長沙話數(shù)字‘9’的語譜中的紋理具有明顯的差異。同時(shí),不同說話人所講長沙話數(shù)字‘5’的語譜圖也存在明顯差異??梢姡瑢τ谕粋€(gè)孤立詞,不同的語種發(fā)音對應(yīng)的語譜圖上的紋理結(jié)構(gòu)不一樣。相似地,對于同一個(gè)孤立詞,不同說話人的發(fā)音對應(yīng)的語譜圖的紋理結(jié)構(gòu)也不一樣。因此,根據(jù)語譜圖上的紋理信息,可以進(jìn)行方言語種自動(dòng)辨識和說話人識別。
局部二值模式(Local Binary Pattern, LBP)由Ojala 等[15]提出,它是一種描述圖像局部紋理特征的算子。最初的LBP 針對圖像固定的3×3 矩形鄰域進(jìn)行計(jì)算。該計(jì)算方式以鄰域中心位置像素灰度值為閾值,鄰域中像素灰度值比閾值大的映射為1,鄰域中像素灰度值比閾值小的映射為0。再由鄰域中8 個(gè)數(shù)字(0 或1)構(gòu)成一個(gè)二進(jìn)制數(shù)作為LBP 值(如圖2 所示)[15]。
Ojala 等在文獻(xiàn)[16]中進(jìn)一步把LBP 特征計(jì)算方式由固定的3×3矩形鄰域拓展到圓形鄰域(如圖3 所示),從讓而LBP 具有了灰度不變性和旋轉(zhuǎn)不變性[16-18]。
LBP 值的計(jì)算公式為[16]:
其中,P 表示以gc為中心的圓形鄰域上的像素點(diǎn)數(shù),gp表示鄰域點(diǎn),R 是圓的半徑。s(·)是符號函數(shù),定義為:
鄰域點(diǎn)gp與中心點(diǎn)gc的橫坐標(biāo)和縱坐標(biāo)差值分別是-Rsin(2πp/P)和Rcos(2πp/P)[16]。當(dāng)鄰域點(diǎn)沒有正好落在像素中心位置時(shí),其灰度值通過插值進(jìn)行計(jì)算。通過以中心像素為閾值的操作,局部鄰域轉(zhuǎn)化成了一種二值模式[16]。近年來,LBP 特征在木材缺陷自動(dòng)檢測分類[19]、人臉識別[20]、紋理圖像識別[21]、工件圖像識別[22]等機(jī)器視覺領(lǐng)域得到了廣泛應(yīng)用。
深度置信網(wǎng)絡(luò)(Deep Belief Network, DBN)由“深度學(xué)習(xí)之父”Hinton 與合作者在2006 年最先提出[23],它是由多個(gè)受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)接續(xù)而成的深度學(xué)習(xí)模型[24-26]。一個(gè)RBM 包含一個(gè)隱含層和一個(gè)可見層,隱含層和可見層之間的節(jié)點(diǎn)之間是雙向全連接的,隱含層和可見層內(nèi)部的節(jié)點(diǎn)之間沒有連接的關(guān)系(如圖4 所示)[24-26]。
圖5 是一個(gè)由3 個(gè)RBM 疊加而成的深度置信網(wǎng)絡(luò)。RBM1 的隱含層作為RBM2 的可見層,RBM2 的隱含層作為RBM3 的可見層,RM3 的隱含層是分類器的輸入層[24-27]。DBN 模型的訓(xùn)練包含以下兩個(gè)階段。
第一個(gè)階段是無監(jiān)督預(yù)訓(xùn)練過程,即分別以無監(jiān)督的方式單獨(dú)訓(xùn)練每一層RBM 網(wǎng)絡(luò)[24][25]。利用對比散度(Contrastive Divergence,CD)算法[25][26][28]訓(xùn)練RBM1,訓(xùn)練完成以后固定RBM1 的參數(shù)。再將RBM1 的隱含層的輸出作為RBM2 可見層的輸入,同樣利用對比散度算法對RBM2 進(jìn)行訓(xùn)練。該過程一直持續(xù),直到每一層RBM 都訓(xùn)練完成[24-26]。
圖4:RBM 的結(jié)構(gòu)
圖5:DBN 的結(jié)構(gòu)
圖6
第二個(gè)階段對DBN 網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)。在預(yù)訓(xùn)練的基礎(chǔ)上,利用反向傳播算法,對整個(gè)DBN 網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化調(diào)整[24-28]。這個(gè)階段是一個(gè)有監(jiān)督的訓(xùn)練過程,以網(wǎng)絡(luò)最頂層的實(shí)際輸出與預(yù)期輸出(標(biāo)簽值)之間的誤差最小為準(zhǔn)則,利用梯度下降法自頂向下迭代調(diào)整RBM 的參數(shù)[24-28]。
深度置信網(wǎng)絡(luò)廣泛應(yīng)用于人體動(dòng)作識別[29]、田間雜草識別[30]、數(shù)字調(diào)制信號識別[31]等模式識別領(lǐng)域。
方言自動(dòng)辨識和說話人識別的流程如圖6 所示。
圖7
計(jì)算機(jī)仿真實(shí)驗(yàn)使用的數(shù)據(jù)集文件共有180 個(gè)語音片段,內(nèi)容是數(shù)字‘1’-‘10’。其中,普通話語音片段共有90 個(gè),長沙話語音片段也有90 個(gè)。普通話語音的說話人共有3 人,長沙話語音的說話人也有3 人。語音信號的采樣率是8kHz,每個(gè)數(shù)據(jù)樣本以16bits 量化。在語種辨識仿真實(shí)驗(yàn)中,60 個(gè)普通話語音片段和60個(gè)長沙話語音片段用作DBN 網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)集,剩下的30 個(gè)普通話語音片段和30 個(gè)長沙話語音片段作為DBN 網(wǎng)絡(luò)的測試數(shù)據(jù)集。在長沙話說話人識別仿真實(shí)驗(yàn)中,3 個(gè)說話人的共60 個(gè)語音片段作為DBN 網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)集,同樣3 個(gè)說話人的剩下的30 個(gè)語音片段作為DBN 網(wǎng)絡(luò)的測試數(shù)據(jù)集。
計(jì)算機(jī)仿真實(shí)驗(yàn)中構(gòu)造的DBN 網(wǎng)絡(luò)共4 層,包括1 個(gè)輸入層、2 個(gè)隱含層和1 個(gè)輸出層。
對一個(gè)語譜圖,如果整幅圖像的LBP 特征值形成一個(gè)向量會丟失掉位置信息,為此仿真實(shí)驗(yàn)中將圖像劃分為16 個(gè)子圖,每個(gè)子圖的尺寸一致。對每個(gè)子圖計(jì)算LBP 特征值,進(jìn)一步得到直方圖向量,再將這些向量接續(xù)在一起形成一個(gè)特征值向量。一個(gè)子圖中LBP 特征值直方圖數(shù)據(jù)是1×256 維的,16 個(gè)子圖的LBP 特征值拼接在一起就是1×4096 維。為了對LBP 特征值數(shù)據(jù)降維,實(shí)驗(yàn)中使用在文獻(xiàn)[16]中提出的等價(jià)模式(Uniform Pattern),將256 種模式轉(zhuǎn)化為59 種模式[22]。因此,在等價(jià)模式下,一個(gè)子圖中LBP 特征值直方圖數(shù)據(jù)是1×59 維。
表1:歸一化語譜圖水平方向像素點(diǎn)數(shù)目h 與Pd、Ps 的對應(yīng)關(guān)系
圖8:DBN 的單個(gè)隱含層節(jié)點(diǎn)數(shù)與識別率之間的對應(yīng)關(guān)系
為了計(jì)算語種辨識和說話人識別的識別率,我們定義RN×N維的混淆矩陣C,其中,N 表示測試集中加標(biāo)簽的子集合數(shù)目?;煜仃嘋 的第(i,j)個(gè)元素表示標(biāo)簽為i 的測試集中的語譜圖被訓(xùn)練好的DBN 網(wǎng)絡(luò)識別為標(biāo)簽為j 的語譜圖的數(shù)目。識別率PI 定義為:
基于以上識別率的定義,我們分別用PId表示長沙話辨識的識別率,用PIs表示長沙話說話人識別的識別率。
因?yàn)槊總€(gè)孤立詞語音信號的時(shí)間長度可能不一樣,所以對應(yīng)語譜圖的橫軸方向像素點(diǎn)數(shù)目也可能不一樣。為此,需對測試集和訓(xùn)練集中的語譜圖尺寸進(jìn)行歸一化,即讓語譜圖的水平方向像素點(diǎn)數(shù)目一致。而每個(gè)語譜圖的垂直方向像素點(diǎn)數(shù)目是一致的,因此語譜圖歸一化過程中不需要對垂直方向像素點(diǎn)數(shù)目進(jìn)行調(diào)整。表1 列出了歸一化語譜圖水平方向像素點(diǎn)數(shù)目h 取不同值時(shí),識別率Pd和Ps的數(shù)值。該仿真實(shí)驗(yàn)中,2 個(gè)隱含層節(jié)點(diǎn)數(shù)均為100。
為了研究深度置信網(wǎng)絡(luò)學(xué)習(xí)過程的收斂情況,本文利用歸一化處理以后得到的水平方向像素點(diǎn)數(shù)目為28、垂直方向像素點(diǎn)數(shù)目為176 的語譜圖進(jìn)行仿真實(shí)驗(yàn),2 個(gè)隱含層節(jié)點(diǎn)數(shù)均設(shè)置為100。仿真結(jié)果如圖7 所示。圖7(a)描述的是面向長沙話辨識的深度置信網(wǎng)絡(luò)學(xué)習(xí)過程中,迭代次數(shù)與網(wǎng)絡(luò)的代價(jià)函數(shù)數(shù)值之間的對應(yīng)關(guān)系,從中可以看出算法在迭代300 次以后達(dá)到收斂。圖7(b)描述的是面向長沙話說話人識別的深度置信網(wǎng)絡(luò)學(xué)習(xí)過程中,迭代次數(shù)與網(wǎng)絡(luò)的代價(jià)函數(shù)數(shù)值之間的對應(yīng)關(guān)系,從中可以看出算法在迭代350 次以后達(dá)到收斂。
為了研究DBN 隱含層的節(jié)點(diǎn)數(shù)對方言辨識的識別率影響,本文利用歸一化處理以后得到的水平方向像素點(diǎn)數(shù)目為40、垂直方向像素點(diǎn)數(shù)目為176 的語譜圖進(jìn)行仿真實(shí)驗(yàn)。我們改變每個(gè)隱含層的節(jié)點(diǎn)數(shù)(兩個(gè)隱含層的節(jié)點(diǎn)數(shù)相同),并分別記錄對應(yīng)的識別率(如圖8 所示)。如果隱含層節(jié)點(diǎn)數(shù)過少,則會影響該網(wǎng)絡(luò)的分類性能,長沙方言辨識的識別率低。從圖8 可以看出,當(dāng)單個(gè)隱含層的節(jié)點(diǎn)數(shù)設(shè)置為25 時(shí),長沙方言辨識的識別率為91.67%。單個(gè)隱含層節(jié)點(diǎn)數(shù)提高至50 以后,深度置信網(wǎng)絡(luò)的識別率提升至93.33%。再進(jìn)一步提高單個(gè)隱含層節(jié)點(diǎn)數(shù),深度置信網(wǎng)絡(luò)識別率維持在93.33%。值得注意的是,深度置信網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)增加了以后,網(wǎng)絡(luò)訓(xùn)練過程中參數(shù)調(diào)整的計(jì)算復(fù)雜度增加,從而導(dǎo)致收斂速度變慢。因此,綜合考慮識別率和網(wǎng)絡(luò)參數(shù)調(diào)整的收斂速度兩方面因素,每個(gè)隱含層節(jié)點(diǎn)數(shù)設(shè)定為50~100 之間比較合適。
本文實(shí)現(xiàn)了小樣本條件下長沙方言自動(dòng)辨識和說話人自動(dòng)識別算法。識別算法以語音信號語譜圖的局部二值模式作為特征,以1個(gè)輸入層、2 個(gè)隱含層和1 個(gè)輸出層構(gòu)成的DBN 為分類器。仿真實(shí)驗(yàn)結(jié)果顯示長沙方言辨識的識別率在91.67%至95%之間、長沙話說話人識別的識別率在93.33%至96.67%之間。