资源简介
过零法和短时信号能量法,检测语音信号的起始点
代码片段和文件信息
function [x1x2]=vad(x)
% 幅度归一化[-1,1]
x=double(x);
x=x/max(abs(x));
framelen=200;
frameinc=100;
%门限参数
amp1=10;
amp2=2;
zcr1=10;
zcr2=5;
maxsilence=3;
minlen=15;
status=0;
cout=0;
silence=0;
% 分祯and 计算过零率
tmp1=enframe(x(1:length(x)-1)framelenframeinc);
tmp2=enframe(x(2:length(x))framelenframeinc);
signs=(tmp1.*tmp2)<0; %n*framelen 的矩阵
diffs=(tmp1-tmp2)>0.02;
% sum函数的使用 sum(a1)是表示每列相加 而sum(a2)是表示每行相加
zcr=sum(signs.*diffs2); % n*1的矩阵
%计算短时间能量
amp=sum(abs(enframe(filter([1-0.9375]1x)framelenframeinc))2); % n*1的矩阵
%调整能量门限
amp1=min(amp1max(amp)/4);
amp2=min(amp2max(amp)/8);
%开始端点检测
x1=0;
x2=0;
for n=1:length(zcr) % length =max(size(x)) 这儿实际是n
goto = 0; % 这个有什么作用 ???????????
switch status
case {01}
if amp(n)>amp1
x1=max(n-cout-11);
status=2;
silence=0;
cout=cout+1;
elseif amp(n)>amp2 | zcr(n)>zcr2
status=1;
cout=cout+1;
else
status=0;
cout=0
相关资源
- 基于MATLAB的语音端点检测研究.pdf
- matlab音频端点检测
- 基于MATLAB的语音端点检测.doc
- matlab 基于双门限的端点检测
- 自适应谱熵端点检测matlab实现
- 语音端点检测
- 语音端点检测程序matlab
- 双门限法语音信号端点检测matlab可实
-
语音端点检测matlab程序含enfr
ame函数 - matlab端点检测vad程序
- 语音边缘检测算法VAD检测.zip
- 基于Matlab的语音信号端点检测程序
- 双门限法语音端点检测
- 双门限协作感知仿真
- 基于DTW算法的语音识别原理与Matlab实
- 简单的matlab双阈值语音端点检测程序
- 基于MATLAB的语音端点检测
- 语音识别端点检测Matlab代码
- 基于谱熵的端点检测matlab仿真实现
- 多个字的端点检测
- 基于谱熵语音端点检测
评论
共有 条评论