天天看點

搜狗研究員講解基于深度學習的語音分離

基于深度學習的有監督語音分離在學術界和工業界越來越受到關注,也是深度學習在語音領域的應用中重要的一部分。作為雷鋒網AI研習社近期組織的一系列語音領域應用的分享會之一,本次我們請到了來自搜狗的研究員文仕學對語音分離方面主要的研究課題和相關方法做一些介紹。

文仕學,過去學實體,後來學EE,現在從事Deep Learning工作,未來投身AI和CM事業。他的研究興趣在于語音信号處理和深度學習。在加入搜狗之前,曾在中國科學技術大學學習,在該領域的期刊和會議上發表了若幹篇論文。現在在搜狗語音團隊任副研究員。

雷鋒網 AI 科技評論将本次分享的内容整理如下。

分享主題:基于深度學習的語音分離

文仕學首先介紹了“語音分離”(Speech Separation)是怎麼樣的一種任務。這個問題來自于“雞尾酒會問題”,采集的音頻信号中除了主說話人之外,還有其他人說話聲的幹擾和噪音幹擾。語音分離的目标就是從這些幹擾中分離出主說話人的語音。

根據幹擾的不同,語音分離任務可以分為三類:

當幹擾為噪聲信号時,可以稱為“語音增強”(Speech Enhancement)

當幹擾為其他說話人時,可以稱為“多說話人分離”(Speaker Separation)

當幹擾為目标說話人自己聲音的反射波時,可以稱為“解混響”(De-reverberation)

由于麥克風采集到的聲音中可能包括噪聲、其他人說話的聲音、混響等幹擾,不做語音分離、直接進行識别的話,會影響到識别的準确率。是以在語音識别的前端加上語音分離技術,把目标說話人的聲音和其它幹擾分開就可以提高語音識别系統的魯棒性,這進而也成為現代語音識别系統中不可或缺的一環。

基于深度學習的語音分離,主要是用基于深度學習的方法,從訓練資料中學習語音、說話人和噪音的特征,進而實作語音分離的目标。

這次分享的内容有以下這5個部分:分離使用的模型、訓練目标的設定、訓練資料的生成、單通道語音分離算法的介紹和讨論。

第一類模型是多層感覺機,DNN,可以先做RBM預訓練,再做微調(fine-tune);不過文仕學介紹,他們團隊通過實驗發現,在大資料集上不需要預訓練也可以收斂。

LSTM(長短時記憶網絡)的方法中把語音作為一個随時間變化的序列進行模組化,比較适合語音資料;CNN(卷積神經網絡)通過共享權值,可以在減少訓練參數的同時獲得比全連接配接的DNN更好的性能。

近些年也有人用GAN(對抗性生成式網絡)做語音增強。模型中通常會把生成器設定為全部是卷積層,為了減少訓練參數進而縮短訓練時間;判别器負責向生成器提供生成資料的真僞資訊,幫助生成器向着“生成幹淨聲音”的方向微調。

訓練目标包括兩類,一類是基于Mask的方法,另一類是基于頻譜映射的方法。

基于Mask的方法又可以分為幾類

“理想二值掩蔽”(Ideal Binary Mask)中的分離任務就成為了一個二分類問題。這類方法根據聽覺感覺特性,把音頻信号分成不同的子帶,根據每個時頻單元上的信噪比,把對應的時頻單元的能量設為0(噪音占主導的情況下)或者保持原樣(目智語音占主導的情況下)。

第二類基于Mask的方法是IRM(Ideal Ratio Mask),它同樣對每個時頻單元進行計算,但不同于IBM的“非零即一”,IRM中會計算語音信号和噪音之間的能量比,得到介于0到1之間的一個數,然後據此改變時頻單元的能量大小。IRM是對IBM的演進,反映了各個時頻單元上對噪聲的抑制程度,可以進一步提高分離後語音的品質和可懂度。

TBM與IRM類似,但不是對每個時頻單元計算其中語音和噪聲的信噪比,而是計算其中語音和一個固定噪聲的信噪比

SMM是IRM在幅度上的一種形式

PSM中加入了幹淨語音和帶噪語音中的相位差資訊,有更高的自由度

雖然基于Mask的方法有這麼多,但最常用的還是開頭的IBM和IRM兩種

如果使用頻譜映射,分離問題就成為了一個回歸問題。

頻譜映射可以使用幅度譜、功率譜、梅爾譜以及Gammatone功率譜。Gammatone是模拟人耳耳蝸濾波後的特征。為了壓縮參數的動态範圍以及考慮人耳的聽覺效應,通常還會加上對數操作,比如對數功率譜。

基于頻譜映射的方法,是讓模型通過有監督學習,自己學習有幹擾的頻譜到無幹擾的頻譜(幹淨語音)之間的映射關系;模型可以是DNN、CNN、LSTM甚至GAN。

這一頁是使用相同的DNN模型、相同的輸入特征、不同的訓練目标得到的結果。

左邊的STOI指語音的可懂度,得分在0到1之間,越高越好;右邊的PESQ是語音的聽覺品質、聽感,範圍為-0.5到4.5,也是越高越好。

基于Mask的方法STOI表現較好,原因是有共振峰的能量得到了較好的保留,而相鄰共振峰之間波谷處的聲音雖然失真較大,但人耳對這類失真并不敏感;兩類方法在PESQ中表現相當。

針對語音分離中的語音增強任務,首先可以通過人為加噪的方法生成帶噪語音和幹淨語音對,分别作為輸入和輸出(有标注資料),對有監督學習模型進行訓練。加入的噪聲可以是各種收集到的真實世界中的噪聲。

不過收集噪聲需要成本,而且人工能夠收集到的噪音總是有限的,最好能夠有一套完備、合理的方案,用仿真的方式生成任意需要的噪聲。 在今年的MLSP(信号處理機器學習)會議上,搜狗語音團隊就發表了一項關于噪聲基的工作,通過構造一個噪聲基模型,在不使用任何真實噪音資料的情況下,生成帶噪語音對語音增強模型進行訓練,達到了與使用50種真實噪音的情況下相當的性能(下圖)。

如果将這50種真實噪聲和噪聲基産生的資料混合在一起,性能可以比單獨使用真實噪音的情況得到進一步提高。這也說明噪聲基生成的噪聲和真實噪聲資料之間有着互補性,在實際應用中也可以解開一些真實噪聲資料不足帶來的限制。

如開頭所說,語音分離任務可以分為三類,語音增強、多說話人分離和解混響。不同任務的處理方法也有所不同。

對于語音增強,基于Mask的方法首先進行耳蝸濾波,然後特征提取、時頻單元分類、二值掩蔽、後處理,就可以得到增強後的語音了。

語音增強的另一類基于頻譜映射的方法中,先特征提取,用深度神經網絡學習帶噪語音和幹淨語音的對數功率譜之間映射關系,再加上波形重建,就可以得到增強後的語音。

基于有監督學習的算法都存在推廣性(generalization)的問題,語音增強這裡也不例外。針對噪音類型、信噪比和說話人的推廣性都還有提升的空間。

對于解混響,同樣可以使用基于頻譜映射的方法。解混響中也需要生成訓練資料,但不同于帶噪語音生成時做時域的相加,帶混響的語音是在時域上進行卷積;同樣都把幹淨語音作為帶标注資料。

在基于頻譜映射的方法基礎上還可以加以改進。對于不同的混響時間,深度神經網絡需要學習的時間視窗長度是不一樣的,因而改進方法中加入了告知混響時間的功能,根據幀移R和擴幀數目N提特征後解碼,可以獲得更好的解混響效果。

多說話人分離分為三種情況

目标說話人和幹擾說話人都固定,Speaker dependent,有監督分離

目标說話人固定,訓練階段和測試階段的幹擾說話人可變,Target dependent,半監督分離

目标說話人和幹擾說話人都可變,Speaker independent,無監督分離

對于有監督和半監督分離,可以使用基于頻譜映射的方法,與前面使用基于頻譜映射的方法做語音增強類似。

對于無監督分類,有無監督聚類、深度聚類以及最近的序列不變訓練(PIT)方法。PIT方法的核心是紅框中标出的部分,在誤差回傳的時候,分别計算輸出序列和标注序列間各種組合的均方誤差,然後從這些均方誤差中找到最小的那個作為回傳誤差,也就是根據自動找到的聲源間的最佳比對進行優化,避免出現序列模糊的問題。

最後,文仕學給大家留了兩個思考題,歡迎大家在評論區給出自己的見解。

第一個問題是語音分離任務中,是按傳統思路先變換到頻域,然後在頻域上進行處理,還是直接在時域上處理比較好?後者的好處是端到端訓練,不用考慮頻域方法做傅立葉反變換時相位的問題。

第二個問題是對于語音增強任務,應該使用真實噪聲加噪還是使用人工仿真生成的噪聲進行降噪?

感謝文仕學此次的分享以及對文本的指正,也歡迎大家關注雷鋒網 AI 研習社未來的更多分享活動!

本文作者:楊曉凡

繼續閱讀