以vad为例在C++中展示语音信号处理的算法以class形式的实现方式

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

语音算法中,如果你平常用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;
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值