91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

matlab程序雙門限法語音信號端點檢測(可實現多段檢測)

資源截圖

代碼片段和文件信息

function?[x1x2]?=?vad(x)

%幅度歸一化到[-11]
x?=?double(x);
x?=?x?/?max(abs(x));

%常數設置
frameLen?=?240;%幀長為240點
frameInc?=?80;%幀移為80點

amp1?=?10;%初始短時能量高門限
amp2?=?2;%初始短時能量低門限
zcr1?=?10;%初始短時過零率高門限
zcr2?=?5;%初始短時過零率低門限

maxsilence?=?8;??%?8*10ms??=?80ms???語音段中允許的最大靜音長度

minlen??=?15;????%?15*10ms?=?150ms??語音段的最短長度,若語音段長度小于此值,則認為其為一段噪音

status??=?0;?????%初始狀態為靜音狀態
count???=?0;?????%初始語音段長度為0
silence?=?0;?????%初始靜音段長度為0
?

%計算過零率
tmp1??=?enframe(x(1:end-1)?frameLen?frameInc);
tmp2??=?enframe(x(2:end)???frameLen?frameInc);
signs?=?(tmp1.*tmp2)<0;
diffs?=?(tmp1?-tmp2)>0.02;
zcr???=?sum(signs.*diffs?2);
?

%計算短時能量
amp?=?sum(abs(enframe(x?frameLen?frameInc))?2);
?

%調整能量門限
amp1?=?min(amp1?max(amp)/4);
amp2?=?min(amp2?max(amp)/8);

subplot(311)????%subplot(311)表示將圖排成3行1列,最后的一個1表示下面要畫第1幅圖
plot(x)
axis([1?length(x)?-1?1])????
ylabel(‘Speech‘);

subplot(312)???
plot(amp);
axis([1?length(amp)?0?max(amp)])
ylabel(‘Energy‘);


subplot(313)
plot(zcr);
axis([1?length(zcr)?0?max(zcr)])
ylabel(‘ZCR‘);

?

%開始端點檢測
x1?=?0;
x2?=?0;
for?n=1:length(zcr)
???goto?=?0;
???switch?status
???case?{01}???????????????????%?0?=?靜音?1?=?可能開始
??????if?amp(n)?>?amp1??????????%?確信進入語音段
?????????x1?=?max(n-count-11);
?????????status??=?2;
?????????silence?=?0;
?????????count???=?count?+?1;
??????elseif?amp(n)?>?amp2?|?...?%?可能處于語音段
?????????????zcr(n)?>?zcr2
?????????status?=?1;
?????????count??=?count?+?1;
??????else???????????????????????%?靜音狀態
?????????status??=?0;
?????????count???=?0;
??????end
???case?2???????????????????????%?2?=?語音段
??????if?amp(n)?>?amp2?|?...?????%?保持在語音段
?????????zcr(n)?>?z

評論

共有 條評論