首页 > 编程语言 >WEBRTC回声消除-AECM算法源码解析之参数解析

WEBRTC回声消除-AECM算法源码解析之参数解析

时间:2023-09-27 15:25:23浏览次数:41  
标签:int16 回声 aec 源码 参数 AECM 解析 aecm 消除

一 概述   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吧,原理搞清楚是关键。切勿只浮在表面。    

标签:int16,回声,aec,源码,参数,AECM,解析,aecm,消除
From: https://www.cnblogs.com/dylancao/p/17732784.html

相关文章

  • DeepLabV3+网络模型与源码解读
    源码链接:链接:https://pan.baidu.com/s/1GkUM9WiGpzUHuFgBe1t2rA提取码:57zrorhttps://github.com/VainF/DeepLabV3Plus-Pytorch以上两个连接是一样的,只不过百度盘中的包含voc数据。 环境安装:先装pytorch&torchvision,再安装requirments.txt其他依赖 报错处理:#error:ra......
  • Java泛型简明解析:易懂但全面的介绍
    引言Java泛型的背景和作用Java泛型是Java编程语言中的一个特性,引入泛型的目的是为了增强代码的类型安全性和重用性。在没有泛型之前,Java中的集合类(如ArrayList、HashMap等)只能存储Object类型的对象,这使得在使用集合时需要进行强制类型转换,容易出现类型错误。泛型的背景:在Java5版本......
  • 解析Prompt自然语言处理的关键因素
    随着人工智能的飞速发展,自然语言处理技术日新月异,各种模型层出不穷。然而,作为一名关注该领域的观察者,我不得不坦率地说,您的模型可能并没有完全理解所给的prompt。在此,我将着重讨论这一现象,并对“prompt”的含义和重要性进行深入剖析。首先,我们来解析“prompt”这个词。在英文中,“p......
  • 手机直播源码,Android 简单的弹框
    手机直播源码,Android简单的弹框   privatestaticString[]items=newString[]{      "拍照",      "从相册中选择",  }; AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this)        .setTitle(......
  • 基于web房屋租售管理系统-计算机毕业设计源码+LW文档
    摘 要当今,在这个信息化的时代,人们的生活越来越便利。因此如果运用java技术建设房屋租售管理系统系统使其与互联网有效的结合起来,实现房屋租售管理系统系统的网络化,为学校师生乃至社会提供更为全面、便捷的服务。根据本系统的研究现状和发展方向,首先系统从需求分析、结构设计、数......
  • 针对直播痛点的关键技术解析——首帧秒开、清晰度、流畅度
    ​一、直播体验升级的一把利刃——「畅直播」良好的直播体验一直是直播产品留住用户的关键流量密码。国内直播行业已呈现一片红海,各直播产品的用户增长速度在逐渐放缓,行业内竞争进入白热化阶段,急需通过在直播体验上的精细化运营来保障平台营收。如针对重大活动、头部主播进行......
  • UnityGLTF插件加载模型时,emissiveFactor解析报错
    项目中遇到使用 UnityGLTF插件加载GLTF模型时报错,如下图: 根据报错信息,我们找到GLTF文件中,第[五]个材质的描述:{"name":"11_-_Default木质长廊1.bmp_alpha","occlusionTexture":{"index":0,"texCoord":1},......
  • UE4 源码剖析
    第一章对象系统1.1对象系统-类型系统构建(UClass,UFunction,UEnum,UStruct,FProperty)1.2对象系统-RPC函数1.3对象系统-Replicates属性1.4对象系统-Blueprint1.5对象系统-GC第2章网络模块2.1网络模块-跨平台的Socket2.x网络模块-CharacterMove......
  • Nginx配置后无法解析PHP问题
    Nginx配置后无法解析PHP问题#Formoreinformationonconfiguration,see:#  *OfficialEnglishDocumentation:http://nginx.org/en/docs/#  *OfficialRussianDocumentation:http://nginx.org/ru/docs/ usernginx;worker_processesauto;error_log/var/l......
  • MongoDB 解析:灵活文档数据库与 Docker Compose 部署
    MongoDB是一款开源、高性能的NoSQL数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于Yapi等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中,我们将深入探讨MongoDB的特性,并详细阐述如何使用DockerCompose轻松部署Mon......