源文出处:https://blog.csdn.net/z2066411585/article/details/80246163
WebRTC
WebRTC是(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术.
它实现了基于网页的音视频通话。
源码下载
根据官网介绍,可以使用gclient下载webrtc的代码了,根据官网的方式下载会出现很多问题,比如说网络需要翻墙,网络不稳定等,而且下载代码的体积比较大,大约有10G,大头都是android的…..
国内有人进行了整理,不能跟google官网同步,下载网址
- git clone https://gitee.com/bluefoxah/webrtc.git
源码中VAD代码
- webrtc/common_audio/vad/
├── include
│ ├── vad.h
│ └── webrtc_vad.h
├── mock
│ └── mock_vad.h
├── vad.cc
├── vad_core.c
├── vad_core.h
├── vad_core_unittest.cc
├── vad_filterbank.c
├── vad_filterbank.h
├── vad_filterbank_unittest.cc
├── vad_gmm.c
├── vad_gmm.h
├── vad_gmm_unittest.cc
├── vad_sp.c
├── vad_sp.h
├── vad_sp_unittest.cc
├── vad_unittest.cc
├── vad_unittest.h
└── webrtc_vad.c
webrtc的vad检测代码比较简洁,核心代码只在三个文件中
- webrtc_vad.c 用户调用的API函数,使用vad一般只需要调用该里面的函数即可
- vad_core.c 是webrtc_vad.c 文件中函数的实现代码,也是vad最深层的核心代码
移植
由于webrtc 中采用C++编写的, vad中大部分源码基本采用C语言实现.主要移植webrtc_vad.c
- WebRtcVad_Init() // 初始化VAD,设置一些默认值
- WebRtcVad_set_mode() // 设置四种不同的模式,激进程度与数值大小正相关.可以根据实际的使用
- WebRtcVad_Process() // 人声核心处理程序