一、简介

本人想单独编译并使用WebRTC的音频回声消除模块,奈何技术有限,于是在百度的海洋里大海捞针,发现了https://www.cnblogs.com/mod109/p/5827918.html#!comments这篇博文已经做了相关工作,不甚感激!

但是我的需求是在window系统下进行编译,而该博主是基于其它平台做的项目(由于本人太菜,看不出是啥平台),于是本篇的内容就是基于https://www.cnblogs.com/mod109/p/5827918.html#!comments这篇博文的工作移植到windows系统上并运行成功。

二、工具

Windows10+VScode+xmake

三、具体流程

  • 1、删除不需要的文件,并将WebRtcAudioTest.cpp中主函数名 int _tmain(int argc, _TCHAR* argv[])改为int main(int argc, char* argv[])

    由于我使用VScode,而原项目是vs2010的工程,因此我不需要stdafx.h和stdafx.c这两个文件,先删掉这两个文件,并在WebRtcAudioTest.cpp文件中将#include"stdafx.h"注释掉

    注:理论上使用vs2010打开这个项目能编译成功,但是我尝试一番后,还是运行报错,所以在vs2010上运行此项目未成功。
  • 2、写个最基础的xmake.lua文件,直接进行编译
点击查看代码
target("main")
set_kind("binary")
add_files("/*.cpp")
add_includedirs("/")
set_targetdir("./output")

编译后你会发现有一堆报错,仔细看就会发现是一些函数未定义,如下



然后只需要将未定义的函数名在vscode中全局搜索一下,看看是在哪个xxx.c文件中定义的,在xmake.lua文件中添加上这个xxx.c文件就可以了

  • 3、重复步骤2,直到编译成功!

四、结语

该方法虽然有点繁琐,但是有效啊,千万不要在编译的时候一下子把项目中webrtc库里的所有.c文件都带上,本人刚开始就是这么干的,结果各种报错,搞了好多天都没搞好。

编译成功后就可以愉快的进行WebRTC中的回声消除、增益、去噪三个模块进行测试了!

附录:

下边附上步骤2中所需要的所有.c文件

点击查看代码
target("main")
set_kind("binary")
add_files("/*.cpp")
add_files("webrtc/modules/audio_processing/aec/**.c",
"webrtc/modules/audio_processing/agc/**.c",
"webrtc/modules/audio_processing/ns/noise_suppression.c",
"webrtc/modules/audio_processing/ns/ns_core.c",
"webrtc/modules/audio_processing/utility/**.c",
"webrtc/common_audio/signal_processing/splitting_filter.c",
"webrtc/common_audio/signal_processing/resample_by_2.c",
"webrtc/common_audio/signal_processing/division_operations.c",
"webrtc/common_audio/signal_processing/copy_set_operations.c",
"webrtc/common_audio/signal_processing/dot_product_with_scale.c",
"webrtc/common_audio/signal_processing/spl_sqrt.c",
"webrtc/common_audio/signal_processing/randomization_functions.c",
"webrtc/system_wrappers/source/cpu_features.cc")
add_includedirs("/")
set_targetdir("./output")

下载

可在该原博客中下载项目代码:https://www.cnblogs.com/mod109/p/5827918.html#!comments

win10系统单独编译和使用WebRTC的回声消除(AEC)、音频增益(AGC)、去噪(NS)模块的更多相关文章

  1. webRTC中回声消除(AEC)模块编译时aec_rdft.c文件报错:

    webRTC中回声消除(AEC)模块编译时aec_rdft.c文件报错. 原因是: 局部变量ip跟全局变量冲突的问题,可以将局部变量重新命名一下,就可以通过编译了. aec_rdft.c修改以后文件代 ...

  2. 单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)

    单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件) webrtc的音频处理模块分为降噪ns,回音消除aec,回声 ...

  3. 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件)

    单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 说实话很不想写这篇文章,因为这和我一贯推崇的最好全部编译并使用w ...

  4. 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件)

    webrtc的音频处理模块分为降噪ns和nsx,回音消除aec,回声控制acem,音频增益agc,静音检测部分.另外webrtc已经封装好了一套音频处理模块APM,如果不是有特殊必要,使用者如果要用到 ...

  5. webrtc 的回声抵消(aec、aecm)算法简介(转)

    webrtc 的回声抵消(aec.aecm)算法简介        webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) ...

  6. 拓展 - Webrtc 的回声抵消(aec、aecm)算法简介

    webrtc 的回声抵消(aec.aecm)算法简介 原文链接:丢失.不好意思        webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS( ...

  7. Win10系统下编译GDAL1.9.2版本

    环境说明: 1.Win10企业版.64位: 2.VS2012旗舰版: 3.GDAL1.9.2 GADL编译 1.解压GDAL压缩包至F:\GDAL\gdal-1.9.2: 2.设置GDAL编译后安装目 ...

  8. 关于电脑重装win10系统导致编译环境失效(jdk)

    年前换了固态,于是重装了系统发现之前装在非系统盘的jdk1.8配置过系统环境后仍然不能正常使用的问题,在犹豫一会后选择了重装jdk, 由于之前用的是win7在环境配置上是 变量值内加;即可自行分行,但 ...

  9. Win10系统下编译GEOS3.6.2

    环境说明 1.Win10专业版.64位: 2.VS2012旗舰版: 3.cmake-3.9.0.64位: 资源准备 GEOS管网(http://trac.osgeo.org/geos)下载3.4.3版 ...

  10. Win10系统下编译OSG3.4

    环境说明 1.Win10专业版.64位: 2.VS2012旗舰版:QT5.2.0: 3.cmake-3.9.0.64位: 资源准备 1.OSG3.4源码包 http://trac.opensceneg ...

随机推荐

  1. Maven进阶学习指南

    前言 当我们在开发项目时,有时需要用到外部依赖组件,例如当我们需要Json序列化的时候需要用到FastJson组件,我们可以通过下载对应jar包加载到项目中.但当一个大的项目同时需要依赖各种各样的外部 ...

  2. PowerBuilder从入坑到放弃(二)编码规范

    前言 上一篇我们从0到1用pb开发了一个helloworld程序,并成功将开发的程序编译打包并且制作了安装包. 程序员最讨厌的莫过于写文档和别人不写注释. 不知道大家会不会和我一样,在找bug时,有段 ...

  3. Spring Loaded代码热更新实践和原理分析

    1.引言 开发者在编码效率和快速迭代中的痛点场景包括: 修改代码后,需要频繁重启应用,导致开发效率低下: 实时调试时,不能立即看到代码修改的结果: 大型项目中,重启的时间成本较高. 针对这些问题,本文 ...

  4. 理解ffmpeg

    ffmpeg是一个完整的.跨平台的音频和视频录制.转换和流媒体解决方案. 它的官网:https://ffmpeg.org/ 这里有一份中文的文档:https://ffmpeg.p2hp.com/ ff ...

  5. IIS部署的应用无法自动注册到Nacos

    问题描述: 自己开发的某系统后台API接入nacos,在IIS上部署无法自动注册到nacos服务列表中.其根本原因是网站处于休眠状态,当某请求访问该网站时,网站被激活,nacos注册成功. 但这块有个 ...

  6. 正确处理 CSV 文件的引号和逗号

    CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便. 作为开发,我们经常面临导数据的问题,特别是后台系统,产品或者运营的同事常常会提 ...

  7. 【最新】Delphi XE7 绿色版下载,亲测可用!

    最后更新时间 2017-12-05. 本文整理自2ccc盒子iny的帖子 → 链接到原贴 破解 → 链接 一.绿色版介绍 绿色版除了不包含 FastReport(RAD Studio自带的FastRe ...

  8. 自用 .net C# CSV文件写入读取工具类

    using System.Data; using System.IO; using System.Linq; using System.Text; using System.Text.RegularE ...

  9. python 镜像

    https://pypi.douban.com/simple/   豆瓣源 pip install -i https://pypi.douban.com/simple/ pymysql # pymys ...

  10. Node: 使用nvm切换node版本

    软件下载 https://github.com/coreybutler/nvm-windows/releases/tag/1.1.7 解压并安装 双击程序一路安装即可.安装完成后,在控制台输入nvm出 ...