移植WebRTC中的VAD

WebRTC

WebRTC是(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术.
它实现了基于网页的音视频通话。

源码下载

  • 根据官网介绍,可以使用gclient下载webrtc的代码了,根据官网的方式下载会出现很多问题,比如说网络需要翻墙,网络不稳定等,而且下载代码的体积比较大,大约有10G,大头都是android的…..

  • 国内有人进行了整理,不能跟google官网同步,下载网址

  • 源码中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()    // 人声核心处理程序

参考 

猜你喜欢

转载自blog.csdn.net/z2066411585/article/details/80246163