gpt4 book ai didi

iphone - 任何简单的 VAD 实现?

转载 作者:IT老高 更新时间:2023-10-28 21:40:34 26 4
gpt4 key购买 nike

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

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

我想知道用户何时说话以及何时结束:

bool isVAD(short* pcm,size_t count);

最佳答案

Google 的开源 WebRTC代码有一个用 C 编写的 VAD 模块。它使用高斯混合模型 (GMM),它通常比简单的能量阈值检测器更有效,尤其是在具有动态水平和背景噪声类型的情况下。根据我的经验,它也比 Gilad 在 their comment 中提到的 Moattar-Homayounpour VAD 更有效。 .

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

关于iphone - 任何简单的 VAD 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5367214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com