• Tidak ada hasil yang ditemukan

BAB IV : HASIL DAN PEMBAHASAN

4.1. Pengujian Program Pengenalan Suara Alat Musik Belira, Pianika, dan

4.1.1. Pengenalan Suara Alat Musik

Pengenalan suara alat musik dapat bekerja dengan melakukan langkah-langkah yang sudah disebutkan di atas. Pada Tampilan atau GUI dapat dilihat bahwa memiliki 2 pop up menu, 3 push button, 1 axes, dan 2 edit text seperti pada gambar 4.1. Untuk melakukan pengenalan, user terlebih dahulu harus melakukan pengaturan pada GUI. Pengaturan yang terdapat pada GUI yaitu memilih nilai-nilai varian dari Frame Blocking dan Windowing Koefisienyang terdapat pada pop up menu. Setelah memilih varian yang akan digunakan, user dapat melakukan proses pengenalan dengan menekan tombol “REKAM”. Hasil yang akan ditampilkan adalah plot hasil perekaman, hasil korelasi, dan alat musik yang dikenali. User dapat melakukan pengenalan langsung pada alat musik dengan menekan tombol “REKAM” dengan nilai Frame Blocking dan Windowing Koefisien yang sama. Dengan menekan tombol “RESET” kemudian user melakukan pengaturan ulang kemudian menekan tombol “REKAM” lagi. Setelah proses pengenalan selesai user dapat menekan tombol “SELESAI”.

a. Pop Up Menu

GUI pada sistem pengenalan alat musik ini memiliki 2 pop up menu yaitu Frame Blocking dan Windowing Koefisien. Nilai varian titik Frame Blocking yang ditampilkan pada pop up menu yaitu 32, 64, 128, 256, dan 512. Nilai variasi Windowing Koefisien adalah 40, 50, 60, 70, 80. Perintah program untuk menjalankan varian Frame Blocking yang telah dirancang seperti pada Gambar 4.3.

Gambar 4.3 Program Pop Up Menu Frame Blocking indeks=get(handles.popupmenu1,'value'); switch indeks case 2 frame=32; case 3 frame=64; case 4 frame=128; case 5 frame=256; case 6 frame=512; end handles.frame=frame; guidata(hObject,handles);

Pada program, varian nilai Frame Blocking diinisialisasi menggunakan nama frame yang dibagi dalam 4 kondisi sesuai dengan banyaknya varian. Pada inisialisasi frame tersebut user menggunakan perintah handles. Perintah tersebut digunakan untuk data atau nilai varian titik Frame Blocking yang telah diinisialisasi sebagai masukan apabila melakukan callback. List program pop up menu varian Windowing Koefisien dapat dilihat sepeti pada Gambar 4.4.

Gambar 4.4 Program Pop Up Menu Windowing Koefisien

Proses pada pop up menu untuk varian nilai Windowing Koefisien sama dengan proses pada pop up menu pada varian nilai Frame Blocking. Tiap nilai varian Windowing Koefisien diinisilisasikan sebagai koefwin.

b. Tombol “REKAM”

Tombol “REKAM” adalah tombol yang berfungsi untuk menjalankan proses pengenalan suara alat musik pada sistem ini. Dengan menekan tombol tersebut proses pengenalan akan dimulai. Program pada tombol “REKAM” memiliki beberapa subproses yang dimulai dari proses perekaman suara alat musik, proses ekstraksi ciri, proses korelasi, dan penentuan keluaran alat musik tersebut. Program yang digunakan untuk proses perekaman suara alat musik dapat dilihat seperti pada Gambar 4.5.

Gambar 4.5 Program perekaman suara alat musik indeks=get(handles.popupmenu2,'value'); switch indeks case 2 koefwin=40; case 3 koefwin=50; case 4 koefwin=60; case 5 koefwin=70; case 6 koefwin=80; end handles.koefwin=koefwin; guidata(hObject,handles); sample_length=1.5; sample_freq=10000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq); wavwrite(x, sample_freq, 'd.wav'); axes(handles.axes1)

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=x0/max(abs(x0));

% Potong kiri (bagian silence) b1=find(y0>b0 | y0<-b0);

y0(1:b1(1))=[];

% Potong kiri (bagian transisi) bts=floor(0.25*length(y0)); y0(1:bts)=[]; % Frame blocking y1=y0(1:frame); % Normalisasi 2 y2=y1/max(abs(y1)); % Windowing Hamming h=hamming(frame)'; y3=y2.*h; % DST

y4=abs(dst(y3)); % pakai nilai absolut y4(1)=0; % frek DC di nolkan % Pemrosesan akhir % (a) Normalisasi 3 y5=y4/max(y4); % (b) Centering

% (b.1) Cari indeks dari nilai terbesar [srty,idxy]=sort(y5,'descend');

imax=idxy(1);

% (b.2) Pemrosesan sisi kiri

halfwin=round((koefwin/100)*(frame/2)); % separuh lebar window koef

y6=y5;

y6(imax:frame)=[]; % potong kanan y6=fliplr(y6);

if length(y6)>=halfwin

y6=y6(1: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==32)&&(koefwin==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; y6(halfwin)=0; % zero padding jika terlalu pendek end

y6=fliplr(y6);

% (b.3) Pemrosesan sisi kanan y7=y5;

y7(1:imax-1)=[]; % potong kiri if length(y7)>=halfwin

y7=y7(1:halfwin); % potong jika terlalu panjang else

y7(halfwin)=0; % zero padding jika terlalu pendek end

% (b.4) Penggabungan kiri dan kanan y8=[y6 y7]';

% Penyekalaan logaritmis

y9=log10(5000*y8+1); % 5000 : penyekala logaritmis y9=y9(:); % 1 : menghindari logaritma 0 % dari zero padding % Normalisasi

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]=size(db); z=zeros(1,jumdb); for n=1:jumdb z(n)=korelasi(uji,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.

axes(handles.axes1); plot(0); set(handles.edit1,'string',' '); set(handles.edit2,'string',' '); set(handles.popupmenu1,'value',1); set(handles.popupmenu2,'value',1); % Penentuan keluaran [sortz,idxz]=sort(z,'descend') rata=(mean(sortz)); set(hndls.edit2,'string',rata); kelasout=idxz(1)

kelasout=ceil(kelasout/8) % jumlah anggota/kelas dalam database = 8 if (kelasout==1) mout={'Belira'}; set(hndls.edit1,'string',mout) elseif (kelasout==2) mout={'Rekorder'}; set(hndls.edit1,'string',mout) elseif (kelasout==3) mout={'Pianika'}; set(hndls.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

Dokumen terkait