Webrtc 回音消除 一
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 回音消除 一相关推荐
- webrtc回声消除线程android,android WebRTC 示例demo源码(回音消除)
[实例简介] 有相关文档和测试demo,回音消除等处理,学习WebRTC.回音消除的同学可以好好参考 [实例截图] [核心代码] /* * Copyright (c) 2013 The WebRTC ...
- android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...
好久没写文章了,其实是想记录一下自己在Android开发的成长历程.谈到音视频这块,对于新手来说刚接触到这一块,那是非常非常的恶心~我自己弄这一块也是从头开始,在 网上也翻阅了无数的资料.浏览了无数的 ...
- android 电话回音消除,智能门铃中可视对讲的回音消除
原标题:智能门铃中可视对讲的回音消除 智能家居市场火爆已久,无论是大厂家.还是小品牌都在其中奋战,比较常见的智能家居有插座.门锁.音箱等,这些产品的竞争早已白热化,而在硝烟四起的智能家居领域,智能门铃 ...
- android speex AEC 回音消除
android speex AEC 回音消除. 有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要. 现在主流的回音消除手段有android自带a ...
- 论android等平台回音消除解决方案
来源 http://www.qttaudio.com/android-aec.html 回声消除介绍 http://www.baike.com/wiki/%E5%9B%9E%E9%9F%B3%E6%B ...
- 智能门铃中可视对讲的回音消除
智能家居市场火爆已久,无论是大厂家.还是小品牌都在其中奋战,比较常见的智能家居有插座.门锁.音箱等,这些产品的竞争早已白热化,而在硝烟四起的智能家居领域,智能门铃却异军突起,初现锋芒.今年初,亚马逊才 ...
- 回音消除原理解析及Android应用
标签(空格分隔): Android Echo-Cancellation 什么是回音 回音分为两种: 声学回音(Acoustic Echo) 线路回音(Line Echo) 目前我们只讨论声学回音:声学 ...
- 即时通讯音视频开发(十):实时语音通讯的回音消除技术详解
前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...
- python 回声程序_一种回声消除系统及回音消除方法与流程
本发明涉及通信技术领域,具体涉及一种回声消除系统及回音消除方法. 背景技术: 回声消除器通常由滤波器和算法组成,根据具体应用和性能要求的不同可以有多种选择. 滤波器有FIR(有限长度冲激晌应)滤波器和 ...
最新文章
- 又发现一个关于R文件丢失的问题
- 天锋w2019_不知道为什么那么多人喜欢三星W2019,直到入手这款天锋W2019手机
- ECSHOP批量添加商品到购物车
- 盘点关于IDEA的几个调试的实用技巧
- P5494-[模板]线段树分裂
- $router VS $route
- 【LeetCode笔记】253. 会议室 II(Java、偏数学)
- 重置mysql+密码_MySQL重置root密码的几种方法(windows+Linux)
- qq收不到oracle邮件,腾讯企业邮箱发送邮件失败
- bzoj1211: prufer序列 | [HNOI2004]树的计数
- “我们的边缘计算技术点,可能超前了业界一点”
- Microsoft Virtual Lab Use Guide
- nyoj 8 一种排序(用vector,sort,不用set)
- 小结SpringMVC(一)
- torch随机数 manual_seed
- 如何将pdf转换成txt破解版
- 桌面窗口管理器和csrss导致Windows的GPU和内存占用过高而卡顿
- 移动硬盘提示文件或目录损坏且无法读取怎么办
- 证明题【安于现状还是振翅飞往远方】
- (十二)苏世民:我的经验和教训:苏世民带领黑石走向巅峰的十大管理原则
热门文章
- 河南科技学院教务管理系统服务器,河南科技学院教务管理系统:http://jwc.hist.edu.cn...
- torch.sequeeze 和 torch.unsequeeze 的用法
- latex表格水平垂直居中
- 关于结构化,半结构化,非结构化数据的理解
- EOS智能合约开发系列(六): eosio.token
- 一名IT界“老”技术人关于学习与成长的分享,受益!
- 数据库大作业 openGauss程序设计
- 无线电视服务器主机名,电视服务器主机名怎么填
- 利用C语言写一个U盘小偷程序
- 张赐荣 | 浅谈 UIAutomation 自动化技术在读屏软件中的应用