资源简介
包含静音检测的matlab程序,通过短时能量与过零率判断
代码片段和文件信息
%静音检测
clear all;
clc;
[samplefsbits]=wavread(‘sp04.wav‘);
sample=sample(:1);
voiceseq=filter([1 -0.9375]1sample);
len=length(sample);
framelen=240;
frameinc=80;
delta=0.02;
ampu=10;
ampl=3;
zcru=10;
zcrl=5;
maxsilence=6;
minlen=15;
status=0;
count=0;
silence=0;
voice=enframe(voiceseqframelenframeinc);
voice=double(voice);
voice=voice/max(max(abs(voice)));
framenum=size(voice1);
amp=sum(sqrt(abs(voice)));
zcr=zeros(framenum1);
%for i=1:framenum
% x=voice(:i)
% x=x/max(abs(x));
% for j=1:length(x)-1
% if x(j)*x(j+1)<0 & abs(x(j)-x(j+1))>delta
% zcr(i)=zcr(i)+1;
% end
% end
%end
%计算短时过零率
tmp1=enframe(voiceseq(1:len-1)framelenframeinc);
tmp2=enframe(voiceseq(2:len)framelenframeinc);
signs=(tmp1.*tmp2)<0;
diffs=(tmp1-tmp2)>delta;
zcr=sum(signs.*diffs2);
%计算短时能量
amp=sum(abs(voice)2);
%调整能量门限
ampu=min(ampumax(amp)/4);
ampl=min(amplmax(amp)/8);
%开始端点检测
vobegin=0;
voend=0;
k=1;
vobegink=[1];
voendk=[framenum];
for n=1:framenum
goto=0;
switch status
case{01}
if amp(n)>ampu|zcr(n)>zcru
vobegin=max(n-count1);
silence=0;
count=count+1;
status=2;
elseif amp(n)>ampl | zcr(n)>zcrl
status=1;
count=count+1;
if(count==3)
status=2;
vobegin=n;
end
else
status=0;
count=0;
end
相关资源
- 基于倒谱图判断浊音的基音周期MATL
- 语音信号子带编码matlab程序subband_co
- voicebox matlab语音信号处理工具箱
- 语音信号处理MATLAB程序
- Matlab在语音信号处理中的应用
- 张雪英版数字语音处理及MATLAB仿真课
- MATLAB语音信号处理0-9语音识别,GUI.
- 语音信号处理实验教程-MATLAB源代码
- 语音信号处理实验教程MATLAB源代码
- MATLAB在语音信号分析与合成中的应用
- 梁瑞宇赵力语音信号处理实验教程m
- 《语音信号处理赵力(中文入门)》
- 语音信号处理(赵力)Matlab代码、书
- 语音信号处理实验教程、报告及Matl
- 语音信号处理实验报告基于MATLAB的语
- 语音信号处理源程序,做课程设计用
- 语音信号的合成及其matlab_GUI实现
- matlab语音信号处理282587
- stft和逆stft变换的Matlab代码
- 语音信号处理实验matlab程序
- 语音信号处理实验素材 wav语音文件
-
matlab 语音信号处理 enfr
ame.m - 基于MATLAB的语音信号处理课程设计
- 语音信号处理matlab GUI
- Voicebox语音处理包
- matlab语音信号处理工具箱
- MATLAB语音信号处理
-
enfr
ame语音信号处理分帧matlab分帧函 - 数字信号处理课程设计--基于MATLAB有噪
- 不同矩形窗长度的修正短时自相关函
评论
共有 条评论