Joh*_*man 15
谷歌的开源的WebRTC代码具有写入C.一个VAD模块它使用高斯混合模型(GMM),这通常是更有效的比简单的能量阈值检测器,特别是在背景噪声的动态水平和类型的情况.根据我的经验,它比Gilad在评论中提到的Moattar-Homayounpour VAD更有效.
VAD代码是更大,更大的WebRTC存储库的一部分,但它很容易将其拉出并自行编译.例如,webrtcvad Python包装器仅包含VAD C源.
WebRTC VAD API非常易于使用.首先,音频必须是单声道16位PCM,具有8 KHz,16 KHz或32 KHz的采样率.发送到VAD的每个音频帧长度必须为10,20或30毫秒.
以下是假设audio_frame在16000 Hz下音频为10 ms(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);
Run Code Online (Sandbox Code Playgroud)
Sphinx和Freeswitch项目中有开源实现.我认为它们都是基于能量的探测器,不需要任何类型的模型.
Sphinx 4(Java但它应该很容易移植到C/C++)
| 归档时间: |
|
| 查看次数: |
9491 次 |
| 最近记录: |