回声消除的原理和应用场景
摘要:如今,随着芯片技术和高带宽通讯的发展,开发人员能够在更加优越的语音通话体验上做文章,同时市场上对免提通话的需求也越来越高。然而免提通话系统往往需要能够应对各种干扰的考验。其中不可忽视的一种的干扰是扬声器回声麦克风场(Loudspeaker EchoMicphone System)中的声学回声。本文探讨通话过程中声学回声(Acoustic Echo)的产生原因,以及其基本声学回声消除(Acoustic Echo Cancellation)应用场景。
声学回声产生的原因:
一个VOIP通话的结构图如下:
当远端Far-end有说话者讲话时,声音会传到近端(Near-end)的扬声器,然后声音通过空间延时和传输延时
重新回到了远端。这样就造成了声学回声。近端到远端的流程也有同样声学回声,在此仅仅描述近端的流程。
为了抑制声学回声,首先可以从空间传播路径做文章,包括近端用户使用耳麦和声场范围比较小或者定向的扬声器,通过物理的方式阻断回声的传播录音。另外一种方法就是在近端麦克风输入信号中采用AEC模块或者AES模块来抑制回声。如果要使用在免提的通话场景,第二种方式是必须的。当然最近还遇到了一些耳机麦克风比较灵敏的情况也需要AEC处理。
回声消除模块的基本原理就是使用Far-end的信号做相应的估计,在近端的时候找出这部分信号然后像美化照片中的抠图一样将它抠掉——这是我能想到最简单易懂的解释。另外回声消除的效果会受到噪声和近端语音的影响,可以吧噪声近端语音看成是污染源,干扰了”抠图“效果。
下面抽象一下上图,有:
以后的关于AEC算法的分析研究如无特殊说明,将使用该图画定义的符号。主要符号意义:
一般而言建模时假设物理回声信道是线性的,那么回声产生的公式为:
近端信号为:
那么AEC的目的就是1)使用估计回声信道模拟出物理信道
,然后获得相应的回声
:
2)将回声从近端信号减去获得没有回声的误差信号:
本文不做实际程序和算法的分析,仅仅介绍AEC的使用场景和原理。以后的文章将深入分析AEC算法及其表现。
相关文章
- Postgresql源码(68)virtualxid锁的原理和应用场景
- 五、应用编排与管理:核心原理
- 一文读懂视觉传感器的工作原理、应用和选型
- Chem Rev|人工智能和机器学习算法在结晶研究中的应用
- 计算机组成原理:2. 计算机的发展及应用
- 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
- 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 源码分析 )
- 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中检测信号原理 )
- 大前端时代|移动应用动态研发模式及原理机制解析
- Redis高可用高性能缓存的应用系列1 - 数据类型以及底层结构和原理
- mysql主从同步原理及应用场景示例详解
- Oracle 索引原理及其应用(oracle索引原理)
- Oracle数据库触发器类型及其应用(oracle触发器类型)
- Oracle数据库锁定原理与应用(oracle的lock)
- 深入了解Linux用户态自旋锁原理及应用技巧(linux用户态自旋锁)
- 深入解析:64位Linux系统调用优势与应用(64位linux系统调用)
- 深入剖析Linux网络套接字的原理与应用(linux网络套接字)
- 基于Linux的题库开发与应用(linux题库)
- aphoreLinux:信号量管理原理及其应用(linuxsem)
- 深入解析ptree命令在Linux操作系统中的应用与原理(ptreelinux)
- 详解 Redis:原理、特性及应用场景(redis原理详解)
- 探究Linux的可加载模块:原理和应用(linux可加载模块)
- Redis并发计数器实现原理和应用场景(redis计数器并发)
- 极速应用利用Redis加速电脑计算性能(电脑redis)
- MySQL 自动增加列实现原理及应用场景分析(mysql中列自动增加)
- python之wxPython应用实例