Pengujian Program Pengenalan Ucapan Pengenalan Ucapan

49 BAB IV HASIL DAN PEMBAHASAN Pengujian software dan hardware diperlukan untuk mengetahui suatu sistem dapat bekerja dengan baik dan sesuai dengan perancangan yang sudah dilakukan oleh peneliti. Hasil pengujian berupa data-data yang dapat memperlihatkan bahwa sistem yang telah dibuat dapat berjalan dengan baik. Analisa terhadap proses kerja sistem yang dibuat peneliti dapat digunakan untuk menarik kesimpulan dari apa yang disajikan dalam tugas akhir ini.

4.1. Pengujian Program Pengenalan Ucapan Pengenalan Ucapan

Manusia Secara Real-Time Menggunakan Ekstraksi Ciri DCT dan Fungsi Jarak Clark Pengujian program bertujuan untuk memastikan apakah program yang teah dibuat bekerja sesuai dengan apa yang telah dirancang pada bab sebelumnya. Pengujian program menggunakan computer dengan spesifikasi : Processor : Intel® Coren™ i3 CPU M 350 2.27GHz 4 CPUs, ~2.3GHz RAM : 2048 MB Program pengenalan ini dapat dijalankan dengan langkah-langkah sebagai berikut : 1. Klik dua kali icon Matlab pada layar dekstop dengan gambar icon seperti Gambar 4.1. Gambar 4.1. Icon Matlab 2. Tampilan pada Gambar 4.1 akan muncul sebelum masuk ke tampilan utama program. Gambar 4.2. Tampilan awal Matlab 3. Mengetik guide di dalam command window dan pada layar monitor akan muncul seperti pada Gambar 4.2 sebelum masuk ke tampilan utama program. Gambar 4.3 Tampilan program pengenalan ucapan manusia 4. User dapat memulai pengenalan dengan mengisi pengaturan pengenalan ucapan manusia yakni variasi batas potong, k-Nearest Neighbor dan segment averaging yang akan digunakan dalam proses pengenalan seperti pada Gambar 4.3. 5. Nilai batas potong, segment averaging dan nilai k-Nearest Neighbor telah dipilih seperti gambar 4.4; user dapat memulai proses pengenalan ucapan manusia dengan menekan tombol “rekam”. Gambar 4.4. Tampilan pengaturan pengenalan ucapan manusia 6. Hasil pengenalan ucapan manusia akan ditampilkan dalam kotak “Hasil Pengenalan”. User dapat melihat spektrum hasil rekaman ucapan manusia dan grafik hasil proses DCT pada kotak “Plot Hasil Rekam” dan “Plot Hasil Ekstraksi Ciri”. 7. User dapat mengulang kembali pengenalan nada dengan menekan tombol “reset” dan mengulang kembali dengan langkah 4, 5, dan 6. 8. User dapat mengakhiri pengena lan nada dengan menekan tmbol “selesai”.

4.1.1. Pengenalan Ucapan Manusia

Dalam pengenalan ucapan manusia dapat dilakukan dengan langkah-langkah yang sudah dijelaskan diatas. Tampilan GUI untuk pengenalan ucapan manusia dapat dilihat pada gambar 4.3. Pada tampilan GUI tersebut terdapat tiga pop up menu, dua axes, tiga push button dan satu static text. a. Pop Up Menu Dalam program pengenalan ini menggunakan tiga pop up menu yaitu variasi batas potong, variasi segment averaging dan nilai k-Nearest Neighbor . Pop up menu 1 akan menampilkan variasi segment averaging yang bernilai 4, 8, 16, 32 dan 64. Pop up menu 2 akan menampilkan variasi nilai k-Nearest Neighbor yang bernilai 1, 3, 5 dan 7, dan pada pop up menu 3 akan menampilkan variasi nilai batas potong yang bernilai 0,1; 0,2; 0,3; 0,4 dan 0,5 . Pada pop up menu 1 akan menjalankan perintah program yang telah dirancang sebagai berikut : Pada program pop up menu 1 ini, lebar segment averaging diinisialisasi dengan nama fra yang dibagi menjadi lima kondisi. Inisialisasi fra tersebut diproses dengan perintah handles. Perintah yang terdapat dalam pop up menu 1 digunakan untuk segment averaging yang telah diinisialisasi sebagai masukan apabila dilakukan callback. Pada pop up menu 2 ini nilai k-Nearest Neighbor diinisialisasi dengan nama knn dan programnya sebagai berikut : indeks=gethandles.popupmenu1, Value ; switch indeks case 1 fra=4; case 2 fra=8; case 3 fra=16; case 4 fra=32; case 5 fra=64; end handles.segment=fra; guidatahObject,handles; Proses yang akan dilakukan oleh pop up menu 2 sama dengan proses yang terdapat pada pop up menu 1. Pada pop up menu 3 ini nilai batas potong diinisialisasi dengan nama bpot dan programnya sebagai berikut : indeks=gethandles.popupmenu2, Value ; switch indeks case 1 knn=1; case 2 knn=3; case 3 knn=5; case 4 knn=7; end indeks=gethandles.popupmenu3, Value ; switch indeks case 1 bpot=0,1; case 2 bpot=0,2; case 3 bpot=0,3; case 4 bpot=0,4; case 5 bpot=0,5; end handles.bpotong=bpot; guidatahObject,handles; Proses yang akan dilakukan oleh pop up menu 3 sama dengan proses yang terdapat pada pop up menu 1 dan 2. b. Tombol “rekam” Tombol ini berfungsi untuk memulai program dalam pengenalan suara ucapan manusia. User dapat memulai pengenalan suara ucapan manusia dengan menekan tombol “rekam”. Tombol ini untuk memulai pengenalan ucapan manusia dengan menjalankan beberapa subproses. Dalam subproses dimulai dari perekaman suara, preproccesing ,ekstraksi ciri DCT, penghitungan jarak clark, dan penentuan hasil pengenalan ucapan manusia. Program yang akan digunakan untuk perekaman ucapan manusia sebagai berikut: Pada sample_length merupakan sebuah perintah untuk sekali perekaman hanya diberikan waktu sebesar satu detik dan memakai frekuensi sampling 6000Hz. Perekaman suara ucapan manusia pada Matlab menggunakan perintah wavrecord untuk menyimpan suara ucapan manusia yang telah direkam, kemudian akan diplot pada axes 1 yang terdapat pada pengenalan dengan menggunakan perintah plot. Fungsi handles untuk mengatur masukan atau keluaran program. Setelah pemanggilan ucapan yang telah terrekam dengan wavread. Program yang terdapat dibawah ini adalah subproses yang berisi tentang preprocessing yang bertujuan untuk mengolah normalisasi, pemotongan sinyal, windowing, zero padding , ekstraksi ciri DCT dan segment. Hasil dari segment averaging akan disimpan dalam inisialisasi “y”. Berikut ini adalah proses preprocessing yang sesuai dengan gambar 3.7 secara lengkap : sample_length=1; sample_freq=6000; sample_time=sample_lengthsample_freq; x=wavrecordsample_time, sample_freq; axeshandles.axes1 plotx; Normalisasi x1=xmaxabsx; Potong kiri b0=handles.bpotong; b1=findx1b0 | x1-b0; x11:b11=[]; Potong kanan x2=fliplrx1; b2=findx2b0|x2-b0; x21:b21=[]; x2=fliplrx2; zero padding usig=2048; x0usig=0; penyesuaian ukuran sinyal x1=x01:usig; DCT x0=absdctx1; x1=abslogx0; x=x1:; reshape fra=handles.segment x1=reshapex1,fra,[]; x1=meanx1; y=x1:; axeshandles.axes2 plot y; Dari hasil segment averaging yang diinisialisasi dengan “y” akan diplot di axes 2 yang menggambarkan sinyal ucapan hasil segment averaging. Program untuk menggambarkan hasil segment averaging ke axes 2 sebagai berikut : Proses selajutnya setelah pengolahan sinyal ucapan adalah pemanggilan database yang disesuaikan dengan dua variasi yaitu nilai batas potong dan segment averaging . Program database menggunakan logika if else agar database mempunyai kesamaan dengan nilai variasi yang telah dipilih oleh user. Program pemanggilan database sebagai berikut : Setelah memamggil database yang akan dibandingkan dengan ucapan manusia yang telah terekam secara real-time dimasukan ke dalam fungsi k-Nearest Neighbor menggunakan perhitungan jarak. Proses selanjutnya mencari banyak nilai minimum dengan fungsi k-Nearest Neighbor, berikut program perhitungan fungsi k-Nearest Neighbor : axeshandles.axes2 plot y; if b0==0.1 fra==4 load db014 elseif b0==0.2 fra==4 load db024 for n=1:50 jarakclarkxn=jarakclarky,z:,n; end jarakclarkmin=findminjarakclarkx==jarakclarkx; minjarakclarkx=minjarakclarkx [x1,x2]=sortjarakclarkx, ascend ; asscend mengurutkan dari kecil ke besar knn=handles.nearest; Nilai jarak minimal yang diperoleh dari perhitungan fungsi k-Nearest Neighbor akan digunakan untuk menentukan suara ucapan manusia yang berhasil dikenali. Ucapan yang telah dikenali akan ditampilkan dalam bentuk teks. Setelah menentukan keluaran yang akan tertampil di edit1 berupa tulisan, akan langsung mengirim data string ke mikrokontrolller dengan program sebagai berikut dan list program secara lengkap dapat dilihat pada lampiran C : k=knn banyaknya sample dari nilai terdekat nilai K=1,3,5,7 kn=x21:k; Pilih k nearest neighbour hk=ceilkn10 Penentuan kelas-kelas yang terpilih, fungsi ceil untuk pembulatan ke atas z=modushk modus adalah nilai yang paling sering muncul diveout={ cepat , lambat , kanan , kiri , stop }; hasilout=diveoutz; sethandles.edit1, String ,hasilout srl=strcmp cepat ,hasilout; if srl==1 delete instrfind; pause 0.1; s=serial COM3 ; set s, BaudRate ,9600; fopens; fprintfs, C ; fcloses; deletes; clear s ; c. Tombol “reset” Tombol reset berfungsi untuk mengulangi proses pengenalan ucapan manusia dengan menggunakan variasi ucapan lain atau ucapan yang sama. Berikut perintah dari program reset tersebut : Program diatas ini digunakan untuk menghapus data axes yang telah ditampilkan dan teks ucapan yang telah dikenali sebelumnya. d. Tombol “keluar” Tombol ini berfungsi sebagai tombol yang digunakan user untuk keluar atau mengakhiri program pengenalan ucapan manusia dan perintahnya sebagai berikut: Kesimpulan dari pengujian program pengenalan bawah tombol dan alur program berjalan dengan baik sesuai perancangan .

4.2. Hasil Pengujian Program Pengenalan Ucapan Terhadap Tingkat