趙婷婷 張二華 唐振民
(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)
人類進(jìn)行信息交流最自然的方式就是語(yǔ)音。隨著時(shí)代發(fā)展和計(jì)算機(jī)技術(shù)的進(jìn)步,語(yǔ)音交流不再局限于人與人之間,讓計(jì)算機(jī)能夠理解人類語(yǔ)言這一需求日益增長(zhǎng)。語(yǔ)音識(shí)別就是把人的說(shuō)話語(yǔ)音變成一種計(jì)算機(jī)能夠理解的命令,然后計(jì)算機(jī)再將這些命令處理最終顯示為我們所需的結(jié)果。語(yǔ)音識(shí)別系統(tǒng)可以劃分為多個(gè)獨(dú)立的模塊,這些模塊主要有特征提取、語(yǔ)音切分、聲學(xué)模型,語(yǔ)言模型的構(gòu)建和訓(xùn)練等,經(jīng)過(guò)這一系列的計(jì)算,從而得到最佳識(shí)別結(jié)果。語(yǔ)音識(shí)別早期的研究是對(duì)于孤立詞的識(shí)別,而高斯混合-馬爾可夫模型(GMM-HMM)的出現(xiàn)使得孤立詞語(yǔ)音識(shí)別向連續(xù)語(yǔ)音識(shí)別發(fā)展,在經(jīng)典的GMM-HMM[1]中,GMM 對(duì)語(yǔ)音信號(hào)觀察概率建模,HMM 則對(duì)語(yǔ)音信號(hào)時(shí)序建模,采用最大期望(EM)算法[2]進(jìn)行訓(xùn)練。但是GMM-HMM 結(jié)構(gòu)上屬于淺層模型,在處理信號(hào)中的復(fù)雜結(jié)構(gòu)信息時(shí)學(xué)習(xí)能力較弱,且對(duì)于大數(shù)據(jù)量的任務(wù)建模能力明顯不足,因此當(dāng)語(yǔ)音信息由標(biāo)準(zhǔn)朗讀轉(zhuǎn)向日常交流或者識(shí)別大量語(yǔ)音數(shù)據(jù)時(shí),基于GMM-HMM 的語(yǔ)音識(shí)別方法就難以勝任。直至深度學(xué)習(xí)方法的出現(xiàn)以上問(wèn)題才得以解決,經(jīng)過(guò)一段時(shí)間的研究,卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等在語(yǔ)音識(shí)別中取得了顯著效果[3],之后深度神經(jīng)網(wǎng)絡(luò)就成為語(yǔ)音識(shí)別任務(wù)中的主流模型。
2006 年,Geoffrey Hinton 提出了“深度置信網(wǎng)絡(luò)”的概念,并給出了兩個(gè)重要結(jié)論:1)具有多個(gè)隱含層的人工神經(jīng)網(wǎng)絡(luò),具有更優(yōu)秀的特征學(xué)習(xí)能力;2)通過(guò)逐層預(yù)訓(xùn)練可以讓神經(jīng)網(wǎng)絡(luò)中的權(quán)值找到接近最優(yōu)解的初始值,再通過(guò)微調(diào)對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化。目前大家所知道的深度學(xué)習(xí)就是一種包含多個(gè)隱含層的多層感知機(jī),讓計(jì)算機(jī)通過(guò)自身的各種計(jì)算,訓(xùn)練得到一種模式特征,然后在建立模型的過(guò)程中加入這一模式特征[5],這一方法被廣泛應(yīng)用于多種領(lǐng)域,其本質(zhì)就是深層神經(jīng)網(wǎng)絡(luò)[6]。深度學(xué)習(xí)的性能還與數(shù)據(jù)量成正比,數(shù)據(jù)量的增加會(huì)增強(qiáng)其性能,可以說(shuō)深度學(xué)習(xí)也是一種數(shù)據(jù)依賴性算法[6]。綜上所述,深度學(xué)習(xí)=多層神經(jīng)網(wǎng)絡(luò)算法+并行計(jì)算+海量訓(xùn)練數(shù)據(jù)。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[8]是20 世紀(jì)80 年代末提出的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型。RNN 具有循環(huán)結(jié)構(gòu),可以記錄上一時(shí)刻的信息并用于當(dāng)前時(shí)刻的計(jì)算中[9],它的循環(huán)處理信息的機(jī)制與人類大腦記憶的過(guò)程非常類似,符合生物神經(jīng)元的連接方式。圖1展示了RNN網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 RNN網(wǎng)絡(luò)結(jié)構(gòu)圖
圖1的左側(cè)展示的是RNN的基本結(jié)構(gòu),按時(shí)間序列展開可以得到右側(cè)的結(jié)構(gòu)。RNN 輸出值的計(jì)算包括以下步驟:
1)Xt是t時(shí)刻的輸入;
2)Ht是t 時(shí)刻的隱藏狀態(tài),即循環(huán)神經(jīng)網(wǎng)絡(luò)的記憶,它由Xt和Ht-1共同決定。計(jì)算公式如式(1):
其中U,W 和β均為網(wǎng)絡(luò)參數(shù);f 為激活函數(shù),以上公式的計(jì)算是循環(huán)的。
3)Ot是t 時(shí)刻的輸出,它是由模型當(dāng)前時(shí)刻的隱藏狀態(tài)Ht(記憶)決定的,所有時(shí)刻的輸出概率之和為1。
其中,v和η均為網(wǎng)絡(luò)參數(shù),Softmax為激活函數(shù)。
RNN 的訓(xùn)練中最重要的一步是利用反向傳播調(diào)參,使損失函數(shù)最小化。在理論上,RNN 可以在時(shí)間軸上任意展開,也就是,它能記住任意過(guò)往的信息,但由于存在梯度消失(若梯度較小,則多層迭代后,梯度很快就會(huì)小到對(duì)調(diào)參幾乎沒(méi)有影響)的問(wèn)題,那些記憶會(huì)隨著梯度遞減而消散,即輸入數(shù)據(jù)時(shí)間序列過(guò)長(zhǎng)時(shí),RNN 無(wú)法進(jìn)行有效的梯度更新,RNN 的發(fā)展受到限制。直至LSTM 等模型的提出,新一代的RNN才得以繼續(xù)發(fā)展。
在傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,加入一個(gè)細(xì)胞狀態(tài)(cell),就能組成一個(gè)LSTM[10]單元,我們可以認(rèn)為正是多了一個(gè)內(nèi)部狀態(tài),LSTM 才記憶得更長(zhǎng)久。這個(gè)單元狀態(tài)將前一個(gè)時(shí)間的信息傳遞給下一個(gè)時(shí)間的同時(shí),會(huì)選擇性的記住某些信息,也會(huì)選擇性的忘記某些信息。為了實(shí)現(xiàn)這種信息處理方式,LSTM通過(guò)引入巧妙的可控自循環(huán),這種機(jī)制我們將其稱之為門。根據(jù)不同的功能,LSTM 可分為三種門:輸入門,遺忘門和輸出門,如圖2 所示。傳統(tǒng)RNN 多采用BPTT 算法,這種算法隨著網(wǎng)絡(luò)層數(shù)的增多,會(huì)產(chǎn)生梯度消失等問(wèn)題,而LSTM 通過(guò)設(shè)計(jì)控制門開關(guān),構(gòu)造了可控記憶神經(jīng)元,可以產(chǎn)生使梯度能長(zhǎng)時(shí)間可持續(xù)流動(dòng)的路徑,解決了梯度消失這一問(wèn)題,特別適合處理時(shí)序間隔長(zhǎng)和延遲非常長(zhǎng)的任務(wù)。
圖2 LSTM單元結(jié)構(gòu)
可以用以下一系列公式來(lái)描述一個(gè)LSTM 循環(huán)體的結(jié)構(gòu)組成:
輸入門:
遺忘門:
臨時(shí)狀態(tài)記憶單元:
當(dāng)前時(shí)刻的記憶單元:
輸出門:
單元t時(shí)刻隱含層輸出:
LSTM的總體計(jì)算流程為當(dāng)前時(shí)刻的輸入信息Xt通過(guò)輸入門it處理,部分信息能夠添加到記憶信息流中[11];上一時(shí)刻的記憶信息流Ct-1中的信息通過(guò)遺忘門ft來(lái)控制消除多少;二者相結(jié)合,得到單元的狀態(tài)信息Ct;最終有多少信息可以用于下一網(wǎng)絡(luò)的更新還要通過(guò)輸出門ot決定,由單元的狀態(tài)信息和輸出信息得到單元的隱含層輸出ht,并傳遞給下一單元,最后時(shí)刻的ot就是整個(gè)網(wǎng)絡(luò)的輸出。所有的權(quán)重矩陣W,偏置向量b 都是通過(guò)訓(xùn)練得到,根據(jù)時(shí)間反向傳播算法就能得到這些參數(shù)的梯度值。
LSTM在處理時(shí)間序列數(shù)據(jù)的時(shí)候只能實(shí)現(xiàn)單向傳遞,也就是只考慮了過(guò)去信息的影響,沒(méi)有考慮未來(lái)信息可能起到的作用。所以當(dāng)數(shù)據(jù)的關(guān)鍵信息在后面時(shí),LSTM的識(shí)別性能就會(huì)降低,無(wú)法滿足需求,為了解決這一問(wèn)題,雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(BLSTM)應(yīng)運(yùn)而生,BLSTM 將方向時(shí)序信息的影響也考慮在內(nèi),當(dāng)前輸入信息跟前后序列的數(shù)據(jù)都相關(guān),即“未來(lái)”對(duì)“現(xiàn)在”也有影響。
BLSTM 的結(jié)構(gòu)如圖3 所示,其中LSTM 就是圖2中的LSTM單元,圖3上半部分就是信息正向傳播的網(wǎng)格單元,下半部分就是逆向傳播的單元。圖3中Xt參數(shù)為t 時(shí)刻模型的輸入?yún)?shù),ht為正向傳輸中t時(shí)刻模型的輸出參數(shù),ht*為逆向傳輸中t時(shí)刻模型的輸出參數(shù),之后分別取兩個(gè)方向最后一層的輸出,進(jìn)行簡(jiǎn)單的拼接得到最終數(shù)據(jù),這些數(shù)據(jù)包含了上文信息和下文信息。
圖3 BLSTM結(jié)構(gòu)
語(yǔ)音識(shí)別大致包括語(yǔ)音信號(hào)音節(jié)切分、聲學(xué)模型和語(yǔ)言模型等基本單元,框架圖如圖4 所示。為了更好地進(jìn)行音節(jié)切分和模型的構(gòu)建,還需要對(duì)語(yǔ)音信號(hào)進(jìn)行處理,如:預(yù)加重,分幀加窗等,預(yù)處理后再進(jìn)行特征參數(shù)的選取和提取。
圖4 語(yǔ)音識(shí)別系統(tǒng)原理框架圖
人耳對(duì)不同頻率的聲音有著不同的感知能力,并不呈現(xiàn)線性正比關(guān)系,為了模擬這一特性,人們提出了Mel 頻率,用Mel 頻率尺度會(huì)更符合人耳的聽覺特征[12],本實(shí)驗(yàn)選取MFCC 作為實(shí)驗(yàn)所用特征參數(shù)。MFCC 系數(shù)的提取分為兩個(gè)關(guān)鍵步驟:將語(yǔ)音信號(hào)轉(zhuǎn)換至梅爾頻率然后進(jìn)行倒譜分析。首先對(duì)語(yǔ)音信號(hào)進(jìn)行傅里葉變換得到頻譜,再利用Mel濾波器將線性頻譜轉(zhuǎn)換為Mel 頻譜;人耳對(duì)聲音的感知用對(duì)數(shù)關(guān)系能更好描述,所以對(duì)Mel 頻譜進(jìn)行對(duì)數(shù)處理后再進(jìn)行離散余弦變換[13],由此得到的數(shù)據(jù)就是MFCC。
基本聲學(xué)單元(簡(jiǎn)稱基元)的選擇是聲學(xué)模型進(jìn)行構(gòu)建的前提,選取合適的基元對(duì)于識(shí)別性能影響很大。聲學(xué)模型就是提取聲學(xué)基元所對(duì)應(yīng)的特征向量的序列,構(gòu)成輸入數(shù)據(jù),之后聲學(xué)模型計(jì)算該數(shù)據(jù)屬于每個(gè)基元的概率,從而推斷出當(dāng)前聲學(xué)基元最有可能對(duì)應(yīng)的漢字音節(jié)。
因?yàn)闈h語(yǔ)中普遍存在同音字的問(wèn)題,即一個(gè)音對(duì)應(yīng)多個(gè)漢字,僅憑音節(jié)難以確定究竟對(duì)應(yīng)哪個(gè)字,而語(yǔ)言模型就是建立大型語(yǔ)料庫(kù),統(tǒng)計(jì)語(yǔ)料庫(kù)中的詞出現(xiàn)的概率,還有各種詞之間轉(zhuǎn)換的概率,最后把這些信息和聲學(xué)模型得到的結(jié)果綜合進(jìn)行輸出[14],從而實(shí)現(xiàn)音-字的轉(zhuǎn)換,解決多個(gè)漢字對(duì)應(yīng)一個(gè)音的問(wèn)題。
實(shí)驗(yàn)所用數(shù)據(jù)集為南京理工大學(xué)NJUST603語(yǔ)音庫(kù),語(yǔ)音庫(kù)參數(shù)為說(shuō)話人423 人(男生210 人,女生213 人),每人朗讀散文《師恩難忘》,該文共596個(gè)漢字。實(shí)驗(yàn)選取切分好的100 個(gè)漢字音節(jié)作為實(shí)驗(yàn)對(duì)象,每個(gè)漢字隨機(jī)選取120 個(gè)樣本作為訓(xùn)練集,15 個(gè)樣本作為測(cè)試集。實(shí)驗(yàn)所用的語(yǔ)音數(shù)據(jù)是單聲道WAV 格式,采樣頻率為16000Hz,采樣精度為16bit。
實(shí)驗(yàn)首先對(duì)語(yǔ)音信號(hào)進(jìn)行分幀、加窗等預(yù)處理,幀長(zhǎng)和幀移分別為32ms、16ms。在語(yǔ)音識(shí)別系統(tǒng)中,一般采取比詞小的字詞作為建模和識(shí)別單元,因?yàn)闈h字都是單音節(jié),所以實(shí)驗(yàn)選取音節(jié)作為識(shí)別單元。數(shù)據(jù)預(yù)處理之后,對(duì)語(yǔ)音信號(hào)進(jìn)行音節(jié)切分,得到單個(gè)字的起始位置和終止位置;然后提取每個(gè)字的MFCC 特征參數(shù)作為模型的輸入,維度為24維。
3.3.1 GMM_HMM模型
語(yǔ)音信號(hào)是慢時(shí)變信號(hào),簡(jiǎn)單的表示方法就是馬爾科夫鏈,而隱馬爾科夫模型(HMM)就是基于馬爾科夫鏈發(fā)展的[15]。隱馬爾科夫模型由兩個(gè)隨機(jī)過(guò)程組成,一是描述狀態(tài)和觀察值之間的統(tǒng)計(jì)對(duì)應(yīng)關(guān)系;二是與概率分布相聯(lián)系的狀態(tài)轉(zhuǎn)移的統(tǒng)計(jì)對(duì)應(yīng)關(guān)系[16]。但在語(yǔ)音識(shí)別的過(guò)程中,無(wú)法直接得到所有狀態(tài)的觀察值概率矩陣,而高斯混合模型(GMM)可以通過(guò)高階多維高斯分布描述連續(xù)的概率分布,可以通過(guò)GMM 對(duì)語(yǔ)音信號(hào)的觀測(cè)值進(jìn)行模擬得到觀測(cè)狀態(tài)概率矩陣,再結(jié)合HMM 就構(gòu)成了GMM-HMM模型。
利用GMM-HMM 對(duì)處理好的語(yǔ)音數(shù)據(jù)進(jìn)行實(shí)驗(yàn),經(jīng)過(guò)對(duì)比,選取HMM 狀態(tài)數(shù)為6,高斯混合階數(shù)為3 的模型進(jìn)行實(shí)驗(yàn)所得識(shí)別正確率最高,為84.7%。
3.3.2 BLSTM模型
盡管GMM-HMM 聲學(xué)模型已經(jīng)較為成熟,但仍然存在一些不足。而雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)能夠彌補(bǔ)這些不足,提高語(yǔ)音識(shí)別的準(zhǔn)確率。本實(shí)驗(yàn)利用TensorFlow實(shí)現(xiàn)了BLSTM模型[17],實(shí)驗(yàn)使用的語(yǔ)音特征參數(shù)是24 維MFCC。由于每個(gè)音節(jié)的長(zhǎng)度不一致,包含的語(yǔ)音幀數(shù)不同,所以在模型訓(xùn)練之前,需要統(tǒng)計(jì)所有音節(jié)的長(zhǎng)度,即樣本幀數(shù),把所有音節(jié)的特征參數(shù)按照最長(zhǎng)的樣本幀數(shù)補(bǔ)齊組成一個(gè)張量。然后選取合適的損失計(jì)算函數(shù)和優(yōu)化算法,在訓(xùn)練數(shù)據(jù)迭代過(guò)程中更新神經(jīng)網(wǎng)絡(luò)的參數(shù),得到全局最優(yōu)解,即訓(xùn)練好的聲學(xué)模型。最后用訓(xùn)練好的模型對(duì)測(cè)試樣本進(jìn)行測(cè)試,正確率為92.9%。
實(shí)驗(yàn)用同一數(shù)據(jù)集中的語(yǔ)音數(shù)據(jù)對(duì)GMMHMM 模型和BLSTM 模型進(jìn)行對(duì)比識(shí)別,結(jié)果如表1所示。
表1 GMM-HMM模型和BLSTM模型的識(shí)別率結(jié)果對(duì)比
通過(guò)表1,可以看出BLSTM 模型的識(shí)別率比GMM-HMM 提高了8.2%,這是因?yàn)镚MM 模型難以利用同一狀態(tài)內(nèi)幀的上下文信息,而BLSTM 考慮了上下文對(duì)當(dāng)前語(yǔ)音識(shí)別的影響,所以BLSTM 模型有著更高的識(shí)別率。
為了驗(yàn)證BLSTM 模型能夠利用輸入數(shù)據(jù)的時(shí)間序列特征,對(duì)MFCC 參數(shù)打亂順序之后再識(shí)別,結(jié)果如表2所示。
表2 不同數(shù)據(jù)BLSTM模型的識(shí)別率結(jié)果
由表2 可知,對(duì)打亂順序后的每一維MFCC 參數(shù)進(jìn)行識(shí)別,對(duì)比正常順序的識(shí)別率有明顯下降,以此可以驗(yàn)證BLSTM 模型能利用輸入數(shù)據(jù)的時(shí)間序列關(guān)系。
本文總結(jié)對(duì)比了基于統(tǒng)計(jì)的GMM-HMM 模型和基于深度學(xué)習(xí)的BLSTM 兩種聲學(xué)模型的優(yōu)劣,以及對(duì)相同數(shù)據(jù)集的識(shí)別效果,實(shí)驗(yàn)表明基于BLSTM 的聲學(xué)模型識(shí)別正確率明顯高于前者,BLSTM 模型之所以識(shí)別率較高是因?yàn)樵撃P湍芸紤]上下文對(duì)語(yǔ)音識(shí)別的影響。實(shí)驗(yàn)也存在一些問(wèn)題,如數(shù)據(jù)集規(guī)模較小,使得深度模型訓(xùn)練層數(shù)增加時(shí),不能得到充分訓(xùn)練;隱藏節(jié)點(diǎn)過(guò)高時(shí),超出內(nèi)存無(wú)法訓(xùn)練等,這些都是后續(xù)研究應(yīng)該解決的問(wèn)題,也是之后的研究方向。