聲網(wǎng)AI降噪測評系統(tǒng)初探

?作者:孟賽斯
前言
音頻質(zhì)量的優(yōu)化是一個(gè)復(fù)雜的系統(tǒng)工程,而降噪是這個(gè)系統(tǒng)工程中的一個(gè)重要環(huán)節(jié),傳統(tǒng)的降噪技術(shù)經(jīng)過幾十年的發(fā)展已經(jīng)陷入了瓶頸期,尤其是對非平穩(wěn)噪聲的抑制越來越不能滿足新場景的需求。而近幾年以機(jī)器學(xué)習(xí)/深度學(xué)習(xí)為代表的AI技術(shù)的崛起,為特殊場景下的音頻降噪帶來了新的解決方案。
聲網(wǎng)Agora 伴隨著在線音視頻直播服務(wù)的發(fā)展逐漸形成了自己的積淀,本文是聲網(wǎng)Agora 音頻技術(shù)團(tuán)隊(duì)出品的特殊場景下的音頻測評系列文章──AI降噪篇。由于業(yè)界對于音頻的評價(jià)標(biāo)準(zhǔn)尚存在不同的意見,因此聲網(wǎng)Agora 的實(shí)踐更偏重從有參到無參的工程化落地,在此拋磚引玉、懇請業(yè)界同仁多加批評指正。
背景介紹
作為開發(fā)者,我們希望為用戶提供高清晰度和流暢度、高保真音質(zhì)的實(shí)時(shí)互動體驗(yàn),但由于噪聲無時(shí)無刻的存在,使得人們在通話中受到干擾。不同場合擁有的噪聲也是不同的,噪聲可以是平穩(wěn)的也可以是非平穩(wěn)或者瞬態(tài)的,平穩(wěn)的噪聲是不隨時(shí)間的變化而變化,比如白噪聲;非平穩(wěn)的噪聲隨著時(shí)間的變化而變化,比如人說話聲、馬路噪聲等等,瞬態(tài)噪聲可以歸為非平穩(wěn)噪聲,它是持續(xù)時(shí)間較短的、間歇性噪聲,比如敲鍵盤聲、敲桌子、關(guān)門等等。
在實(shí)際互動場景中,當(dāng)雙方使用移動設(shè)備通話時(shí),一方處于飯店、吵鬧的街道、地鐵或者機(jī)場等嘈雜的環(huán)境中,另一方就會接收到大量含有噪聲的語音信號,當(dāng)噪聲過大時(shí),通話雙方無法聽清楚對方講話內(nèi)容,容易產(chǎn)生煩躁的負(fù)面情緒,影響最終用戶體驗(yàn)。
因此,為了減小噪聲對語音信號的干擾,提高用戶通話的愉悅程度,我們往往會做Noise suppression(NS,噪聲抑制)處理,目的是從帶噪語音信號中濾除掉噪聲信號,最大程度的保留語音信號,使得通話雙方聽到的語音都不受噪聲的干擾,一個(gè)理想的NS技術(shù)是要在去除噪聲的同時(shí)保留語音的清晰度、可懂度和舒適度。
降噪的研究最早開始于上個(gè)世紀(jì)60年代,經(jīng)過了幾十年的發(fā)展,已經(jīng)取得了巨大的進(jìn)步,我們把降噪算法大致的分為以下幾類。
(1)子空間方法,其基本思想是將含噪語音信號映射到信號子空間和噪聲子空間,純凈語音信號可以通過消除噪聲子空間成分和保留信號子空間成分的方式進(jìn)行估計(jì);
(2)短時(shí)譜減法,該方法假設(shè)噪聲信號是平穩(wěn)的且變化緩慢,使用帶噪信號的頻譜減去估計(jì)出的噪聲信號的頻譜,從而得到降噪后的語音信號;(3)維納濾波器,算法的基本原理是根據(jù)最小均方誤差準(zhǔn)則,用維納濾波器估計(jì)語音信號,然后從帶噪信號中提取出語音信號;
(4)基于聽覺掩蔽效應(yīng)的方法,該方法模擬人耳的感知特性,對某一時(shí)刻某一頻率確定一個(gè)人耳可感受到噪聲能量的最低閾值進(jìn)行計(jì)算,通過將噪聲能量控制在該閾值以下,從而達(dá)到最大限度的掩蔽殘留噪聲和防止語音失真的目的;
(5)基于噪聲估計(jì)的方法,該方法一般是基于噪聲和語音特性的不同,通過VAD(Voice Activity Detection,語音端點(diǎn)檢測)或語音存在概率對噪聲成分和語音成分進(jìn)行區(qū)分,但當(dāng)噪聲與語音特性類似時(shí),此算法往往不能準(zhǔn)確區(qū)分含噪語音中語音和噪聲的成分;
(6)AI降噪, AI降噪技術(shù)能一定程度上解決傳統(tǒng)降噪技術(shù)存在的問題,比如在一些瞬態(tài)噪聲(持續(xù)時(shí)間短、能量高的噪聲,如關(guān)門聲,敲擊聲等等)和一些非平穩(wěn)噪聲(隨時(shí)間變化快,隨機(jī)波動不可預(yù)測,如吵鬧的街道)的處理上,AI降噪的優(yōu)勢更明顯。
無論是傳統(tǒng)NS技術(shù)還是AI NS技術(shù),我們在產(chǎn)品上線時(shí)都需要考慮包體積和算力影響,以便運(yùn)用于移動端和loT設(shè)備,即要在保證模型是輕量級的基礎(chǔ)上還要最大程度地保證NS性能,這也是實(shí)際產(chǎn)品上線最具挑戰(zhàn)的地方之一,其中,模型的量級在上線后已經(jīng)可以得到保證,那么NS的性能是否能夠達(dá)標(biāo)呢?這里我們把重點(diǎn)放在如何評估NS的性能上,針對NS的調(diào)參、NS的重構(gòu)、新NS算法的提出、不同NS性能的對比,我們?nèi)绾握驹谟脩趔w驗(yàn)角度去評估NS技術(shù)的性能呢?
首先,我們把測評NS的方法分類為主觀測試方法和客觀測試方法,其中客觀測試又分為侵入式(Intrusive)和非侵入式(Non-intrusive),或者叫做有參的和無參的,下面解釋一下其含義和優(yōu)缺點(diǎn)。

我們認(rèn)為主觀測試可以直接反映用戶體驗(yàn),而主觀測試結(jié)果和客觀測試結(jié)果一致,則可以證明客觀測試的正確性,此時(shí),客觀測試也可反映用戶體驗(yàn)。下面我們看看聲網(wǎng)是如何評估NS的性能的。
聲網(wǎng)NS測評
我們正在搭建一套全方位的、可靠的、可長期依賴的NS測評系統(tǒng),我們相信它可以應(yīng)對未來任何帶噪場景(目前可覆蓋超過70種噪聲類型)和任何NS技術(shù),并且我們不指定特定的測試語料、采樣率和有效頻譜,任何人的說話內(nèi)容都可以作為被測對象。
以這個(gè)目的作為出發(fā)點(diǎn),我們對現(xiàn)有的NS測評技術(shù)進(jìn)行了驗(yàn)證,發(fā)現(xiàn)它們并不能夠覆蓋我們的所有通話場景、也不能完全覆蓋我們測試的噪聲類型、更不能代表主觀感受。因此,我們擬合了新的全參考NS指標(biāo),同時(shí)用深度學(xué)習(xí)的算法去做無參考的模型,兩種方案同時(shí)進(jìn)行。
下面簡單闡述一下現(xiàn)有的NS測評指標(biāo)、我們的驗(yàn)證方法、以及我們?nèi)绾稳プ鋈珔⒖己蜔o參考的NS測評模型。
1.現(xiàn)有的NS測評指標(biāo):
通過調(diào)研大量文獻(xiàn)、權(quán)威性Paper和一些開源網(wǎng)站如https://github.com/schmiph2/pysepm,并根據(jù)我們實(shí)際的場景需求,我們開發(fā)了一個(gè)用于測評NS的客觀指標(biāo)庫,其中包含像常見的PESQ、語音分段信噪比SegSNR、短時(shí)可懂度STOI等,以及參考語音和測試語音之間某種形式的距離特征,如倒譜距離(Cepstrum Distance, CD)能反映非線形失真對音質(zhì)的影響、對數(shù)譜距離(Log Spectral Distance,LSD)用于刻畫兩個(gè)頻譜之間的距離度量、NCM?(Normalized Covariance Measure)評價(jià)方法是計(jì)算純凈語音信號與含噪語音在頻域內(nèi)的包絡(luò)信號之間的協(xié)方差。綜合測度Csig、Cbak、Covl分別表示predicted rating [1-5] of speech distortion、predicted rating [1-5] of noise distortion、predicted rating [1-5] of overall quality,是通過結(jié)合多個(gè)客觀測度值形成綜合測度,使用綜合測度的原因是,不同的客觀測度捕捉失真信號的不同特征,因此采用線性或者非線形的方式組合這些測度值可能顯著改善相關(guān)性。
每個(gè)指標(biāo)對應(yīng)著NS前后音頻的某些特征的變化,每個(gè)指標(biāo)從不同的角度去衡量NS的性能。我們不禁有個(gè)疑問?這些指標(biāo)是不是能與主觀感受畫上等號?除了算法上有合理性,我們怎么確保它跟主觀的一致?是不是這些客觀指標(biāo)沒問題了,主觀測出來就不會有問題?我們怎么確保這些指標(biāo)的覆蓋性?

2.我們的驗(yàn)證方法:
為了驗(yàn)證我們建立的客觀指標(biāo)庫的準(zhǔn)確性及與主觀體驗(yàn)的相關(guān)性,我們做了基于眾包的主觀音頻測試,并開發(fā)了一款專門用于眾包主觀標(biāo)注的APP,整個(gè)流程我們遵循了P808,P835以及借鑒NS挑戰(zhàn)賽,對測試數(shù)據(jù)、時(shí)長、環(huán)境、設(shè)備、測試人員等等都做出了要求。我們主要關(guān)注三個(gè)維度,人聲清晰度SMOS,噪聲舒適度NMOS,整體質(zhì)量GMOS,范圍都是1~5分,下面給出對應(yīng)的MOS評分相關(guān)描述和APP頁面設(shè)計(jì)。


那么主觀標(biāo)注的結(jié)果與之前我們提到的客觀指標(biāo)庫中的指標(biāo)之間有多大的相關(guān)性呢?我們對客觀指標(biāo)庫中所有客觀指標(biāo)進(jìn)行了統(tǒng)計(jì),這里我們只給出PESQ與主觀標(biāo)注的PLCC(Pearson linear correlation coefficient):

這里的主觀SMOS、NMOS、GMOS是由200條數(shù)據(jù)/每條數(shù)據(jù)32人標(biāo)注的均值計(jì)算得出。
3.如何去做全參考和無參考的NS測評模型:
隨著主觀標(biāo)注數(shù)據(jù)量的累積,我們發(fā)現(xiàn)現(xiàn)有的指標(biāo)精度不足以覆蓋我們的所有場景、噪聲類型、更不能代表主觀感受。因此我們擬合了新的綜合測度MOS分,用于測評NS的性能。
我們的方案一是全參考模型,即以客觀指標(biāo)庫中的指標(biāo)作為特征輸入,眾包標(biāo)注的結(jié)果當(dāng)作標(biāo)簽訓(xùn)練三個(gè)模型,三個(gè)模型的輸出分別是衡量語音、噪聲、整體的分值。

以下是由800條數(shù)據(jù)組成的數(shù)據(jù)集,隨機(jī)抽取70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測試集;模型選取GBDT(Gradient Boosting Decision Tree)對GMOS的訓(xùn)練和測試情況,下圖上半部分是訓(xùn)練集的real GMOS和訓(xùn)練好模型后模型預(yù)測訓(xùn)練集的predicted GMOS,下半部分是測試集的real GMOS和訓(xùn)練好模型后模型預(yù)測測試集的predicted GMOS,其中測試集的real GMOS和predicted GMOS之間的PLCC可達(dá)0.945,SROCC(Spearman rank-order correlation coefficient)可達(dá)0.936,RMSE(Root Mean Square Error)為0.26.

我們的方案二是無參考模型,由于全參考的客觀指標(biāo)要求參考信號與測試信號之間必須按幀對齊,而實(shí)時(shí)RTC音頻難免受到網(wǎng)絡(luò)的影響而導(dǎo)致數(shù)據(jù)不按幀對齊,直接影響客觀指標(biāo)的準(zhǔn)確性。為了避免這一因素的影響,我們也在做無參的SQA(Speech?Quality Assessment)模型,目前的技術(shù)核心是將音頻轉(zhuǎn)換為Mel頻譜圖,然后對Mel頻譜圖進(jìn)行切割,利用CNN去提取每個(gè)切割后segment的質(zhì)量特征,接著利用self-attention對特征序列在時(shí)間上建模,實(shí)現(xiàn)特征序列在時(shí)間上的交互,最后通過attention模型計(jì)算每個(gè)segment對整個(gè)MOS分的貢獻(xiàn)度,從而映射到最終的MOS。
這里我們給出無參SQA模型目前的訓(xùn)練精度,訓(xùn)練集共1200條帶噪聲數(shù)據(jù),70%做訓(xùn)練集,30%做測試集,橫坐標(biāo)表示epoch,藍(lán)色的線表示訓(xùn)練loss隨著epoch的變化,紅色的線表示訓(xùn)練集隨著epoch的增大,和訓(xùn)練集標(biāo)簽的PLCC,綠色的線表示測試集隨著epoch的增大,和測試集標(biāo)簽的PLCC,我們可以看出目前離線的效果是很理想的,后續(xù)我們將增加更多場景的數(shù)據(jù)進(jìn)行模型訓(xùn)練。

未來
未來,我們會直接進(jìn)行端到端的音頻質(zhì)量評估(Audio Quality Assessment,AQA),而噪聲只是音頻中影響主觀體驗(yàn)的一個(gè)因子。我們會在線上搭建一套完整的實(shí)時(shí)音頻評價(jià)系統(tǒng),這個(gè)評價(jià)系統(tǒng)將是長期可靠的、高精度的,用于評價(jià)用戶在實(shí)時(shí)音頻互動中產(chǎn)生的厭惡或愉悅情緒的程度。整個(gè)流程包括建立方案、數(shù)據(jù)集的構(gòu)建、眾包標(biāo)注(標(biāo)注標(biāo)準(zhǔn)的建立、標(biāo)注后數(shù)據(jù)的清洗與篩選、數(shù)據(jù)分布驗(yàn)證)、模型訓(xùn)練與優(yōu)化和上線反饋等等。雖然現(xiàn)在我們面臨著一些挑戰(zhàn),但只要制定出smart目標(biāo),那么這個(gè)目標(biāo)就一定能實(shí)現(xiàn)。
Dev for Dev專欄介紹
Dev for Dev(Developer for Developer)是聲網(wǎng)Agora 與 RTC 開發(fā)者社區(qū)共同發(fā)起的開發(fā)者互動創(chuàng)新實(shí)踐活動。透過工程師視角的技術(shù)分享、交流碰撞、項(xiàng)目共建等多種形式,匯聚開發(fā)者的力量,挖掘和傳遞最具價(jià)值的技術(shù)內(nèi)容和項(xiàng)目,全面釋放技術(shù)的創(chuàng)造力。