-
大小: 1.39 KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2024-09-24
- 語言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
利用語音信號(hào)的短時(shí)能量與短時(shí)過零率來達(dá)到自動(dòng)檢測(cè)語音的起止點(diǎn)。效果不錯(cuò).
代碼片段和文件信息
%語音信號(hào)的端點(diǎn)檢測(cè)
[xfsnbits]=wavread(‘speech.wav‘);
x?=?x?/?max(abs(x));%幅度歸一化到[-11]
%參數(shù)設(shè)置
frameLen?=?256;?????%幀長(zhǎng)
inc?=?90;???????????%未重疊部分
amp1?=?10;??????????%短時(shí)能量閾值
amp2?=?2;??????
zcr1?=?10;??????????%過零率閾值
zcr2?=?5;
minsilence?=?6;??%用無聲的長(zhǎng)度來判斷語音是否結(jié)束
minlen??=?15;????%判斷是語音的最小長(zhǎng)度
status??=?0;?????%記錄語音段的狀態(tài)
count???=?0;?????%語音序列的長(zhǎng)度
silence?=?0;?????%無聲的長(zhǎng)度
%計(jì)算過零率
tmp1??=?enframe(x(1:end-1)?frameLeninc);
tmp2??=?enframe(x(2:end)???frameLeninc);
signs?=?(tmp1.*tmp2)<0;
diffs?=?(tmp1?-tmp2)>0.02;
zcr???=?sum(signs.*diffs2);
%計(jì)算短時(shí)能量
amp?=?sum((abs(enframe(filter([1?-0.9375]?1?x)?frameLen?inc))).^2?2);
%調(diào)整能量門限
amp1?=?min(amp1?max(amp)/4);
amp2?=?min(amp2?max(amp)/8);
%開始端點(diǎn)檢測(cè)
for?n=1:length(zcr)
???goto?=?0;
???switch?status
???case?{01}???????????????????%?0?=?靜音?1?=?可能開始
??????if?amp(n)?>?amp1??????????%?確信進(jìn)入語音段
?????????x1?=?max(n-count-11);?%?記錄語音段的起始點(diǎn)
?????????status??=?2;
?????????silence?=?0;
?????????count???=?count?+?1;
??????elseif?amp(n)?>?amp2?||?zcr(n)?>?zcr2?%?可能處于語音段
?????????status?=?1;
?????????count??=?count?+?1;
??????else???????????????????????%?靜音狀態(tài)
?????????status??=?0;
?????????count???=?0;
??????end
???case?2???????????????????????%?2?=?語音段
??????if?amp(n)?>?amp2?||zcr(n)?>?zcr2?????%?保持在語音段
?????????
?????????count?=?count?+?1;
??????else???????????????????????%?語音將結(jié)束
?????????silence?=?silence+1;
?????????if?silence?????????????count??=?count?+?1;
?????????elseif?count?????????????status??=?0;
????????????silence?=?0;
????????????count???=?0;
?????????else????????????????????%?語音結(jié)束
????????????status??=?3;
?????????end
??????end
???case?3
??????break;
???end
end???
count?=?count-silence/2;
x2?=?x1?+?count?-1;??????????????%記錄語音段結(jié)束點(diǎn)
subplot(311)
plot(x)
axis([1?length(x)?-1?1])
ylabel(‘Speech‘);
line([x1*inc?x1*inc]?[-1?1]?‘Color‘?‘red‘);
line([x2*inc?x2*inc]?[-1?1]?‘Color‘?‘red‘);
subplot(312)
plot(amp);
axis([1?length(amp)?0?max(amp)])
ylabel(‘Energy‘);
line([x1?x1]?[min(amp)max(amp)]?‘Color‘?‘red‘);
line([x2?x2]?[min(amp)max(amp)]?‘Color‘?‘red‘);
subplot(313)
plot(zcr);
axis([1?length(zcr)?0?max(zcr)])
ylabel(‘ZCR‘);
line([x1?x1]?[min(zcr)max(zcr)]?‘Color‘?‘red‘);
line([x2?x2]?[min(zcr)max(zcr)]?‘Color‘?‘red‘);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2559??2007-10-23?15:06??edgedetect.m
-----------?---------??----------?-----??----
?????????????????2777????????????????????2
評(píng)論
共有 條評(píng)論