一 概述
  webrtc 针对回声问题一共开源了3种回声消除算法,分别为aec,aecm,以及aec3,其中aec是最早期的版本,在后续的更新中aec3的出现代替了aec在webrtc 中的地位,而aecm主要是针对计算能力较弱的移动端或是嵌入式设备而开发的,但同时也带来了它自己的劣势;本文主要介绍AECM算法的计算逻辑。后面会逐步分析aec和aec3的源码。
二 参数解析
  参数一
延时参数:delay,通过测试发现,这个参数对回声消除的效果影响很大。这个到底要怎么选取呢?是和实际环境有关系吗?通过实际测试发现,这个和实际的环境延时有关系,实际环境中,是需要根据实际的设备延时来填写这个的,太大和太小了都会有消除不干净。下图是不同delay的参数测试的结果,可以看出,太大或者太小会导致回声消除不干净。

 
参数二,回声消除等级
aecm->echoMode = config.echoMode;
这个参数决定回声消除的等级,同时也决定了吞音的等级,等级越高吞音越明显,同时回声消除也越好。这个参数非常重要。下面是这个参数不同的效果展示:

 
参数三 aecm->farEnergyVAD
这个参数这里没用到,在aec的里面,反而是用得着的。
参数四 aecm->currentVADValue
这个参数是标志是否探测到声音的。
 
三 函数解析
 
初始化函数:
int32_t WebRtcAecm_Init(void *aecmInst, int32_t sampFreq)
初始化采样率和回声消除参数
获取参考信号的函数
int32_t WebRtcAecm_BufferFarend(void *aecmInst, const int16_t *farend, int16_t nrOfSamples)
该函数是获取参考信号的值的
回声消除的主函数
int32_t WebRtcAecm_Process(void *aecmInst, const int16_t *nearendNoisy, const int16_t *nearendClean, int16_t *out, int16_t nrOfSamples, int16_t msInSndCardBuf)
 
四 总结
 
  aecm里面由于涉及到太多的定点转换,很难窥探到该算法的原理了。想要了解该算法的原理,还是依靠分析aec,后面再详细分析一下aec吧,原理搞清楚是关键。切勿只浮在表面。
 
 

WEBRTC回声消除-AECM算法源码解析之参数解析的更多相关文章

  1. springMVC源码分析--RequestParamMethodArgumentResolver参数解析器(三)

    之前两篇博客springMVC源码分析--HandlerMethodArgumentResolver参数解析器(一)和springMVC源码解析--HandlerMethodArgumentResol ...

  2. springMVC源码分析--HandlerMethodArgumentResolver参数解析器(一)

    HandlerMethodArgumentResolver是用来为处理器解析参数的,主要用在HandlerMethod中,每个Resolver对应一种类型的参数,其实现类特别的多. HandlerMe ...

  3. springMVC源码解析--HandlerMethodArgumentResolverComposite参数解析器集合(二)

    上一篇博客springMVC源码分析--HandlerMethodArgumentResolver参数解析器(一)中我们已经介绍了参数解析相关的东西,并且也提到了HandlerMethodArgume ...

  4. springMVC源码分析--HttpMessageConverter参数read操作(二)

    上一篇博客springMVC源码分析--HttpMessageConverter数据转化(一)中我们简单介绍了一下HttpMessageConverter接口提供的几个方法,主要有以下几个方法: (1 ...

  5. zookeeper集群搭建及Leader选举算法源码解析

    第一章.zookeeper概述 一.zookeeper 简介 zookeeper 是一个开源的分布式应用程序协调服务器,是 Hadoop 的重要组件. zooKeeper 是一个分布式的,开放源码的分 ...

  6. Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结

    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结 1.1. 原理,主要使用像素模糊后的差别会变小1 1.2. 具体流程1 1.3. 提升性能 可以使用采样法即可..1 ...

  7. mahout算法源码分析之Collaborative Filtering with ALS-WR (四)评价和推荐

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 首先来总结一下 mahout算法源码分析之Collaborative Filtering with AL ...

  8. mahout算法源码分析之Collaborative Filtering with ALS-WR拓展篇

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 额,好吧,心头的一块石头总算是放下了.关于Collaborative Filtering with AL ...

  9. FFmpeg的HEVC解码器源码简单分析:解析器(Parser)部分

    ===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...

  10. mahout算法源码分析之Collaborative Filtering with ALS-WR 并行思路

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. mahout算法源码分析之Collaborative Filtering with ALS-WR 这个算 ...

随机推荐

  1. Linux文件IO之一 [补档-2023-07-21]

    Linux文件IO 8-1C标准库IO函数的工作流程 ​ 使用fopen函数打开一个文件,之后会返回一个FILE* fp指针,fp指针指向一个结构体,这个结构体是c 标准io库中的一个结构体,这个结构 ...

  2. DevToys(开发工具) v1.0.2.1

    从事开发工作的朋友们千万不要错过了!今天为大家带来的这款软件可以说是开发人员的必备工具,它就是DevToys软件!DevToys中包含了许多强大实用的开发工具,能够帮助用户将程序开发变得更加简单大大降 ...

  3. 基于Hyper-V搭建免费桌面云

    Hyper-V 是 Microsoft 的硬件虚拟化产品. 它用于创建并运行计算机的软件版本,称为"虚拟机". 每个虚拟机都像一台完整的计算机一样运行操作系统和程序. 如果需要计算 ...

  4. Flutter聊天室|dart+flutter仿微信App界面|flutter聊天实例

    一.项目概述 flutter-chatroom是采用基于flutter+dart+chewie+image_picker+photo_view等技术跨端开发仿微信app界面聊天室项目.实现了消息发送/ ...

  5. WDMyCloud的ssh登陆密码错误

    是一个困扰很久的小问题,以至于无法ssh登陆到NAS服务器进行操作. 之前配置是可以直接使用root用户ssh登陆到服务器的,可是后来突然就不行了,无论输入啥密码都是报错: Permission de ...

  6. DNS转发器·

    实验介绍:dns转发器的作用 当客户端向dns1询问域名对应IP时,如果dns1不是该区域的授权域名服务器,则无法解析域名 dns1会根据转发器转发给dns3,如果dns3能解析,则返回给dns1. ...

  7. JS leetcode 两数之和 II - 输入有序数组 题解分析

    壹 ❀ 引 我在JS leetcode 两数之和 解答思路分析一文中首次解决两数之和等于目标值的问题,那么今天遇到的是两数之和的升级版,题目为leetcode167. 两数之和 II - 输入有序数组 ...

  8. ARM 中SP,LR,PC寄存器的作用

    ARM中所有寄存器都是32位的.这里以cortex-a7内核的MX6ULL处理器为例,按照功能可以分为两类:运行需要寄存器(程序正常运行所需要的,比如变量暂存,pc制作等,总共43个),系统管理控制寄 ...

  9. Java 递归的方式将list集合的某一字段拼接单个String

    场景介绍 要将list 集合中的某一个字段合并成一个字符串,并且要用符号 "|" 分割开每个拼接后的字段. 一个例子胜于一切的文字表达,拼接后的结果如下 str1|str2|str ...

  10. 基于keras的残差网络

    1 前言 理论上,网络层数越深,拟合效果越好.但是,层数加深也会导致梯度消失或梯度爆炸现象产生.当网络层数已经过深时,深层网络表现为"恒等映射".实践表明,神经网络对残差的学习比对 ...