打破傳統降噪算法,AliDenoise的背後技術

近年電商直播越來越火熱,同時移動端直播變得越來越普及,直播場景也越來越多樣化,不再限於傳統的直播間,開闊喧嚷的戶外、喧鬧的商場甚至是市場都可以變成主播直播的根據地。影響直播最終觀感最直接的兩個因素就是畫面和聲音,場景的複雜化對傳統的實時音頻信號處理算法提出了更大的挑戰,其中最直觀的一個現象就是,場景變吵了,聲音聽起來不乾淨,這就是音頻3A算法中的降噪算法需要處理的問題。

背景介紹

戶外旅行&戶外代購&玉石市場

傳統降噪算法可以部分處理這種噪聲,它的方法是:

  1. 對時域信號做短時傅里葉變換,就得到了信號的頻域表現形式,對幅度譜平方得到信號能量;
  2. 在計算了帶噪語音的幅度譜後,會藉助vad模塊的結果進行噪聲譜N的估計,由計算出的功率譜和估計出的噪聲譜來計算先驗信噪比;
  3. 再經過變換得到增益函數,一般取維納增益,將計算得到的增益函數乘以帶噪語音的頻域形式 再經過反變換,就得到了增強後的語音的時域信號。

不難看出,這是一個比較複雜的信號分離任務,傳統的信號處理方法通過一系列條件約束求得了最終的解析解或迭代解,一般假設噪聲信號和語音信號之間相互獨立,cosq爲0,但這通常是不合理的假設,也影響了算法效果的上限;

問題與挑戰

傳統降噪算法面臨的挑戰如下:

  1. 非平穩突發性噪聲抑制能力差,比如戶外直播場景中突然出現的汽車鳴笛聲,傳統降噪算法就難以消除乾淨
  2. 傳統算法增強後會有很多殘留噪聲,這些噪聲會導致主觀聽感差,甚至影響語音信息傳達的可懂度;
  3. 目前傳統算法中求得解析解的過程中存在很多假設,難以適應複雜多變的實際場景,特別是瞬態噪聲;
  4. 在低信噪比情況下,傳統方法的降噪效果幾乎是失效的,其中VAD模塊誤判的可能性大大增加,尤其在噪聲的能量大於語音的能量時,幾乎無法將語音譜恢復出來,而這對天然能量就比較低的輔音結構來說是毀滅性的

業界做法

針對傳統算法存在的弊端,業界在2014年開始探索數據驅動類算法,也就是深度學習相關的算法,比較典型的是RNN Noise和 CRNN方法。

RNN Noise是一種基於傳統算法改進的混合方法。整個算法爲了保證實時性,訓練特徵主要以傳統信號的特徵爲主,(涉及bark域的能量和pitch域的相關能量係數、pitch_index的值、帶噪語音bark域的能量和帶噪語音bark域倒譜相關的信息),一共42個,並沒有採用深度學習算法中主流的自動提取特徵機制,網絡結構以GRU爲主,同時有一個副產物VAD保證有效收斂,最終的輸出爲bark域的22個增益,經過插值平滑處理後與帶噪信號的頻域信號相乘,反變換後得到降噪後的時域語音信號。

這個算法的核心優勢是可實時,性能消耗低,降噪能力也有所增強,但語音損傷比較嚴重,經過分析,認爲原因主要有三個:

  1. 數據集問題,rnnoise的訓練數據集中噪聲質量是不高的,噪聲中含有較多人聲部分,這在一定程度上會導致語音損傷大的問題
  2. vad label製作的不準確性,簡單的採用一些能量判斷法當做vad模塊的groundtruth,也會影響最終效果
  3. feature只有42個,網絡輸出只有22個,這樣的設計在降低運算量的同時會損失部分詳細信息,是會影響最終的效果;

CRNN方法一個典型的end2end的解決方案,輸入是noisy的頻域幅度譜,輸出直接是降噪後的頻域幅度譜,然後結合noisy的相位譜,進行時域數據的合成。網絡模型採用了encoder+lstm+decoder的架構,無論是語音分離還是增強,這都是比較主流的一種網絡結構,同時爲了做到原理上可實時,卷積全部使用了因果卷積,CRNN在整段增強時效果是非常好的,增強後的主觀聽感也很好。

但存在的問題也比較大的問題:、

  1. 整段處理的輸入無法滿足流式處理的要求,在模型分幀後效果下降比較明顯;
  2. 即使採用cache buffer的策略保證分幀後的效果,由於模型的感受野較大,性能開銷也無法達到移動端實時的要求,同時,模型整段增強時本身消耗就比較大
  3. 中間存在lstm層,模型的輕量化比較困難;

AliDenoise

AliDenoise是綜合RNNNoise和CRNN的一種自研算法,首先爲了可實際部署,去除了中間的lstm層,此時如果訓練目標還是具有時序關係的降噪後頻譜,效果會大大受到影響,所以我們更改了降噪策略,進行反向降噪,改爲speech_based denoise method,只利用CNN較強的提取特徵能力,學習比較有特色的語譜紋路,將輸出抽象爲傳統信號處理中的先驗信噪比這一概念,本質上也是一種增益,這一轉化也有益於提升模型對未見噪聲的泛化能力,可以通過大量純淨語音的訓練反向應對未見過的噪聲達到降噪的目的,在保證可實時處理方面,首先更改了模型norm的方式,由layer norm變爲frame norm,從原理上保證可實時處理,同時客觀指標並沒有下降,還有輕微的提升;然後在工程實踐中,採用cache buffer策略,實現了CNN的流式處理,同時保證分幀後的效果,可以支持任意延時,這也是目前線上應用的版本。

網絡結構以1D卷積爲主,同時加入了res結構,在每一個blocks中實現了三個卷積單元,通過調整kernel size實現不同維度的特徵提取,將不同blocks連接起來,達到推進抽象特徵的深入過程,最終得出期望的時頻域上的先驗信噪比。除此之外,我還進行了去除seq_len,添加highpass,更改數據混合方式,調整訓練集中的噪聲分佈等改進項,從不同角度提升模型的訓練效果

爲了節省計算資源,我們採用了模型裁剪手段:

  1. 把neuron或weight剪掉,使得網絡變小。通過對網絡的分析會發現有些weight基本爲0,對輸出影響不大或有些neuron的output總是爲0,那這種情況下就可以把它移除。
  2. 使用更少的bit來表示權重
  3. 調整網絡的結構設計,減少參數量
  4. 模型可以自適應,在資源不充足的情況下,也可以輸出一個還不錯的結果;在資源充足時就做到最好

總結下來,傳統降噪算法只能處理穩態噪聲,非穩態突發噪聲處理能力弱,但數據驅動類的算法穩態噪聲及瞬時 非穩態噪聲均可處理。在性能消耗上,傳統算法是比較小的,數據驅動類算法會相對耗一些,爲此,我們設計了小模型使用簡單結構 以更好的發揮MNN的優化效果的策略爲主,在實用性上,傳統算法經驗參數多,場景適應性差,而數據驅動類算法,場景適應性是比較好。

算法效果

我們看一下算法效果,客觀指標主要通過PESQ語音質量與STOI語音可懂度來衡量,我們構建了ali_test_datasets,含有1w多條帶噪語音,涵蓋街道、咖啡館等日常環境,分爲四個子測試集,_itu表示數據集中的純淨語音爲itu標準測試序列,_objective表示數據集中的噪聲爲 訓練集中未見 但是同分布噪聲,相對應的就是數據集中的噪聲爲訓練集中未見且不同分佈的噪聲,環境噪聲強度爲-5到15db,最大降噪力度控制在-25db,我們和業界標杆的競品進行對比,最終可以看到在STOI可懂度方面的提升中ali_denoise和競品明顯優於傳統信號處理算法,而ali_denoise略高於競品,在PESQ語音質量方面的提升中, ali_denoise >競品>rtc,同時在性能消耗方面,ali_denoise可以支持iphone6及以上的機型,競品目前可以支持iphone8及以上的機型。

ali_denoise算法在算法應用落地上主要具有5大優勢:

第一 利用開源的中英文純淨語音數據集、噪聲集,自錄噪聲並進行數據清洗,同時針對淘寶直播場景構建突發瞬時噪聲數據集,構建了我們私有化數據集

第二 通過cache buffer策略,可實時輸出增強後的語音,契合直播場景,同時支持任意延時

第三 目前深度學習類的增強算法只支持16khz,ali_denoise支持48khz全頻帶語音增強處理,其中0-16k採用神經網絡處理,16-48k採用傳統算法+神經網絡混合方式處理

第四 爲了保證線上音視頻同步,獨立智能降噪模塊,和採集線程解耦,iphone6以上機型直播無異常;

第五 由於採用了小型化模型設計和裁剪工作,性能消耗較低;

受新冠疫情的影響,互聯網進入全民直播大時代,教育直播,旅遊直播,助農直播,電商直播,政務直播等空前興起。團隊研發的智能降噪技術應用到阿里集團內的多個場景。在助農直播中,我們的算法有效去除田間機械的噪聲,還原清晰語音;在釘釘在線課堂中,我們智能降噪結合盲源回聲消除,助力2億中小學生在家上課,提供高質量的聲音體驗;在電商直播中,我們的算法支撐了海外代購,戶外運動,樂器直播,音樂晚會等全場景語音處理需求。我們秉承“讓聲音更清晰,讓溝通更有效”的理念,追求更高質量的語音體驗。

未來展望

AI+實時音頻處理這個方向其實還有很多可以探索的,在前端處理算法中,除了我們已經優化的ANS算法外,AEC的非線性殘留部分也可以結合深度學習類算法進行優化,可以將參考信號和觀測信號的頻域特徵concat起來作爲輸入,觀測信號的類IRM指標作爲輸出,進而得到估計的近端信號;類似的任務還有嘯叫抑制及後端處理算法中的帶寬擴展、智能PLC等等

本文轉載自公衆號淘系技術(ID:AlibabaMTT)。

原文鏈接

打破傳統降噪算法,AliDenoise的背後技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章