Iphone 任何简单的VAD实现?

Iphone 任何简单的VAD实现?,iphone,c++,c,audio,voice,Iphone,C++,C,Audio,Voice,我正在寻找一些用于VAD(语音活动检测)的C/C++代码 基本上,我的应用程序是从设备读取PCM帧。我想知道用户什么时候在说话。我不是在寻找任何语音识别算法,只是在寻找语音检测 我想知道用户什么时候说话,什么时候结束: bool isVAD(短*pcm,大小\u t计数) Sphinx和Freeswitch项目中有开源实现。我认为它们都是基于能量的探测器,不需要任何型号 (Java,但移植到C/C++应该很容易) 怎么样 看起来这正是你所描述的 披露:我是LibVAD的开发者,谷歌的开源代码有

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

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

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


bool isVAD(短*pcm,大小\u t计数)

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

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

怎么样

看起来这正是你所描述的

披露:我是LibVAD的开发者,谷歌的开源代码有一个用C编写的VAD模块。它使用高斯混合模型(GMM),通常比简单的能量阈值检测器更有效,特别是在背景噪声水平和类型动态的情况下。根据我的经验,它也比吉拉德在书中提到的摩押人霍马扬普尔VAD更有效

VAD代码是大得多的WebRTC存储库的一部分,但是很容易将其取出并自行编译。例如,这家公司

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

下面是一个示例的概要,该示例假定
音频\u帧
在16000 Hz时为10毫秒(320字节)的音频:

#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);

感谢这些链接,Freeswitch对我来说似乎是更好的方法(C),但它似乎仍然被绑定到一个更复杂的框架中。我发现了一个python实现(),它看起来更简单,但由于我的python技能低于平均水平,我仍然在寻找一个C/C++实现。我将它移植到iOS,但我不知道为什么我会放任何东西(不同的音频,有很多背景和声音),它将返回1。我的问题解决了,事实证明,这段代码只适用于little endian LPCM,更改为该代码后,一切都完成了!谢谢。@Tinyfool您是否在任何地方发布了您的iOS端口?WebRTC VAD旨在检测真实声音,但有时需要时间/示例来适应。试着先和它交谈,然后放下一本书,看看它是否将放下的噪音分类为声音。嗨,John,我正在从:-添加webRTC VAD模块。现在我在现有的应用程序中遇到了编译问题。我在objective-c中使用iOS 12+我的应用程序。请说明您是否编写了供iOS使用的示例代码。Charles,我已尝试与您联系,但迄今为止运气不佳。@Charles www.libvad.com网站已关闭很久了?