回声消除(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 ...
随机推荐
- (C语言)课后题之计算器
#include <stdio.h> void main() { //定义两个算术变量,四个运算结果变量 int a,b,sum,sub,mul,mod; double div; prin ...
- docker 安装的jenkins如何执行宿主机的shell启动jar包
最近在用docker做自动化部署的时候遇到一个问题,就是用docker装的jenkins可以通过映射执行宿主机脚本.但是,却无法通过shell脚本启动宿主机jar包.经排查最终用以下方案完美解决. 一 ...
- Linux输出转换命令 xargs
一.基本用法 xargs命令的作用,是将标准输入转为命令行参数. 原因:大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数 如下面 echo 不接受标准输出做参 ...
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(上)
第 7 章 高级主题 7.1 缓存 缓存是一种通过存储资源的备份,在请求时返回资源备份的技术.ASP.NET Core 支持多种形式的缓存,既支持基于 HTTP 的缓存,也支持内存缓存和分布式缓存,还 ...
- 教你用Rust实现Smpp协议
本文分享自华为云社区<华为云短信服务教你用Rust实现Smpp协议>,作者: 张俭. 协议概述 SMPP(Short Message Peer-to-Peer)协议起源于90年代,最初由A ...
- NVME(学习笔记一)—概述
NVMe概述 NVMe是一个针对基于PCIe的固态硬盘的高性能的.可扩展的主机控制器接口. NVMe的显著特征是提供多个队列来处理I/O命令.单个NVMe设备支持多达64K个I/O 队列,每个I/O队 ...
- test-02-java 单元测试框架 junit5 入门介绍
拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息 ...
- Ubuntu在无网络环境下,用离线源apt-get安装软件
步骤概要如下: 1.假设目标安装的是服务器A,需先准备一台正常环境,且操作系统版本与A一致的服务器B: 2.用apt-get在服务器B上下载需要安装的包,并用dpkg-scanpackages依赖打包 ...
- Idea 本人开发常用几款插件
先说 idea装插件 首先,进入插件安装界面: 标注 1:显示 IntelliJ IDEA 的插件分类, All plugins:显示 IntelliJ IDEA 支持的所有插件: Enabled:显 ...
- 记一次 .NET某列控连锁系统 崩溃分析
一:背景 1. 讲故事 过年喝了不少酒,脑子不灵光了,停了将近一个月没写博客,今天就当新年开工写一篇吧. 去年年初有位朋友找到我,说他们的系统会偶发性崩溃,在网上也发了不少帖子求助,没找到自己满意的答 ...