Perkaman suara alat musik pada Matlab menggunakan perintah wavrecord dan untuk menyimpan suara alat musik yang telah terekam menggunakan perintah wavwrite.
Suara yang telah terekam tersebut kemudian dilakukan plot dan ditamplkan pada axes yang memiliki label plot perekaman, dengan menggunakan perintah plot.
Gambar 4.6 Program Ekstraksi Ciri
b0=0.3; batas potong frame=handles.frame;
koefwin=handles.koefwin; Normalisasi 1
y0=x0maxabsx0; Potong kiri bagian silence
b1=findy0b0 | y0-b0; y01:b11=[];
Potong kiri bagian transisi bts=floor0.25lengthy0;
y01:bts=[]; Frame blocking
y1=y01:frame; Normalisasi 2
y2=y1maxabsy1; Windowing Hamming
h=hammingframe; y3=y2.h;
DST y4=absdsty3; pakai nilai absolut
y41=0; frek DC di nolkan Pemrosesan akhir
a Normalisasi 3 y5=y4maxy4;
b Centering b.1 Cari indeks dari nilai terbesar
[srty,idxy]=sorty5,descend; imax=idxy1;
b.2 Pemrosesan sisi kiri halfwin=roundkoefwin100frame2; separuh lebar window koef
y6=y5; y6imax:frame=[]; potong kanan
y6=fliplry6; if lengthy6=halfwin
y6=y61:halfwin; potong jika terlalu panjang else
Gambar 4.6 Lanjutan Program Ekstraksi ciri Gambar 4.6 merupakan list program untuk melakukan proses ekstraksi ciri pada
sistem pengenalan ini, yang berfungsi sebagai pembanding antara input suara dengan database untuk mengetahui output alat musik yang sedang dimainkan. Ekstraksi ciri
melalui beberapa tahap yang memiliki 3 masukan yaitu, 1 masukan tetap adalah nilai batas potong yang inisialisasi sebagai b0 dan 2 varian masukan yaitu Frame Blocking
dan Windowing Koefisien. Peneliti melakukan penginisialan nilai Frame Blocking dan Windowing Koefisien mempermudah ketika menjalankan proses ekstraksi ciri. Nilai
Frame Blocking dan Windowing Koefisien merupakan nilai yang dipilih oleh user, kemudian GUI menjalankan proses Normalisasi, Pemotongan Sinyal, Windowing
Hamming, DST, Centering, dan Penyekalaan Logaritmis. Proses ekstraksi ciri berjalan sesuai dengan diagram alur pada Gambar 3.4.
Gambar 4.7 Database keseluruhan
Load Database if frame==32koefwin==40 load db1dst32;
elseif frame==32 koefwin==50 load db2dst32; elseif frame==32 koefwin==60 load db3dst32;
elseif frame==32 koefwin==70 load db4dst32; elseif frame==32 koefwin==80 load db5dst32;
elseif frame==64 koefwin==40 load db1dst64; elseif frame==64 koefwin==50 load db2dst64;
elseif frame==64 koefwin==60 load db3dst64; elseif frame==64 koefwin==70 load db4dst64;
elseif frame==64 koefwin==80 load db5dst64; y6halfwin=0; zero padding jika terlalu pendek
end y6=fliplry6;
b.3 Pemrosesan sisi kanan y7=y5;
y71:imax-1=[]; potong kiri if lengthy7=halfwin
y7=y71:halfwin; potong jika terlalu panjang else
y7halfwin=0; zero padding jika terlalu pendek end
b.4 Penggabungan kiri dan kanan y8=[y6 y7];
Penyekalaan logaritmis y9=log105000y8+1; 5000 : penyekala logaritmis
y9=y9:; 1 : menghindari logaritma 0 dari zero padding
Normalisasi z=y9maxy9;
Gambar 4.7 Lanjutan Database keseluruhan Gambar 4.7 adalah Database untuk sistem pengenalan alat musik ini, yang
merupakan variasi dari Frame Blocking dan Windowing Koefisien. Isi dari tiap database tersebut adalah list program seperti pada lampiran L-11 – l-17 yang berisi rekaman
suara alat musik dan program ekstraksi ciri untuk tiap rekaman yang nantinya akan dibandingkan dengan input suara alat musik yang baru. Dengan menggunakan program
tersebut maka akan memperoleh ekstraksi ciri Database. Proses ekstraksi ciri databse berjalan sesuai dengan diagram alur pada Gambar 3.4 yang berada di dalam kotak
dengan garis hitam putus-putus. List program pada lampiran L-11 – L-17 merupakan proses untuk memanggil
Database kemudian dibandingkan dengan suara yang baru dengan menggunakan Fungsi Korelasi. Database yang akan dipanggil sesuai dengan pilihan nilai varian
Frame Blocking dan Windowing Koefisien yang telah dipilih oleh user. Setelah menentukan nilai titik Frame Blocking dan Windowing Koefisien, kemudian suara alat
musik yang baru terekam dibandingkan dengan Database menggunakan Fungsi Korelasi dalam bentuk m-file. List program untuk memanggil Fungsi Korelasi dalam
bentuk m-file tercantum pada Gambar 4.8 yang sudah sesuai dengan diagram alur pada Gambar 3.19.
Gambar 4.8 Program Fungsi Korelasi
Perhitungan korelasi [x,jumdb]=sizedb;
z=zeros1,jumdb; for n=1:jumdb
zn=korelasiuji,db:,n; end
elseif frame==128 koefwin==40 load db1dst128; elseif frame==128 koefwin==50 load db2dst128;
elseif frame==128 koefwin==60 load db3dst128; elseif frame==128 koefwin==70 load db4dst128;
elseif frame==128 koefwin==80 load db5dst128; elseif frame==256 koefwin==40 load db1dst256;
elseif frame==256 koefwin==50 load db2dst256; elseif frame==256 koefwin==60 load db3dst256;
elseif frame==256 koefwin==70 load db4dst256; elseif frame==256 koefwin==80 load db5dst256;
elseif frame==512 koefwin==40 load db1dst512; elseif frame==512 koefwin==50 load db2dst512;
elseif frame==512 koefwin==60 load db3dst512; elseif frame==512 koefwin==70 load db4dst512;
elseif frame==512 koefwin==80 load db5dst512; end
Setelah menemukan nilai hasil perbandingan menggunakan Fungsi Korelasi, kemudian nilai tersebut akan diurutkan dari paling besar hingga paling kecil. Kemudian
hasil tersebut akan ditampilkan dalam bentuk teks pada GUI yang berupa nama dari ketiga alat musik. Dengan menggunakan program pada Gambar 4.9 berfungsi untuk
menentukan keluaran teks yang telah sesuai dengan Gambar 3.20 dan 3.21.
Gambar 4.9 Program penentuan keluaran
c. Tombol “RESET” Tombol “RESET” digunakan untuk membersihkan jendela plot perekaman, plot
ekstraksi ciri, dan hasil keluran alat musik atau mengatur ulang menjadi seperti awal ketika baru membuka GUI. Program yang digunakan pada tombol “RESET” dapat
dilihat seperti pada Gambar 4.10.
Gambar 4.10 Program Reset Fungsi dari program adalah untuk mengatur ulang pop up menu dan
membersihkan axes plot dan hasil output alat musik pada kolom edit text.
axeshandles.axes1; plot0;
sethandles.edit1,string, ; sethandles.edit2,string, ;
sethandles.popupmenu1,value,1; sethandles.popupmenu2,value,1;
Penentuan keluaran [sortz,idxz]=sortz,descend
rata=meansortz;
sethndls.edit2,string,rata; kelasout=idxz1
kelasout=ceilkelasout8 jumlah anggotakelas dalam database = 8 if kelasout==1
mout={Belira}; sethndls.edit1,string,mout
elseif kelasout==2 mout={Rekorder};
sethndls.edit1,string,mout elseif kelasout==3
mout={Pianika}; sethndls.edit1,string,mout
end
d. Tombol “SELESAI” Fungsi dari tombol “SELESAI” adalah untuk mengakhiri proses pengenalan dan
untuk menutup GUI. Untuk program yang digunakan pada tombol ini seperti pada Gambar 4.11.
Gambar 4.11 Program untuk menutup GUI
4.2. Hasil Pengujian Program Pengenalan Suara Alat Musik