Proses feature extraction Proses training

Lampiran 4 : List dari pemograman Matlab

1. Proses feature extraction

Output : - coeffs1 : mfcc coefficients dihitung dari P1i=sumlog|Sk|filterBankk sebagai koefisien power dan 1NsumPicos2piknN sebagai koefisien mfcc - coeffs2 : koefisien mfcc dihitung dari P1i=sum|Sk|filterBankk sebagai koefisien power dan 1NsumlogPicos2piknN sebagai koefisien mfcc Spectrum fft adalah spec=fftsignal; logSpec=logabsspec1:floorlengthspec+12; nbpts=lengthlogSpec; Membuat filter bank membuat vektor dari 150 mels spaced frequencies i=1; freqi=1; fi=1; while freqinbpts i=i+1; fi=explog2150i-11000-11000; freqi=floorexplog2150i-11000- 110002fsnbpts; end freqi+1=floorexplog2150i1000- 110002fsnbpts; Membuat triangular filters NbFilters=lengthfreq-2; filters=zerosNbFilters,freqend-freqend-1; for k=1:NbFilters filtersk,1:freqk+2-freqk=triangfreqk+2- freqk; end Adding zeros to the spectrum to match the filter banks length ZerosVect=zerosfreqend-1-lengthlogSpec,1; logSpec=[logSpec;ZerosVect]; spec=[spec1:floorlengthspec+12;ZerosVect]; Menghitung power coefficients for j=1:NbFilters Pcoeff1j=sumfiltersj,1:freqj+2- freqj.logSpecfreqj:freqj+2-1; Pcoeff2j=sumfiltersj,1:freqj+2- freqj.absspecfreqj:freqj+2-1; end Menghitung mel cepstral coefficients NbCoeffs=floorNbFilters2+1; MAX=max10log10Pcoeff2; for k=0:NbCoeffs-1 coeffs1k+1=1NbFilterssumPcoeff1.cos2pikNb Filters[0:NbFilters-1]; coeffs2k+1=1NbFilterssum10log10Pcoeff2- MAX+50.cos2pikNbFilters[0:NbFilters-1]; end 2 Membuat label function make_labelsrep Function make_labelsrep; 5 labels dibuat dengan melakukan rep repetions. ketika menjalankan aplikasi folder berada pada direktori the \data, pwd - ans = C:\..\HMM_Demo\data. for i=1:5 fprintfRecording label nr:i\n,i etiqueta=inputketik nama dari label\n,s; makelabel[label int2stri],etiqueta,rep,3; end;

3. Proses training

function Cfinal=VQ_traininggerakan,M,iteration; C=VQ_traininggerakan,length_frame,overlap,fs,bins, M,iteration; M :ukuran dari codebook bins:resolution iteration gerakan=preemphasisgerakan; extraction F=extractiongerakan,100,78,11025; delta DF=deltaF; F=[DF F]; save feat_default F load feat_default F=features2matlab; [a,b]=sizeF; fprintfnumber of points to train VQ:i\n,a; generate initial codebook Cinitial=sourceF,bins,M; training [Cfinal,V,k]=gla2F,Cinitial,iteration; Cfinal=split2F,floorlogMlog2,iteration; Code=Cfinal; save codebook Code

3. Membuat codebook