语音算法中,如果你平常用C进行实现, 你会发现很累,要自己造很多轮子。现在我看看c++中算法以类的形式是怎么实现的。
vad是一个特别简单么,明了的算法,比较适合入门。
https://github.com/robin1001/vad
main函数
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <vector>
#include "parse-option.h"
#include "wav.h"
#include "vad.h"
int main(int argc, char *argv[]) {
const char *usage = "Apply energy vad for input wav file\n"
"Usage: vad-test wav_in_file\n";
ParseOptions po(usage);
float frame_len = 0.025; // 25 ms
po.Register("frame-len", &frame_len, "frame length for mvdr");
float frame_shift = 0.01; // 10ms
po.Register("frame-shift", &frame_shift, "frame shift for mvdr");
float energy_thresh = 1.5e7;
po.Register("energy-thresh", &energy_thresh,
"energy threshold for energy based vad");
int sil_to_speech_trigger = 3;

本文介绍了一种使用C++实现的语音活动检测(VAD)算法,通过能量阈值判断语音和静默段,适用于语音信号处理初学者。文章详细展示了算法的实现过程,包括参数设置、状态转换逻辑及如何从输入音频中提取并保存语音片段。
最低0.47元/天 解锁文章
279

被折叠的 条评论
为什么被折叠?



