什么才是好的回声消除效果

  个人的理解:好的回声消除算法,要满足两个条件:一个是回声确实被消除了,另外一个是麦克风采集到音频信号不能被消除,常见的就是人的声音信号。这个算法只是提供了一种方法,具体的产品,要根据产品的外形,使用场景和做参数调试的。同样使用一种算法,笔者对比过市面上不少产品,性能差距的不是一点的大啊。

回声消除的基本流程

  回声消除的流程一般是这样的:获取远端的信号能量信息,获取近端的信号能量信息,两者信号做一个决策,当近端信号的能量大于一定阀值的情况下,默认是需要采集音频信号,这个时候要把回声消除的因子降到最低,同样,当近端信号能量小于一定的阀值的情况下,默认是采集的是回声信号,这个时候要加大回声信号的消除。后面就是使用NLP来估算 最后针对消除回声后的信号,产生默认噪声,让信号听觉上比较舒服一些。

回声消除中的吞音问题

 吞音问题也是回声消除中常见的问题,这个问题产生的根源是参考信号和输入信号的幅值不同导致算法参数不匹配造成的。想要做把这个调试好,需要调试算法的震荡因子和信号的阀值大小。这个问题,笔者也是花费了不少精力做了系统性的研究,具体的要做到什么水平,还要根据产品的场景需求进行细节的优化的。

回声消除中的时延问题

  做回声消除的时候,参考信号一般和录音信号之间有一个时间差的,回声消除就是依靠这个时间差来进行回声消除的,所以,这个时延的计算特别好重要。这个时延,是有三个部分组成的,一个是获取的参考信号到输出的时间,另外一个是空气中传播的时间,还有一个是录入到软件计算的时间。这三个时间,一般是空气中传播的时间最长,其它两个时间的延时稍微在空气中传播的时间加一些时间就行了。严格的就使用时间戳测一下,这个是比较科学的。现在的算法对延时的处理,一般包含两种,一个是需要用户填写的固定延时,另外一个是算法可以自动计算出来的延时。笔者两个 都用过,具体的哪种好坏,这个要和你的使用场景有关系的,要根据你的使用场景做选择的。

回声消除中的远端信号检测机制

  回声消除中一个重要的因子就是对远端参考信号的采集。这里面有两种方法:一种是通过软件直接采集播放的音频数据,作为参考音频。另外一种是把播放的声音通过麦克风采集进来做比对,通过可调电阻,把两个信号的大小调节的误差在一定范围呢。这两种效果,笔者测试出来是第二种的效果好好一些,因为这样可以把参考信号调节的和输入信号幅度差距很小,回声消除的效果自然会很好了。

回声消除问题总结

  回声消除是一个非常古老的课题,也是一个非常难缠的问题。因为,它涉及到的东西非常多,有声学的,有算法,有结构的,还有芯片的。想要把它参数调试好,除了有先进的算法,还需要针对具体的产品做参数调优和系统优化。这条路漫漫啊,一点一滴的死磕吧。

回声消除(Acoustic Echo Cancellation)中遇到的几个常见问题思考的更多相关文章

  1. 声学回声消除(Acoustic Echo Cancellation)

    回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声.一些回声是必要的,比如剧院里的音乐回声以及延迟时间较短的房间回声:而大多数回声会造成负面影响,比如在有线或者无线通信时重复听到自 ...

  2. 论文翻译:2018_Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios

    论文地址:深度学习用于噪音和双语场景下的回声消除 博客地址:https://www.cnblogs.com/LXP-Never/p/14210359.html 摘要 传统的声学回声消除(AEC)通过使 ...

  3. 论文翻译:2020_Generative Adversarial Network based Acoustic Echo Cancellation

    论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-5.pdf 基于GAN的回声消除 摘要 生成对抗网络(GANs)已成为语音增强( ...

  4. 论文翻译:2020_Attention Wave-U-Net for Acoustic Echo Cancellation

    论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-10.pdf Attention Wave-U-Net 的回声消除 摘要 提出了 ...

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

  6. 论文翻译:2021_Semi-Blind Source Separation for Nonlinear Acoustic Echo Cancellation

    论文地址:https://ieeexplore.ieee.org/abstract/document/9357975/ 基于半盲源分离的非线性回声消除 摘要: 当使用非线性自适应滤波器时,数值模型与实 ...

  7. 论文翻译: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声学回声消除挑战:结合时间对准的自适应回声消除和基于深度学习 ...

  8. 论文翻译: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 声学回声消除的目标和拓扑选 ...

  9. 论文翻译: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 复杂网络的联合声学回声消除和语音增强 摘要 随着对音频通信和在线会议的需求日益增加,在包括 ...

  10. 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 ...

随机推荐

  1. Android 开机流程介绍

    目录 一.目的 二.环境 三.相关概念 3.1 Android平台架构 3.2 Android启动架构 3.3 zImage 3.4 RAMDISK 3.5 RC文件 四.详细设计 4.1 Boot ...

  2. 高精度模板 大数乘以小数 vector实现

    vector<int> Mul(vector<int>& A, int &B) { vector<int>C; int T = 0; for (in ...

  3. MYSQL 3 DAY

    目录 MySQL day03 1.约束 1.1.唯一性约束(unique) 1.2.主键约束 1.3.外键约束 2.存储引擎?(整个内容属于了解内容) 2.1.完整的建表语句 2.2.什么是存储引擎呢 ...

  4. SpringBoot 2.6 和 JUnit 5 的测试用例注解和排序方式

    JUnit5 的测试注解 在JUnit5中, 不再使用 @RunWith 注解, 改为使用 @ExtendWith(SpringExtension.class) @ExtendWith(SpringE ...

  5. 51单片机封装库HML_FwLib_STC89/STC11

    HML_FwLib_STC89/11 项目地址 https://github.com/MCU-ZHISHAN-IoT/HML_FwLib_STC89 https://github.com/MCU-ZH ...

  6. Java I/O 教程(十) ObjectOutputStream和ObjectInputStream

    ObjectOutputStream ObjectOutputStream用于往输出流中写入原始类型和Java对象. 类定义 public class ObjectOutputStream exten ...

  7. nginx添加站点

    1.修改配置文件 vim /usr/local/nginx/conf/nginx.conf 添加一个server节点: server {         listen          81;     ...

  8. 《系列一》-- 5、xml配置文件解析之[自定义]命名空间[标签]的解析

    阅读之前要注意的东西:本文就是主打流水账式的源码阅读,主导的是一个参考,主要内容需要看官自己去源码中验证.全系列文章基于 spring 源码 5.x 版本. Spring源码阅读系列--全局目录.md ...

  9. 团队协作如何确保项目Node版本的一致性?

    前言 想必大家在工作过程中都遇到过node版本带来的各种各样的问题,对于团队协作项目,你不能保证所有人的本地node版本都相同,所以在项目文档中往往会写上以下内容: 为与线上环境一致,请保证以下版本 ...

  10. locals()用法

    views.py代码 def test(request): if request.method == 'GET': return render(request,'test.html') elif re ...