資源簡介
matlab語音檢測代碼。采用能量和過零率的方法,和教科書上的方法一樣。
代碼片段和文件信息
clear?all;
clc;
%基于自適應子帶頻譜熵的穩健性語音端點檢測
N=256;%
Winsiz=256;%幀長
Shift=128;%幀移
[xFs]=wavread(‘8a.wav‘);
x=double(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(1nseg);
for?i=1:nseg
????for?j=1:Winsiz/2
????????Esum(i)=Esum(i)+A(ji);
????end
end?
%下面是計算每一幀的譜的能量
for?i=1:nseg
????for?n=1:Winsiz/2
????????E(ni)=A(ni);
????end
end???
%下面是計算每幀中每個樣本點的概率分布
for?i=1:nseg
????for?n=1:Winsiz/2
??????P(ni)=E(ni)/Esum(i);??
????end
end
%下面是計算每一幀的譜熵值
H=zeros(1nseg);
for?i=1:nseg
????for
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1637??2009-11-19?19:32??自適應語音端點檢測(VAD).m
?????文件???????4207??2009-08-10?16:28??端點檢測.txt
-----------?---------??----------?-----??----
?????????????????5844????????????????????2
評論
共有 條評論