xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 4KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-04
  • 語言: Matlab
  • 標簽: 語音??端點檢測??

資源簡介

用matlab編寫的語音信號處理程序。 我也是初學者,剛編的,拿過來和大家一起分享一下!大家共同進步!

資源截圖

代碼片段和文件信息

%對語音信號采樣分幀
clear
clc
X=?wavread(‘s1‘);
%對信號進行預加重
x=X;
x4=filter([1-0.9375]1x);
figure(1)
subplot(211)plot(x)
title(‘原始語音信號‘);
xlabel(‘樣本序列n‘);
ylabel(‘幅值‘);
subplot(212)plot(x4)
title(‘原始語音信號的預加重‘);
xlabel(‘樣本序列n‘);
ylabel(‘幅值‘);


???
%?幅度歸一化到[-1,1]
x=double(x);
x=x/max(abs(x));
%?常數設置
frameLen=240;???????%?幀長取30ms8kHz的采樣率
frameInc=80;????????%?幀移取10ms1/3
amp1=3;????????????
amp2=2;??????????????
zcr1=10;????????????
zcr2=5;????????????????
maxsilence=3;????????%?3*10ms=30ms
minlen=15;??????????%?15*10ms=150ms???
status=0;
count=0;
silence=0;?


%?短時過零率(矢量法)
tmp1=enframe(x(1:length(x)-1)frameLenframeInc);
tmp2=enframe(x(2:length(x))frameLenframeInc);
signs=(tmp1.*tmp2)diffs=(tmp1-tmp2)>?0.02;
zcr=sum(signs.*diffs2);
figure(2)
subplot(211)
plot(zcr);
title(‘短時過零率‘);
ylabel(‘zcr‘)

%計算短時能量
amp=sum(abs(enframe(filter([1-0.9375]1x)frameLenframeInc))2);
inz=find(amp>1);
amm=amp(inz);
ll=min(amm);
figure(2)
subplot(212)
plot(amp);
title(‘短時能量‘);
ylabel(‘amp‘)


%調整能量門限?
amp1=ll+(max(amp)-ll)/8;
amp2=ll+(max(amp)-ll)/16;
%開始端點檢測
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?|?zc

評論

共有 條評論