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.am
和configure.in
,这里就不详细解释他们直接的关联,直接给出如何操作生成makefile
。
具体操作步骤如下:
1. 执行aclocal
,产生aclocal.m4
文件
aclocal
aclocal是个perl脚本程序,
根据configure.in
文件的内容,自动生成aclocal.m4
文件。而aclocal.m4
文件中,包含了生成configure
文件所必须的宏。
2. 执行autoconf
,生成configure
文件
autoconf
autoconf
会根据configure.in
和aclocal.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