亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sspara98.m

?? A Parametric Formulation of the Generalized Spectral Subtraction Method
?? M
字號:
function output=SSPARAB98(signal,fs,IS)

% output=SSPARAB98(signal,fs,IS)
% "A Parametric Formulation of the Generalized Spectral Subtraction Method"
% This is very similar to SSPARASIM98
% Spectral subtraction based on the above paper by Boh Lim Sim 1998. In
% their method an optimized estimator based on spectral subtraction
% assumptions is derived. This estimator uses estimates of a priori and a
% posteriori SNR in its gain function. Also a flooring function is
% incorporated which uses a function to floor very small values of
% amplitude estimate. the paper Hasan04 (Modified A Priori SNR for speech
% enhancemnet) presents this formulation as well which was alternatively
% used in implementation of this paper. Decision-Directed method is used
% for estimation of A priori SNR.
% Author: Esfandiar Zavarehei
% Created: MAR-05



if (nargin<3 | isstruct(IS))
    IS=.25; %Initial Silence or Noise Only part in seconds
end
W=fix(.025*fs); %Window length is 25 ms
SP=.4; %Shift percentage is 40% (10ms) %Overlap-Add method works good with this value(.4)
wnd=hamming(W);

%IGNORE FROM HERE ...............................
if (nargin>=3 & isstruct(IS))%This option is for compatibility with another programme
    W=IS.windowsize
    SP=IS.shiftsize/W;
    %nfft=IS.nfft;
    wnd=IS.window;
    if isfield(IS,'IS')
        IS=IS.IS;
    else
        IS=.25;
    end
end
% ......................................UP TO HERE

pre_emph=0;
signal=filter([1 -pre_emph],1,signal);

NIS=fix((IS*fs-W)/(SP*W) +1);%number of initial silence segments

y=segment(signal,W,SP,wnd); % This function chops the signal into frames
Y=fft(y);
YPhase=angle(Y(1:fix(end/2)+1,:)); %Noisy Speech Phase
Y=abs(Y(1:fix(end/2)+1,:));%Specrogram
numberOfFrames=size(Y,2);
FreqResol=size(Y,1);

N=mean(Y(:,1:NIS)')'; %initial Noise Power Spectrum mean
LambdaD=mean((Y(:,1:NIS)').^2)';%initial Noise Power Spectrum variance
alpha=.99; %used in smoothing xi (For Deciesion Directed method for estimation of A Priori SNR)
PowExp=2; % Power Exponent
Beta=(gamma(PowExp+1)-(gamma(1+PowExp/2)^2))/gamma(PowExp+1);%[Sim98, Eq. 21]

NoiseCounter=0;
NoiseLength=9;%This is a smoothing factor for the noise updating
mu=.05;

X=zeros(size(Y)); % Initialize X (memory allocation)

h=waitbar(0,'Wait...');

for i=1:numberOfFrames
    %%%%%%%%%%%%%%%%VAD and Noise Estimation START
    if i<=NIS % If initial silence ignore VAD
        SpeechFlag=0;
        NoiseCounter=100;
    else % Else Do VAD
        [NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(Y(:,i),N,NoiseCounter); %Magnitude Spectrum Distance VAD
    end
    
    if SpeechFlag==0 % If not Speech Update Noise Parameters
        N=(NoiseLength*N+Y(:,i))/(NoiseLength+1); %Update and smooth noise mean
        LambdaD=(NoiseLength*LambdaD+(Y(:,i).^2))./(1+NoiseLength); %Update and smooth noise variance
    end
    %%%%%%%%%%%%%%%%%%%VAD and Noise Estimation END
    
    Gamma=(Y(:,i).^2)./LambdaD; %A postiriori SNR
    if i>1
        xi=(alpha*(X(:,i-1).^2) + (1-alpha).*max(Y(:,i).^2 - LambdaD,0))./LambdaD;
    else
        xi=(ones(size(Gamma))+Gamma)/2;
    end

    X(:,i)=(((xi.^PowExp)./((xi.^PowExp)+Beta)).*(Y(:,i).^PowExp - N.^PowExp)).^(1/PowExp);
    if i>1
        X(:,i)=max(X(:,i),.5.*(mu.*Y(:,i)+X(:,i-1)));
    end
        
            
    waitbar(i/numberOfFrames,h,num2str(fix(100*i/numberOfFrames)));
end

close(h);
output=OverlapAdd2(X,YPhase,W,SP*W); %Overlap-add Synthesis of speech
output=filter(1,[1 -pre_emph],output); %Undo the effect of Pre-emphasis

function ReconstructedSignal=OverlapAdd2(XNEW,yphase,windowLen,ShiftLen);

%Y=OverlapAdd(X,A,W,S);
%Y is the signal reconstructed signal from its spectrogram. X is a matrix
%with each column being the fft of a segment of signal. A is the phase
%angle of the spectrum which should have the same dimension as X. if it is
%not given the phase angle of X is used which in the case of real values is
%zero (assuming that its the magnitude). W is the window length of time
%domain segments if not given the length is assumed to be twice as long as
%fft window length. S is the shift length of the segmentation process ( for
%example in the case of non overlapping signals it is equal to W and in the
%case of %50 overlap is equal to W/2. if not givven W/2 is used. Y is the
%reconstructed time domain signal.
%Sep-04
%Esfandiar Zavarehei

if nargin<2
    yphase=angle(XNEW);
end
if nargin<3
    windowLen=size(XNEW,1)*2;
end
if nargin<4
    ShiftLen=windowLen/2;
end
if fix(ShiftLen)~=ShiftLen
    ShiftLen=fix(ShiftLen);
    disp('The shift length have to be an integer as it is the number of samples.')
    disp(['shift length is fixed to ' num2str(ShiftLen)])
end

[FreqRes FrameNum]=size(XNEW);

Spec=XNEW.*exp(j*yphase);

if mod(windowLen,2) %if FreqResol is odd
    Spec=[Spec;flipud(conj(Spec(2:end,:)))];
else
    Spec=[Spec;flipud(conj(Spec(2:end-1,:)))];
end
sig=zeros((FrameNum-1)*ShiftLen+windowLen,1);
weight=sig;
for i=1:FrameNum
    start=(i-1)*ShiftLen+1;    
    spec=Spec(:,i);
    sig(start:start+windowLen-1)=sig(start:start+windowLen-1)+real(ifft(spec,windowLen));    
end
ReconstructedSignal=sig;

function Seg=segment(signal,W,SP,Window)

% SEGMENT chops a signal to overlapping windowed segments
% A= SEGMENT(X,W,SP,WIN) returns a matrix which its columns are segmented
% and windowed frames of the input one dimentional signal, X. W is the
% number of samples per window, default value W=256. SP is the shift
% percentage, default value SP=0.4. WIN is the window that is multiplied by
% each segment and its length should be W. the default window is hamming
% window.
% 06-Sep-04
% Esfandiar Zavarehei

if nargin<3
    SP=.4;
end
if nargin<2
    W=256;
end
if nargin<4
    Window=hamming(W);
end
Window=Window(:); %make it a column vector

L=length(signal);
SP=fix(W.*SP);
N=fix((L-W)/SP +1); %number of segments

Index=(repmat(1:W,N,1)+repmat((0:(N-1))'*SP,1,W))';
hw=repmat(Window,1,N);
Seg=signal(Index).*hw;

function [NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(signal,noise,NoiseCounter,NoiseMargin,Hangover)

%[NOISEFLAG, SPEECHFLAG, NOISECOUNTER, DIST]=vad(SIGNAL,NOISE,NOISECOUNTER,NOISEMARGIN,HANGOVER)
%Spectral Distance Voice Activity Detector
%SIGNAL is the the current frames magnitude spectrum which is to labeld as
%noise or speech, NOISE is noise magnitude spectrum template (estimation),
%NOISECOUNTER is the number of imediate previous noise frames, NOISEMARGIN
%(default 3)is the spectral distance threshold. HANGOVER ( default 8 )is
%the number of noise segments after which the SPEECHFLAG is reset (goes to
%zero). NOISEFLAG is set to one if the the segment is labeld as noise
%NOISECOUNTER returns the number of previous noise segments, this value is
%reset (to zero) whenever a speech segment is detected. DIST is the
%spectral distance. 
%Saeed Vaseghi
%edited by Esfandiar Zavarehei
%Sep-04

if nargin<4
    NoiseMargin=3;
end
if nargin<5
    Hangover=8;
end
if nargin<3
    NoiseCounter=0;
end
    
FreqResol=length(signal);

SpectralDist= 20*(log10(signal)-log10(noise));
SpectralDist(find(SpectralDist<0))=0;

Dist=mean(SpectralDist); 
if (Dist < NoiseMargin) 
    NoiseFlag=1; 
    NoiseCounter=NoiseCounter+1;
else
    NoiseFlag=0;
    NoiseCounter=0;
end

% Detect noise only periods and attenuate the signal     
if (NoiseCounter > Hangover) 
    SpeechFlag=0;    
else 
    SpeechFlag=1; 
end 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲高清一区二区| 欧美一区二区播放| 精品国产一区二区国模嫣然| 婷婷国产v国产偷v亚洲高清| 欧美精品tushy高清| 亚洲成人福利片| 制服丝袜在线91| 日韩精品乱码av一区二区| 91麻豆精品国产91久久久久| 日韩国产精品久久久久久亚洲| 日韩精品在线一区二区| 国产一区二区调教| 国产亚洲欧美一级| 不卡电影免费在线播放一区| 亚洲免费观看高清| 在线成人免费视频| 国产揄拍国内精品对白| 综合激情成人伊人| 在线成人免费观看| 国产成人在线观看免费网站| 日韩一区中文字幕| 日韩一区二区三区视频在线观看| 国产麻豆欧美日韩一区| 综合欧美一区二区三区| 欧美日韩精品一区视频| 国产在线不卡一卡二卡三卡四卡| 国产精品视频yy9299一区| 色婷婷亚洲综合| 免费欧美在线视频| 亚洲天堂中文字幕| 日韩一二在线观看| 91免费在线播放| 毛片不卡一区二区| 亚洲日本在线a| 欧美大片一区二区| 91美女片黄在线| 韩国欧美一区二区| 一区二区在线免费观看| 2022国产精品视频| 欧美系列在线观看| 成人看片黄a免费看在线| 亚洲午夜成aⅴ人片| 欧美激情中文字幕| 日韩欧美一区电影| 欧美日韩黄色影视| 99国产精品久久久久| 激情小说欧美图片| 午夜影院久久久| 亚洲三级久久久| 久久综合狠狠综合久久激情| 欧美视频精品在线| 99久久国产综合精品女不卡| 久久91精品国产91久久小草| 亚洲精品写真福利| 国产精品久久久久影院| 日韩视频免费观看高清完整版| 91视频.com| 99亚偷拍自图区亚洲| 国产一区二区三区在线看麻豆| 香蕉av福利精品导航| 洋洋av久久久久久久一区| 国产精品视频一二三区 | 日韩精品久久理论片| 综合色天天鬼久久鬼色| 国产亚洲精品精华液| 欧美www视频| 日韩视频在线观看一区二区| 欧美精选一区二区| 欧美少妇xxx| 欧洲日韩一区二区三区| 色屁屁一区二区| 一本到一区二区三区| 99久久99久久综合| 菠萝蜜视频在线观看一区| 国产成人av一区二区三区在线观看| 精品一区二区免费视频| 国内外成人在线视频| 蜜臀国产一区二区三区在线播放| 日韩电影在线一区二区三区| 亚洲国产一区二区视频| 亚洲国产aⅴ成人精品无吗| 亚洲欧美另类久久久精品| 亚洲日本在线看| 亚洲在线中文字幕| 亚洲成av人在线观看| 日韩国产成人精品| 蜜乳av一区二区| 国产美女在线观看一区| 成人一区二区视频| 99re这里都是精品| 欧美性大战久久久久久久| 欧美日韩免费观看一区三区| 91精品国产一区二区| 欧美不卡一区二区三区四区| 欧美精品一区二区不卡| 欧美激情在线观看视频免费| 国产精品三级av| 樱花影视一区二区| 日本成人在线看| 国产乱子伦一区二区三区国色天香| 大尺度一区二区| 一本大道久久精品懂色aⅴ| 欧美日韩综合一区| 日韩欧美国产高清| 国产精品美女久久久久高潮| 一区二区三区在线观看欧美| 午夜精品久久久久影视| 精品一区二区国语对白| 91蜜桃传媒精品久久久一区二区| 欧美人成免费网站| 国产丝袜在线精品| 亚洲午夜在线观看视频在线| 蓝色福利精品导航| av在线播放一区二区三区| 欧美日韩国产片| 国产欧美日韩在线视频| 亚洲综合视频在线| 国产麻豆精品在线| 欧美在线观看一区二区| 久久久精品国产免大香伊| 艳妇臀荡乳欲伦亚洲一区| 国产精品1区2区3区在线观看| 色婷婷综合久久久| 国产人久久人人人人爽| 偷窥国产亚洲免费视频| 成人白浆超碰人人人人| 欧美一级免费观看| 一区二区三区视频在线看| 精品制服美女丁香| 91国产福利在线| 国产三级一区二区三区| 亚洲高清免费观看 | 日韩毛片视频在线看| 蜜臂av日日欢夜夜爽一区| 日本韩国欧美三级| 亚洲国产精华液网站w| 日韩激情在线观看| 91在线精品一区二区三区| 精品国产免费一区二区三区香蕉 | 亚洲成a人v欧美综合天堂下载| 国产一区二区在线视频| 日本道色综合久久| 久久精品网站免费观看| 天天综合天天做天天综合| 97久久精品人人做人人爽| xfplay精品久久| 蜜桃av噜噜一区| 欧美日韩精品欧美日韩精品一 | 中文字幕av一区二区三区高| 免费的成人av| 3d动漫精品啪啪1区2区免费| 日韩美女啊v在线免费观看| 国产乱码精品一区二区三区av| 精品视频一区三区九区| 亚洲精品国久久99热| www.99精品| 国产精品白丝在线| 国产精品资源在线看| 欧美不卡一区二区| 极品美女销魂一区二区三区免费| 欧美裸体bbwbbwbbw| 亚洲一区二区在线视频| 色综合网站在线| 一区二区三区视频在线看| 99免费精品视频| 亚洲视频图片小说| 粗大黑人巨茎大战欧美成人| 中文字幕+乱码+中文字幕一区| 国产精品99久久久| 精品99一区二区| 国内不卡的二区三区中文字幕| 精品蜜桃在线看| 国产最新精品免费| 欧美国产日韩亚洲一区| 成人成人成人在线视频| 亚洲人成在线播放网站岛国| av成人老司机| 亚洲午夜视频在线| 欧美精品亚洲二区| 蜜臀av一区二区在线免费观看| 精品乱人伦一区二区三区| 国产乱色国产精品免费视频| 国产农村妇女毛片精品久久麻豆| 成人毛片视频在线观看| 亚洲精品国产无天堂网2021 | 国产清纯在线一区二区www| 国产宾馆实践打屁股91| 国产精品每日更新| 一本一道综合狠狠老| 日韩激情在线观看| 久久久精品tv| 91日韩精品一区| 免费在线观看日韩欧美| 久久久精品人体av艺术| 色综合久久精品| 蜜桃视频一区二区三区| 国产日韩欧美精品一区| 色婷婷精品久久二区二区蜜臂av | 久久99热狠狠色一区二区| 久久久久久久久99精品|