首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有简单的VAD实现?

有没有简单的VAD实现?
EN

Stack Overflow用户
提问于 2011-03-20 15:07:25
回答 3查看 13.8K关注 0票数 15

我正在寻找一些用于VAD (语音活动检测)的C/C++代码。

基本上,我的应用程序是从设备读取PCM帧。我想知道用户什么时候在说话。我不是在寻找任何语音识别算法,而只是为了语音检测。

我想知道用户什么时候说话,什么时候说完:

bool计数( size_t *isVAD,bool count);

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-20 16:04:28

Sphinx和Freeswitch项目中有开源实现。我认为它们都是基于能量的探测器,不需要任何类型的模型。

Sphinx 4 (Java,但移植到C/C++应该很容易)

PocketSphinx

Freeswitch

票数 8
EN

Stack Overflow用户

发布于 2016-04-25 01:29:51

谷歌的开源WebRTC代码有一个用C编写的VAD模块。它使用高斯混合模型,通常比简单的能量阈值检测器更有效,特别是在具有动态水平和背景噪声类型的情况下。在我的经验中,它也比吉拉德在their comment中提到的Moattar-Homayounpour更有效。

VAD代码是非常非常大的WebRTC存储库的一部分,但是很容易将其提取出来并自行编译。例如webrtcvad Python wrapper includes just the VAD C source

WebRTC VAD API非常易于使用。首先,音频必须是单声道16位PCM,采样率为8 KHz、16 KHz或32 KHz。您发送到VAD的每个音频帧的长度必须为10、20或30毫秒。

以下是一个示例的概要,该示例假设audio_frame是10毫秒(320字节)的音频,频率为16000 Hz:

代码语言:javascript
运行
复制
#include "webrtc/common_audio/vad/include/webrtc_vad.h"
// ...
VadInst *vad;
WebRtcVad_Create(&vad);
WebRtcVad_Init(vad);
int is_voiced = WebRtcVad_Process(vad, 16000, audio_frame, 160);
票数 21
EN

Stack Overflow用户

发布于 2015-01-16 00:00:33

那么LibVAD呢?www.libvad.com

看起来这就是你所描述的。

披露:我是LibVAD背后的开发人员

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5367214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档