论文翻译: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.

posted @ 2022-01-11 10:11  建人类命运共同体  阅读(806)  评论(0编辑  收藏  举报
返回顶端