資源描述:
《聲音識(shí)別-聲音分類-算法實(shí)現(xiàn).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、模型框架生態(tài)環(huán)境聲音信號(hào)預(yù)處理訓(xùn)練樣本測(cè)試樣本特征提取特征提取高斯混合模型判決規(guī)則投票識(shí)別結(jié)果訓(xùn)練識(shí)別前端處理圖1基于GMM的生態(tài)環(huán)境聲音識(shí)別系統(tǒng)設(shè)計(jì)模塊預(yù)處理使用cooledit轉(zhuǎn)換格式/聲道,或用Matlab處理特征提取訓(xùn)練數(shù)據(jù)的特征提取測(cè)試數(shù)據(jù)的特征提取不同的特征提取可以分開或合在一起設(shè)計(jì)分類算法設(shè)計(jì)GMM,HMM,SVM,KNN,ANN...測(cè)試和決策特征提取%讀取聲音文件wav=wavread(data.filenames{i_files},[1307712]);eg.200個(gè)文件i_
2、files=1:200307712是提取的樣本數(shù)(限制讀取的長(zhǎng)度,約28s)%要提取的MFCC系數(shù)個(gè)數(shù)num_ceps_coeffs=20;c.fs=11025;%采樣頻率%設(shè)置每幀大?。ò瑯颖緮?shù))c.seg_size=1024;c.hop_size=512;%%c.seg_size-交疊部分=c.hop_size特征提?。∕FCC)%幀數(shù)計(jì)算num_segments=floor((length(wav)-c.seg_size)/c.hop_size)+1;%初始化功率譜矩陣P=zeros(c
3、.seg_size/2+1,num_segments);%設(shè)置窗函數(shù)c.w=0.5*(1-cos(2*pi*(0:c.seg_size-1)/(c.seg_size-1)))';%漢寧窗函數(shù)%逐幀做FFTfori_p=1:num_segments,idx=(1:c.seg_size)+(i_p-1)*c.hop_size;x=abs(fft(wav(idx).*c.w)/sum(c.w)*2).^2;P(:,i_p)=x(1:end/2+1);%工程實(shí)際中經(jīng)常只用單邊功率譜endc.num_fi
4、lt=36;%%Mel頻帶數(shù)f=linspace(0,c.fs/2,c.seg_size/2+1);%初始平均劃分fmel=log(1+f/700)*1127.01048;%1127.01048=2595/log10,Matlab中l(wèi)og=lnmel_idx=linspace(0,mel(end),c.num_filt+2);%初始平均劃分mel(38個(gè)點(diǎn))f_idx=zeros(c.num_filt+2,1);fori=1:c.num_filt+2,%%f_idx(i)存的是mel中與mel_
5、idx(i)最近的元素的地址[tmpf_idx(i)]=min(abs(mel-mel_idx(i)));%近似的平均劃分endfreqs=f(f_idx);h=2./(freqs(3:c.num_filt+2)-freqs(1:c.num_filt));%%三角的高度c.mel_filter=zeros(c.num_filt,c.seg_size/2+1);fori=1:c.num_filt,c.mel_filter(i,:)=(f>freqs(i)&f<=freqs(i+1)).*...h(
6、i).*(f-freqs(i))/(freqs(i+1)-freqs(i))+...(f>freqs(i+1)&f7、10(M);%DCT函數(shù)c.DCT=1/sqrt(c.num_filt/2)*...cos((0:num_ceps_coeffs-1)'*(0.5:c.num_filt)*pi/c.num_filt);c.DCT(1,:)=c.DCT(1,:)*sqrt(2)/2;%%離散余弦變換mfcc=c.DCT*M;分類算法設(shè)計(jì)(GMM示例)ncentres=16;%高斯分量個(gè)數(shù)input_dim=16;%特征維數(shù)%設(shè)置混合模型mix=gmm(input_dim,ncentres,'diag');%特征數(shù)
8、據(jù)輸入siz=600;features=zeros(siz,input_dim);fork=1:sizforj=1:input_dimfeatures(k,j)=data.feat.mfcc(i_files,j,k);endend%初始化模型參數(shù)mix=gmminit(mix,features,options);options(14)=20;%迭代次數(shù).[mix,options,errlog]=gmmem(mix,features,options);Gmmdata(i_files)=mix;分類