豐天韻,阮俊豪,王卓琛
(1.武漢郵電科學(xué)研究院,湖北武漢 430070;2.南京烽火天地通信科技有限公司,江蘇 南京 210000)
當(dāng)前工業(yè)化的端到端語(yǔ)音識(shí)別系統(tǒng)依賴于大量的標(biāo)注數(shù)據(jù),但是在目前的應(yīng)用中,語(yǔ)音數(shù)據(jù)的標(biāo)注非常困難,并且標(biāo)注數(shù)據(jù)的獲取需要花費(fèi)很大的成本,而未標(biāo)注的數(shù)據(jù)獲取成本極低。為了打破這一現(xiàn)狀,利用大量未標(biāo)注數(shù)據(jù)來(lái)提升語(yǔ)音識(shí)別系統(tǒng)的性能是非常重要的研究方向。然而對(duì)語(yǔ)音信號(hào)而言,來(lái)自不同的人、場(chǎng)景的語(yǔ)音信息往往在發(fā)聲時(shí)間長(zhǎng)度、發(fā)聲特點(diǎn)等方面不盡相同,因此,必須使用大量的數(shù)據(jù)訓(xùn)練來(lái)保證這些差異不會(huì)對(duì)模型產(chǎn)生負(fù)面影響。而音素是構(gòu)成音節(jié)的最小單位或最小的語(yǔ)音片段,是從音質(zhì)的角度劃分出來(lái)的最小的線性語(yǔ)音單位。因此,可以將語(yǔ)音數(shù)據(jù)提取后的特征進(jìn)行聚類(lèi)處理,達(dá)到類(lèi)似于語(yǔ)言學(xué)中音素的聚類(lèi)效果,從而在縮減模型體積的同時(shí)保持模型的高效率識(shí)別。
為了利用數(shù)量龐大的無(wú)標(biāo)注數(shù)據(jù),提出了自監(jiān)督學(xué)習(xí)的思想[1]。自監(jiān)督訓(xùn)練的核心思想是放棄模型的隨機(jī)初始化,使用大語(yǔ)料庫(kù)先進(jìn)行預(yù)訓(xùn)練,然后再根據(jù)相關(guān)的下游任務(wù)進(jìn)行模型的微調(diào)[2]。預(yù)訓(xùn)練技術(shù)可以獲得更加通用的數(shù)據(jù)特征表示,能運(yùn)用這些信息加速下游任務(wù)的訓(xùn)練,并獲得更好的性能。
在語(yǔ)音領(lǐng)域,谷歌提出了一種用于聲學(xué)的自監(jiān)督預(yù)訓(xùn)練方法預(yù)測(cè)對(duì)比編碼(Contrastive Predictive Coding,CPC)[3],這種方法在理論上闡述了聲學(xué)預(yù)訓(xùn)練的可能性。而后隨著最具特色的BERT 模型的提出,越來(lái)越多領(lǐng)域開(kāi)始使用這一效果優(yōu)秀的模型結(jié)構(gòu)。BERT 模型本質(zhì)上是Transformer 網(wǎng)絡(luò)中Encoder部分的堆疊,擁有強(qiáng)大的語(yǔ)言表征能力和特征提取能力[4],因此在自然語(yǔ)言處理(Natural Language Processing,NLP)領(lǐng)域和語(yǔ)音領(lǐng)域都逐漸發(fā)揮了巨大的作用。該文所優(yōu)化的預(yù)訓(xùn)練模型也是基于BERT模型進(jìn)行修改與優(yōu)化的。
該文創(chuàng)新性地將語(yǔ)音數(shù)據(jù)特征基于聲學(xué)理論進(jìn)行方案探究,在提取語(yǔ)音數(shù)據(jù)特征后,將語(yǔ)音特征聚類(lèi)來(lái)實(shí)現(xiàn)類(lèi)似于音素的效果。文中根據(jù)這一創(chuàng)新設(shè)計(jì)了如圖1 所示的整體語(yǔ)音預(yù)訓(xùn)練模型網(wǎng)絡(luò)結(jié)構(gòu),并對(duì)該文算法的創(chuàng)新內(nèi)容進(jìn)行了描述。
圖1 算法整體網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)算法優(yōu)化內(nèi)容,在傳統(tǒng)無(wú)監(jiān)督的網(wǎng)絡(luò)結(jié)構(gòu)中加入特征聚類(lèi)網(wǎng)絡(luò),并完善基于該算法的整體結(jié)構(gòu)。
傳統(tǒng)的無(wú)監(jiān)督模型中,無(wú)論是利用MFCC 還是Fbank 進(jìn)行特征提取,傳統(tǒng)算法均直接將所提取特征送入模型中進(jìn)行預(yù)訓(xùn)練[5-6],因此很容易受到訓(xùn)練數(shù)據(jù)中說(shuō)話人發(fā)聲特點(diǎn)差異的影響,從而造成模型的不穩(wěn)定并影響精度,傳統(tǒng)算法的缺陷如圖2 所示。
圖2 傳統(tǒng)算法缺陷
為了解決這一問(wèn)題,該文提出了如圖3 所示的算法進(jìn)行優(yōu)化,能將相同或相似的聲學(xué)特征聚類(lèi)成統(tǒng)一的聚類(lèi)中心,減少發(fā)聲人因素造成的影響,從而提升后續(xù)模型的訓(xùn)練效果,減少對(duì)大量數(shù)據(jù)的依賴,并且增強(qiáng)模型在復(fù)雜語(yǔ)音環(huán)境中的魯棒性。
圖3 該文算法方案
聲學(xué)領(lǐng)域根據(jù)聲學(xué)發(fā)聲規(guī)律與特點(diǎn),人聲發(fā)音被總結(jié)歸納為一系列發(fā)聲片段的組合,其最小元素即為音素。無(wú)論是何種語(yǔ)言,其發(fā)音特點(diǎn)均可由音素來(lái)表現(xiàn)。因此,該文在進(jìn)行了聲學(xué)特征提取的基礎(chǔ)上,對(duì)所提取的聲學(xué)特征進(jìn)行聚類(lèi),使由于發(fā)聲人不同、語(yǔ)境不同、場(chǎng)景不同等差異產(chǎn)生差別的聲學(xué)特征在分布上趨近于音素表示。經(jīng)此步驟之后,語(yǔ)音數(shù)據(jù)提取的特征空間將被大幅簡(jiǎn)化,并能在更少的資源需求中發(fā)揮出與現(xiàn)有常規(guī)模型相同或者更好的表現(xiàn)。
為了得到聲學(xué)模型訓(xùn)練的輸入,需要從語(yǔ)音數(shù)據(jù)中提取所需要的語(yǔ)音特征,在這個(gè)過(guò)程中傳統(tǒng)語(yǔ)音識(shí)別系統(tǒng)中常用的是FBanks 與MFCC 方法。但在后續(xù)的研究中發(fā)現(xiàn),利用神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取能夠使模型專(zhuān)注于語(yǔ)音識(shí)別系統(tǒng)所需要的特征,這種方法在wav2vec 2.0 中作為數(shù)據(jù)特征提取網(wǎng)絡(luò)被使用,可以有效地保留語(yǔ)音數(shù)據(jù)的細(xì)節(jié)與噪聲信息,減少信息在數(shù)學(xué)變換中的信息缺失[7]。
對(duì)該層網(wǎng)絡(luò)的處理方法是文章的創(chuàng)新點(diǎn)之一,為了保證特征提取網(wǎng)絡(luò)的差異不對(duì)后續(xù)實(shí)驗(yàn)產(chǎn)生影響,該文在進(jìn)行聲學(xué)模型訓(xùn)練的同時(shí)也對(duì)特征提取網(wǎng)絡(luò)進(jìn)行了訓(xùn)練,但在保存網(wǎng)絡(luò)時(shí)將特征提取網(wǎng)絡(luò)與BERT 聲學(xué)模型進(jìn)行了分離,得到了基于CNN 的特征提取模型與基于BERT 的聲學(xué)模型。
該文采用的CNN特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 CNN特征提取網(wǎng)絡(luò)結(jié)構(gòu)圖
該層網(wǎng)絡(luò)是文章算法的核心算法,在本層中,經(jīng)由特征提取網(wǎng)絡(luò)提取到的語(yǔ)音特征將經(jīng)過(guò)可以保證較好伸縮性的K-Means 聚類(lèi)網(wǎng)絡(luò)進(jìn)行特征的分類(lèi),創(chuàng)建類(lèi)似于音素保存庫(kù)的分類(lèi)網(wǎng)絡(luò)。
與目前常見(jiàn)的模型訓(xùn)練方式相比,該層特征聚類(lèi)網(wǎng)絡(luò)的應(yīng)用將會(huì)簡(jiǎn)化無(wú)限大小的語(yǔ)音特征空間,將語(yǔ)音特征空間壓縮成與音素相合的有限空間,大大減少后續(xù)模型中對(duì)大量語(yǔ)音數(shù)據(jù)的依賴。
由于K-Means 聚類(lèi)算法的特征:當(dāng)聚類(lèi)中心數(shù)無(wú)窮大時(shí),此時(shí)聚類(lèi)網(wǎng)絡(luò)相當(dāng)于將原始數(shù)據(jù)直接送往后續(xù)網(wǎng)絡(luò)模型,則模型的訓(xùn)練結(jié)果將與無(wú)聚類(lèi)網(wǎng)絡(luò)時(shí)相同;當(dāng)聚類(lèi)中心數(shù)量過(guò)少時(shí),則聚類(lèi)中心無(wú)法代表特征,使得模型的訓(xùn)練結(jié)果差于無(wú)聚類(lèi)網(wǎng)絡(luò)的模型。
BERT 模型是目前最常用的無(wú)監(jiān)督訓(xùn)練模型之一,它是Transformer 網(wǎng)絡(luò)結(jié)構(gòu)的Encoder 部分,繼承了Transformer 優(yōu)秀的特征關(guān)聯(lián)特點(diǎn)[8]。
文中將利用BERT 網(wǎng)絡(luò)的特點(diǎn),將經(jīng)過(guò)聚類(lèi)后的語(yǔ)音特征進(jìn)行無(wú)監(jiān)督的特征訓(xùn)練。在該層網(wǎng)絡(luò)中,語(yǔ)音特征經(jīng)由自注意力機(jī)制對(duì)語(yǔ)音特征的概率分布進(jìn)行學(xué)習(xí),使經(jīng)過(guò)聚類(lèi)的語(yǔ)音特征分布成為一個(gè)符合語(yǔ)音習(xí)慣的聲學(xué)概率模型[7]。
文中使用的BERT 模型結(jié)構(gòu)如圖5 所示。
圖5 BERT網(wǎng)絡(luò)結(jié)構(gòu)
其中,語(yǔ)音數(shù)據(jù)在經(jīng)過(guò)特征提取編碼器層(Feature Encoder)之后進(jìn)行遮罩(Mask)處理,得到被遮罩后的特征序列與遮罩部分序列,之后兩組序列均進(jìn)行位置編碼擴(kuò)展(Pos_Ex_Layer),然后進(jìn)行層歸一化處理(Layer Norm)。遮罩序列后續(xù)通過(guò)Transformer Encoder 層進(jìn)行 訓(xùn)練,Transformer Encoder 網(wǎng)絡(luò)圖如圖6 所示,并取輸出結(jié)果中被遮罩的部分與原遮罩部分進(jìn)行損失計(jì)算。
圖6 Transformer Encoder網(wǎng)絡(luò)圖
在該文的模型預(yù)訓(xùn)練過(guò)程中,使用的損失函數(shù)是infoNCE(informational Noise Contrastive Estimation),該損失函數(shù)計(jì)算方法是在CPC 方法[3]中被提出的,它是交叉熵函數(shù)的一種變體,通過(guò)對(duì)比正樣本與負(fù)樣本之間的差異對(duì)模型的預(yù)測(cè)效果進(jìn)行評(píng)估,該損失的計(jì)算方法如式(1)所示:
其中,(Xt+k,Ct)為根據(jù)原序列Ct預(yù)測(cè)的Xt+k正樣本對(duì),fk為密度相關(guān)函數(shù),即求正樣本對(duì)之間的相似度,(Xj,Ct)為負(fù)樣本對(duì),Xj與Ct無(wú)關(guān)。
該文在Pytorch[9]上將原始語(yǔ)音數(shù)據(jù)傳入特征提取網(wǎng)絡(luò)進(jìn)行特征提取,將得到的特征數(shù)據(jù)進(jìn)行KMeans 網(wǎng)絡(luò)的特征聚類(lèi)訓(xùn)練,然后使用同樣結(jié)構(gòu)的語(yǔ)音識(shí)別下游任務(wù),對(duì)訓(xùn)練好的BERT 預(yù)訓(xùn)練模型進(jìn)行微調(diào),并對(duì)下游任務(wù)的表現(xiàn)進(jìn)行評(píng)估與對(duì)比。
對(duì)于中文普通話領(lǐng)域的無(wú)監(jiān)督模型訓(xùn)練,常用的開(kāi)源數(shù)據(jù)集是AISHELL,這個(gè)數(shù)據(jù)集包含178 h 的開(kāi)源版數(shù)據(jù)。該數(shù)據(jù)集包含400 個(gè)來(lái)自中國(guó)不同地區(qū)、具有不同口音的人的聲音。在安靜的室內(nèi)環(huán)境中使用高保真麥克風(fēng)進(jìn)行錄音,并將音頻數(shù)據(jù)采樣頻率降至16 000 Hz。通過(guò)專(zhuān)業(yè)的語(yǔ)音注釋和嚴(yán)格的質(zhì)量檢查,手動(dòng)轉(zhuǎn)錄準(zhǔn)確率達(dá)到95%以上。
在送入Transformer 層之前,源語(yǔ)音序列經(jīng)過(guò)7層一維CNN 卷積層進(jìn)行特征提取,其步長(zhǎng)為(5,2,2,2,2,2,2),卷積核寬度為(10,3,3,3,3,2,2)[10],通道數(shù)為512,以實(shí)現(xiàn)每秒產(chǎn)生50 個(gè)128 維的特征值。對(duì)于基于序列模型Transformer 的BERT 層,該文設(shè)置其參數(shù)[11-12]為:d=6,dmodel=768,dff=3 072,dhead=12 。對(duì)于K-means 聚類(lèi)網(wǎng)絡(luò)層[13],該文設(shè)置了(50,100,300)三種聚類(lèi)中心數(shù)量來(lái)比較聚類(lèi)中心對(duì)于模型效果的影響。該文采用基于與Transformer[14]結(jié)構(gòu)相同的預(yù)測(cè)網(wǎng)絡(luò)和Encoder[15]結(jié)構(gòu),并使用兩層Transformer decoder[16]作為模型的下游任務(wù)預(yù)測(cè)網(wǎng)絡(luò)。
在預(yù)訓(xùn)練階段,所有的模型在batch_size 大小為24的情況下訓(xùn)練約50個(gè)epochs。該文采用AdamW[17]優(yōu)化器,并設(shè)置了學(xué)習(xí)率的預(yù)熱,從最初的10%逐漸更新直至0.000 5[18]。
在微調(diào)階段所有的模型都進(jìn)行batch_size 為24的200 輪訓(xùn)練,對(duì)基于Transformer 的語(yǔ)音模型,該文根據(jù)模型需要設(shè)置了CTC[19]解碼訓(xùn)練。
在開(kāi)始對(duì)比實(shí)驗(yàn)之前,該文訓(xùn)練了簡(jiǎn)單的BERT模型,并在后續(xù)實(shí)驗(yàn)中,分別設(shè)置了(50,100,300) 三種聚類(lèi)中心數(shù)量來(lái)對(duì)新的BERT 模型進(jìn)行預(yù)訓(xùn)練,并對(duì)同一設(shè)置的ASR 下游任務(wù)進(jìn)行微調(diào),對(duì)三種不同的BERT 預(yù)訓(xùn)練網(wǎng)絡(luò)進(jìn)行該錯(cuò)字率(Character Error Rate,CER)的比較,得到如表1 所示的實(shí)驗(yàn)表現(xiàn)。
表1 不同聚類(lèi)中心數(shù)量的BERT模型的錯(cuò)字率(CER)以及相對(duì)錯(cuò)誤降低率(RERR)
從表1 可以看出,在聚類(lèi)中心數(shù)量為50 時(shí),聚類(lèi)中心并不能很好地表現(xiàn)語(yǔ)音特征,并且會(huì)對(duì)原始模型造成負(fù)面影響。在聚類(lèi)中心數(shù)量為100 時(shí),聚類(lèi)模型效果比原始模型錯(cuò)字率降低了2.32%,有效地提升了原BERT 模型的性能。在聚類(lèi)中心數(shù)為300 時(shí),雖然與初始模型相比,錯(cuò)字率降低了1.04%,但是與聚類(lèi)中心數(shù)量為100 的數(shù)據(jù)相比錯(cuò)字率有所上升。
并且對(duì)比兩個(gè)模型的訓(xùn)練過(guò)程,可以得到模型在下游任務(wù)中損失下降對(duì)比如圖7 所示。
圖7 下游ASR任務(wù)loss下降趨勢(shì)
從圖7 可以看出,經(jīng)過(guò)K-Means 聚類(lèi)后的BERT預(yù)訓(xùn)練模型擁有比常規(guī)BERT 模型更快的收斂速度與更低的loss 值,這表示了經(jīng)過(guò)聚類(lèi)后的BERT 模型擁有更好的下游任務(wù)契合度。
實(shí)驗(yàn)結(jié)果表明,對(duì)語(yǔ)音特征進(jìn)行的聚類(lèi)操作在聚類(lèi)中心數(shù)量合適的情況下,能有效提升BERT 模型在ASR 下游任務(wù)的性能。在聚類(lèi)中心數(shù)量較少的情況下,特征的聚類(lèi)中心不能包含所有類(lèi)似的發(fā)音片段特征以及噪聲信息,所以會(huì)導(dǎo)致其對(duì)BERT模型的預(yù)訓(xùn)練產(chǎn)生負(fù)面效果。在聚類(lèi)中心較多的情況下,特征的聚類(lèi)中心會(huì)包含對(duì)同種語(yǔ)音信息的多種不同聚類(lèi),在最極端的情況下,會(huì)使模型與無(wú)K-Means 聚類(lèi)操作時(shí)擁有相同的表現(xiàn)。由此可以推斷,存在某一特定數(shù)量的特征聚類(lèi)中心K-means能使得BERT 模型在ASR 任務(wù)中表現(xiàn)最優(yōu)。
該文創(chuàng)新性地在語(yǔ)音預(yù)訓(xùn)練模型前使用KMeans 聚類(lèi)網(wǎng)絡(luò)對(duì)語(yǔ)音特征進(jìn)行聚類(lèi)操作,來(lái)實(shí)現(xiàn)類(lèi)似于聲學(xué)中音素的效果,將基礎(chǔ)聲學(xué)理論知識(shí)應(yīng)用到機(jī)器學(xué)習(xí)中。因此,在語(yǔ)音領(lǐng)域可以利用該性質(zhì),將提取后的語(yǔ)音特征聚類(lèi)后進(jìn)行模型的預(yù)訓(xùn)練,來(lái)提升模型的訓(xùn)練效率與魯棒性。在后續(xù)的研究中,將會(huì)進(jìn)一步進(jìn)行實(shí)驗(yàn)來(lái)尋找最優(yōu)的聚類(lèi)中心數(shù),并探究預(yù)訓(xùn)練模型在其他下游任務(wù)中的表現(xiàn)是否與ASR任務(wù)一致。