webrtc 音频VAD 检测

来源:互联网 发布:把mac里的文件拷到u盘 编辑:程序博客网 时间:2024/06/08 16:24

摘要:本文主要讲述VAD算法的提取和一些原理
参考文章:
http://billhoo.blog.51cto.com/2337751/1213801
http://blog.csdn.net/ssdzdk/article/details/42876011

1.模块提取

a. 代码目录,具体工程可以到百度云下载
这里写图片描述

b.把所有vad目录下的代码提出来,再把signal_processing下的代码提取出来编成静态库作为引用。

c. 工程在这里下载

2.代码解析

vad算法原理:该VAD的算法主要用了2 个 models 来对语音建模,并且分成噪声类和语音类。通过比较似然比的方法来确定是否是语音。其中有三个模式可以选择,每个模式算法是一样的,只是相关阈值不同。GMM的更新方法是梯度法,并没有使用常见的EM算法。这是因为其数据量不够大,难以准确估计种类,另外也节省部分运算量。

1、 将信号通过分频降到8kHz。在这个频带计算噪声和语音的特征做VAD判决。

//检验音频帧长度,只支持10/20/30ms  if (WebRtcVad_ValidRateAndFrameLength(fs, frame_length) != 0) {    return -1;  }  if (fs == 48000) {      vad = WebRtcVad_CalcVad48khz(self, audio_frame, frame_length);   }else if (fs == 32000) {//重采样    vad = WebRtcVad_CalcVad32khz(self, audio_frame, frame_length);  } else if (fs == 16000) {    vad = WebRtcVad_CalcVad16khz(self, audio_frame, frame_length);  } else if (fs == 8000) {    vad = WebRtcVad_CalcVad8khz(self, audio_frame, frame_length);  }

2、WebRtcVad_CalculateFeatures函数计算特征,其特征包括6个频带的log能量,分别是80-250、250-500、500-1kHZ、1kHz-2kHz、2kHz -3kHz、3kHz -4kHz。使用分频方法计算这些特征。这六个特征放在向量feature_vector中,使用2维度的GMM模型来建模。
3、GmmProbability 通过高斯混合模型分别计算语音和非语音的概率,使用假设检验的方法确定信号的类型
GMM的噪声和语音模型如下:

   p(xk|z,rk)={1/sqrt(2*pi*sita^2)} * exp{ - (xk-uz) ^2/(2 * sita ^2 )} 
  1. 首先通过高斯模型计算假设检验中的H0和H1(C代码是用h0_test和h1_test表示),通过门限判决vadflag;
  2. 然后更新概率计算所需要的语音均值(speech_means)、噪声的均值(noise_means)、语音方差(speech_stds) 和噪声方差(noise_stds)。

DTX/CNG

该功能主要依靠:vad、DTX/非连续传输 、SID 静音描述silence insertion description 、CNG(舒适噪音生产)

编码器调用DTX判断 当背景噪声发生改变,编码器发送SID,否则不发送,SID结构如图所示,第一个字节必须是能量信息,后面的字节可选,写入量化的发射系数,WebRtcCng_Encode函数就是生成SID的。
这里写图片描述
图片:http://www.docin.com/p-906243283.html

     

做一些记录,向过世的雷神致敬!!愿天堂没有代码!!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 痔疮引起的肛裂怎么办 痔疮手术后伤口不愈合怎么办 痔疮手术后伤口痒怎么办 肛瘘手术十五天后伤口疼怎么办 leep刀后hpv还是阳性怎么办 结肠息肉钳除后怎么办 痔疮手术后排便困难怎么办 住院未结账跑了怎么办 来月经痔疮犯了怎么办 安保压不下宫缩怎么办 肛周脓肿术后假性愈合怎么办 肛门的皱褶肿了怎么办 1月婴儿排便困难怎么办 吃完辣的痔疮肿了怎么办 肛裂怎么办兰州来医博.相信 胎儿脐带绕颈一周怎么办 郑大一附院怎么办合作医疗 痔疮包不消怎么办很疼 痔疮内扎手术后直肠窄小怎么办 2个月大的宝宝鼻塞怎么办 宝宝鼻屎比较深怎么办 来例假痔疮犯了怎么办 微医爽约过一次怎么办 炸完的薯条软了怎么办 学信网号码换了怎么办 学信网注册换手机了怎么办 学信网手机号码已被注册怎么办 学信网手机号码被注册了怎么办 去英国留学不会做饭怎么办 小米陶瓷刀钝了怎么办 橱柜的缝擦不到怎么办 悠悠球上油早了怎么办 买了没有esp的车怎么办 饥荒海难狗来了怎么办 饥荒海难拖网掉水里了怎么办 饥荒遇到了猪人怎么办 饥荒龙蝇赖在家不走怎么办 饥荒海难崩档了怎么办 gta5全是rpf文件怎么办 饥荒没有海象人营地怎么办 饥荒海滩猎犬来了怎么办