聲網AI降噪測評系統初探

語言: CN / TW / HK

圖片

作者:孟賽斯

前言

音訊質量的優化是一個複雜的系統工程,而降噪是這個系統工程中的一個重要環節,傳統的降噪技術經過幾十年的發展已經陷入了瓶頸期,尤其是對非平穩噪聲的抑制越來越不能滿足新場景的需求。而近幾年以機器學習/深度學習為代表的AI技術的崛起,為特殊場景下的音訊降噪帶來了新的解決方案。聲網Agora 伴隨著線上音視訊直播服務的發展逐漸形成了自己的積澱,本文是聲網Agora 音訊技術團隊出品的特殊場景下的音訊測評系列文章──AI降噪篇。由於業界對於音訊的評價標準尚存在不同的意見,因此聲網Agora 的實踐更偏重從有參到無參的工程化落地,在此拋磚引玉、懇請業界同仁多加批評指正。

背景介紹

作為開發者,我們希望為使用者提供高清晰度和流暢度、高保真音質的實時互動體驗,但由於噪聲無時無刻的存在,使得人們在通話中受到干擾。不同場合擁有的噪聲也是不同的,噪聲可以是平穩的也可以是非平穩或者瞬態的,平穩的噪聲是不隨時間的變化而變化,比如白噪聲;非平穩的噪聲隨著時間的變化而變化,比如人說話聲、馬路噪聲等等,瞬態噪聲可以歸為非平穩噪聲,它是持續時間較短的、間歇性噪聲,比如敲鍵盤聲、敲桌子、關門等等。在實際互動場景中,當雙方使用移動裝置通話時,一方處於飯店、吵鬧的街道、地鐵或者機場等嘈雜的環境中,另一方就會接收到大量含有噪聲的語音訊號,當噪聲過大時,通話雙方無法聽清楚對方講話內容,容易產生煩躁的負面情緒,影響終端使用者體驗。因此,為了減小噪聲對語音訊號的干擾,提高使用者通話的愉悅程度,我們往往會做Noise suppression(NS,噪聲抑制)處理,目的是從帶噪語音訊號中濾除掉噪聲訊號,最大程度的保留語音訊號,使得通話雙方聽到的語音都不受噪聲的干擾,一個理想的NS技術是要在去除噪聲的同時保留語音的清晰度、可懂度和舒適度。

降噪的研究最早開始於上個世紀60年代,經過了幾十年的發展,已經取得了巨大的進步,我們把降噪演算法大致的分為以下幾類。

(1)子空間方法,其基本思想是將含噪語音訊號對映到訊號子空間和噪聲子空間,純淨語音訊號可以通過消除噪聲子空間成分和保留訊號子空間成分的方式進行估計;

(2)短時譜減法,該方法假設噪聲訊號是平穩的且變化緩慢,使用帶噪訊號的頻譜減去估計出的噪聲訊號的頻譜,從而得到降噪後的語音訊號;(3)維納濾波器,演算法的基本原理是根據最小均方誤差準則,用維納濾波器估計語音訊號,然後從帶噪訊號中提取出語音訊號;

(4)基於聽覺掩蔽效應的方法,該方法模擬人耳的感知特性,對某一時刻某一頻率確定一個人耳可感受到噪聲能量的最低閾值進行計算,通過將噪聲能量控制在該閾值以下,從而達到最大限度的掩蔽殘留噪聲和防止語音失真的目的;

(5)基於噪聲估計的方法,該方法一般是基於噪聲和語音特性的不同,通過VAD(Voice Activity Detection,語音端點檢測)或語音存在概率對噪聲成分和語音成分進行區分,但當噪聲與語音特性類似時,此演算法往往不能準確區分含噪語音中語音和噪聲的成分;

(6)AI降噪, AI降噪技術能一定程度上解決傳統降噪技術存在的問題,比如在一些瞬態噪聲(持續時間短、能量高的噪聲,如關門聲,敲擊聲等等)和一些非平穩噪聲(隨時間變化快,隨機波動不可預測,如吵鬧的街道)的處理上,AI降噪的優勢更明顯。

無論是傳統NS技術還是AI NS技術,我們在產品上線時都需要考慮包體積和算力影響,以便運用於移動端和loT裝置,即要在保證模型是輕量級的基礎上還要最大程度地保證NS效能,這也是實際產品上線最具挑戰的地方之一,其中,模型的量級在上線後已經可以得到保證,那麼NS的效能是否能夠達標呢?這裡我們把重點放在如何評估NS的效能上,針對NS的調參、NS的重構、新NS演算法的提出、不同NS效能的對比,我們如何站在使用者體驗角度去評估NS技術的效能呢?

首先,我們把測評NS的方法分類為主觀測試方法和客觀測試方法,其中客觀測試又分為侵入式(Intrusive)和非侵入式(Non-intrusive),或者叫做有參的和無參的,下面解釋一下其含義和優缺點。

方式 含義 優缺點
主觀測試 主觀評價方法以人為主體在某種預設原則的基礎上對語音的質量作出主觀的等級意見或者作出某種比較結果,它反映聽評者對語音質量好壞的主觀印象。一般的,採用絕對等級評價(Absolute Category Rating, ACR),主要是通過平均意見分(MOS)對音質進行主觀評價。這種情況下沒有參考語音,聽音人只聽失真語音,然後對該語音作出1~5分的評價。 優點:直接反映使用者體驗;缺點:人力成本高,測試周期長,可重複性差,受個體主觀差異影響。
客觀測試 Intrusive:依靠參考語音和測試語音之間某種形式的距離特徵來預測主觀平均得分(MOS)分。如大部分文獻及Paper中測評自身NS演算法都是利用PESQ、信噪比、分段信噪比、板倉距離等等。 優點:可批量自動化測試,節約人力成本和時間成本;缺點:(1)不能完全等同於使用者主觀體驗;(2)大部分客觀指標只支援16k取樣率;(3)要求參考訊號與測試訊號之間必須按幀對齊,而實時RTC音訊難免受到網路的影響而導致資料無法按幀對齊,直接影響客觀指標的準確性。
Non-intrusive:僅依據測試語音本身來預測語音的質量。 優點:無需原始參考訊號直接預測語音質量,可實時測評RTC音訊質量缺點:技術要求高,模型建立有一定的難度

我們認為主觀測試可以直接反映使用者體驗,而主觀測試結果和客觀測試結果一致,則可以證明客觀測試的正確性,此時,客觀測試也可反映使用者體驗。下面我們看看聲網是如何評估NS的效能的。

聲網NS測評

我們正在搭建一套全方位的、可靠的、可長期依賴的NS測評系統,我們相信它可以應對未來任何帶噪場景(目前可覆蓋超過70種噪聲型別)和任何NS技術,並且我們不指定特定的測試語料、取樣率和有效頻譜,任何人的說話內容都可以作為被測物件。以這個目的作為出發點,我們對現有的NS測評技術進行了驗證,發現它們並不能夠覆蓋我們的所有通話場景、也不能完全覆蓋我們測試的噪聲型別、更不能代表主觀感受。因此,我們擬合了新的全參考NS指標,同時用深度學習的演算法去做無參考的模型,兩種方案同時進行。下面簡單闡述一下現有的NS測評指標、我們的驗證方法、以及我們如何去做全參考和無參考的NS測評模型。

1.現有的NS測評指標:通過調研大量文獻、權威性Paper和一些開源網站如https://github.com/schmiph2/pysepm,並根據我們實際的場景需求,我們開發了一個用於測評NS的客觀指標庫,其中包含像常見的PESQ、語音分段信噪比SegSNR、短時可懂度STOI等,以及參考語音和測試語音之間某種形式的距離特徵,如倒譜距離(Cepstrum Distance, CD)能反映非線形失真對音質的影響、對數譜距離(Log Spectral Distance,LSD)用於刻畫兩個頻譜之間的距離度量、NCM (Normalized Covariance Measure)評價方法是計算純淨語音訊號與含噪語音在頻域內的包絡訊號之間的協方差。綜合測度Csig、Cbak、Covl分別表示predicted rating [1-5] of speech distortion、predicted rating [1-5] of noise distortion、predicted rating [1-5] of overall quality,是通過結合多個客觀測度值形成綜合測度,使用綜合測度的原因是,不同的客觀測度捕捉失真訊號的不同特徵,因此採用線性或者非線形的方式組合這些測度值可能顯著改善相關性。

每個指標對應著NS前後音訊的某些特徵的變化,每個指標從不同的角度去衡量NS的效能。我們不禁有個疑問?這些指標是不是能與主觀感受畫上等號?除了演算法上有合理性,我們怎麼確保它跟主觀的一致?是不是這些客觀指標沒問題了,主觀測出來就不會有問題?我們怎麼確保這些指標的覆蓋性?

圖片

2.我們的驗證方法:為了驗證我們建立的客觀指標庫的準確性及與主觀體驗的相關性,我們做了基於眾包的主觀音訊測試,並開發了一款專門用於眾包主觀標註的APP,整個流程我們遵循了P808,P835以及借鑑NS挑戰賽,對測試資料、時長、環境、裝置、測試人員等等都做出了要求。我們主要關注三個維度,人聲清晰度SMOS,噪聲舒適度NMOS,整體質量GMOS,範圍都是1~5分,下面給出對應的MOS評分相關描述和APP頁面設計。

圖片圖片

那麼主觀標註的結果與之前我們提到的客觀指標庫中的指標之間有多大的相關性呢?我們對客觀指標庫中所有客觀指標進行了統計,這裡我們只給出PESQ與主觀標註的PLCC(Pearson linear correlation coefficient):

PLCC PESQ
主觀SMOS 0.68
主觀NMOS 0.81
主觀GMOS 0.79

這裡的主觀SMOS、NMOS、GMOS是由200條資料/每條資料32人標註的均值計算得出。

3.如何去做全參考和無參考的NS測評模型:隨著主觀標註資料量的累積,我們發現現有的指標精度不足以覆蓋我們的所有場景、噪聲型別、更不能代表主觀感受。因此我們擬合了新的綜合測度MOS分,用於測評NS的效能。

我們的方案一是全參考模型,即以客觀指標庫中的指標作為特徵輸入,眾包標註的結果當作標籤訓練三個模型,三個模型的輸出分別是衡量語音、噪聲、整體的分值。

圖片

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

圖片

我們的方案二是無參考模型,由於全參考的客觀指標要求參考訊號與測試訊號之間必須按幀對齊,而實時RTC音訊難免受到網路的影響而導致資料不按幀對齊,直接影響客觀指標的準確性。為了避免這一因素的影響,我們也在做無參的SQA(Speech Quality Assessment)模型,目前的技術核心是將音訊轉換為Mel頻譜圖,然後對Mel頻譜圖進行切割,利用CNN去提取每個切割後segment的質量特徵,接著利用self-attention對特徵序列在時間上建模,實現特徵序列在時間上的互動,最後通過attention模型計算每個segment對整個MOS分的貢獻度,從而對映到最終的MOS。

這裡我們給出無參SQA模型目前的訓練精度,訓練集共1200條帶噪聲資料,70%做訓練集,30%做測試集,橫座標表示epoch,藍色的線表示訓練loss隨著epoch的變化,紅色的線表示訓練集隨著epoch的增大,和訓練集標籤的PLCC,綠色的線表示測試集隨著epoch的增大,和測試集標籤的PLCC,我們可以看出目前離線的效果是很理想的,後續我們將增加更多場景的資料進行模型訓練。

圖片

未來

未來,我們會直接進行端到端的音訊質量評估(Audio Quality Assessment,AQA),而噪聲只是音訊中影響主觀體驗的一個因子。我們會在線上搭建一套完整的實時音訊評價系統,這個評價系統將是長期可靠的、高精度的,用於評價使用者在實時音訊互動中產生的厭惡或愉悅情緒的程度。整個流程包括建立方案、資料集的構建、眾包標註(標註標準的建立、標註後資料的清洗與篩選、資料分佈驗證)、模型訓練與優化和上線反饋等等。雖然現在我們面臨著一些挑戰,但只要制定出smart目標,那麼這個目標就一定能實現。

Dev for Dev專欄介紹

Dev for Dev(Developer for Developer)是聲網Agora 與 RTC 開發者社群共同發起的開發者互動創新實踐活動。透過工程師視角的技術分享、交流碰撞、專案共建等多種形式,匯聚開發者的力量,挖掘和傳遞最具價值的技術內容和專案,全面釋放技術的創造力。