语音发生检测VAD
2017-10-12 12:52
1161 查看
webrtc 的各个音频处理都很值得大家学习,
不说个人感觉最牛的aec, 就这个vad就很好!
基本实现思想是 通过把信号分为 6个频带,对各个子频带进行 噪声和语音 的高斯模型特征判决!
对不同的信号频率均降频到8k hz,内部对 16、24、32、48、做了分频
如果需要做不同信号频率的检测,需要单独做分频到8k。
判决参数均可调整:
个人新增了一个具有明显辨识度的语音信号参数:
Custom as 4
// Mode 0, Quality.
static const int16_t kOverHangMax1Q[3] = { 8, 4, 3 };
static const int16_t kOverHangMax2Q[3] = { 14, 7, 5 };
static const int16_t kLocalThresholdQ[3] = { 24, 21, 24 };
static const int16_t kGlobalThresholdQ[3] = { 57, 48, 57 };
// Mode 1, Low bitrate.
static const int16_t kOverHangMax1LBR[3] = { 8, 4, 3 };
static const int16_t kOverHangMax2LBR[3] = { 14, 7, 5 };
static const int16_t kLocalThresholdLBR[3] = { 37, 32, 37 };
static const int16_t kGlobalThresholdLBR[3] = { 100, 80, 100 };
// Mode 2, Aggressive.
static const int16_t kOverHangMax1AGG[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2AGG[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdAGG[3] = { 82, 78, 82 };
static const int16_t kGlobalThresholdAGG[3] = { 285, 260, 285 };
// Mode 3, Very aggressive.
static const int16_t kOverHangMax1VAG[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2VAG[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdVAG[3] = { 94, 94, 94 };
static const int16_t kGlobalThresholdVAG[3] = { 1100, 1050, 1100 };
// Mode 4, custom.
static const int16_t kOverHangMax1Cus[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2Cus[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdCus[3] = { 96, 96, 96 };
static const int16_t kGlobalThresholdCus[3] = { 1300, 1200, 1300 };
单独抽稀的vad模块源码: https://github.com/dreamno23/vad
Demo for iOS 地址:https://github.com/dreamno23/VADTest
不说个人感觉最牛的aec, 就这个vad就很好!
基本实现思想是 通过把信号分为 6个频带,对各个子频带进行 噪声和语音 的高斯模型特征判决!
对不同的信号频率均降频到8k hz,内部对 16、24、32、48、做了分频
如果需要做不同信号频率的检测,需要单独做分频到8k。
判决参数均可调整:
个人新增了一个具有明显辨识度的语音信号参数:
Custom as 4
// Mode 0, Quality.
static const int16_t kOverHangMax1Q[3] = { 8, 4, 3 };
static const int16_t kOverHangMax2Q[3] = { 14, 7, 5 };
static const int16_t kLocalThresholdQ[3] = { 24, 21, 24 };
static const int16_t kGlobalThresholdQ[3] = { 57, 48, 57 };
// Mode 1, Low bitrate.
static const int16_t kOverHangMax1LBR[3] = { 8, 4, 3 };
static const int16_t kOverHangMax2LBR[3] = { 14, 7, 5 };
static const int16_t kLocalThresholdLBR[3] = { 37, 32, 37 };
static const int16_t kGlobalThresholdLBR[3] = { 100, 80, 100 };
// Mode 2, Aggressive.
static const int16_t kOverHangMax1AGG[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2AGG[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdAGG[3] = { 82, 78, 82 };
static const int16_t kGlobalThresholdAGG[3] = { 285, 260, 285 };
// Mode 3, Very aggressive.
static const int16_t kOverHangMax1VAG[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2VAG[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdVAG[3] = { 94, 94, 94 };
static const int16_t kGlobalThresholdVAG[3] = { 1100, 1050, 1100 };
// Mode 4, custom.
static const int16_t kOverHangMax1Cus[3] = { 6, 3, 2 };
static const int16_t kOverHangMax2Cus[3] = { 9, 5, 3 };
static const int16_t kLocalThresholdCus[3] = { 96, 96, 96 };
static const int16_t kGlobalThresholdCus[3] = { 1300, 1200, 1300 };
单独抽稀的vad模块源码: https://github.com/dreamno23/vad
Demo for iOS 地址:https://github.com/dreamno23/VADTest
相关文章推荐
- webrtcvad python——语音端点检测
- 语音激活检测(VAD)--前向神经网络方法(Alex)
- 强噪声下的语音检测 VAD
- 语音端点检测(voice activity detection,VAD)
- MMC 检测到此管理单元发生一个错误,建议你关闭并重新启动MMC
- 在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 1 - 执行读/写操作期间检测到 I/O 错误。)
- 语音识别之端点检测
- VAD实现 (一) --- 读取语音数据
- DDos攻击的一些领域知识——(流量模型针对稳定业务比较有效)不稳定业务采用流量成本的检测算法,攻击发生的时候网络中各个协议的占比发生了明显的变化
- 解决触发器检测到活动的独立的事务处理, 已经回退、表发生了变化, 触发器/函数不能读它
- 视线语音鼠标 6 肤色点检测
- 视线语音鼠标 7 人脸检测-形态学运算
- 详解语音处理检测技术中的热点——端点检测、降噪和压缩
- Zabbix监控之检测程序日志中错误发生的次数
- 提纲挈领webrtc之vad检测
- mt2503 [ShapeEngine]泰语音标字符发生偏移
- 语音端点检测(2):单参数双门限法
- SQl Server2008发生 “SQl Server检测到基于一致性的逻辑I/O 错误 校验 和不正确”的解决办法
- SQL2005,MMC检测到此管理单元发生一个错误 总之win2003企业版+sp2,我受够了
- 计数器——MMC检测到此管理单元发生一个错误