如何將RTC中基於AI的音頻算法有效的產品化

2020-11-28 騰訊網

正文字數:4854 閱讀時長:7分鐘

將AI算法任務模塊化是一種解決AI音頻處理算法應用效果不夠好、通用/擴展性差、計算開銷大等問題的有效方法。網易雲信 資深音頻算法工程師 郝一亞在LiveVideoStackCon 2020北京站的演講中就「模塊化」是怎樣解決上述問題的,「模塊化」工程實現的可行性等問題進行詳細解析,並舉例介紹了目前市場中的幾個「模塊化」的成功案例。

文 / 郝一亞

整理 / LiveVideoStack

大家好,我是郝一亞,來自網易雲信,目前主要負責網易雲信在RTC領域的音頻算法的研發。本次我想要分享的題目是如何將AI音頻算法應用、結合到RTC中,我會結合自己在國外的一些研究和開發的經驗,包括網易雲信在AI音頻算法應用實戰當中的一些經驗總結,和大家一起聊一聊如何將AI音頻算法與RTC有機結合。

01

RTC中AI音頻的現狀

TITTLES

首先,第一個問題是RTC中AI音頻到底是處於一個什麼階段?可能大家會接收到比較極端的兩種不同信息:第一種就是目前AI算法如Deep Learning等在各行業都開始廣泛應用,效果也比較好;另外一種就是大家在實際的工作當中,可能會感受到AI在某些情況下,比如說在訓練集和一些特定Case下的感覺還不錯,但很難落地、上線到實際的產品當中,存在著各種各樣的問題和困難。那麼首先我們來簡單分析下目前AI音頻到底是處於一個怎樣的階段。

1.1 音頻處理中AI的力量

先來介紹一些好的方面,例如結合CNN的降噪,最早是因為AI在Computer vision領域成功的應用,我們就可以把這種語譜圖(如圖所示)作為一個圖像的概念。這樣的方式為CNN和降噪模塊的有機結合提供了一個契機。

圖中展示的就是一個CNN的降噪,我們可以看到,如左上角圖所示,右邊是傳統的降噪方法,Noisy Speech相對於原始信號,它的信噪比已經很低了。而左邊是一個MMSE的算法,相比於傳統方法是有一定提升的,特別是非語音段。但我們可以從中看到特別是高頻的部分,還是存在很多的殘留。從橫向對比來看,AI算法在基於傳統的方法之上,可以讓我們在非語音段有對噪聲有一個非常好的抑制,其結果對比原始信號,可以看到其實相似度非常高,肉眼基本很難區別。

下面的例子是一個場景的分類,說到有關分類的問題,其實我個人覺得這是AI比較擅長的一個方向。我們可以看到Noise Suppression、Sound Classification、Acoustic Echo Control,Blind Source Separation這四種方式其實都是結合神經網絡的方式。如圖左下角所示的AI Sound Classification是一個基於簡單的模型的方式,是不涉及任何神經網絡的。我們可以看到儘管因為任務的難度較大,所能達到的只有百分之六十左右的準確率,但和傳統方法相比還是有很大程度的提升。

之所以列舉出這兩個例子,是希望讓大家知道其實我們在音頻上有很多的模塊已經可以用AI來解決,包括這兩個例子在內,以及之前提到過的AEC,還有NLP(非線性處理)模塊其實現在也有很多研究是在結合AI來做,除此之外還包括BSS (盲源分離),目前我知道有些落地的項目也是基於AI的。所以總得來說AI在音頻算法中的應用是多種多樣的,是多點開花的。

1.2 音頻處理中AI的挑戰與局限

接下來介紹AI音頻的一些局限,在這裡我主要總結了三點:第一點我們能想到的就是AI的計算量和計算複雜度的問題。通常來說AI的模型,特別是現在神經網絡的模型,它的計算量平均來說會比傳統算法更大一些。對於大部分終端設備來說,其算力是有限的,PC設備相對還好一些,但是我們還需要保證實時性,因此將AI的模型全部附加在終端設備上,對於設備的硬體來說還是有比較大的壓力的。第二點是泛化能力。在數據驅動的方向上,泛化能力有限一直是一個問題。比如說我們有自己的數據集,那麼我們該怎麼用有限的數據來cover更多的結果,特別是由於RTC覆蓋的業務場景會非常多,比如教育領域、泛娛樂領域,每個領域的場景都會有所不同,AI算法要cover所有場景更是難上加難;最後一點是魯棒性,和泛化性略有相似,但更多的是指一些突發情況,比如在某些場景中突發的噪聲、時間上的跳變、參考時間的不齊等等。在這些情況的影響下,系統夠不夠穩定?系統會不會犯錯?犯的錯會不會是一個大錯?這其實很考驗AI的算法,就相當於我們把所有的東西丟到一個黑盒子裡面,看它是否能夠全部的、真正的運行正常。

總結上面提到的兩點,我認為AI的效果,它的優勢其實已經被證實了,但由於算力和數據等各方面的問題以及AI模型本身的一些問題,它現在還達不到完全替換傳統信號處理方法的階段。

RTC領域的Tsahi專門就這一問題做了很多的評估,這裡我們引用了Tsahi的一張圖,根據他的分析目前我們的位置剛好是處於一個臨界點。也就是從現在向後走,當我們的算力得到進一步提升,或者是我們在數學或各個基礎學科上有所突破,可能會迎來整個AI的一個大爆發,但就目前看來看我們正處於一個臨界的位置。所以今天我想和大家一起探討的是如何在臨界位置去揚長避短,如何應用AI的優勢,然後將它有機的結合在我們的RTC裡面。

02

「模塊化」

TITTLES

「模塊化」就是其中的一個有效途徑,模塊化對應的主要是:例如我們有一個端到端的長鏈路,有一個降噪的算法。長鏈路就是說從數據的輸入一直到數據的輸出,如果我們直接將其當成黑盒來訓練,這就是一個非常長的端到端的算法。那對應的模塊化就是我們「能不能將這個長鏈路分解成一些小的模塊」,其中一些小的模塊是很適合用AI去做的,我們用小的模塊去做,既節省了開銷,也能夠解決很多之前我們提到的問題,就像是讓專業的人去做對應專業的事情。

示例一:音頻降噪中的AI算法

舉個例子,這裡是一個比較通用的端到端的AI降噪算法。我們來看如圖下方所示的訓練的過程,首先將輸入的信號放到頻域STFT,然後就直接拿它的Magnitude,先不用相位,直接把它的一些頻點拿去,將它的一些Feature提取出來做Training,這是一個非常直觀的訓練過程。

訓練完成後直接放在我們的實時的系統裡面,在實時系統裡進行同樣的操作。然後我們將相位拿出來,先放在這裡不做任何操作。接著我們可以通過做一個Noisy Floor 或者是簡單的VAD判斷一下,然後同樣進行特徵提取,放到預先訓練並Frozen好的降噪的模塊裡進行處理,最後和我們的Phase結合,得到我們的輸出。

其實很多的AI算法如果從宏觀的角度來考慮,只需要有一個輸入,有一個輸出,其它的就都可以全部交給機器,讓它自己去訓練。但這就會遇到我們剛才提的三個問題:計算複雜度,泛化能力和魯棒性,也許我們可以簡單的做一些權衡,比如犧牲一些計算時間去換取更高魯棒性,但其實整體上還是很難突破這個瓶頸。

那麼,怎麼有效的解決這個問題呢?這裡我們看一個傳統信號處理中的降噪算法,跟剛才介紹到的方法比較像,唯一不同的地方是它分別添加了一個Speech Estimation的模型和Noise Estimation模型,這裡面會有比如說類似於先驗概率(Prior-SNR)這樣的計算,再通過後面的結合就會有類似於對於每個頻點有一個gain計算出來,結合起來後處理然後再輸出。

那我們看一下,這裡的Noise Estimation模塊,其實是比較適合拿出來單獨做深度學習訓練的小模塊,特別是假設噪聲是一個Stationary Noise的穩態噪聲,是更適合的。在這裡,我們可以不用端到端的去訓練整個AI的模型,而是把這個noise estimation訓練成一個噪聲估計模型。後面我們在實時系統裡面,每次遇到Noise Estimation,我們就不再是一個傳統的Noise Estimation,我們就會用這個訓練好的Model 去把我們想要的一些參數和feature都計算出來。

還有一個就是VAD模塊,這裡的VAD不是時域上的VAD,而是對於每個頻點有一個判斷。這種Classification的問題是很適合通過AI 的Model 來做的,這也是可以單獨拿出來做訓練的模塊。

我們再回顧一下這三個問題:計算複雜度、魯棒性和泛化能力,通過模塊化,計算複雜度的問題我們可以用一個輕量級的網絡來解決。剛才我們看了端到端的NS圖,我們要解決這個問題,一般會用到層數稍微偏多的網絡,因為我們要解決的問題是比較複雜的,需要從噪聲和語音疊加的信號裡面,將噪聲給抑制掉。但是如果我們換作只對Noise 去進行一個Estimation,那本身的問題就會比較簡單,也就是我們提到的一個簡單的訓練目標。對於這種訓練目標,這些問題本身也會更適合DNN的Model 去學習。

示例二:聲音場景檢測

再來看一個例子,這個是一個聲音的場景檢測分類。剛才現場也有朋友提到過,如果回聲消除裡是音樂聲怎麼辦?如果是場景檢測的話,我們會有一個Music Detection,如果檢測出是音樂類的場景,我們會有另外的一套機制來處理。例如我們NS中有一套對於音樂聲的標準,最直觀的就是弱處理,還可以通過NLP裡面的一些相應的處理方式;第二個就是我們簡單對Noise 進行分類,然後對應剛才提到的Noise Model的Training。比如說我們可以分類檢測出現在平穩噪聲是什麼類型的平穩噪聲,或者是檢測出現一些非平穩的噪聲的類型,我們會有針對不同噪聲的預訓練的Model,可以結合不同場景優化NS;第三個場景是針對底噪的估計,底噪是一個比較嚴重的問題,特別是在會議場景,開放的辦公環境下。那麼應該如何來估計底噪?因為底噪較常見的是平穩的噪聲,如果我們有一個Noise Detection來輔助,底噪估計的準確性會大幅提高,對系統來說是一個整體的優化。在這裡我列出了場景檢測的三種不同形式,雖然場景檢測是一個很小的模塊,是原本不屬於例如RTC的3A算法、長鏈路中的模板,是額外附加的子模塊。但當我們有了這個模塊後,可能會有更多的東西和更多的應用場景可以來優化我們的3A算法中的各個模塊。

示例三:波到達方向估計

Direction of Arrival-DOA,

在現在的RTC中,DOA一般會搭載著Beamforming和Microphone Array

如圖中Demo所示,使用的是圓陣,有八個麥克風,一般對應的是會議室的場景,大家可能會比較容易聯想到類似形狀的麥克風,或者是八爪魚的形狀的麥克風。除了這種形式之外,還有一些平板的電視一般是線陣的,也同樣是陣列的麥克風。它是通過陣列麥克風形成不同的Beam,然後通過DOA來選擇Active Speaker 是在哪個Beam上,並且增強它的SNR,而其它噪聲的因為在旁瓣上,就會被自然地抑制掉。而且Beamforming是一個線性的,不存在非線性的失幀。

關於DOA, 其實傳統算法有GCC-PHAT和SRP等,是高精度的,能夠從數學上精確判斷具體的多少度。

但在實際的場景中beamforming自己有寬度,一般我們會做二十多度,或者是十五度,相鄰的beam會有一些重疊,其實我們不需要那麼高的精度。現在有一個方法就是通過Beam Selection直接去判斷應該選擇哪個Beam。DOA會多出來這樣的一個分支,在這個分支上有很多傳統的算法。我自己在這方面也進行了很多的研究,比如在Beam的能量上,哪個能量大我就用哪個。我自己也提出過兩個方法,都是關於頻域信息提取的,但是後面通過對於傳統算法和DNN算法的比較和研究,嘗試了通過CNN、RNN或者CNN結合一些之前幀的信息的方式,也用不同的feature,lost function,基本上大部分的效果都會比傳統的方法要好很多,包括一些輕量級的一些網絡。

03

未來展望

TITTLES

剛才我們講了幾個例子,其實在整個的模塊化當中還會有很多的一些其它小的子模塊,可以拿出來,不僅限於之前提到的那些。比如說我們最近研究的AEC中的NLP(非線性處理)模塊中,嘗試的結合BSS的方法,比如ICA。ICA中有一些子模塊可以提取出來,做一些AI 的Training,這個也是我們目前認為比較可行的路,從結果上來看效果都會比之前的好很多。

對於未來,分享開始的時候我們就提到了Tsahi的預測,未來可能會有更多的AI算法融合進來,未來的爆發點可能是更先進的神經網絡模型,更高效的GPU,但是有一項關鍵點不會變,會一直被需要,那就是數據。

數據目前我們可以大致分為幾個部分,比如Open Source,在學術界大家會分享,會推動整體的進程,可能會有第三方公司提供一些數據,同時我們自己可能也會收集一些數據。現在網易雲信在做的就是針對很不同的NS場景進行AI的降噪,這一部分噪聲對於我們而言其實是比較難尋找到的,尤其是前兩個途徑中。一是因為這些噪聲本來就會很特別,Open Source很有限。如果和第三方合作,我們是考慮到驗證和收集的過程中會有很多溝通成本。所以我們大部分都是自己收集的。自己收集就需要有自己的一些基礎設備,可能會要求有自己的消聲室,自己的錄音棚環境,還有一些工具:人工頭、人工嘴來播放,還需要一些收集的設備,比如標準麥克風等。還需要很多其他配套的自動化工具,比如Labeling的工具。目前我們網易雲信已經配備了全套工具和環境,我們現在已經自己採集了很多數據集,並且應用到了我們AI算法中。

下面我們來給大家演示一個demo,大家可以體驗一下從沒有降噪到降噪的處理過程。

除了音頻之外,在視頻方面我們也有很多算法是由AI驅動的,以下是我們在視頻超分方面的一個Demo演示視頻,黃線右邊是原始圖像,左邊是經過超分處理的,大家可以看到,左右兩邊的效果對比還是非常明顯的。

灣區最原汁原味的技術,全球最前沿的應用實踐

無需漂洋過海,我們在線上等您!

LiveVideoStackCon 2020 美國站

2020年12月10日-12月11日

相關焦點

  • 一種基於實用AGC算法的音頻信號處理方法與FPGA實現的分析研究
    在音頻信號處理方法及FPGA實現中,採用AGC算法,可提高音頻信號系統和音頻信號輸出的穩定性,解決了AGC調試後的信號失真問題。本文針對基於實用AGC算法的音頻信號處理方法與FPGA實現,及其相關內容進行了分析研究。 1 實用AGC算法在實際應用中的原理 在通信設備使用過程中,語音通信是重要的組成部分,而在語言通信中音頻信號的質量,決定著人們對通信系統的選擇。
  • 音頻鑑黃是如何做到的?深度解析音頻檢測背後的技術
    今年,相關部門已經針對這些亂象加大了打擊力度,因此基於網際網路直播平臺的有害信息檢測成為重中之重。 以圖像識別技術為基礎如何進行鑑黃? DNN-Gram把深度神經網絡引入可以有效地克服平滑算法的誤差。例如圖中顯示的,通過深度神經網絡構建語音性不需要平滑算法的處理。
  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    雷鋒網 AI 開發者按:Detectron 是 FAIR 在 2018 年初公開的目標檢測平臺,包含了大量業內最具代表性的目標檢測、圖像分割、關鍵點檢測算法,該框架主要基於 python 和 caffe2 實現,開源項目已獲得了超 2.2w 的星標數。
  • 基於RFID系統的有效SLAM算法解析
    將RFID技術應用於機器人中,可以更好地發揮其技術特點,使機器人更多地獲取外在信息。  不少學者正在研究將RFID用於機器人定位系統中,把RFID作為機器人的一種傳感器來進行數據採集和處理。標籤為機器人的外部信息量,機器人通過閱讀器來採集各個標籤中的位置信息,通過獲取的信息利用同步定位與地圖創建算法來對機器人進行有效的定位,從而得到更準確地控制。
  • 一文搞懂Cortex-A9 RTC
    為了防止無意中寫入BCD計數器寄存器,應該關閉電源前將CTLEN位清除為0。3.CLKRST是2^15^時鐘分頻器的計數器復位。在設置RTC時鐘之前,應重置215時鐘分頻器以獲得精確的RTC操作。四、RTC的操作1.
  • 基於神經網絡算法 羊毛_基於pso算法和bp算法訓練神經網絡 - CSDN
    在上圖中,視覺模型的作用是提取給定圖像中的語義區域,這些語義區域與問題一併當做圖中的節點,送到一個 GNN 模型中進行推理學習,這樣的一種建模方式,可以更加有效地在視覺問答中對問題進行自適應地推理。過去這幾年,推薦系統由早期的協同過濾算法發展到 MF 模型、再到之後的 Wide&Deep,以及基於 Network Embedding 的方法,可以明顯地看到基於神經網絡的方法正在逐漸佔據主要位置,而 GNN 的出現,又一次大大加速了這個技術趨勢。
  • 13.一文搞懂Cortex-A9 RTC
    為了防止無意中寫入BCD計數器寄存器,應該關閉電源前將CTLEN位清除為0。 CLKRST是2^15^時鐘分頻器的計數器復位。在設置RTC時鐘之前,應重置215時鐘分頻器以獲得精確的RTC操作。 四、RTC的操作 1.
  • 言過其實的「空間音頻」,意義非凡的「計算音頻」
    而通過空間音頻技術,蘋果實現了在影院般的體驗:無論你如何偏頭,所有聲音都會默認固定方位發出,如果你移動手機的話,AirPods Pro也會將「聲源」進行相對應的聲場調整。我們先不談原理,先談效果,在iOS 14的正式版中,蘋果向AirPods Pro用戶推送了全新固件3A283。
  • 騰訊多媒體實驗室天籟AI音頻技術「破圈」背後的「密碼」
    作為多媒體技術領域的盛會,大會聚焦在音頻、視頻、圖像等技術的最新探索與應用實踐,覆蓋教育、娛樂、醫療、安防、交通、製造、旅遊、電商、金融、社交、遊戲、智能設備、IC等行業領域。會上,騰訊多媒體實驗室專家研究員肖瑋進行了《騰訊天籟:「下行最後一釐米」 音頻體驗提升》主題分享,重點介紹了騰訊天籟如何將經典信號處理技術與深度學習進行有機融合,圍繞網絡下行終端,提升音頻體驗。
  • MEMS麥克風重塑音頻領域,人工智慧(AI)將引領音頻市場的發展和轉型
    法國著名市場研究公司Yole堅信,未來幾年,人工智慧(AI)將引領音頻市場的發展和轉型。 對話是最自然的交互方式,因此,語音正成為主要的人機互動接口。基於語音的個人助理(Voice-based personal assistants, VPA)在智慧型手機、智能音箱、智能手錶、無線藍牙耳機、汽車、智能電視及其遙控器中越來越受歡迎。甚至,現在還有集成語音識別功能的垃圾桶。
  • APP裂變指南:如何設計產品化拉新機制實現用戶增長?
    編輯導語:拉新的模式有很多種,最常見的就是老帶新拉新模式,用老用戶進行裂變轉化,拉取新用戶;對於新用戶來說,老用戶是有一定的信任度的,所以轉化率較高;本文作者分享了關於APP裂變中,如何設計產品化拉新機制實現用戶增長,我們來看一下。
  • 基於尺度-時間網格的視頻中物體檢測算法,解決如何優化和平衡視頻...
    基於尺度-時間網格的視頻中物體檢測算法,解決如何優化和平衡視頻物體檢測中精度和速度的難題 李倩 發表於 2018-06-07 17:48:43 在物體檢測與識別領域,香港中文大學-商湯科技聯合實驗室在CVPR
  • 一種基於混沌約簡算法的雷達故障診斷分析
    摘要:在對粗糙集理論和混沌遺傳算法的研究基礎上,提出了一種基於知識依賴度為啟發信息的混沌遺傳約簡算法,並應用到雷達故障診斷中。在該算法中,對隨機產生的二進位初始種群用屬性核加以限制,在適應度函數中引入了決策屬性對條件屬性的依賴度,並對交叉概率和變異概率進行了新的設計,對產生的新一代個體增加修正校驗算子。利用該算法對雷達故障進行診斷,獲取簡單而又能體現故障徵兆與故障原因對應的診斷規則,避免了傳統基於故障樹的專家故障診斷系統準確性差、效率低的缺點。
  • 基於MSP430F1611單片機的音頻信號分析
    基於MSP430F1611單片機的音頻信號分析 李 俠,周立文,李 發表於 2011-05-05 09:40:49       本系統將採用集成有μC/OS-Ⅱ作業系統的單片機,利用快速傅立葉變換並加窗函數的方法來實現對音頻信號各項參數的分析
  • 基於中值的圖像椒鹽噪聲的非迭代濾除
    基於最大最小值的波峰波谷方法是一種非迭代的快速算法,但他對噪聲點的毀壞程度(即恢復後的圖像與原圖像相比灰度值不同點的百分數)比較高,造成了細節的不小損失。去除脈衝噪聲的高效方法對噪聲的探索比較有效,但對噪聲的濾除卻使用了簡單的標準中值方法,使得最終的實驗結果不是很好。本文綜合兩者的優點,提出了一種既能去除噪聲又能比較好的保持細節的有效方法。
  • 基於小波變換與DSP的實時音頻視頻處理系統
    從遠端接收到壓縮數據後,經過tl16c550b送到dsp中,先在存儲器中緩存,然後根據mpeg-2協議進行解包,分解成獨立的音/視頻數據;然後依據adv611和ct8021的數據申請,將壓縮視頻數據發送給adv611解壓,將壓縮音頻數據發送給ct88021解壓。
  • 口語評分——英語學習中的機器學習算法
    一方面鼓勵用戶「大聲說出來",一方面為他們提供有效的評分反饋,指出發音中的具體錯誤,幫助他們進行有針對性的訓練。有道口語大師就是這樣一款產品。這個號稱最有趣的英語學習APP ,由曾出品過有道詞典、有道翻譯官的團隊傾力打造。上線一個多月,便吸引了超過100萬的用戶。
  • 一文讀懂騰訊會議在複雜網絡下如何保證高清音頻
    產品力是個不得不提的因素,騰訊多媒體實驗室高級研究員王曉海在【騰訊技術開放日·雲視頻會議專場】中,對騰訊會議在複雜網絡情況下如何保證高清音質進行了分享。GCC1 算法將濾波後的 Jitter 值與動態閾值進行相應的狀態判斷,從而得出當前的網絡是否趨於擁塞或者處於正常,與此同時還通過實時接收到的流量和預測算法給出當前一個合理的帶寬預測值。後來 GCC2 又更新了,是基於發端的,它的數據處理源還是 Jitter,就剛才說那個 Jitter,它是一個什麼概念呢?自變量就是 Jitter,應變量是什麼呢?應變量是它的歷史平均值。
  • 盤點國內排名前十強智能客服ai電銷機器人品牌商家
    目前,基於大數據、雲計算和深度學習等領先的人工智慧技術,智能客服已經可以實現自主問答、業務辦理、故障診斷等一系列複雜操作,實現客服行業中大部分的應答需求,快速高效的解決用戶問題。智能客服ai電銷機器人的強大功能優勢讓很多企業都讚不絕口,那麼相必很多人都對智能ai電銷機器的排名榜也是非常感興趣的,在這裡就由我來和大家分享下國內排名前十強智能客服ai電銷機器人品牌商家,供大家參考!
  • Facebook AI 年度總結來啦
    內容如下,一起來看看吧~在 Facebook,我們認為,人工智慧以更有效的新方式學習,就像人類一樣,可以在將人們聚集在一起發揮重要作用。這一核心信念有助於推動我們的 AI 戰略,將投資重點放在與使用真實數據學習的系統相關的長期研究上,激勵工程師與更廣泛的人工智慧社區共享尖端工具和平臺,並最終展示使用技術造福世界的新方法。