码迷,mamicode.com
首页 > 编程语言 > 详细

webRTC的VAD算法的研究

时间:2019-08-08 00:20:43      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:image   重点   好的   cal   算法   sam   alc   rtc   范围   

摘要:

     在上一篇的文档中,分析unimrcp中vad算法的诸多弊端,但是有没有一种更好的算法来取代呢。目前有两种方式 1. GMM   2. DNN。

    其中鼎鼎大名的WebRTC VAD就是采用了GMM 算法来完成voice active dector。今天笔者重点介绍WebRTC VAD算法。在后面的文章中,

    我们在刨析DNN在VAD的中应用。下面的章节中,将介绍WebRTC的检测原理。

 

原理:

    首先呢,我们要了解一下人声和乐器的频谱范围,下图是音频的频谱。

   技术图片

                                     本图来源于网络

    根据音频的频谱划分了6个子带,80Hz~250Hz,250Hz~500Hz,500Hz~1K,1K~2K,2K~3K,3K~4K,分别计算出每个子带的特征。

 

步骤:

    第一步:降频

      WebRTC 支持8kHz 16kHz 32kHz 48kHz的音频,但是WebRTC首先都将16kHz 32kHz 48kHz首先降频到8kHz,再进行处理。

   

 1         int16_t speech_nb[240];  // 30 ms in 8 kHz.
 2         const size_t kFrameLen10ms = (size_t) (fs / 100);
 3         const size_t kFrameLen10ms8khz = 80;
 4         size_t num_10ms_frames = frame_length / kFrameLen10ms;
 5         int i = 0;
 6         for (i = 0; i < num_10ms_frames; i++) {
 7             resampleData(audio_frame, fs, kFrameLen10ms, &speech_nb[i * kFrameLen10ms8khz],
 8                          8000);
 9         }
10         size_t new_frame_length = frame_length * 8000 / fs;
11         // Do VAD on an 8 kHz signal
12         vad = WebRtcVad_CalcVad8khz(self, speech_nb, new_frame_length);

 

    

    

   

   

  

 

   

 

    

  

 

webRTC的VAD算法的研究

标签:image   重点   好的   cal   算法   sam   alc   rtc   范围   

原文地址:https://www.cnblogs.com/damizhou/p/11318668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!