1. 程式人生 > 其它 >論文翻譯:2020_Nonlinear Residual Echo Suppression using a Recurrent Neural Network

論文翻譯:2020_Nonlinear Residual Echo Suppression using a Recurrent Neural Network

論文地址:https://indico2.conference4me.psnc.pl/event/35/contributions/3367/attachments/779/817/Thu-1-10-6.pdf

利用迴圈神經網路抑制非線性殘差回聲

摘要

  擴音通訊裝置的聲學前端會對揚聲器和麥克風之間的線性回聲路徑帶來各種失真。雖然放大器可能會引入一個無記憶的非線性,但從揚聲器通過裝置外殼傳遞到麥克風的機械振動會引起記憶的非線性,這很難彌補。這些失真極大地限制了線性AEC演算法的效能。雖然針對個別用例已經存在廣泛的RES技術,我們的貢獻特別針對低資源實現,也具有實時能力。提出的方法是基於一個小的RNN,它增加記憶殘差回波抑制器,使其能夠補償兩種型別的非線性失真。我們評估了在真實的雙講情況下獲得的系統回聲損耗增強(ERLE),訊號失真比(SDR)和字錯誤率(WER)的效能。進一步,我們將後置濾波器與最先進的實現方式進行比較。最後,我們分析了整個系統的數值複雜性。

關鍵字:聲學回聲消除,殘餘回波抑制,非線性回波,迴圈神經網路

1 引言

  在擴音語音通訊裝置中,AEC是一個重要的組成部分,它利用線性FIR濾波器對揚聲器輸出和麥克風輸入之間的聲路徑進行建模。AEC從麥克風訊號中減去回聲副本,實現無回聲語音通訊[1]。不幸的是,由於揚聲器和放大器中附加的非線性失真,以及從揚聲器通過裝置外殼傳輸到麥克風[2]的機械振動,回聲消除的任務變得複雜。這些失真不能用線性回聲消除器來模擬。因此,實際實現的ERLE是有限的,這導致了語音質量和清晰度下降。由於揚聲器電話或智慧揚聲器是行動式裝置,具有較小的外殼尺寸和較小的揚聲器,因此容易出現非線性失真,這一問題在今天尤為重要。儘管它們體積龐大,但它們通過使用可對揚聲器訊號進行預失真的放大器來產生高聲壓級[3]。這會給回聲路徑帶來更多失真。非線性失真可以分為兩類:

  1)無記憶的非線性,即非線性揚聲器驅動器引起的諧波失真,或麥克風訊號[4]的削波。無記憶的非線性系統可以用\(f_{N L}(x)=\sum_{i=0}^{\infty} \alpha_{i} \cdot x^{i}\)的多項式來近似。引數\(\alpha_{i}\)的確定可以用非線性系統辨識方法,即用線性調頻訊號[5]來確定。諧波和揚聲器和放大器的整體總諧波失真(THD)。可以通過將功率濾波器合併到AEC演算法中來補償諧波失真[6-8],或使用殘留回波抑制器[9-12]。

  2)記憶的非線性,即揚聲器膜的部分振動或結構傳播的聲音和機械振動[4]。帶記憶的非線性系統可以用Volterra級數[13]來近似。由於Volterra核心的大小隨其順序呈指數增長,此概念在實際應用中的使用受到限制。此外,為給定的非線性調整核心是一項艱鉅的任務,因為系統識別需要更高階統計量(HOS)和頻譜分析。然而,已經提出了幾種帶有Volterra級數的回聲抑制器,例如:稀疏的Volterra核[14,15]或Hammerstein模型[16,17]。

  Volterra級數和多層感知器(MLP)都是具有記憶的非線性的通用近似器。因此,已經提出了用於非線性殘餘回聲消除的神經網路[18-23]。然而,我們發現這一領域的許多貢獻受到以下一個或多個方面的限制:

  (1)只考慮無記憶的非線性,即使這兩種型別總是在真實場景[4]中發生。

  (2)神經網路具有很大的權重,使得後置濾波器的計算成本比實際的AEC本身要高。

  (3)由於神經網路的資料流,系統不具備實時性。

  在本文中,我們考慮RNNs作為後置濾波器來解決這些缺點。

  (1)由於我們的神經網路具有迴圈結構,因此可以直接從現實世界的音訊示例中瞭解具有記憶的非線性。與MLP相比,使用LSTM層形式的內部記憶可實現較小的網路[18,23]。

  (2)我們的方法具有實時性,因為LSTM層只在資料流的正向執行。它一次只處理一個數據塊,不會給整個系統帶來額外的延遲。

  (3)我們的神經網路只有兩個全連線層和一個LSTM層(最小單位為25個單位)與1024個或更多單位的類似方法相比,我們的神經網路要小得多。此外,我們的系統可以在短至1.75h的回聲記錄下進行訓練,即使沒有GPU,也可以實現快速的訓練過程。

2 系統模型

  我們假設一個經典的單聲道揚聲器電話,帶有揚聲器和麥克風,用於擴音電話應用,即IP語音(VoIP)。系統模型如圖(1)所示。在該設定中,遠端揚聲器訊號通過網路接收(RX),近端揚聲器訊號通過網路傳輸(TX)。由於回聲,麥克風接收到近端揚聲器和揚聲器的回聲。因此,需要AEC。在圖(1)中,所有訊號都在具有頻率指標k和時間指標t的短時傅立葉變換(STFT)域內表示,揚聲器和麥克風訊號分別用\(X(k, t)\)\(D(k, t)\)表示。由AEC濾波器得到的回波模型為\(Y(k, t)\)。通過將麥克風訊號減去回波模型,得到殘差訊號\(E(k, t)\)。提出的後置濾波器作用於殘差和麥克風訊號,輸出增強訊號\(Z(k, t)\)

圖1 在STFT域中具有訊號的系統模型

  回波脈衝響應(EIR)\(H(k, t)\)被建模為FIR濾波器。通常,它比STFT塊長得多,因此被劃分為\(L\)塊。使用此表示法,麥克風訊號可以寫成

\[D(k, t)=S(k, t)+f_{N L}(X(k, t))+\sum_{l=t-L}^{t} X(k, l) H(k, l),  (1) \]

其中\(S(k, t)\)為近端語音訊號,\(f_{N L}(\cdot)\)為與記憶的未知非線性關係。圖(1)中的AEC估計EIR\(\hat{H}(k, t)\),因此回波模型為

\[Y(k, t)=\sum_{l=t-L}^{t} X(k, l) \hat{H}(k, l)  (2) \]

  減法階段之後,殘差為

\[E=D-Y=\sum X \tilde{H}+f_{N L}(X)+S  (3) \]

其中,\(\tilde{H}=H-\hat{H}\)。為了便於閱讀,省略了頻率和時間指標。理想情況下,\(\tilde{H}\)型濾波器失配和非線性\(f_{N L}(\cdot)\)都很小,這樣殘差訊號只包含近端語音訊號\(S(k, t)\)

2.1 AEC 框架

  我們使用一個頻域,基於塊的AEC,它使用STFT將回聲濾波器分割成多個塊。這將演算法的整體系統延遲減少到單個STFT塊長度,從而可以進行實時操作。我們從[24]中選擇了狀態空間塊劃分的AEC實現,我們發現它在真實場景中既具魯棒性又效能良好。我們使用1024個樣本塊的長度,50%的重疊,在\(f_{s}=16 \mathrm{kHz}\)\(L = 16\)個塊來建模高達512ms的尾部長度。

  在實際應用中,AEC估計的濾波器與實際EIR總是不匹配。當近端揚聲器在裝置前面移動時,線性回聲路徑可能隨時間而改變。裝置本身的隨身攜帶,造成EIR不斷變化。這些變化必須被AEC演算法跟蹤。

3 RNN 後置濾波器

  在實際的揚聲器和放大器的現實場景中,具有和不具有記憶的非線性總是存在的。AEC無法補償這些失真。RES已經被提出用於無記憶的非線性[8-12]和有記憶的非線性[14-17]。隨著機器學習的出現,RES的效能顯著提高[18-23]。

  然而,我們的貢獻在以下關鍵方面有所不同:

  (1)由於我們的神經網路的迴圈結構,帶有記憶的非線性可以直接從現實世界的音訊例子中學習,而大多數貢獻只使用無記憶的非線性。

  (2)我們的方法具有實時性,因為LSTM層只在資料流的正向執行。它不會給整個系統帶來額外的延遲。

  (3)我們的神經網路只有三層,最小的LSTM細胞只有25個,比同類的方法要小得多[18,23]。

  圖(2)概括了RNN後置濾波器的結構。它由三層組成,並根據麥克風訊號\(D(k, t)\)與回波模型\(Y(k, t)\)功率的對數差進行運算。第一層是簡單的全連線層,它執行從\(K\)個頻段到\(M\)個頻段的資料壓縮。這有助於簡化較小的LSTM層,這是系統的第二層,也是計算最複雜的一層。\(M\)可以低至25個單位,而在我們的實現中\(K = 513\)。第三層將資料擴充套件回\(K\)個波段。它預測一個增益掩碼\(p(k, t)\),該掩碼按元素乘上殘差訊號\(E(k, t)\)以產生增強輸出,即:

\[Z(k, t)=E(k, t) p(k, t)  (4) \]

其中,\(p(k, t) \in[0,1]\)

圖2 具有K個頻率段和M個LSTM單元的RNN架構

3.1 混合損失函式

  為了訓練RNN後置過濾器,我們在對話中考慮兩個用例:

  單講:只有遠端揚聲器\(X(k, t)\),近端沉默,即\(S(k, t)=0\)

  雙講:近端和遠端揚聲器同時說話。

  在單講中,我們希望最大限度地提高ERLE,即:輸出\(Z(k, t)\)理想情況下為零。ERLE的定義如下:

\[\mathcal{L}_{\mathrm{ERLE}}=10 \log _{10} \frac{\sum_{K, T}|D(k, t)|^{2}}{\sum_{K, T}|Z(k, t)|^{2}}  (5) \]

  在雙講過程中,我們希望使SDR最大化,即:輸出\(Z(k, t)\)與近端訊號\(S(k, t)\)相同。SDR定義為:

\[\mathcal{L}_{\mathrm{SDR}}=10 \log _{10} \frac{\sum_{K, T}|S(k, t)|^{2}}{\sum_{K, T}|S(k, t)-Z(k, t)|^{2}}  (6) \]

  為了滿足這兩個約束條件,我們使用混合目標訓練RNN後置濾波器。RNN最小化的總損耗函式為:

\[\mathcal{L}=-\mathcal{L}_{\mathrm{ERLE}}-\lambda \mathcal{L}_{\mathrm{SDR}}  (7) \]

其中\(\lambda\)引數允許在訓練期間調整ERLE或SDR約束的重要性。

4 實驗

4.1 錄音設定

  為了獲得包含這兩種非線性型別的真實失真,有必要使用真實世界的設定,即同一情況下的揚聲器或帶有揚聲器和麥克風的智慧揚聲器。否則就很難精確地模擬真實的記憶非線性,以及隨著時間的推移改變EIR路徑。因此,我們使用了一個帶有3W揚聲器和駐極體麥克風的小型揚聲器(EasyAcc-MC)。我們斷開了內部電子裝置,用一個外部放大器來驅動揚聲器。放大器和麥克風分別插入音效卡的線路輸出和麥克風輸入插孔。我們測量了揚聲器在3W時的THD,約為12%。因此,在我們的設定[2]中存在合理數量的非線性失真。為了從帶有ALSA[25]的基於linux的PC上驅動揚聲器,我們使用了PlayRec Python模組[26],它可以同時從音效卡上播放和錄製音訊。我們從Python的[24]中進一步實現了基於塊的AEC,以獲得用於訓練RNN後置濾波器的相關訊號。

  擴音電話被放置在7個不同的辦公室,每個辦公室有10個不同的位置。房間的\(R T_{60}\)在250ms到500ms之間。對於每個位置,我們生成了3個訓練示例。每個訓練示例包括激勵訊號\(X(k, t)\)和記錄的回聲響應\(D(k, t)\)。我們使用來自TIMIT語音語料庫[27]的隨機串接的30秒語音作為激勵訊號\(X(k, t)\)。同時錄製的麥克風訊號\(D(k, t)\)包含30秒的回聲響應。共獲得了1.75小時的混響樣品。所有樣品均在\(f_{s}=16 \mathrm{kHz}\)下記錄。圖(3)顯示了使用揚聲器的錄音設定。綠色箭頭表示線性回波路徑(EIR),紅色部分表示非線性失真的潛在來源。

圖3:使用小型擴音電話的錄音設定。

4.2 訓練

  我們使用前6個房間的錄音進行訓練,其餘的用於評估RNN後置濾波器。請注意,神經網路並不學習語音或說話人的特徵,而是學習嵌入在麥克風訊號\(D(k, t)\)中的非線性。因此,一個小的訓練集就足夠了。我們對RNN的訓練如下:

  首先,我們使用AEC演算法對每個30秒長的資料樣本進行處理。AEC提供了殘差\(E(k, t)\)和回波模型\(Y(k, t)\),作為RNN的輸入(見圖2)。為了在時變EIRs上進行訓練,我們在每個30s長的訓練例項開始時重置AEC權重。

  為了對ERLE和SDR的RNN進行優化,我們對每個訓練例項進行兩次訓練:第一次,對單講情況,即近端說話者\(S(k, t)=0\),計算式(5)中的ERLE。第二次,對雙講情況計算式(6)中的SDR。我們從WSJ0[28]語料庫的si_tr_s集中隨機選擇語音來模擬近端揚聲器\(S(k, t)\),將其混合到具有−12dB的SER麥克風訊號中。這對應於以3W的速度驅動揚聲器並從大約0.5m的距離向裝置講話時所遇到的SER。將式(7)中的權衡引數\(\lambda\)設為1。我們訓練了7個不同版本的RNN後置濾波器,其中我們將LSTM層的大小從25單位引數化為250單位,參見表(1)。

表1 RNN後置濾波器,參考系統(Speex-DSP)

和AEC(不含後置濾波器作為基準)的ERLE,SDR和WER分數

4.3 測試

  測試RNN後置濾波器是用第7個房間中未使用的錄音完成的。ERLE和SDR在訓練期間進行評估。我們還測量了雙講過程中增強訊號\(Z(k, t)\)的WER。WER是通過Google語音文字API [29]獲得的。特別是,使用乾淨的WSJ0資料集作為參考進行測量,對於該資料,谷歌語音到文字API報告的WER為6.1%。

4.4 結果

  表1報告了使用從M = 25到250個單位的不同LSTM層大小的實驗的ERLE、SDR和WER得分。作為基線,我們還評估了不使用後置過濾器的AEC。此外,我們將我們的後置濾波器與最先進的參考AEC實現(Speex-DSP)[30]進行比較。Speex還使用頻率域、基於塊的回聲消除器[31]和殘餘回波抑制器。我們配置了相同的512ms回波尾長度。可以看出,Speex在所有得分上都略高於基線。然而,我們的RNN後置過濾器在所有分數上都有顯著的改善。

4.5 效能

  圖(4)舉例說明了來自測試集的30s示例,其中M = 100個LSTM單元。面板(a)分別顯示遠端和近端訊號。面板(b)顯示了殘差訊號\(E(k, t)\)。可以看出,AEC需要大約10s來調整到EIR。在此期間,殘差中的誤差相當大。進入樣本16秒後,近端揚聲器\(S(k, t)\)開始說話。面板(c)顯示RNN後置濾波器增強後的輸出\(Z(k, t)\)。可以看出,增強後的訊號只包含需要的語音訊號。面板(d)顯示了隨時間測量的ERLE,分別分為AEC和後置過濾器的貢獻。

圖4 RNN後置濾波器在30 s測試示例中的效能:

(a)遠端和近端訊號X(k,t)和S(k,t),(b)AEC剩餘E(k,t)

(c)增強後置濾波器Z(k,t)的輸出。(d)AEC的ERLE和後置過濾器。

4.6 數值計算的複雜性

  在本節中,我們將討論整個系統的數值複雜性。我們計算乘法和累加(MAC)操作的總數,這可以在專用的DSP或帶有向量浮點單元(如ARM NEON)的CPU上執行。RNN後置濾波器由3層組成。第一層是有\(K\)個輸入,\(M\)個輸出全連線層。其前向路徑定義為\(y=\boldsymbol{W} x+b\),其中\(\boldsymbol{W}\)是一個\(K \times M\)的權重矩陣,\(b\)是大小為M的偏置向量,輸入\(x \in \mathbb{R}^{K}\)。因此,該層需要\((K \cdot M+M)\) 個MAC。同樣,LSTM層需要\(\left(8 M^{2}+7 M\right)\)個MAC,第三層需要\((M \cdot K+K)\)個MAC。

  狀態空間分塊AEC的複雜性可以通過[24]中的式(26-32)進行評估。對於\(L = 16\)塊和\(K = 513\)個頻點,我們獲得\(143k\)的MAC,包括複雜的操作。此外,還需要\(L+3\)個復IFFT和\(L+1\)個復IFFT來填充零和處理時域輸入,為演算法增加了另外\(737k\)的MAC。表(2)總結了每個RNN後置濾波器和AEC的數值複雜度。可以看出,後置濾波器只增加了整體複雜性的一小部分,特別是對於較小的LSTM層。在\(f_{s}=16 \mathrm{kHz}\)和1024個有50%重疊的塊長度時,我們每秒處理31.25個塊。總的來說,最小的後置濾波器+AEC需要25M MACs/s,而最大的後置濾波器+AEC需要51M MACs/s,這完全是現代嵌入式系統所能及的。

表2:每個塊的數值複雜度。

5 結論

  在本文中,我們提出了一種殘差回聲抑制器,它使用RNN來模擬失真,例如帶有記憶的非線性失真,這些失真通常出現在同一情況下,包含揚聲器和麥克風的小型揚聲器中。我們證明了我們的方法使用很少的資源,同時仍具有實時性,因為它不會給回聲消除器帶來任何額外的延遲。我們還表明,在ERLE, SDR和WER方面的效能,相比於最先進的回波消除器和殘餘回波抑制器有很大的提高。特別是,RNN後置濾波器將WER降低了14.52%

6 參考文獻

[1] S. Haykin, Adaptive Filter Theory, 4th ed. New Jersey: Prentice Hall, 2002.
[2] H. Kuttruff, Room Acoustics, 5th ed. London–New York: Spoon Press, 2009.
[3] Y. A. Huang and J. Benesty, Audio Signal Processing For Next-Generation Multimedia Communication Systems. Boston: Kluwer Academic Publishers, 2004.
[4] T. D. Rossing, Springer Handbook of Acoustics. Berlin–Heidelberg–New York: Springer, 2007.
[5] A. Novak, L. Simon, F. Kadlec, and P. Lotton, “Nonlinear system identification using exponential swept-sine signal,” IEEE Transactions on Instrumentation and Measurement, vol. 59, no. 8, pp. 2220–2229, 2010.
[6] F. Kuech, A. Mitnacht, and W. Kellermann, “Nonlinear acoustic echo cancellation using adaptive orthogonalized power filters,” in Proceedings. (ICASSP ’05). IEEE International Conference on Acoustics, Speech, and Signal Processing, 2005., vol. 3, 2005, pp. iii/105–iii/108 Vol. 3.
[7] F. Kuech and W. Kellermann, “Orthogonalized power filters for nonlinear acoustic echo cancellation,” Signal Processing, vol. 86,no. 6, pp. 1168 – 1181, 2006, applied Speech and Audio Processing.
[8] F. Kuech and W. Kellermann, “Nonlinear residual echo suppression using a power filter model of the acoustic echo path,” in 2007 IEEE International Conference on Acoustics, Speech and Signal Processing - ICASSP ’07, vol. 1, 2007, pp. I–73–I–76.
[9] D. A. Bendersky, J. W. Stokes, and H. S. Malvar, “Nonlinear residual acoustic echo suppression for high levels of harmonic distortion,” in 2008 IEEE International Conference on Acoustics,Speech and Signal Processing, 2008, pp. 261–264.
[10] Kun Shi, Xiaoli Ma, and G. Tong Zhou, “A residual echo suppression technique for systems with nonlinear acoustic echo paths,” in 2008 IEEE International Conference on Acoustics, Speech andSignal Processing, 2008, pp. 257–260.
[11] S. Malik and G. Enzner, “State-space frequency-domain adaptive filtering for nonlinear acoustic echo cancellation,” IEEE Transactions on Audio, Speech, and Language Processing, vol. 20, no. 7,pp. 2065–2079, 2012.
[12] S. Malik and G. Enzner, “A variational bayesian learning approach for nonlinear acoustic echo control,” Signal Processing,IEEE Transactions on, vol. 61, pp. 5853–5867, 12 2013.
[13] H. Enzinger, K. Freiberger, G. Kubin, and C. Vogel, “Fast timedomain volterra filtering,” in 2016 50th Asilomar Conference on Signals, Systems and Computers, 2016, pp. 225–228.
[14] A. Guerin, G. Faucon, and R. Le Bouquin-Jeannes, “Nonlinear acoustic echo cancellation based on volterra filters,” IEEE Transactions on Speech and Audio Processing, vol. 11, no. 6, pp. 672–683, 2003.
[15] F. Kuech and W. Kellermann, “A novel multidelay adaptive algorithm for volterra filters in diagonal coordinate representation nonlinear acoustic echo cancellation example],” in 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. 2, 2004, pp. ii–869.
[16] S. Malik and G. Enzner, “Fourier expansion of hammerstein models for nonlinear acoustic system identification,” in 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2011, pp. 85–88.
[17] A. Schwarz, C. Hofmann, and W. Kellermann, “Combined nonlinear echo cancellation and residual echo suppression,” in Speech Communication; 11. ITG Symposium, 2014, pp. 1–4.
[18] C. M. Lee, J. W. Shin, and N. S. Kim, “Dnn-based residual echo suppression,” in INTERSPEECH, 2015.
[19] T. V. Huynh, “A new method for a nonlinear acoustic echo cancellation system,” 2017.
[20] H. Zhang and D. Wang, “Deep learning for acoustic echo cancellation in noisy and double-talk scenarios,” 09 2018, pp. 3239–3243.
[21] G. Carbajal, R. Serizel, E. Vincent, and E. Humbert, “Multipleinput neural network-based residual echo suppression,” in 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2018, pp. 231–235.
[22] G. Carbajal, R. Serizel, E. Vincent, and E. Humbert, “Joint dnnbased multichannel reduction of acoustic echo, reverberation and noise,” 2019.
[23] Q. Lei, H. Chen, J. Hou, L. Chen, and L. Dai, “Deep neural network based regression approach for acoustic echo cancellation,”in Proceedings of the 2019 4th International Conference on Multimedia Systems and Signal Processing, ser. ICMSSP 2019. NewYork, NY, USA: Association for Computing Machinery, 2019, p.94–98.
[24] F. Kuech, E. Mabande, and G. Enzner, “State-space architecture of the partitioned-block-based acoustic echo controller,” in 2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2014, pp. 1295–1299.
[25] “Alsa-project,” Website, visited on February 19th 2020. [Online].Available: https://alsa-project.org/wiki/Main Page
[26] “python-sounddevice,” Website, visited on February 19th 2020.[Online]. Available: https://python-sounddevice.readthedocs.io/en/0.3.15/
[27] J. S. Garofolo, L. F. Lamel, W. M. Fisher, J. G. Fiscus, D. S. Pallett, and N. L. Dahlgren, “Darpa timit acoustic phonetic continuous speech corpus cdrom,” 1993.
[28] D. B. Paul and J. M. Baker, “The design for the wall street journalbased csr corpus,” in Proceedings of the Workshop on Speech and Natural Language, ser. HLT ’91. Stroudsburg, PA, USA: Association for Computational Linguistics, 1992, pp. 357–362.
[29] “SpeechRecognition – a library for performing speech recognition, with support for several engines and apis, online and offline.” Website, 2018, visited on March 25th 2020. [Online].Available: https://pypi.org/project/SpeechRecognition/
[30] “Speex-dsp,” Website, visited on February 19th 2020. [Online].Available: https://github.com/xiongyihui/speexdsp-python
[31] J. . Soo and K. K. Pang, “Multidelay block frequency domain adaptive filter,” IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 38, no. 2, pp. 373–376, 1990.