豐天韻,阮俊豪,王卓琛
(1.武漢郵電科學研究院,湖北武漢 430070;2.南京烽火天地通信科技有限公司,江蘇 南京 210000)
當前工業化的端到端語音識別系統依賴于大量的標注數據,但是在目前的應用中,語音數據的標注非常困難,并且標注數據的獲取需要花費很大的成本,而未標注的數據獲取成本極低。為了打破這一現狀,利用大量未標注數據來提升語音識別系統的性能是非常重要的研究方向。然而對語音信號而言,來自不同的人、場景的語音信息往往在發聲時間長度、發聲特點等方面不盡相同,因此,必須使用大量的數據訓練來保證這些差異不會對模型產生負面影響。而音素是構成音節的最小單位或最小的語音片段,是從音質的角度劃分出來的最小的線性語音單位。因此,可以將語音數據提取后的特征進行聚類處理,達到類似于語言學中音素的聚類效果,從而在縮減模型體積的同時保持模型的高效率識別。
為了利用數量龐大的無標注數據,提出了自監督學習的思想[1]。自監督訓練的核心思想是放棄模型的隨機初始化,使用大語料庫先進行預訓練,然后再根據相關的下游任務進行模型的微調[2]。預訓練技術可以獲得更加通用的數據特征表示,能運用這些信息加速下游任務的訓練,并獲得更好的性能。
在語音領域,谷歌提出了一種用于聲學的自監督預訓練方法預測對比編碼(Contrastive Predictive Coding,CPC)[3],這種方法在理論上闡述了聲學預訓練的可能性。而后隨著最具特色的BERT 模型的提出,越來越多領域開始使用這一效果優秀的模型結構。BERT 模型本質上是Transformer 網絡中Encoder部分的堆疊,擁有強大的語言表征能力和特征提取能力[4],因此在自然語言處理(Natural Language Processing,NLP)領域和語音領域都逐漸發揮了巨大的作用。該文所優化的預訓練模型也是基于BERT模型進行修改與優化的。
該文創新性地將語音數據特征基于聲學理論進行方案探究,在提取語音數據特征后,將語音特征聚類來實現類似于音素的效果。文中根據這一創新設計了如圖1 所示的整體語音預訓練模型網絡結構,并對該文算法的創新內容進行了描述。

圖1 算法整體網絡結構
根據算法優化內容,在傳統無監督的網絡結構中加入特征聚類網絡,并完善基于該算法的整體結構。
傳統的無監督模型中,無論是利用MFCC 還是Fbank 進行特征提取,傳統算法均直接將所提取特征送入模型中進行預訓練[5-6],因此很容易受到訓練數據中說話人發聲特點差異的影響,從而造成模型的不穩定并影響精度,傳統算法的缺陷如圖2 所示。

圖2 傳統算法缺陷
為了解決這一問題,該文提出了如圖3 所示的算法進行優化,能將相同或相似的聲學特征聚類成統一的聚類中心,減少發聲人因素造成的影響,從而提升后續模型的訓練效果,減少對大量數據的依賴,并且增強模型在復雜語音環境中的魯棒性。

圖3 該文算法方案
聲學領域根據聲學發聲規律與特點,人聲發音被總結歸納為一系列發聲片段的組合,其最小元素即為音素。無論是何種語言,其發音特點均可由音素來表現。因此,該文在進行了聲學特征提取的基礎上,對所提取的聲學特征進行聚類,使由于發聲人不同、語境不同、場景不同等差異產生差別的聲學特征在分布上趨近于音素表示。經此步驟之后,語音數據提取的特征空間將被大幅簡化,并能在更少的資源需求中發揮出與現有常規模型相同或者更好的表現。
為了得到聲學模型訓練的輸入,需要從語音數據中提取所需要的語音特征,在這個過程中傳統語音識別系統中常用的是FBanks 與MFCC 方法。但在后續的研究中發現,利用神經網絡進行特征提取能夠使模型專注于語音識別系統所需要的特征,這種方法在wav2vec 2.0 中作為數據特征提取網絡被使用,可以有效地保留語音數據的細節與噪聲信息,減少信息在數學變換中的信息缺失[7]。
對該層網絡的處理方法是文章的創新點之一,為了保證特征提取網絡的差異不對后續實驗產生影響,該文在進行聲學模型訓練的同時也對特征提取網絡進行了訓練,但在保存網絡時將特征提取網絡與BERT 聲學模型進行了分離,得到了基于CNN 的特征提取模型與基于BERT 的聲學模型。
該文采用的CNN特征提取網絡結構如圖4所示。

圖4 CNN特征提取網絡結構圖
該層網絡是文章算法的核心算法,在本層中,經由特征提取網絡提取到的語音特征將經過可以保證較好伸縮性的K-Means 聚類網絡進行特征的分類,創建類似于音素保存庫的分類網絡。
與目前常見的模型訓練方式相比,該層特征聚類網絡的應用將會簡化無限大小的語音特征空間,將語音特征空間壓縮成與音素相合的有限空間,大大減少后續模型中對大量語音數據的依賴。
由于K-Means 聚類算法的特征:當聚類中心數無窮大時,此時聚類網絡相當于將原始數據直接送往后續網絡模型,則模型的訓練結果將與無聚類網絡時相同;當聚類中心數量過少時,則聚類中心無法代表特征,使得模型的訓練結果差于無聚類網絡的模型。
BERT 模型是目前最常用的無監督訓練模型之一,它是Transformer 網絡結構的Encoder 部分,繼承了Transformer 優秀的特征關聯特點[8]。
文中將利用BERT 網絡的特點,將經過聚類后的語音特征進行無監督的特征訓練。在該層網絡中,語音特征經由自注意力機制對語音特征的概率分布進行學習,使經過聚類的語音特征分布成為一個符合語音習慣的聲學概率模型[7]。
文中使用的BERT 模型結構如圖5 所示。

圖5 BERT網絡結構
其中,語音數據在經過特征提取編碼器層(Feature Encoder)之后進行遮罩(Mask)處理,得到被遮罩后的特征序列與遮罩部分序列,之后兩組序列均進行位置編碼擴展(Pos_Ex_Layer),然后進行層歸一化處理(Layer Norm)。遮罩序列后續通過Transformer Encoder 層進行 訓練,Transformer Encoder 網絡圖如圖6 所示,并取輸出結果中被遮罩的部分與原遮罩部分進行損失計算。

圖6 Transformer Encoder網絡圖
在該文的模型預訓練過程中,使用的損失函數是infoNCE(informational Noise Contrastive Estimation),該損失函數計算方法是在CPC 方法[3]中被提出的,它是交叉熵函數的一種變體,通過對比正樣本與負樣本之間的差異對模型的預測效果進行評估,該損失的計算方法如式(1)所示:
其中,(Xt+k,Ct)為根據原序列Ct預測的Xt+k正樣本對,fk為密度相關函數,即求正樣本對之間的相似度,(Xj,Ct)為負樣本對,Xj與Ct無關。
該文在Pytorch[9]上將原始語音數據傳入特征提取網絡進行特征提取,將得到的特征數據進行KMeans 網絡的特征聚類訓練,然后使用同樣結構的語音識別下游任務,對訓練好的BERT 預訓練模型進行微調,并對下游任務的表現進行評估與對比。
對于中文普通話領域的無監督模型訓練,常用的開源數據集是AISHELL,這個數據集包含178 h 的開源版數據。該數據集包含400 個來自中國不同地區、具有不同口音的人的聲音。在安靜的室內環境中使用高保真麥克風進行錄音,并將音頻數據采樣頻率降至16 000 Hz。通過專業的語音注釋和嚴格的質量檢查,手動轉錄準確率達到95%以上。
在送入Transformer 層之前,源語音序列經過7層一維CNN 卷積層進行特征提取,其步長為(5,2,2,2,2,2,2),卷積核寬度為(10,3,3,3,3,2,2)[10],通道數為512,以實現每秒產生50 個128 維的特征值。對于基于序列模型Transformer 的BERT 層,該文設置其參數[11-12]為:d=6,dmodel=768,dff=3 072,dhead=12 。對于K-means 聚類網絡層[13],該文設置了(50,100,300)三種聚類中心數量來比較聚類中心對于模型效果的影響。該文采用基于與Transformer[14]結構相同的預測網絡和Encoder[15]結構,并使用兩層Transformer decoder[16]作為模型的下游任務預測網絡。
在預訓練階段,所有的模型在batch_size 大小為24的情況下訓練約50個epochs。該文采用AdamW[17]優化器,并設置了學習率的預熱,從最初的10%逐漸更新直至0.000 5[18]。
在微調階段所有的模型都進行batch_size 為24的200 輪訓練,對基于Transformer 的語音模型,該文根據模型需要設置了CTC[19]解碼訓練。
在開始對比實驗之前,該文訓練了簡單的BERT模型,并在后續實驗中,分別設置了(50,100,300) 三種聚類中心數量來對新的BERT 模型進行預訓練,并對同一設置的ASR 下游任務進行微調,對三種不同的BERT 預訓練網絡進行該錯字率(Character Error Rate,CER)的比較,得到如表1 所示的實驗表現。

表1 不同聚類中心數量的BERT模型的錯字率(CER)以及相對錯誤降低率(RERR)
從表1 可以看出,在聚類中心數量為50 時,聚類中心并不能很好地表現語音特征,并且會對原始模型造成負面影響。在聚類中心數量為100 時,聚類模型效果比原始模型錯字率降低了2.32%,有效地提升了原BERT 模型的性能。在聚類中心數為300 時,雖然與初始模型相比,錯字率降低了1.04%,但是與聚類中心數量為100 的數據相比錯字率有所上升。
并且對比兩個模型的訓練過程,可以得到模型在下游任務中損失下降對比如圖7 所示。

圖7 下游ASR任務loss下降趨勢
從圖7 可以看出,經過K-Means 聚類后的BERT預訓練模型擁有比常規BERT 模型更快的收斂速度與更低的loss 值,這表示了經過聚類后的BERT 模型擁有更好的下游任務契合度。
實驗結果表明,對語音特征進行的聚類操作在聚類中心數量合適的情況下,能有效提升BERT 模型在ASR 下游任務的性能。在聚類中心數量較少的情況下,特征的聚類中心不能包含所有類似的發音片段特征以及噪聲信息,所以會導致其對BERT模型的預訓練產生負面效果。在聚類中心較多的情況下,特征的聚類中心會包含對同種語音信息的多種不同聚類,在最極端的情況下,會使模型與無K-Means 聚類操作時擁有相同的表現。由此可以推斷,存在某一特定數量的特征聚類中心K-means能使得BERT 模型在ASR 任務中表現最優。
該文創新性地在語音預訓練模型前使用KMeans 聚類網絡對語音特征進行聚類操作,來實現類似于聲學中音素的效果,將基礎聲學理論知識應用到機器學習中。因此,在語音領域可以利用該性質,將提取后的語音特征聚類后進行模型的預訓練,來提升模型的訓練效率與魯棒性。在后續的研究中,將會進一步進行實驗來尋找最優的聚類中心數,并探究預訓練模型在其他下游任務中的表現是否與ASR任務一致。