王 昕,蔣志翔,張 楊,寇金橋,常新旭,徐冬冬
(中國航天科工集團第二研究院 北京計算機技術(shù)及應(yīng)用研究所,北京 100854)
語音分離一詞最初源于“雞尾酒會問題”,它是指從混合的兩個或多個說話人的混合聲音中得到想要的目標說話人(一人或多人)的語音信號。在復雜的聲音環(huán)境下,除了目標說話人的聲音以外,通常還伴有其它人的說話聲音,干擾人的語音信號與普通的環(huán)境噪聲或是音樂噪聲的聲學特征上不同,它在聽覺上會嚴重阻礙聽者對感興趣的語音信息的獲取,而對于機器來說就更加困難,這會嚴重影響對目標說話人語音的獲取、識別與理解,這時候便需要語音分離技術(shù)來將混合語音中的多個說話人語音分離為各個說話人的語音,這樣聽者便可以輕松地得到自己想要的聲音信息,從而進行下一步的語音識別等任務(wù)[1]。
目前解決上述問題的方法主要為基于置換不變訓練(permutation invariant training, PIT)[2]的方法、基于深度吸引子網(wǎng)絡(luò)(deep attractor network, DANet)[3]的方法和基于深度聚類(deep clustering, DPCL)[4]的方法。本文參考深度聚類的方法,從優(yōu)化模型角度出發(fā),通過時間卷積網(wǎng)絡(luò)(temporal convolutional network, TCN)[5]來對輸入語音特征進行高維可分離空間的映射以充分結(jié)合輸入語音的時序信息并提高效率,再通過K均值(K-means)聚類算法聚類得出理想二值掩蔽,并在100個不同性別的說話人語音數(shù)據(jù)集上驗證了這一模型方法的有效性。
單通道語音分離技術(shù)最初是基于計算聽覺場景分析(computational auditory scene analysis, CASA)的方法,CASA的主要思想是模擬人類聽覺系統(tǒng)對聲音的處理過程來將混合語音分離。在計算聽覺場景分析的過程中需要指定一個計算目標,其中最常用的計算目標是估計一個理想二值掩蔽(ideal binary mask, IBM),IBM通過人類聽覺系統(tǒng)在收聽聲音時的聽覺掩蔽效應(yīng),計算出每個時頻單元上的主導聲音源,然后以此完成語音分離。計算聽覺場景分析處理語音數(shù)據(jù)時對干擾語音完全不做假設(shè),與其它語音分離方法相比,具有更好的泛化性能。然而,計算聽覺場景分析方法也存在一定缺陷,它嚴重依賴于檢測語音的基音部分,尤其受到干擾語音的影響時,語音的基音檢測將變得十分困難。除此之外,缺乏諧波結(jié)構(gòu)也會使計算聽覺場景分析方法在處理語音中的清音成分時變得很難[6]。
隨后,基于非負矩陣分解方法[7](non-negative matrix factorization, NMF)的語音分離得到廣泛研究,NMF的目標是通過網(wǎng)絡(luò)學習到一個非負矩陣的基底矩陣和與之相對應(yīng)的系數(shù)矩陣,其中基底矩陣表示說話人的特征類別,而系數(shù)矩陣則代表對應(yīng)特征的參數(shù),從而得到對說話人語音的分離。
后來有人提出基于模型的語音分離方法,其中主要包括高斯混合模型(GMM)和隱馬爾科夫模型(HMM)。文獻中,在基于訓練的語音分離中應(yīng)用了HMMs,GMMs等模型,但是這些都屬于淺層模型,在處理線性結(jié)構(gòu)問題上具有不錯的效果,然而語音信號是一個時間序列,具有明顯的時空結(jié)構(gòu)和非線性關(guān)系,聯(lián)系上下文信息和時間關(guān)系可以更好地找出語音信號的內(nèi)在聯(lián)系,而淺層結(jié)構(gòu)在挖掘這些非線性結(jié)構(gòu)信息和前后時間信息的能力上非常有限[6]。
目前隨著深度學習領(lǐng)域的迅速發(fā)展,以深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)為代表的深度模型[8]也逐漸被用來解決語音分離問題。分離目標主要分為語音信號的直接映射和估計一個理想二值掩蔽值(IBM),語音信號的直接映射就是有監(jiān)督地訓練一個混合語音到干凈語音的學習網(wǎng)絡(luò),混合語音作為網(wǎng)絡(luò)的輸入便可以得到分離后的語音,估計掩蔽值的方法是將理想二值掩蔽(IBM)作為分離目標,通過人耳聽覺掩蔽的基理來訓練得到,從而進一步與混合語音計算得到分離的語音信號。這類方法會出現(xiàn)說話人標簽序列排序的問題,導致訓練時數(shù)據(jù)與標簽不匹配進而無法從對應(yīng)的輸出端輸出對應(yīng)的目標。
為找到一種去除標簽序列排序問題的語音分離算法,Jonathan Le Roux等提出了一種以二值掩蔽作為分離目標通過深度聚類的方法[4]來解決說話人無關(guān)語音分離問題,這種方法可以對語音特征做一個高維可分離空間的映射,然后通過聚類算法得出時頻掩蔽目標,然后與混合語音計算后得出不同的分離語音信號,從而也實現(xiàn)了端到端的深度網(wǎng)絡(luò)訓練模型與無監(jiān)督的聚類模型相結(jié)合,解決了標簽序列排序問題,在說話人無關(guān)語音分離問題上取得了一定突破。
時間卷積網(wǎng)絡(luò)(TCN)[5]由Bai等提出,目前用于很多包含時序結(jié)構(gòu)的任務(wù)中例如語音識別、機器翻譯等,它結(jié)合了循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[8,9]可以記憶前后文信息的優(yōu)勢和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)[10,11]計算效率高、可堆疊網(wǎng)絡(luò)層數(shù)深的優(yōu)勢,由因果卷積、膨脹卷積和核殘差塊組成,既可以將當前的時間信息和之前的時間信息聯(lián)系結(jié)合起來,又保留了CNN可以并行運算的效率優(yōu)勢,使得在對序列信息的處理上既可以提高速度又能保證高質(zhì)量的訓練效果。
考慮到語音分離任務(wù)中的混合語音信號是一個時間序列信號,相對于雙向長短時記憶網(wǎng)絡(luò)[4](Bi-directional LSTM, BLSTM),TCN網(wǎng)絡(luò)可以獲取更大的感受野,保留過去的時間信息從而對序列問題有一個更好的建模過程,而且具有并行運算的效率優(yōu)勢,更穩(wěn)定的梯度,更小的訓練占用內(nèi)存。因此本文使用TCN網(wǎng)絡(luò)代替原來的BLSTM網(wǎng)絡(luò)深度聚類方法的嵌入過程進行建模,并通過實驗度量分離后語音的質(zhì)量與可懂度,從而客觀評價該方法的語音分離性能。
在機器學習任務(wù)中,輸入特征作為用來區(qū)分訓練的關(guān)鍵是不可或缺的,采用不同的輸入特征會對結(jié)果產(chǎn)生不同的影響。由于語音是一個一維的時域信號,對于兩個說話人的混合語音來說不足以區(qū)分,在本文中采用了短時傅里葉對數(shù)功率譜(STFT)特征,它可以將混合語音信號進行短時傅里葉變換轉(zhuǎn)化為二維的時頻信號,從而將混合信號中的高頻成分更好地體現(xiàn)出來。
本文的TCN網(wǎng)絡(luò)模型如圖1所示,從圖中可見本文使用了8層TCN網(wǎng)絡(luò),其中包含一層輸入層、6層隱藏層和一層輸出層,隱藏層每層包含512個節(jié)點,輸入輸出層均為129個節(jié)點,每層之間通過一維全卷積網(wǎng)絡(luò)和ReLU激活函數(shù)相連接,卷積核大小為2,每一層膨脹卷積的膨脹系數(shù)從第一層起每層分別為1,2,4,8,16,32,64,隔層之間通過殘差塊相連,為了保證維度相等,下層先做一個1×1的卷積后再與高層相連。因為每層均為膨脹卷積,該網(wǎng)絡(luò)最后的輸出節(jié)點可以包含所有之前輸入節(jié)點的時頻特征信息,每一層相較于卷積神經(jīng)網(wǎng)絡(luò)(CNN)具有更大的感受野,這對于處理語音信號這類時序信息具有很大優(yōu)勢,通過結(jié)合過去的時頻信息來找到特征的相同與不同從而使得映射到高維空間后,近似的時頻特征距離更近,反之則距離更遠,最后每層的卷積網(wǎng)絡(luò)的結(jié)構(gòu)保證了該網(wǎng)絡(luò)結(jié)構(gòu)模型可以并行計算,大大提高了訓練速度。
圖1 本文TCN網(wǎng)絡(luò)結(jié)構(gòu)模型
其中每一層的膨脹卷積運算公式為
式中:k——卷積核的大小,d——每層的膨脹系數(shù),s-d·i——對于之前時頻信息的索引。
本文使用的基于時間卷積網(wǎng)絡(luò)的深度聚類方法基于傳統(tǒng)深度聚類語音分離方法[9],模型結(jié)構(gòu)如圖2所示。
圖2 深度聚類模型框架
如圖2所示,深度聚類(deep-clustering,DC)模型[7]就是一個深度網(wǎng)絡(luò)模型和一個聚類模型前后相接形成的,模型訓練階段首先對混合語音經(jīng)過預(yù)處理得到音頻特征輸入給深度學習模型,傳統(tǒng)的深度聚類方法用到的是兩層的雙向長短時記憶網(wǎng)絡(luò)(BLSTM),本文中使用如圖1所示結(jié)構(gòu)的時間卷積網(wǎng)絡(luò)(TCN)。由于輸入的WAV文件通過一系列變換取對數(shù),得到音頻的對數(shù)功率譜,它是一個關(guān)于語音信號的時頻序列信息特征,將這一特征通過TCN網(wǎng)絡(luò)將每個時頻特征的時頻單元(TF-bin)結(jié)合當前幀以及之前幀的所有時序相關(guān)信息映射到一個新的特征子空間上,生成一個新的頻譜嵌入向量(spectrogram embeddings),通過TCN網(wǎng)絡(luò)學習輸入特征映射到嵌入向量的過程,在這個新的高維子空間中屬于同一說話人的時頻單元距離更小,而TCN網(wǎng)絡(luò)每個輸出包含了所有輸入信息,屬于同一說話人的特征信息包含了該說話人之前的特征信息,所以它們的特征更相近,這便保證了這一目標,因此這些新的嵌入向量攜帶自己的特征信息,為下一步的聚類過程提供更好的結(jié)果,聚類后的結(jié)果被用作掩蔽值來分離混合語音信號。
輸入信號的對數(shù)幅度譜特征向量表示如下
Xi=Xt,f,i∈{1,2,…,N}
式中:t——輸入信號幀的時間索引,f——信號幀的頻率索引,隨后將信號的二維時頻特征映射到一個高維嵌入空間中來得到高維特征表示
Xt,f→vt,f∈RD+1
Xt*→vt*∈RDF+1
V=fθ(X)
從而可以通過最小化估計的親和矩陣和理想親和矩陣之間的距離來得到訓練時的損失函數(shù),其表示如下
在測試階段,根據(jù)訓練好的TCN模型,通過X得出嵌入空間向量V=fθ(X), 通過K均值算法將vi聚類,初始聚類中心為混合音頻中說話人的個數(shù),最終的聚類結(jié)果被當作掩蔽值用來預(yù)測源信號。
在語音分離任務(wù)中,找到一個合適的分離目標是至關(guān)重要的。人類聽覺系統(tǒng)在同一頻帶內(nèi)感知聲音時會出現(xiàn)聽覺掩蔽現(xiàn)象,相對弱的聲音能量會被更強的聲音能量所掩蔽。在想要提高語音分離質(zhì)量,減少語音畸變的情況下,主要的分離目標有:時頻掩蔽、語音幅度譜估計以及隱式時頻掩蔽。
本文采用的分離目標為理想二值掩蔽(IBM),它屬于時頻掩蔽,是語音分離任務(wù)的主要計算目標。它源于人耳聽覺中的聽覺掩蔽,在二維時頻單元上表示。IBM已經(jīng)被證明可以極大地提高分離后的語音可懂度[8],而且可以有效地抑制分離后語音中噪音的干擾和目標語音的畸變。IBM是基于目標語音和干擾語音的計算得出的,它是一個關(guān)于時頻掩蔽的二值矩陣,如果在某一時頻單元上局部信噪比SNR(t,f) 大于初始設(shè)定的閾值LC(local criterion),則掩蔽矩陣中對應(yīng)的元素標記為1,反之則標記為0。用公式表示如下
式中:SNR(t,f) 表示時間幀為t,頻率等于f的時候的時頻單元噪比,LC會影響語音可懂度,通常情況下,將LC設(shè)為比輸入的混合語音的信噪比小5 dB,這樣可以將盡可能多的語音信息保留下來。
在本文中,說話人為兩個分別是spk1和spk2,故將掩蔽值的計算定義為下式
式中:spec(spk1) 和spec(spk2) 分別為兩個說話人的對數(shù)功率譜特征,用對功率譜的幅度值來得到聽覺掩蔽值,得到掩蔽值矩陣。
假設(shè)有2個說話人的語音場景,兩個說話人的語音信號分別為X1、X2,那么混合語音為
Y(t)=X1(t)+X2(t)
那么相應(yīng)的信號的短時傅里葉變換為
Y(t,f)=X1(t,f)+X2(t,f)
當給定輸入Y之后,可以通過以上模型得出預(yù)測掩蔽值Mp(spk1) 和Mp(spk2), 就可以得到預(yù)測的分離語音時頻特征
Xp1(t,f)=Y(t,f)°Mp(spk1)
Xp2(t,f)=Y(t,f)°Mp(spk2)
進而通過ISTFT變換得到預(yù)測的分離語音時域信號。
實驗數(shù)據(jù)采用中文普通話語音數(shù)據(jù)集,全稱為Free ST Chinese Mandarin Corpus[12],訓練集為100個說話人,其中包含50個男性說話人和50個女性說話人,每人10條語句,測試集分別為同性說話人混合語音20條和異性說話人混合語音20條。
為了實驗在干擾不同情況下的語音分離任務(wù),在構(gòu)造訓練集、驗證集和測試集時隨機將不同說話人的語音分別以信噪比SNR=-6 dB、0 dB、6 dB隨機混合來形成訓練集、驗證集以及測試集,目的是用來模擬說話人語音之間不同的影響程度的語音環(huán)境。將兩個不同說話人的語音混合后的音頻信號當作混合音頻,以采樣頻率為8000 Hz對混合音頻采樣,每32 ms分為一幀,幀移為8 ms,加漢寧窗,通過短時傅里葉變換(STFT)來得到混合語音的對數(shù)功率譜特征,該特征包含129維。
在訓練階段,作為對比的BLSTM網(wǎng)絡(luò)為4層,每層300個隱藏節(jié)點數(shù),層與層之間連接dropout層,比率為0.2,學習率設(shè)置為0.001,該方法稱為dpcl。為比較TCN網(wǎng)絡(luò)層數(shù)對分離效果的影響,將6層TCN網(wǎng)絡(luò)也作為對比參考,其輸入輸出層節(jié)點為129,隱藏層節(jié)點數(shù)為512,卷積核大小為2,膨脹系數(shù)一次為1,2,4,8,16,該方法稱為TCNdpcl-6。隨后如圖1所示,采用8層TCN網(wǎng)絡(luò),輸入層和輸出層為129個節(jié)點,其余隱藏層為512個節(jié)點,卷積核大小為2,膨脹系數(shù)依次為1,2,4,8,16,32,64,層與層之間的激活函數(shù)為ReLU,每次輸入連續(xù)100幀的混合語音對數(shù)功率譜特征,該方法稱為TCNdpcl-8。
本文對于語音分離效果的評價指標為感知語音質(zhì)量(perceptual evaluation of speech quality,PESQ)和短時客觀可懂度(short time objective intelligibility,STOI)。其中PESQ指標介于-0.5至4.5之間,對應(yīng)相應(yīng)主觀評測得分MOS(mean opinion score),得分越高代表語音質(zhì)量越好;STOI指標介于0至1之間,得分越高代表語音的可懂度越好。
實驗結(jié)果見表1、表2。
表1 不同方法的PESQ平均值
表2 不同方法的STOI平均值
表1和表2分別列出了dpcl語音分離方法和本文所用的TCNdpcl方法在同性說話人混合語音、異性說話人混合語音還有綜合性別說話人混合語音這3種情況下得到的分離語音平均PESQ值和平均STOI值。在以上3種情況下TCNdpcl-8方法得出的分離語音平均PESQ值和平均STOI值都要明顯好于dpcl方法和TCNdpcl-6方法,這表明8層TCN網(wǎng)絡(luò)在對語音序列進行高維映射的時候要優(yōu)于BLSTM網(wǎng)絡(luò),并且對于TCN網(wǎng)絡(luò)更多的層數(shù)會得到更好的分離效果。
對比6層TCN網(wǎng)絡(luò)和8層TCN網(wǎng)絡(luò)的語音分離效果,TCNdpcl-8方法在同性說話人、異性說話人和綜合情況下分離出的語音平均PESQ值和平均STOI值都明顯高于 TCNdpcl-6 方法,由于輸入為100幀的語音時頻特征,而6層 TCN網(wǎng)絡(luò)的設(shè)置只能使輸出節(jié)點包含其之前31個輸入幀的時頻特征信息,而8層TCN網(wǎng)絡(luò)的每個輸出點可以包含當前語音幀以及全部之前語音幀的信息,這說明包含更多的當前輸出單元之前的輸入語音幀的時頻信息從而獲得更大的感受野可以得到更好的分離結(jié)果,在高維嵌入空間中,包含更多的信息可以讓特征相近的點更近,反之則更遠,因此TCN網(wǎng)絡(luò)層數(shù)的增加是有必要的。
對比訓練時間、參數(shù)和穩(wěn)定性,TCN網(wǎng)絡(luò)具有更少的參數(shù)和更快的訓練運行速度,且占用更小的訓練內(nèi)存,不會發(fā)生梯度爆炸或者梯度消失問題。因此本文提出的基于時間卷積網(wǎng)絡(luò)的深度聚類語音分離方法在提高分離后的語音質(zhì)量和客觀可懂度的同時還具有訓練時間少、運算速度快和訓練梯度穩(wěn)定的優(yōu)勢。
對比同性說話人和異性說話人的語音分離效果可以看出,由于同性說話人的語調(diào)和音色都更相近,因此他們的語音時頻特征也會更相近,即使在高維特征空間上還是比異性說話人更相近,所以在聚類時得到的兩個簇都不是完全包含屬于一個說話人的信息,因此在每個方法下,同性說話人的語音分離效果要比異性說話人的語音分離效果差很多,平均PESQ值和STOI值都不理想,由此可見分離兩個同性說話人的混合語音還存在很大提升空間,還需要進一步找出更合適的模型來完成此任務(wù)。
本文參考基于深度聚類的說話人語音分離方法,采用TCN網(wǎng)絡(luò)對輸入混合語音的STFT特征進行高維映射,然后通過Kmeans聚類算法將高維向量聚類得到掩蔽值,通過掩蔽值與輸入信號來估計源信號。實驗結(jié)果表明本文提出的基于TCN網(wǎng)絡(luò)的深度聚類語音分離方法分離出的語音在語音質(zhì)量和客觀可懂度兩個指標上都要好于基于BLSTM的深度聚類方法,并且還具有參數(shù)少、運算快、訓練梯度穩(wěn)定的優(yōu)勢。本文還通過實驗發(fā)現(xiàn)了輸出包含全部輸入節(jié)點信息的8層TCN網(wǎng)絡(luò)的分離效果要好于輸出不包含全部輸入信息的6層TCN網(wǎng)絡(luò)的分離效果,這表明對于處理語音這類的時間序列特征,包含更多過去時間點信息對于語音的建模更有成效,進一步提高了語音分離效果。在接下來的研究中,將更關(guān)注同性說話人的語音分離問題,根據(jù)聲學機理和人類的聽覺機理,結(jié)合深度學習方法設(shè)計出更好的語音分離模型來更好地解決這一難題。