论文翻译:2021_Acoustic Echo Cancellation with Cross-Domain Learning

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475阅读目录

  • 摘要:
  • 1 引言
  • 2 提出的系统
  • 3 实验
  • 4 结果
  • 5 结论
  • 6 参考文献

论文地址:https://graz.pure.elsevier.com/en/publications/acoustic-echo-cancellation-with-cross-domain-learning

具有跨域学习的声学回声消除

回到顶部### 摘要:

本文提出了跨域回声控制器(CDEC),提交给 Interspeech 2021 AEC-Challenge。该算法由三个构建块组成:(i) 时延补偿 (TDC) 模块,(ii) 基于频域块的声学回声消除器 (AEC),以及 (iii) 时域神经网络 (TD-NN)用作后处理器。我们的系统获得了 3.80 的整体 MOS 分数,而在 32 毫秒的系统延迟下仅使用了 210 万个参数。

**关键字:**声学回声消除、神经网络、残余回声消除

回到顶部### 1 引言

回声消除 (AEC) 在当今的 VoIP 语音通信和视频会议系统中发挥着重要作用。由于室内声学,在扬声器和耳机麦克风、听筒或任何其他用于语音通信的音频硬件之间会出现回声。根据房间的混响时间,声学回声可能会非常突出,甚至会显着降低语音清晰度和语音质量 [1]。这在免提场景中尤其是一个问题 [2]。因此,高效的 AEC 解决方案是可靠语音通信的重要组成部分。典型的 AEC 将扬声器和麦克风之间的回声脉冲响应 (EIR) 建模为线性 FIR 滤波器,并使用归一化最小均方 (NLMS) 算法 [3, 4] 自适应地调整该滤波器。许多实现需要语音活动检测器 (VAD) 在双方通话期间停止适应,即当近端和远端说话者同时说话时 [3,5]。更复杂的实现通过使用状态空间模型 [6] 或卡尔曼滤波器 [7] 来解释双方对话。然而,线性回声模型不能考虑回声路径中的非线性失真,或麦克风拾取的附加噪声。 SpeexDSP [8]、WebRTC [9] 或 PjSIP [10] 等商业 AEC 框架依赖于传统的非线性回声和噪声去除方法,例如 Wienerfilters [11]、Volterra 内核 [12] 或 Hammerstein 模型 [13]。

最近,已经提出神经网络用于非线性残余回声和噪声去除[14-19]。从深度学习的角度来看,这些任务可以看作是语音或音频源分离问题 [2,14,18-23]。尽管该研究领域近年来进展迅速 [24, 25],但大多数基于 NN 的说话人分离算法对计算的要求很高,没有因果关系,并且不能在实时应用中工作。能够进行实时处理的系统在逐帧的基础上运行。特别是,循环神经网络 (RNN),如门控循环单元 (GRU) [26] 或长短期记忆 (LSTM) [27] 网络用于模拟人类语音中的时间相关性,同时遵守实时典型 AEC 应用的约束 [2, 19, 28]。类似的架构 [29-31] 已应用于实时信号增强,作为对 Interspeech 2020 [32] 的深度噪声抑制挑战和 ICASSP AEC 挑战 [33] 的贡献。

本文介绍了我们对 Interspeech 2021 AEC-Challenge 的贡献,该挑战由三个级联模块组成:(i) 基于 PHAse 变换的广义互相关 (GCCPHAT) [4] 的时延补偿 (TDC) 模块,其中补偿近端扬声器和麦克风信号之间的延迟。 (ii) 一种频域状态空间块分区 AEC 算法 [6],它去除了线性回波分量。 (iii) 时域神经网络 (TD-NN),它可以同时去除非线性残余回声和附加噪声。我们将我们的系统称为跨域回声控制器 (CDEC),因为它同时在频域和时域中运行。我们模型的评估基于使用 ITU P.808 框架 [33] 的感知语音质量指标,该框架报告平均意见分数 (MOS)。此外,我们报告了其他指标,例如 MOSnet [34] 和 ERLE [35]。最后,我们还报告了我们的 CDEC 系统在每帧音频数据的 MAC 操作方面的计算复杂性。

回到顶部### 2 提出的系统

2.1 问题表述

在典型的 AEC 系统中,有两个输入信号可用: (i) 远端麦克风信号 x(t),由本地扬声器播放。 (ii) 近端麦克风信号 d(t),可描述为以下分量的叠加:

d(t)=x(t−Δt)∗h(t)+s(t)+n(t)+v(t)  (1)
d(t)=x\left(t-\Delta_{t}\right) * h(t)+s(t)+n(t)+v(t)  (1)

其中 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9LmljwlQ-1648529302429)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scNiRxZR-1648529302430)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0394.png?V=2.7.5)]Δt\Delta_{t}建模为滤波器权重中的前导零。然而,更实际的做法是在 AEC 之前明确补偿此延迟,以保持建模的 EIR 较短,从而节省计算资源。虽然这种延迟可能是未知的,但我们坚持通常在实时音频处理框架中做出的假设 [8-10]。特别是,我们假设延迟不超过1s,并且至少稳定10s。

我们采用 GCC-PHAT 算法 [4] 在频域中比较远端信号  Φ(l,k)=Φ(l,k)α+(1−α)X(l,k)D(l,k)∗  (2)

\Phi(l, k)=\Phi(l, k) \alpha+(1-\alpha) X(l, k) D(l, k)^{*}  (2)

其中  Δt=argmaxtF−1Φ(l)|Φ(l)|  (3)
\Delta_{t}=\underset{t}{\operatorname{argmax}} \mathcal{F}^{-1} \frac{\Phi(l)}{|\Phi(l)|}  (3)

其中[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZyu02RY-1648529302476)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ZcUciz2-1648529302477)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/BoldItalic/400/0078.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPSnWeb9-1648529302477)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eZJGzSdO-1648529302478)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0032.png?V=2.7.5)]2T2T 最新样本,即

x′(l)=x(t+n−2T)d′(l)=d(t+n−2T)  (4)
\begin{aligned}

&\boldsymbol{x}^{\prime}(l)=x(t+n-2 T) \

&\boldsymbol{d}^{\prime}(l)=d(t+n-2 T)  (4)

\end{aligned}

其中PP 个分区,即

Y(l,k)=∑p=0P−1X(l−p,k)W(p,k)e′(l)=d′(l)−F−1{Y(l)}  (5)
\begin{aligned}

Y(l, k) &=\sum_{p=0}^{P-1} X(l-p, k) W(p, k) \

e^{\prime}(l) &=\boldsymbol{d}{\prime}(l)-\mathcal{F}{-1}{\boldsymbol{Y}(l)}

\end{aligned}  (5)

其中  e(t+n−T)=e′(l,n+T)  (6)
e(t+n-T)=e^{\prime}(l, n+T)  (6)

其中,  w§=F−1{W§},w(p,n+T)=0W§←F{w§}  (7)
\begin{aligned}

\boldsymbol{w}§ &=\mathcal{F}^{-1}{\boldsymbol{W}§}, \

w(p, n+T) &=0 \

\boldsymbol{W}§ & \leftarrow \mathcal{F}{\boldsymbol{w}§}

\end{aligned}  (7)

其中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M60FFWr3-1648529302525)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0057.png?V=2.7.5)]W^(p,k)\hat{W}(p, k)作为阴影权重。算法 1 说明了这些权重是如何更新的。

论文翻译:2021_Acoustic Echo Cancellation with Cross-Domain Learning_第1张图片

阴影权重基于 ERLE   E(l)=10log10⁡∑k|D(l,k)|2∑k|E(l,k)|2E(l)=10log10⁡∑k|D(l,k)|2∑k|E(l,k)|2  (8)
\begin{gathered}

\mathcal{E}(l)=10 \log _{10} \frac{\sum_{k}|D(l, k)|^{2}}{\sum_{k}|E(l, k)|^{2}} \

\hat{\mathcal{E}}(l)=10 \log _{10} \frac{\sum_{k}|D(l, k)|^{2}}{\sum_{k}|\hat{E}(l, k)|^{2}}

\end{gathered}  (8)

其中[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNYTElau-1648529302585)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0046.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ks5h7mAd-1648529302585)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0053.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXphPRxl-1648529302586)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0078.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3N6PMd23-1648529302587)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0079.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avInbcRx-1648529302588)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-der1EsSX-1648529302589)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0065.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXDhehP6-1648529302589)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0048.png?V=2.7.5)]HH 个神经元的潜在表示。请注意,此 Conv1D 层使用过去 1600 个相应信号的样本,即它看到过去 100 毫秒音频数据的上下文。每个信号都通过即时层归一化单独归一化,以解决各个级别的变化。即时层归一化类似于标准层归一化[36]。该分支中的最后一个前馈 (FF) 层使用 softplus 激活函数,以提供不受约束的掩码。

论文翻译:2021_Acoustic Echo Cancellation with Cross-Domain Learning_第2张图片

图 2 中的下部分支说明了将掩码应用于潜在空间中的残差信号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HU8B2JsQ-1648529302591)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGTmDCqL-1648529302592)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)]d(t)>−40dBFSd(t)>-40 d B_{F S}的平均能量。否则信号被拒绝。

我们通过将干净的 WSJ0 数据 [37] 作为所需的近端语音 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qLAHoMQh-1648529302601)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0031.png?V=2.7.5)]12…36dB12 \ldots 36 dB之间的均匀分布中随机选择。噪声仅添加到模拟数据集中。

为了进一步提高鲁棒性并模拟各种传输效果,我们在模拟数据集的每个远端信号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJoflkII-1648529302605)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)]d(t)d(t)。我们将每个信号截断为 10 秒,以便能够将它们堆叠成批次进行训练。

3.3 CDEC训练

在训练期间,我们首先使用式2中的 GCCPHAT 估计批量延迟。 每 10 秒一次,即每个训练话语一次。接下来,我们从式5-8执行 AEC。输出回波模型   LSDR=10log10⁡∑ts(t)2∑t[s(t)−z(t)]2  (9)
\mathcal{L}_{\mathrm{SDR}}=10 \log _{10} \frac{\sum_{t} s(t){2}}{\sum_{t}[s(t)-z(t)]{2}}  (9)

而我们使用 ERLE 作为 FE 场景的损失函数,即

LERLE=10log10⁡∑td(t)2∑tz(t)2  (10)
\mathcal{L}_{\mathrm{ERLE}}=10 \log _{10} \frac{\sum_{t} d(t)^{2}}{\sum_{t} z(t)^{2}}  (10)

我们将总损失函数定义为

LERLE=−LSDR−λLERLE  (11)
\mathcal{L}_{\mathrm{ERLE}}=-\mathcal{L}_{\mathrm{SDR}}-\lambda \mathcal{L}_{\mathrm{ERLE}}  (11)

我们设置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sILakpD7-1648529302641)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0394.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cROWYi5j-1648529302641)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0066.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9NecrF5-1648529302642)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0032.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZPcb1bqE-1648529302643)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0078.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ru1xYVp-1648529302644)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0064.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6u6gvLJ-1648529302644)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0065.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cuSGNaCU-1648529302645)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0046.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6UHthbg-1648529302646)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/0053.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AacE4I3r-1648529302646)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Math/Italic/400/007A.png?V=2.7.5)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PqT10wik-1648529302649)(https://blog.csdn.net/2_7_5/fonts/HTML-CSS/TeX/png/Main/Regular/400/0032.png?V=2.7.5)]2T2T 个样本,相当于 32ms。由于所有三个模块都在相同的块上运行,因此 CDEC 系统的总延迟为 32 毫秒。

4.3 计算复杂度

CDEC 模型的计算复杂度在四核 i5 2.5Ghz 参考系统上进行了评估。特别是,我们使用矩阵/向量库 Eigen 和 FFT 库 FFTW [39] 使用 C++ 中的单精度参考实现测量了 CDEC 系统前向传递的单帧的执行时间。 TD-NN 系统使用 210 万个参数,而 AEC 使用

  • Java SE 第二讲(原生数据类型 Primitive Data Type) dcj3sjt126com java
    Java SE  第二讲: 1.   Windows: notepad, editplus, ultraedit, gvim Linux: vi, vim, gedit 2.   Java 中的数据类型分为两大类: 1)原生数据类型  (Primitive Data Type) 2)引用类型(对象类型)  (R
  • CGridView中实现批量删除 dcj3sjt126com PHPyii
    1,CGridView中的columns添加 array( 'selectableRows' => 2, 'footer' => '<button type="button" onclick="GetCheckbox();" style=&
  • Java中泛型的各种使用 dyy_gusi java泛型
    Java中的泛型的使用:1.普通的泛型使用 在使用类的时候后面的<>中的类型就是我们确定的类型。 public class MyClass1<T> {//此处定义的泛型是T private T var; public T getVar() { return var; } public void setVa
  • Web开发技术十年发展历程 gcq511120594 Web浏览器数据挖掘
    回顾web开发技术这十年发展历程: Ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
  • openSession()与getCurrentSession()区别: hetongfei javaDAOHibernate
    来自 http://blog.csdn.net/dy511/article/details/6166134 1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。 这里getCurrentSession本地事务(本地
  • 第一章 安装Nginx+Lua开发环境 jinnianshilongnian nginxluaopenresty
    首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒
  • HSQLDB In-Process方式访问内存数据库 liyonghui160com
        HSQLDB一大特色就是能够在内存中建立数据库,当然它也能将这些内存数据库保存到文件中以便实现真正的持久化。   先睹为快!   下面是一个In-Process方式访问内存数据库的代码示例:     下面代码需要引入hsqldb.jar包 (hsqldb-2.2.8)   import java.s
  • Java线程的5个使用技巧 pda158 java数据结构
    Java线程有哪些不太为人所知的技巧与用法?   萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常 工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。
  • 开发资源大整合:编程语言篇——JavaScript(1) shoothao JavaScript
    概述:本系列的资源整合来自于github中各个领域的大牛,来收藏你感兴趣的东西吧。     程序包管理器   管理javascript库并提供对这些库的快速使用与打包的服务。 Bower - 用于web的程序包管理。 component - 用于客户端的程序包管理,构建更好的web应用程序。 spm - 全新的静态的文件包管
  • 避免使用终结函数 vahoa.ma javajvmC++
    终结函数(finalizer)通常是不可预测的,常常也是很危险的,一般情况下不是必要的。使用终结函数会导致不稳定的行为、更差的性能,以及带来移植性问题。不要把终结函数当做C++中的析构函数(destructors)的对应物。       我自己总结了一下这一条的综合性结论是这样的: 1)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方