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