vad算法matlab,语音信号的端点检测的matlab代码(子带谱熵法法)

此博客分享了一段MATLAB代码,用于使用子带谱熵法进行语音信号的端点检测。代码包括参数设定、分帧处理、子带能量计算、谱熵计算以及端点检测算法,适用于语音信号处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个是利用子带谱熵法进行语音信号端点检测的代码,给出了参考文献,有兴趣时可以看一下,发博客以作备忘!!!

function [voiceseg,vsl]=vad_1(s,fs)

%该函数采用子带谱熵法检测语音信号的端点

%输入:s :输入信号s

%      fs:输入信号的采样频率(Hz)

%      Is:设定一个前导无话段用来计算门限值(比如我们分段时预留了至少0.5s,

%          故可以设定Is=0.5,或者根据实际情况取),若分段时没预留噪声,或者

%          预留噪声段混有语音,会对该算法造成较大影响。

%输出:voiceseg 为一个数组,分别给出了起始帧结束帧和有话段帧数

%说明:1.这里我们认为语音段必须大于0.2s,噪声段必须大于0.1s

%      2.调整门限值(T1,T2)或  maxsilence,minlen或者K值可以调整端点检测效果

%参考文献:一种基于自适应谱熵的端点检测改进方法 1006—9348(2010)12—0373—03

%    20150617 by boat

%检查人:

%基本参数和变量的设定和求取

IS=0.3;

wlen=floor(25/1000*fs);                     % 帧长设为25ms

inc=floor(wlen/2);                          % 帧移为帧长的50%

xx1=s-mean(s);                               % 去除直流分量

x=xx1/max(abs(xx1));                          % 对幅值归一化

win=hamming(wlen);                          % 设定窗函数

y=enframe(x,win,inc)’;                      % 分帧并转置,转置后每一列为一帧

nframe=size(y,2);              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值