WebRTC是google开源的一个免插件实时视频通信技术,其分为web开发和native开发;目前支持chrome,firefox,android,ios,opera,edge。是一个真正意义上的跨平台免插件实时视频通信技术。但是因为我国著名的长城,要下载整个webRTC非常困难。

本文主要是webRTC的native层语音处理的代码架构和对一个native层语音算法测试程序的梳理。native层的一些语音算法可以用于语音识别前处理。如果想只使用native层的语音处理算法(aec,aecm,agc,ns,vad等),那么可以选择安装下面的代码库,有几点要说明一下:

  • 该代码库是基于Linux系统的,我的安装环境是ubuntu16.04
  • 这个代码和最新的webRTC并不是同步的,晚个半年是很正常的
git clone git://anongit.freedesktop.org/pulseaudio/webrtc-audio-processing

目前下载版本为0.3,整个下载包只有6M字节。下载目录为webrtc-audio-processing

 

编译过程如下:

源码里面没有直接的makefile,但是它有Makefile.amconfigure.in,这里就不详细解释他们直接的关联,直接给出如何操作生成makefile

具体操作步骤如下:

1. 执行aclocal,产生aclocal.m4文件

aclocal 
  • aclocal是个perl脚本程序,根据configure.in文件的内容,自动生成aclocal.m4文件。而aclocal.m4文件中,包含了生成configure文件所必须的宏。

2. 执行autoconf,生成configure文件

autoconf
  • autoconf会根据configure.inaclocal.m4文件,生成configure文件。

3. 执行automake命令,产生Makefile.in

automake --add-missing
  • automake会根据Makefile.am文件产生一些文件,包含最重要的Makefile.in。前面所生成的configure,会根据Makefile.in文件,来生成最终的Makefile文件。

4. 执行configure命令,生成Makefile文件

这样,就产生了编译所需要的Makefile文件。运行make,即可编译。

./configure

make

NOTE:在linux下执行automake时候出错:


$ automake --add-missing
....
configure.in:18: required file `build/ltmain.sh' not found
-------------------------------------------------------------------------

解决方案(libtoolize配置即可):

$libtoolize --version

$libtoolize --automake --copy --debug --force

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐