思必馳周強:AI 和傳統訊號技術在實時音訊通話中的應用

聲網發表於2022-11-23

如何用 AI 解決聲音傳輸&處理中的三大問題?三大問題又是哪三大問題?

在「RTE2022 實時網際網路大會」中,思必馳研發總監 @周強以《AI 和傳統訊號技術在實時音訊通話中的應用》為題進行了主題演講。


本文內容基於演講內容進行整理,為方便閱讀略有刪改。


圖片

大家好我是 AIspeech 的研發總監周強,主要從事音訊相關的研究開發工作。今天分享的內容主要包含下述四部分:

  • 3A 介紹
  • 基礎原理介紹
  • AI 在訊號處理中的應用
  • 產品方案介紹

01 3A 介紹

圖片

從貝爾發明電話開始,我們就面臨著如何採用電聲解決日常生活中客觀存在的建築聲學的問題。比如房間構造和建築材料造成的空間迴響、環境噪音,以及很多通訊裝置間的聲音干擾,訊號處理就是用來解決這類問題。

行業將訊號處理面臨的問題歸位三個比較典型的類別,一般稱作 3A 問題,3A 也是音訊實時處理中較為關鍵的技術點,具體的分類與詳情大致如下:

  • 回聲問題

    ° 信回比低,揚聲器離 mic 比較近,結構內串音,分貝比較高,信回比可達到-45db

    ° 揚聲器失真,揚聲器 THD 以及結構震動帶來的失真

    ° 回聲路徑變化,系統延時抖動,以及裝置的移動

    ° 回聲混響拖尾,空間混響,RT60 可達 1.2s

  • 噪聲問題

    ° 噪聲譜多樣性,衝擊噪聲,粉色噪聲,類人聲的噪聲

    ° 噪聲空間特性多樣,強反射,散射場,點干擾

  • 增益問題

    ° 多目標聲源來回切換,增益速度和穩定性之間均衡

    ° 聲源動態範圍比較大

02 基礎原理介紹

上文我們介紹了 3A 問題的常見場景與分類,下面我們對 3A 演算法的基礎原理做下介紹。

1、聲學回聲消除(AEC)

AEC 演算法面臨的主要問題是如何有效的分理處近端聲音,目標是提升回聲抑制,改善近端聲音保真度。典型情況是假設當我在說話的時候,遠端的揚聲器也在播放音訊,這時候我需要把遠端揚聲器播放的聲音進行消除,儘量用演算法來保真我的說話聲音。

圖片

上圖比較形象的描述了回聲產生的數學原理以及數學處理機理。

揚聲器播放音訊,透過空間傳播。這裡的空間傳播包括直達聲和反射聲的疊加,外部風扇的噪聲以及目標說話人的人聲,這些聲音都被麥克風收集到。

我們目標是有效地去除揚聲器的聲音。它的關鍵點是如何有效地分離出近端的聲音,並且保真人說話的聲音。行業內一般比較主流也都是如圖中方式來處理,採用線性濾波器和非線性的處理,透過這兩部分來抑制揚聲器播出來的聲音,其中線性濾波器是無失真的,非線線濾波器是有失真的。

AEC 關鍵點中比較重要評價指標有三個:

  • 穩態誤差
  • 收斂時間
  • 雙講衰減

穩態誤差可以用來很好的評估濾波器本身對回聲路徑空氣的誤差,自適應濾波器會有收斂的過程,一旦收斂以後會有和標準答案之間有誤差,誤差越小說明系統效能越好。

收斂時間也是一個很重要的關鍵點,因為線上學習的過程總會有學習收斂的過程。

第三點是當雙方同時說話的時候,因為加了帶失真非線性濾波器會帶來失真,所以失真的量也是我們比較在乎的關鍵點,也就是雙講時語音的衰減。

2、背景噪聲抑制(ANS)

圖片

ANS 演算法面臨的問題是如何從被噪聲汙染的麥克風訊號中恢復期望訊號,這當中的難點是希望能把噪聲去掉的同時,儘可能高保真的恢復乾淨純潔的語音訊號。

所有的演算法都會客觀存在估計訊號和真實訊號之間的偏差,因此總會存在一些失真。一般情況下我們的目標是儘量地去改善語音聽感質量和一些客觀指標(比如可懂度和語音訊雜比等),改善後端系統的效能(語音識別,語音編碼)。

我們剛才講到,降噪的本質是從被汙染訊號中恢復原始訊號的過程,這個過程不可避免的會存在一定量的失真。但在同一框架中降噪量和語音失真是互斥的過程,行業內對這兩點做了很多研究,會在不同系統中做權衡。

3、自動增益控制(AGC)

AGC 演算法解決的主要問題是如何統一不同源的音量大小。

不同說話者的聲音大小不一,所以到達麥克風中的分貝也是不一樣的。如何規範化不同源的音量大小,讓遠端的聲音聽起來不至於特別難受,需要進行更大範圍的語音壓縮。業內一般是藉助動態壓縮演算法保證語音壓縮在相對更小的 DB 範圍內。

既然是壓縮肯定就會涉及語音失真,失真的程度和壓縮自身動態範圍的大小、快慢,以及語音本身的穩定性、保真度都有關。壓縮的原理相對也比較簡單,聲音小一點的把聲音提高一點,聲音大一點的把聲音壓小一點,一般會有標準分貝壓縮曲線,類似下圖所示。

圖片

因為 AGC 演算法處理一般放在整個系統的末端,如果前端的模組中存在噪聲、回聲一類的問題,會對 AGC 造成比較大的影響,造成一定程度的挑戰。

03 AI 在訊號處理中的應用

接下來我會重點介紹一下 AI 在語音訊號處理中的應用。

最近這波 AI 火了十幾年了,在影像和語音中已經有了廣泛地應用,在音訊訊號處理領域最近幾年也越來越火,因為確實帶來了比較好的結果以及讓人期待的展望。下面我們展開來講一講。

1、AEC 演算法模組

AEC 演算法模組一般情況下分為四個模組:

  • 時延估計(Time Delay Estimation, TDE) 模組
  • 線性回聲消除(Linear Acoustic Echo Cancellation, AEC) 模組
  • 雙講檢測(Double-Talk Detect, DTD) 模組
  • 非線性殘餘聲學回聲抑制(Residual Acoustic Echo Suppression, RAES) 模組

AEC 中比較重要的是線性濾波模組,行業中比較典型的是 AEC-NLMS 演算法。

圖片

如上圖所示,它的原理是透過線性濾波器去模擬去估計揚聲器傳播到麥克風之間的路徑,把傳播過來回聲全部減掉,行業內一般情況是在頻率分塊去做處理。

圖片

上圖則給大家演示了一下,三個混響時間情況下濾波器的收斂過程,大家可以看一下隨著混響時間變長,本身濾波器效能就在下降,200 毫秒混響的時候濾波器誤差在-25db 左右,達到 800 毫秒基本上是負十幾 db,兩者有 10db 的差別。

濾波器為什麼會存在波動呢?主要原因是當有人說話的時候,雙講濾波器存在發散,導致濾波器收斂發生問題,導致了 misalignment 變大,這是目前 AEC NLMS 濾波過程中存在的典型問題。

另外一個問題是因為是線性過程,很難學習揚聲器的非線性過程,所以需要解決非線性的問題。這時我們自然而然會想到神經網路,因為神經網路本身具備學習的能力,它可以對非線性進行比較好的建模。

那麼神經網路可以加持在 AEC 哪些模組呢?我們可以看到神經網路本身對線性濾波會有一些指導作用,我們可以比較一下紅色和藍色部分,可以看出神經網路對線性濾波學習收斂過程進行了一些指導,可以看出本身收斂穩態誤差相對來說更穩定,在雙講過程中沒有出現劇烈地波動。

另外一個模組是可以放在替代傳統非線性抑制,比較好抑制噪聲的殘留。這個噪聲殘留包含了 misalignment 殘留以及非線性殘留,神經網路都可以比較好地去學習。

圖片

上圖是我們的一些測試結果。線性濾波基本達到 20db 的消除量,ERLE 達到 20db 的消除量,加了一些傳統非線性濾波可以達到 50db,加上神經網路可以再提升 10 個 db 的抑制量。

另外是語音感知質量,它可以比較好地評估雙講情況下的語音效能,大家可以看一下本身有了神經網路的加持,對雙講效能改善還是比較明顯的,PESQ 在 20db 有 0.2 左右的提升。

2、ANS-降噪建模

降噪是希望從被汙染麥克風訊號中把噪聲處理掉,得到 clean speech。目前行業內比較主流的方案是基於 Wiener 框架,統計噪聲統計量或者是目標聲音統計量。接下來給大家詳細介紹一下具體怎麼操作的。

圖片

單通道降噪相對比較成熟了。其中非常經典的一個是基於 OMSA 演算法,採用 MCRA 去估噪聲,採用幅度譜上的操作估噪聲的運動函式,用來去估計先驗訊雜比、後驗訊雜比、語音存在機率,再採用 Wiener 方案做一些 Wiener 濾波,得到目標訊號。它的建模只是用到了幅度譜,相位譜直接採用含噪相位。

單通道降噪本身在神經網路中應用比較多,有的是純神經網路,比如說 wav to wav 這種,還有譜上的操作,有的是估計mask,有的直接估計譜,包括相位譜。

圖片

現在主要在研究如何結合傳統去做,特別是受限的神經網路,當模型不是特別強的時候,比如說 size 比較小、算力比較小的情況是否能發揮一定的作用,在沒有特別完美的情況下結合著傳統去做還能得到不錯的效果。它的思想是可以用神經網路去調整 MCRA 節奏,用來得到幅度譜以及得到相位譜 mask,用來和傳統 OMLSA 結合得到語音降噪的處理。

多通道降噪比單通道降噪可做的空間大的多了,因為麥克風多了,有了額外的資訊,比如說相位差資訊、幅度差資訊都被有效地利用起來,多通道訊號處理比較典型的是播出形成方案,簡單地思想是透過採用麥克風陣列空間濾波方案實現對目標聲音的提取,抑制非目標方向的聲音。

圖片

如上圖顯示,我們能有效地抑制 60 度人聲干擾,而保持 90 度人目標聲音不失真。其中比較重要指標是 BeamPattern,以及白噪聲增益和指向性因子。白噪聲增益描述系統魯棒性,如果空間濾波器範數比較大的話,它會帶來系統不穩定。因為我們知道麥克風是電學器件,會有白噪聲存在,如果範數特別大的話,會把電路底噪帶大,另外指向性因子描述指向性效果,如果指向性越好,說明對旁邊聲音抑制能力越強。

3、MVDR

另外一塊是比較典型 MVDR ,也就是最小失真響應。它是自適應波束形成的方案,它的思想是讓輸出訊號能量最小,但保證目標方向不失真,典型約束準則是在最下面兩行,保證 輸出 最小同時保證目標方向完全無失真。

圖片

經過數學推導,一般情況下會得到比較經典的公式,可以獲得噪聲協方差矩陣以及導向向量,可以得到空間濾波器係數,用來對麥克風陣列進行濾波,實現剛才提到的降噪作用,比較好地保留目標聲音,比較好地去除噪聲。

圖片

而如何去估噪聲協方差矩陣以及導向向量,是需要做的事情。一般情況下神經網路在這塊有操作空間了,它可以比較好地去判斷是不是語音,比較好去估噪聲協方差矩陣,一般情況下上圖中標紅的 Mnoise 主流會用神經網路去做。

圖片

如上圖所示,雙路輸入麥克風陣列音訊經過 FFT 得到頻率訊號,經過去迴響,抽取其中的一路送到神經網路,典型的 unet 結構,得到一個 mask,mask 以後可以估計 MVDR 其中兩個關鍵統計量,噪聲矩陣和導向向量,用來得到 MVDR 濾波器係數,後面再接一個傳統 OMLSA 降噪演算法,神經網路語音存在機率可以幫助 OMLSA 做一些輔助處理,提升整個系統的效能。

圖片

另一種方案,剛才講到如果輸入多路音訊,因為去混響後的音訊包含了原始陣列的資訊,它可以有效地反映陣列的空間特性,所以說它在送到神經網路裡面輸入的是兩路音訊,可以比較好地去學習空間資訊,比前一個方案的好處是空間資訊可以拿來用,可以比較好地去估噪聲語音存在機率,從而得到 MVDR 濾波器,估計效果會更準一點。

圖片

另外一個方案可以採用固定約束的方案,把空間 0-180 度分成三個方向或五個方向,分別對五個方向進行固定波束的設計,分別對每個方向的聲音送到神經網路,得到每個方向本身語音存在機率,再決策每個方向上哪個目標是真說話機率最大,選取這個方向的聲音用來做後面降噪處理,這也是一個典型的處理方案。

圖片

同樣還有多輸出的方案,輸入的是兩路去方向的音訊訊號,輸出的是帶方向的 mask,本身神經網路有能力估方位 mask,而不是估語音的 mask。我們去估三個方向或五個方向的 mask,從而用來去決策哪個方向是目標聲音,從而比較好地獲得方向語音存在機率,從而得到更好的估計,得到更好的降噪處理。

我要提一下,本身這個鏈路包含了去混響、固定波束設計和神經網路 mask 估計,其中固定波束設計是固定方向的波束設計,可以採用自適應的方案,這時候神經網路本身也能對整個學習過程做一些指導。

另外我們知道去混響本來會受一些噪聲的干擾,因為解決的是卷積噪聲,如果有加性噪聲會對去混響效能大打折扣,本身波束出來的聲音或者神經網路的聲音可以有效對去混響做一些引導,比較好地改善本身去混響的效能,這塊工作我相信很多團隊都在做,也有一些比較好的結果。但這時候會帶來一些問題,整個鏈路會變的相對來說複雜一點,因為前後有相互的耦合。

4、ANS 演算法對比

圖片

上圖是 ANS 演算法方案的對比。

我們可以看一下,上面兩個是單通道,本身 PESQ 不太理想,但有了麥克風陣列的加持,它的提升還是比較明顯的,因為它帶來了一些可能,包括去混響、降低失真的可能性。

多輸入神經網路還是比單輸入神經網路有一些優勢,因為單輸入神經網路學到的是語音和噪聲譜之間的資訊,而有了多輸入神經網路除了噪聲譜和語音譜之間的不同,還有麥克風拓譜之間的關係,可以去學習,去更好地估計承接量。在 15db 情況下,平均有 0.1 左右 PESQ 的提升,在 5db 情況下提升的更多一點。

04 產品方案介紹

接下來給大家介紹一下我們這邊的產品方案。

圖片

我們在做一款會議級的麥克風全向麥,配合著攝像頭和轉寫一體機可以有效地解決大型會議室的溝通問題。這個方案中採用了 12 顆麥克風加神經網路降噪的技術,可以支援 5 臺的集聯,可以比較好地覆蓋面積比較大的會議室,比較清晰的識取整個會議室的聲音。

另外一個我們做比較有意思是 NFP 方案,解決的是可以有效地去除說話目標區域以外的聲音,比如扇形區以外的聲音,左面、右面和後面的聲音,主要面向的是個人辦公產品,可以有效去除嘈雜環境下的聲音。

圖片

下圖是原始音訊和處理後音訊,訊雜比改善還是比較明顯的。

圖片

另外我們還做了多模態的方案,如下圖所示。多模態方案是說除了剛才講到音訊鏈路,還有了影片加持,比如說有影片人方位的加持,有了唇動的加持,可以有效地指導整個音訊鏈路處理準確性。比如說精確人的方位資訊,以及唇動 DOA 資訊、唇動 VAD 資訊,可以用來指導波束形成和神經網路的演算法處理。

圖片

反過來,因為音訊本身有 DOA 估計,相對來說是稍微粗糙一點的 DOA 估計,可以進行影片傳輸,讓攝像頭進行轉動,因為攝像頭覆蓋角度畢竟還是受限的,可以用來輔助攝像頭轉動。

圖片

上圖是我們做的耳機音訊方案。耳機裡面臨著場景比較複雜的問題,而且設計比較難,包括晶片算力比較受限,我們除了降噪分離還做了場景檢測,助聽以及輔聽的功能,以及基於麥克風佩戴檢測、離散性的語音互動,比如語音喚醒之類的解決方案。

圖片

因為最近直播比較火,我們還做了領夾麥 48K 高畫質取樣的方案,可以用來適配不同主播的需求,比如一些穩態噪聲和順帶噪聲抑制可以有不同降噪模式,因為有的主播希望只收取人的聲音,另外一些主播希望把環境噪聲也收進去,這樣可以做到使用者本身可配可選。

圖片

上圖則是我們做的聲紋降噪方案。聲紋降噪是基於聲紋資訊對目標聲音進行增強,降除環境噪聲和非目標聲音,它的機理是希望透過語音註冊能比較好地實現聲音保留,剔除非目標人的聲音,這時候一般採用的是神經網路處理技術,主要是透過聲紋的做本身增強。

我們嘗試結合著麥克風陣列做,可以實現更好的效果,用拓譜資訊 + 聲紋資訊聯合進行最佳化。這個事例大家可以看一下,本身訊雜比比較低,經過處理以後還是比較好的,還原目標聲音的人聲。

相關文章