资源简介

Matlab写的一个基于谱熵算法的语音端点检测方法的实现

资源截图

代码片段和文件信息

clear all;
clc;
close all
%基于自适应子带频谱熵的稳健性语音端点检测
N=256%FFT变换的点数
Winsiz=256;%帧长
Shift=128;%帧移
%[fnamepname]=uigetfile(‘*.wav‘‘Open Wave File‘);
%file=[pnamefname];
%[x1fsbits]=wavread(file);


[x1Fs]=wavread(‘04a‘);
%len=length(x);
%noise=0.001*rand(len1);
x1=x1(:1);
leng=length(x1);
[xnFS1]=wavread(‘white‘leng);
xn=2.5*xn;
x=x1+xn;

%wavwrite(xFSNBITS‘语音信号处理加噪1.wav‘);
SNR=snr(x1xn)

%x=x+noise;

%x=x./max(x);
%xy=x;
% 对信号做预加重处理
x=filter([1 -0.9375] 1 x);

nseg=floor((length(x)-Winsiz)/Shift)+1;
A=zeros(Winsiz/2+1nseg);

%下面循环是x信号的加窗处理并求出各点频谱能量
for i=1:nseg
    n1=(i-1)*Shift+1;n2=n1+(Winsiz-1);
    xx=x(n1:n2);xx=xx.*hamming(Winsiz);
    y=fft(xxN);
    y=y(1:Winsiz/2+1);
    y=y.*conj(y);
    A(:i)=y;
end
%计算总能量
%Esum=zeros(1

评论

共有 条评论