Webrtc的Aec模块调试回音消除已经快一个月了,今天有了一个小的突破,终于Demo可以成功消除回音了!!!



步奏:


//*********************************************************************************//

1、首先下载webrtc源码提取Aec模块,编写Android.mk或Makefile编译不多说

//*********************************************************************************//

//*********************************************************************************//

2、编写Demo程序单独调试Aec接口。

a:可以验证接口

b:有了成功的Demo做样板再往设备移植不会出现茫然的调试

//*********************************************************************************//

//*********************************************************************************//

3、Demo程序调试成功,往真实设备移植

a:要考虑真实设备的speaker和mic数据延时(延时值是AEC的核心,移动端最重要的值就是这个aecdelay)

b:要考虑speaker和mic线程的同步

c:要考虑speaker和mic存储队列要对齐(这个队列也是很有讲究的,维护队列长度是个调试值,大于此维护长度干嘛,小于此维护长干嘛)

d:要考虑到数据类型转换(char、float和short)

e:要考虑网络传输而来的speaker数据质量差的问题(这是一个很难得攻克点,需要添加队列通过算法排序speaker数据)

//*********************************************************************************//

下面记录一下近期调试的一些心得


//*********************************************************************************//

AEC函数描述:

//*********************************************************************************//

//储存远端数据即speak数据,也可以成为回声的原始数据(far_frame)

EWebRtcAEC_BufferFarend(handleAec, far_frame, NN)

//*********************************************************************************//

//*********************************************************************************//

//回声消除,near_frame为mic数据(double talk包含回声和录入声音)aecout_frame为输出数据

//near_frame中的回音能量应该远小于far_frame和录入声音的能量,才能正常消除。否则Aec无法精确判断谁是回音谁是录入声音,从而把录入声音一起消除

//aecdelay为speaker和mic的延迟时间

1、当设备为固定硬件平台aecdelay可以为固定值(比如我们的设备端)

2、当设备不固定,则aecdelay需要通过EWebRtcAEC_GetDelayMetrics计算(比如我们的客户端在手机上,手机硬件平台不固定)

EWebRtcAEC_Process(handleAec,near_frame,1, aecout_frame,NN,aecdelay,0);

//*********************************************************************************//

//*********************************************************************************//

//参数描述:median为平均值,std为方差,delay的取值主要来源于median

EWebRtcAEC_GetDelayMetrics(handleAecDelay,median,std,frac)

//*********************************************************************************//

Webrtc 回音消除 一相关推荐

  1. webrtc回声消除线程android,android WebRTC 示例demo源码(回音消除)

    [实例简介] 有相关文档和测试demo,回音消除等处理,学习WebRTC.回音消除的同学可以好好参考 [实例截图] [核心代码] /* * Copyright (c) 2013 The WebRTC ...

  2. android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...

    好久没写文章了,其实是想记录一下自己在Android开发的成长历程.谈到音视频这块,对于新手来说刚接触到这一块,那是非常非常的恶心~我自己弄这一块也是从头开始,在 网上也翻阅了无数的资料.浏览了无数的 ...

  3. android 电话回音消除,智能门铃中可视对讲的回音消除

    原标题:智能门铃中可视对讲的回音消除 智能家居市场火爆已久,无论是大厂家.还是小品牌都在其中奋战,比较常见的智能家居有插座.门锁.音箱等,这些产品的竞争早已白热化,而在硝烟四起的智能家居领域,智能门铃 ...

  4. android speex AEC 回音消除

    android speex AEC 回音消除. 有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要. 现在主流的回音消除手段有android自带a ...

  5. 论android等平台回音消除解决方案

    来源 http://www.qttaudio.com/android-aec.html 回声消除介绍 http://www.baike.com/wiki/%E5%9B%9E%E9%9F%B3%E6%B ...

  6. 智能门铃中可视对讲的回音消除

    智能家居市场火爆已久,无论是大厂家.还是小品牌都在其中奋战,比较常见的智能家居有插座.门锁.音箱等,这些产品的竞争早已白热化,而在硝烟四起的智能家居领域,智能门铃却异军突起,初现锋芒.今年初,亚马逊才 ...

  7. 回音消除原理解析及Android应用

    标签(空格分隔): Android Echo-Cancellation 什么是回音 回音分为两种: 声学回音(Acoustic Echo) 线路回音(Line Echo) 目前我们只讨论声学回音:声学 ...

  8. 即时通讯音视频开发(十):实时语音通讯的回音消除技术详解

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  9. python 回声程序_一种回声消除系统及回音消除方法与流程

    本发明涉及通信技术领域,具体涉及一种回声消除系统及回音消除方法. 背景技术: 回声消除器通常由滤波器和算法组成,根据具体应用和性能要求的不同可以有多种选择. 滤波器有FIR(有限长度冲激晌应)滤波器和 ...

最新文章

  1. 又发现一个关于R文件丢失的问题
  2. 天锋w2019_不知道为什么那么多人喜欢三星W2019,直到入手这款天锋W2019手机
  3. ECSHOP批量添加商品到购物车
  4. 盘点关于IDEA的几个调试的实用技巧
  5. P5494-[模板]线段树分裂
  6. $router VS $route
  7. 【LeetCode笔记】253. 会议室 II(Java、偏数学)
  8. 重置mysql+密码_MySQL重置root密码的几种方法(windows+Linux)
  9. qq收不到oracle邮件,腾讯企业邮箱发送邮件失败
  10. bzoj1211: prufer序列 | [HNOI2004]树的计数
  11. “我们的边缘计算技术点,可能超前了业界一点”
  12. Microsoft Virtual Lab Use Guide
  13. nyoj 8 一种排序(用vector,sort,不用set)
  14. 小结SpringMVC(一)
  15. torch随机数 manual_seed
  16. 如何将pdf转换成txt破解版
  17. 桌面窗口管理器和csrss导致Windows的GPU和内存占用过高而卡顿
  18. 移动硬盘提示文件或目录损坏且无法读取怎么办
  19. 证明题【安于现状还是振翅飞往远方】
  20. (十二)苏世民:我的经验和教训:苏世民带领黑石走向巅峰的十大管理原则

热门文章

  1. 河南科技学院教务管理系统服务器,河南科技学院教务管理系统:http://jwc.hist.edu.cn...
  2. torch.sequeeze 和 torch.unsequeeze 的用法
  3. latex表格水平垂直居中
  4. 关于结构化,半结构化,非结构化数据的理解
  5. EOS智能合约开发系列(六): eosio.token
  6. 一名IT界“老”技术人关于学习与成长的分享,受益!
  7. 数据库大作业 openGauss程序设计
  8. 无线电视服务器主机名,电视服务器主机名怎么填
  9. 利用C语言写一个U盘小偷程序
  10. 张赐荣 | 浅谈 UIAutomation 自动化技术在读屏软件中的应用