回声消除(Acoustic Echo Cancellation)中遇到的几个常见问题思考
什么才是好的回声消除效果
个人的理解:好的回声消除算法,要满足两个条件:一个是回声确实被消除了,另外一个是麦克风采集到音频信号不能被消除,常见的就是人的声音信号。这个算法只是提供了一种方法,具体的产品,要根据产品的外形,使用场景和做参数调试的。同样使用一种算法,笔者对比过市面上不少产品,性能差距的不是一点的大啊。
回声消除的基本流程
回声消除的流程一般是这样的:获取远端的信号能量信息,获取近端的信号能量信息,两者信号做一个决策,当近端信号的能量大于一定阀值的情况下,默认是需要采集音频信号,这个时候要把回声消除的因子降到最低,同样,当近端信号能量小于一定的阀值的情况下,默认是采集的是回声信号,这个时候要加大回声信号的消除。后面就是使用NLP来估算 最后针对消除回声后的信号,产生默认噪声,让信号听觉上比较舒服一些。

回声消除中的吞音问题
吞音问题也是回声消除中常见的问题,这个问题产生的根源是参考信号和输入信号的幅值不同导致算法参数不匹配造成的。想要做把这个调试好,需要调试算法的震荡因子和信号的阀值大小。这个问题,笔者也是花费了不少精力做了系统性的研究,具体的要做到什么水平,还要根据产品的场景需求进行细节的优化的。
回声消除中的时延问题
做回声消除的时候,参考信号一般和录音信号之间有一个时间差的,回声消除就是依靠这个时间差来进行回声消除的,所以,这个时延的计算特别好重要。这个时延,是有三个部分组成的,一个是获取的参考信号到输出的时间,另外一个是空气中传播的时间,还有一个是录入到软件计算的时间。这三个时间,一般是空气中传播的时间最长,其它两个时间的延时稍微在空气中传播的时间加一些时间就行了。严格的就使用时间戳测一下,这个是比较科学的。现在的算法对延时的处理,一般包含两种,一个是需要用户填写的固定延时,另外一个是算法可以自动计算出来的延时。笔者两个 都用过,具体的哪种好坏,这个要和你的使用场景有关系的,要根据你的使用场景做选择的。
回声消除中的远端信号检测机制
回声消除中一个重要的因子就是对远端参考信号的采集。这里面有两种方法:一种是通过软件直接采集播放的音频数据,作为参考音频。另外一种是把播放的声音通过麦克风采集进来做比对,通过可调电阻,把两个信号的大小调节的误差在一定范围呢。这两种效果,笔者测试出来是第二种的效果好好一些,因为这样可以把参考信号调节的和输入信号幅度差距很小,回声消除的效果自然会很好了。
回声消除问题总结
回声消除是一个非常古老的课题,也是一个非常难缠的问题。因为,它涉及到的东西非常多,有声学的,有算法,有结构的,还有芯片的。想要把它参数调试好,除了有先进的算法,还需要针对具体的产品做参数调优和系统优化。这条路漫漫啊,一点一滴的死磕吧。
回声消除(Acoustic Echo Cancellation)中遇到的几个常见问题思考的更多相关文章
- 声学回声消除(Acoustic Echo Cancellation)
回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声.一些回声是必要的,比如剧院里的音乐回声以及延迟时间较短的房间回声:而大多数回声会造成负面影响,比如在有线或者无线通信时重复听到自 ...
- 论文翻译:2018_Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios
论文地址:深度学习用于噪音和双语场景下的回声消除 博客地址:https://www.cnblogs.com/LXP-Never/p/14210359.html 摘要 传统的声学回声消除(AEC)通过使 ...
- 论文翻译:2020_Generative Adversarial Network based Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-5.pdf 基于GAN的回声消除 摘要 生成对抗网络(GANs)已成为语音增强( ...
- 论文翻译:2020_Attention Wave-U-Net for Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-10.pdf Attention Wave-U-Net 的回声消除 摘要 提出了 ...
- 论文翻译:2020_A Robust and Cascaded Acoustic Echo Cancellation Based on Deep Learning
论文地址:https://indico2.conference4me.psnc.pl/event/35/contributions/3364/attachments/777/815/Thu-1-10- ...
- 论文翻译:2021_Semi-Blind Source Separation for Nonlinear Acoustic Echo Cancellation
论文地址:https://ieeexplore.ieee.org/abstract/document/9357975/ 基于半盲源分离的非线性回声消除 摘要: 当使用非线性自适应滤波器时,数值模型与实 ...
- 论文翻译:2021_ICASSP 2021 ACOUSTIC ECHO CANCELLATION CHALLENGE: INTEGRATED ADAPTIVE ECHO CANCELLATION WITH TIME ALIGNMENT AND DEEP LEARNING-BASED RESIDUAL ECHO PLUS NOISE SUPPRESSION
论文地址:https://ieeexplore.ieee.org/abstract/document/9414462 ICASSP 2021声学回声消除挑战:结合时间对准的自适应回声消除和基于深度学习 ...
- 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION
论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...
- 论文翻译:2021_论文翻译:2018_F-T-LSTM based Complex Network for Joint Acoustic Echo Cancellation and Speech Enhancement
论文地址:https://arxiv.53yu.com/abs/2106.07577 基于 F-T-LSTM 复杂网络的联合声学回声消除和语音增强 摘要 随着对音频通信和在线会议的需求日益增加,在包括 ...
- BSS Audio® Introduces Full-Bandwidth Acoustic Echo Cancellation Algorithm for Soundweb London Conferencing Processors
BSS Audio® Introduces Full-Bandwidth Acoustic Echo Cancellation Algorithm for Soundweb London Confer ...
随机推荐
- 在K8S中,Pod亲和性概念是什么?
在Kubernetes(简称K8S)中,Pod亲和性和反亲和性(Affinity and Anti-Affinity)是集群调度策略的重要组成部分,它们用于控制Pod如何与节点或其他Pod相对应地放置 ...
- ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记
任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentControll ...
- 架构设计理念&模型
理念 今天我们还需要关注 DDD 吗?https://www.infoq.cn/article/should-we-focus-on-ddd 事件风暴:https://en.wikipedia.org ...
- CF1010C Border 题解
题目传送门 前置知识 最大公约数 | 裴蜀定理 简化题意 给定一个长度为 \(n\) 的序列 \(a\),求 \((\sum\limits_{i=1}^{n}d_ia_i) \bmod k\) 一共会 ...
- AIR32F103(十二) 搭载 AIR32F103CBT6 的Bluepill核心板
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- Swoole从入门到入土(1)——入坑
入坑一个话题,总得有入坑的理由.有好多话题可供选择,但是思来想去,对于PHPer进阶与其急着去掌握一门新的语言,匆忙地踏足一个新的知识体系,还不如先把php圈子的技能点攒齐了. 话说Swoole诞生之 ...
- Java集合框架学习(十四) Iterator接口详解
Iterator接口介绍 public interface Iterator<E> iterator 用于迭代集合类型对象,例如: HashMap, ArrayList, LinkedLi ...
- python第一章pta习题总结
chapter 1 一.选择判断部分 1.高级语言程序要被机器执行,只有用解释器来解释执行.(F) 计算机高级语言按程序的执行方式可以分为编译型和解释型两种. 执行方式 跨平台 特点 缺点 代表语言 ...
- flutter——android报错Manifest merger failed : Attribute application@allowBackup value=(false)
与这个https://www.cnblogs.com/MaiJiangDou/p/13848658.html 报错类似. 报错: Manifest merger failed : Attribute ...
- day03--vi和vim快捷方式及操作系统目录介绍
1.编辑命令vi vim是vi的增强版 提高编程的效率 1.vi命令模式信息 命令模式: 可实现很多特殊功能操作 不能输入任何内容 编辑模式: 可编辑内容信息 底行模式:可以输入特殊的命令信息 wq保 ...