PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
PENGENALAN SUARA INSTRUMEN MUSIK MENGGUNAKAN ROW MEAN DCT Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh: AGNES SIMON REDO NIM : 115114038
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT
MUSICAL INSTRUMENTS SOUND RECOGNITION USING ROW MEAN DCT Presented as Partial Fullfillment of The Requirements To Obtain Sarjana Teknik Degree In Electrical Engineering Study Program
By :
AGNES SIMON REDO NIM : 115114038
ELECTRICAL ENGINEERING STUDY PROGRAM DEPARTMENT OF ELECTRICAL ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016 ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 14 Januari 2016
Agnes Simon Redo
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP MOTTO :
I’m Not Lucky, I’m Blessed
Persembahan Karya tulis ini ku persembahkan kepada ..... Tuhanku Yesus kristus yang selalu menjadi sumber kekuatan dan pengharapanku, Almarhumah Ibuku Tercinta, Bapak, Kakak-kakak dan semua keluargaku yang kukasihi dan yang selalu mendukungku dalam segala hal, Teman-teman seperjuanganku yang tercinta, Dan semua orang yang mengasihiku, mendoakanku, dan mendukungku dalam Tugas Akhir ini. Terima kasih untuk semuanya…... VI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama
: Agnes Simon Redo
Nomor Mahasiswa
: 115114038
Dengan pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PENGENALAN SUARA INSTRUMENT MUSIK MENGGUNAKAN ROW MEAN DCT Beserta perangkat yang diperlukan (kalau ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya di internet atau media lainnya untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataa ini saya buat dengan sebenarnya.
Yogyakarta, 14 Januari 2016
(Agnes Simon Redo)
VII
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
VIII
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI
Kebanyakan orang hanya bisa mendengarkan suatu suara instrument alat musik tanpa mengetahui suara instrument alat musik apa yang sedang dimainkan, karena kurangnya ketajaman pendengaran serta pengetahuan tentang musik sangat terbatas. Hal ini juga sangat penting bagi seorang pemusik ataupun seorang musisi untuk mengetahui apakah suara instrument musik yang dimainkan sudah menghasilkan suara instrument musik yang tepat. Alat musik yang dimainkan pun juga beragam, seperti alat musik pukul yaitu Belira yang merupakan alat musik yang dimainkan dengan cara dipukul, dan biasa digunakan pada drum band. Rekorder yang merupakan alat musik melodis yang sumber bunyinya berasal dari tekanan udara yang dimainkan dengan cara ditiup. Serta pianika yang merupakan salah satu alat musik gabungan yang ditiup dan ditekan. Sistem pengenalan sangat diperlukan untuk membantu dalam mengenali suara instrument alat musik pada alat musik Belira, Pianika dan Rekorder. Sistem pengenalan suara instrument musik belira, pianika dan rekorder dalam tugas akhir ini menggunakan mikrofon dan komputer untuk mengoperasikannya. Mikrofon berfungsi untuk menerima gelombang suara instrument musik belira, pianika dan rekorder. Komputer berfungsi untuk memproses data hasil rekaman, menampilkan gelombang hasil rekaman, menampilkan spektrum ekstraksi ciri dan menampilkan hasil nada yang dikenali berupa teks. Sistem pengenalan suara instrumen musik menggunakan Row Mean DCT, fungsi jarak Euclidean dan klasifikasi k-NN sudah berhasil dibuat dan dapat bekerja sesuai dengan perancangan. Pengenalan suara instrument musik pada belira, pianika dan rekorder secara real-time dengan menggunakan database pernada 4 dengan variasi frame blocking 256, dan nilai k=1 pada k-NN memiliki tingkat pengenalan suara instrument musik mencapai 87,69 %. Kata kunci : Belira, Pianika dan Rekorder, Row Mean DCT (Discrete Cosine Transform, fungsi jarak Euclidean, k-nearest neighbor (k-NN), Pengenalan Suara Instrumen Musik
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT Most people can only hear a musical instrument sounds without knowing what musical instrument sound is being played, because of the lack of hearing acuity and knowledge of music is very limited. It is also very important for a musician to find out whether the musical instruments used have produced musical instrument sounds right. Musical instrument played was also varied, such as percussion instruments, namely Belira which is a musical instrument played by striking, and is commonly used in drum band. Recorder which is tuned instrument that is the source of the sounds comes from air pressure that is played by blowing. As well pianika which is one instrument combined blown and pressed. Recognition system is needed to help in identifying instrument sounds of musical instruments Belira, pianika and recorder. Musical instruments system sounds recognition belira, pianika and recorder in this thesis using a microphone and a computer to operate. Microphone function to receive sound waves belira musical instrument, pianika and recorder. Computer functions to process data recording, featuring a wave recordings, featuring spectrum feature extraction and displays the results of the tone of the recognized text. Musical instruments sounds recognition using row mean dct, Euclidean distance function and k-NN classification has been created and can work in accordance with the design. Musical instruments sounds recognition belira, pianika and recorder in real-time by using database pernada 4 with frame blocking 256 variation, and k=1 for k-NN has a level musical instruments sounds recognition reached 87,69 %. Keyword : Belira, Pianika and Recorder, Row Mean DCT (Discrete Cosine Transform, Euclidean Distance Functions, Classifier k-NN, Musical Instruments Sounds Recognition
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji Syukur kepada Tuhan Yesus Kristus karena telah memberikan Berkat-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir dengan baik, dan dapat memperoleh gelar sarjana. Dalam penulisan tugas akhir ini, penulis menyadari bahwa tidak lepas dari seluruh bantuan dan bimbingan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis mengucapkan banyak terimakasih kepada: 1. Tuhan Yesus Kristus atas kasih karunia, berkat dan anugerah-Nya kepada penulis 2. Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma. 3. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elekro Universitas Sanata Dharma 4. Dr. Linggo Sumarno, selaku dosen pembimbing yang dengan setia dan penuh kesabaran untuk membimbing dalam menyelesaikan penulisan Tugas Akhir ini. 5. Dr. Iswanjono, Dr. Anastasia Rita Widiarti selaku dosen penguji yang telah memberikan bimbingan, masukan, saran, dan merevisi Tugas Akhir ini. 6. Alm. Ibu, Bapak serta kakak-kakak yang tiada henti untuk selalu mendoakan, mendukung dan membantu segala sesuatunya sampai pencapaian menyelesaiakan studi di jenjang perkuliahan. 7. Keluarga besarku yang selalu medoakan dan mendukung untuk menyelesaikan Tugas Akhir ini. 8. Segenap staff sekretariat, dan laboran Teknik Elektro yang telah memberikan dukungan secara tidak langsung dalam kelancaran tulisan tugas Akhir ini. 9. Sahabat-sahabat “Lawliet Room” Angel, Feby, Christin, Yunda, Inggrid, Fany, Ean, Nita, Debby, Apri, Grace dan Tika yang selalu mendoakan dan memberi semangat dalam kelancaran penulisan Tugas Akhir ini. 10. Saudara-saudari “XVI Jogja” Christin, Yolanda, Yovita, Yunda, Inggrid, Reymond, Yonathan, Triono, dan Valentinus yang sudah menjadi keluargaku selama menempuh pendidikan di Yogyakarta dan yang selalu membantu, mengingatkan mendukung dalam menyelesaikan Tugas Akhir ini.
X
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11. Keluarga besar “XVI oi..oi..” yang selalu mendoakan dan menyemangati dalam kelancaran penyelesaian Tugas Akhir ini. 12. Teman-teman seperjuangan “SKRIPSI” Yovita, Monica, Anton, Yugo, Heri dan Respati yang selalu mendukung, selalu mengingatkan setiap ada konsultasi untuk tugas akhir dan selalu memberikan semangat. 13. Teman-teman Teknik Elektro 2011 yang telah memberikan semangat pada saat menempuh pendidikan di Universitas Sanata Dharma. 14. Semua Pihak yang tidak bisa disebutkan satu persatu yang telah banyak mendukung, dan memberikan banyak bantuan dalam menyelesaikan Tugas Akhir ini. Penulis menyadari bahwa dalam penyusunan laporan Tugas Akhir ini masih mengalami kesulitan dan tidak lepas dari kesalahan. Oleh karena itu, penulis mengharapkan masukan, saran ,kritikan yang mendukung agar skripsi ini menjadi lebih baik, dan semoga sripsi ini dapat bermanfaaat sebagaimana mestinya
Penulis
Agnes Simon Redo
XI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI Halaman
HALAMAN JUDUL. ............................................................................................... i HALAMAN PERSETUJUAN.. ............................................................................ iii HALAMAN PENGESAHAN. .............................................................................. iv PERNYATAAN KEASLIAN KARYA. ............................................................ v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP. ............................ vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS. ......................................................... vii INTISARI. ................................................................................................................... viii ABSTRACT. ............................................................................................................... ix KATA PENGANTAR. ............................................................................................ x DAFTAR ISI. .............................................................................................................. xii DAFTAR GAMBAR................................................................................................ xvi DAFTAR TABEL. .................................................................................. xviii BAB I PENDAHULUAN 1.1.
Latar Belakang. ................................................................................................. 1-2
1.2.
Tujuan dan Manfaat Penelitian ......................................................................... 2
1.3.
Batasan Masalah ............................................................................................... 2-3
1.4.
Metodologi Penelitian ....................................................................................... 3-5
BAB II DASAR TEORI 2.1.
Pianika................................................................................................................ 6
2.2.
Belira .................................................................................................................. 6-7
2.3.
Rekorder ............................................................................................................ 7-8
2.4.
Sampling ............................................................................................................ 9
2.5.
Normalisasi ........................................................................................................ 9-10
2.6.
Normalisasi 1.. ................................................................................................... 10
2.7.
Pemotongan Sinyal.... ........................................................................................ 10-11
2.8.
Frame Blocking ................................................................................................. 12-13
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.9.
Normalisasi 2........ ............................................................................................. 13
2.10.
Row Mean DCT (Discrete Cosine Transform)………………………………
14
2.10.0. Row Mean DCT (Discrete Cosine Transform)………………………
14-15
2.10.1. Windowing. ............................................................................................ 15 2.10.2. Hanning window .................................................................................... 15-16 2.11.3. DCT (Discrete Cosine Transform)........................................................ 16-17 2.11.4. Rerata Baris. .......................................................................................... 17 2.11.
Normalisasi 3 .................................................................................................... 17-18
2.12.
Centering ........................................................................................................... 18 2.12.1. Proses Sisi Kiri dan Kanan .................................................................... 18-19 2.12.2. Penggabungan Kiri dan Kanan .............................................................. 19
2.13.
Pengenalan Pola ................................................................................................. 19-20
2.14.
Template Matching ............................................................................................ 20
2.15.
Fungsi Jarak Euclidean ...................................................................................... 20-21
2.16
Klasifikasi k-NN ................................................................................................ 21
BAB III PERANCANGAN 3.1.
Sistem Pengenalan Suara Instrumen Musik ...................................................... 22 1. Belira.............................................................................................................. 23 2. Pianika.... ....................................................................................................... 23 3. Rekorder .......... ............................................................................................. 23 4. Mikrofon.... .................................................................................................... 23-24 5. Proses Perekaman.... ...................................................................................... 24 6. Proses Pengenalan Suara.... ........................................................................... 24 3.1.1. Suara Belira, Pianika, Atau Rekorder (Wav).... ......................................... 24 3.1.2. Pemotongan Sinyal.... ................................................................................. 25 3.1.3. Frame Blocking.... ...................................................................................... 25 3.1.4. Normalisasi.... ............................................................................................. 25 3.1.5. Row Mean DCT (Discrete Cosine Transform).... ....................................... 25 3.1.6. Centering.... ................................................................................................ 25 3.1.7. Fungsi Jarak (Euclidean).... ........................................................................ 25 3.1.8. Penentuan Hasil Suara Instrumen Musik.... ............................................... 26 3.1.9. Hasil Tampilan.... ....................................................................................... 26
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2.
Perancangan Suara Referensi ............................................................................ 26-27
3.3.
Suara Uji ............................................................................................................ 27
3.4.
Tampilan Program GUI MatLab ....................................................................... 28
3.5.
Perancangan Alur Program ............................................................................... 29-30 3.5.1. Rekam ..................................................................................................... 31 3.5.2. Normalisasi 1 .......................................................................................... 32 3.5.3. Pemotongan Sinyal ................................................................................. 33 3.5.4. Frame Blocking ....................................................................................... 34 3.5.5. Normalisasi 2. ......................................................................................... 35 3.5.6. Windowing Hanning................................................................................ 36 3.5.7. Row Mean DCT....................................................................................... 37-38 3.5.8. Normalisasi 3 .......................................................................................... 38 3.5.9. Centering................................................................................................. 39 3.5.10. Fungsi Jarak (Euclidean) ...................................................................... 40 3.5.11. K-NN..................................................................................................... 41-42
BAB IV HASIL DAN PEMBAHASAN 4.1.
Pengujian Program Pengenalan Suara Instrumen Row Mean DCT dan Pengklasifikasian K-NN dan Fungsi Jarak Euclidean ................................................................... 43-45 4.1.1. Pengenalan Suara Instrumen Musik....................................................... 45 a. Popup Menu............................................... ........................................ 45-47 b. Tombol “MULAI”........................................................... .................. 47-56 c. Tombol “RESET”........................................................... .................... 56-57 b. Tombol “SELESAI”........................................................... ............... 57
4.2.
Hasil Pengujian Program Pengenalan Suara Instrumen Musik ........................ 57 4.2.1. Pengujian Parameter Pengenalan Suara Instrumen Musik .................... 57 4.2.1.1 Pengujian secara Tidak Real-Time............................................. 57-59 4.2.1.2 Pengujian secara Real-Time ...................................................... 59-67
BAB V KESIMPULAN DAN SARAN 5.1.
Kesimpulan ...................................................................................................... 68
5.2.
Saran ................................................................................................................ 68
DAFTAR PUSTAKA............................................................................................... 69-70 LAMPIRAN
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 1 GAMBARAN SINYAL PADA PROSES ROW MEAN DCT............................................................................................. L1-L21 LAMPIRAN 2 LISTING PROGRAM GUI MATLAB. ................................................ L22-L39 LAMPIRAN 3 LISTING PROGRAM TIDAK REAL-TIME......................................... L40-L49 LAMPIRAN 4 HASIL PENGENALAN SUARA INSTRUMEN MUSIK SECARA TIDAK REAL –TIME . ................................................................................... L50-L54
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Halaman Gambar 2.1.
Alat Musik Pianika ................................................................................ 6
Gambar 2.2.
Alat Musik Belira ................................................................................... 7
Gambar 2.3.
Alat Musik Rekorder.............................................................................. 8
Gambar 2.4.
Sinyal Hasil Sampling............................................................................ 9
Gambar 2.5.
Sinyal Normalisasi 1 dari gambar sinyal 2.4 ......................................... 10
Gambar 2.6.
Sinyal Sebelum pemotongan dari gambar 2.5. ...................................... 11
Gambar 2.7.
(a). Hasil pemotongan bagian silence pada Belira. ................................ 11 (b). Hasil pemotongan bagian Transisi pada Belira. .............................. 11
Gambar 2.8.
(a). Hasil pemotongan bagian silence pada Pianika............................... 11 (b). Hasil pemotongan bagian Transisi pada Pianika............................. 11
Gambar 2.9.
(a). Hasil pemotongan bagian silence pada Rekorder. ........................... 11 (b). Hasil pemotongan bagian Transisi pada Rekorder. ......................... 11
Gambar 2.10.
(a). Bagian sinyal Belira yang akan diambil untuk Frame Blocking. .... 12 (b). Frame Blocking Belira dari gambar sinyal 2.7. .............................. 12
Gambar 2.11.
(a). Bagian sinyal Pianika yang akan diambil untuk Frame Blocking. .. 12 (b). Frame Blocking Pianika dari gambar sinyal 2.8. ............................ 12
Gambar 2.12.
(a). Bagian sinyal Rekorder yang akan diambil untuk Frame Blocking. 13 (b). Frame Blocking Rekorder dari gambar sinyal 2.9. ......................... 13
Gambar 2.13.
Sinyal Normalisasi 2 dari gambar sinyal 2.10, 2.11 dan 2.12 ............... 13
Gambar 2.14.
Proses Row Mean DCT.. ........................................................................ 14
Gambar 2.15.
Sinyal dari pembentukan kolom matriks dari gambar sinyal 2.14......... 15
Gambar 2.16.
Sinyal Windowing 2D dari gambar sinyal 2.15.. ................................... 16
Gambar 2.17.
Sinyal DCT 2D dari gambar sinyal 2.16.. .............................................. 17
Gambar 2.18.
Sinyal Rerata Baris dari gambar sinyal 2.17.. ........................................ 17
Gambar 2.19.
Sinyal Normalisasi 3 dari gambar sinyal 2.18.. ..................................... 17
Gambar 2.20.
Pemrosesan Sinyal Proses Sisi Kiri dari gambar sinyal 2.19................. 18
Gambar 2.21.
Pemrosesan Sinyal Proses Sisi Kanan dari gambar sinyal 2.20............. 19
Gambar 2.22.
Pemrosesan Sinyal Gabungan Kiri dan Kanan gambar sinyal
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.20 dan 2.21 .......................................................................................... 19 Gambar 3.1.
Blok Diagram Proses Pengenalan Suara Instrument Musik .................. 22
Gambar 3.2.
Blok Diagram Pengenalan suara alat Musik .......................................... 22
Gambar 3.3.
Mini Multimedia Microphone Genius MIC-01A ................................... 23
Gambar 3.4.
Diagram Blok Proses Pengenalan Suara Instrumen Musik ................... 24
Gambar 3.5.
Diagram Blok Proses Pengambilan Suara Referensi ............................. 26
Gambar 3.6.
Blok Diagram Proses Pengambilan Suara Uji ....................................... 27
Gambar 3.7.
Diagram Alir Sistem Pengenalan Suara Belira, Pianika dan Rekorder ................................................................................................. 30
Gambar 3.8.
Blok Diagram Proses Rekam ................................................................. 31
Gambar 3.9.
Diagram alir Normalisasi 1 .................................................................... 32
Gambar 3.10.
Diagram alir Pemotongan Sinyal ........................................................... 33
Gambar 3.11.
Diagram Alir Frame Blocking ............................................................... 34
Gambar 3.12.
Diagram alir Normalisasi 2 .................................................................... 35
Gambar 3.13.
Diagram alir Hanning Windowing ......................................................... 36
Gambar 3.14.
Diagram alir Row Mean DCT ................................................................ 37
Gambar 3.15.
Diagram Alir Normalisasi 3 ................................................................... 38
Gambar 3.16.
Diagram alir Centering .......................................................................... 39
Gambar 3.17.
Diagram alir Fungsi Jarak Euclidean ..................................................... 40
Gambar 3.18.
Diagram alir k-Nearest Neighbor (K-NN) ............................................. 41
Gambar 4.1
Tampilan Program Pengenalan Suara Instrumen Musik........................ 44
Gambar 4.2.
Tampilan Hasil Pengenalan ................................................................... 44
Gambar 4.3.
Grafik Pengaruh Frame Blocking Terhadap Tingkat Pengenalan Suara...................................................................................................... 66
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Halaman Tabel 3.1.
Keterangan Tampilan Utama Sistem .......................................................... 28
Tabel 4.1.
Menggunakan Nilai Frame Blocking 64 dengan database pernada 8 ........ 58
Tabel 4.2.
Menggunakan Nilai Frame Blocking 256 dengan database pernada 8 ...... 58
Tabel 4.3.
Menggunakan Nilai Frame Blocking 1024 dengan database pernada 8 .... 58
Tabel 4.4.
Menggunakan Nilai Frame Blocking 4096 dengan database pernada 8 .... 59
Tabel 4.5.
Hasil Pengujian secara Real Time dengan variasi Frame Blocking 64 database pernada 4 dan nilai k=1 pada k-NN ............................................ 60
Tabel 4.6.
Hasil Pengujian secara Real Time dengan variasi Frame Blocking 64 database pernada 4 dan nilai k=1 pada k-NN ............................................ 61
Tabel 4.7.
Hasil Pengujian secara Real Time dengan variasi Frame Blocking 256 database pernada 4 dan nilai k=1 pada k-NN ............................................ 61
Tabel 4.8.
Hasil Pengujian secara Real Time dengan variasi Frame Blocking 256 database pernada 8 dan nilai k=1 pada k-NN ............................................ 61
Tabel 4.9.
Hasil Pengujian secara Real Time dengan variasi Frame Blocking 1024 database pernada 4 dan nilai k=1 pada k-NN ............................................ 62
Tabel 4.10. Hasil Pengujian secara Real Time dengan variasi Frame Blocking 1024 database pernada 8 dan nilai k=1 pada k-NN ............................................ 62 Tabel 4.11. Hasil Pengujian secara Real Time dengan variasi Frame Blocking 4096 database pernada 4 dan nilai k=1 pada k-NN ............................................ 62 Tabel 4.12. Hasil Pengujian secara Real Time dengan variasi Frame Blocking 4096 database pernada 8 dan nilai k=1 pada k-NN ............................................ 63 Tabel 4.13. Pengaruh Frame Blocking terhadap tingkat pengenalan ............................ 65
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN
1.1
Latar Belakang Berbicara mengenai musik berarti kita berbicara tentang kehidupan manusia. Musik juga
dapat disebut sebagai media seni, dimana pada umumnya orang-orang mengungkapkan kreativitas dan eskpresi seninya melalui bunyi ataupun suara. Musik yang kita dengar sehariharinya secara umum, merupakan suatu kumpulan atau susunan bunyi atau nada, yang mempunyai ritme tertentu, serta mengandung isi atau nilai perasaan tertentu. Kamus Besar Bahasa Indonesia mengatakan bahwa musik adalah ilmu atau seni yang menyusun nada atau suara yang diutarakan dan dikombinasi untuk menghasilkan komposisi (suara) yang mempunyai keseimbangan dan kesatuan nada atau suara yang disusun sedemikian rupa sehingga akan menghasilkan irama, lagu dan keharmonisan yang menghasilkan bunyi [1]. Bunyi (suara) adalah elemen yang paling dasar. Suara musik yang baik adalah hasil interaksi dari tiga elemen, yaitu : irama, melodi dan harmoni. Irama adalah pengaturan suara dalam suatu waktu, panjang, pendek dan temponya, dan ini memberikan karakter tersendiri pada setiap musik. Kombinasi beberapa tinggi nada dan irama akan menghasilkan melodi tertentu serta kombinasi yang baik antara irama dan melodi menghasilkan bunyi yang harmoni. Berdasarkan penelitian yang telah dilakukan sebelumnya, dalam penulisan tugas akhir ini penulis ingin membuat suatu sistem pengenalan untuk mengenali bunyi suara instrument pada alat musik. Pada penelitian yang dilakukan sebelumnya oleh V. Irwan Novariyanto, dalam penelitiannya yang berjudul “Pengenalan Nada Alat Musik Secara Real Time Dengan Ekstraksi Ciri DCT dan Similaritas Kosinus” dan proses pengenalannya menggunakan perangkat lunak komputasi (Matlab) dalam pembuatan programnya [2]. Dan pada penelitian yang dilakukan oleh Dionysius Edwin Surya dengan penelitiannya yang berjudul “Pengenalan Nada Alat Musik Pianika Menggunakan Metode Korelasi” dengan proses pengenalan nadanya ditentukan berdasarkan jarak minimum yang diperoleh setelah proses fungsi jarak dan proses pengenalannya menggunakan perangkat lunak komputasi (Matlab) dalam pembuatan programnya [3] Serta penelitian yang dilakukan oleh Marianus Hendra Wijaya dengan 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
penelitiannya yang berjudul “Pengenalan Nada Suling Recorder Menggunakan Fungsi Jarak Chebyshev” dan proses pengenalannya menggunakan Microsoft Visual C++ 2008 dalam pembuatan programnya, serta proses pengenalan nada ditentukan berdasarkan jarak minimum yang diperoleh setelah proses fungsi jarak [4]. Dalam penelitian ini penulis akan membuat suatu penelitian mengenai pengenalan suara pada alat musik dengan membuat sebuah perangkat lunak yang terdiri dari program yang akan berfungsi sebagai interface dalam proses pengenalan suara instrument musik menggunakan Row Mean DCT. Dalam tugas akhir ini, penulis mengenalkan alat musik Pianika, Belira, dan Recorder. Dimana alat musik Pianika dan Recorder merupakan alat musik yang jika ditekan dan ditiup akan menghasilkan bunyi. Begitu pula dengan alat musik Belira yang jika dipukul akan menghasilkan bunyi. Berdasarkan hal di atas, penulis ingin membuat suatu sistem yang dapat mengenali suara instrument alat musik pianika, belira, dan recorder. Sistem yang penulis buat dengan melakukan penalaran suara instrument alat musik dengan membandingkan frekuensi dasar gelombang bunyi alat musik menggunakan Fungsi Jarak Euclidean. Dengan demikian jenis suara alat musik dapat diketahui secara pasti.
1.2
Tujuan Dan Manfaat Penelitian Tujuan penelitian ini adalah menghasilkan sebuah perangkat lunak yang terdiri dari
program yang akan berfungsi sebagai interface untuk proses pengenalan suara instrument pada alat musik pianika, belira, atau recorder dengan menggunakan metode Row Mean DCT. Manfaat dari penelitian ini adalah pada penelitian ini diharapkan dapat memberikan informasi untuk dapat mengenali berbagai macam alat musik.
1.3
Batasan Masalah Pada perancangan ini, penulis fokus pada pembuatan software komputer untuk
memproses pengenalan bunyi suara musik. Sedangkan, untuk hardware berupa microphone yang sudah banyak tersedia di pasaran. Penulis menetapkan beberapa batasan masalah yang dianggap penting untuk perancangan ini, yaitu sebagai berikut : a. Nada pianika, belira, dan recorder yang dikenali adalah nada Do, Re, Mi, Fa, Sol, La, Si. b. Hasil pengenalan bersifat real time
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
c. Peniupan dan pemukulan alat musik dilakukan seperti biasa
1.4
Metodologi Penelitian Sistem pengenalan suara instrument pada alat musik pianika, belira, dan recorder, terdiri dari hardware dan software (komputer). Hardware berfungsi untuk memasukkan bunyi suara yang dimainkan pada alat musik pianika, belira, dan suling atau recorder. Sedangkan, software pada komputer berfungsi untuk mengatur semua proses pengenalan bunyi suara pada alat musik pianika, belira dan recorder. a. Mencari referensi, membaca dan mempelajari buku-buku yang berhubungan dengan masalah yang menjadi topik tugas akhir. b. Perancangan subsistem software dengan menggunakan perangkat lunak komputasi (Matlab). Tahap ini bertujuan untuk mencari bentuk model yang optimal dari system yang akan dibuat dengan mempertimbangkan berbagai faktor permasalahan dan kebutuhan yang telah ditentukan. (i)
Menggunakan Hanning Window dalam proses program
(ii)
Evaluasi dengan menggunakan fungsi jarak Euclidean.
(iii)
Menggunakan KNN untuk proses pengenalan bunyi suara
(iv)
Pembuatan subsistem software. Sistem akan bekerja apabila user memberikan interupsi melalui PC dengan media push button yang sudah disediakan dalam software. Sistem akan mengolah interupsi yang diterima dan memulai proses recording sampai user memberikan interupsi kembali untuk menghentikan proses recording. Setelah itu, user memberikan interupsi untuk memulai proses pengenalan bunyi suara. Komputer akan mengolah bunyi suara dan menyajikannya sebagai sebuah informasi.
c. Analisa dan penyimpulan hasil percobaan. Analisa data dilakukan dengan meneliti pengaruh variasi dari jumlah koefisien Row Mean DCT terhadap tingkat pengenalan suara instrument alat musik belira, pianika dan recorder serta memeriksa keakuratan data terhadap hasil proses pengolahan suara. d. Proses pengujian dilakukan pertama-tama dengan melakukan proses perekaman yaitu
dengan merekam suara bunyi nada dari alat musik belira, pianika dan rekorder. Kemudian suara alat musik yang terekam tersebut disimpan dan digambarkan dalam
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
sebuah plot. Proses selanjutnya adalah proses proses pengenalan pengenalan suara dimana proses ini adalah untuk mengenali suara alat musik yang terekam. Subproses pada proses pengujian ini terdiri dari proses Pemotongan Sinyal yang berfungsi untuk menghilangkan efek noise atau suara lain yang ikut terekam saat proses perekaman dan menghilangkan silence dan transisi dari sinyal yang terekam, Frame Blocking yang berfungsi untuk memilih data dari nada suara musik yang terekam, sehingga data yang dipilih dapat mewakili semua data pada suara alat musik yang terekam, Windowing yang berfungsi untuk mengurangi efek diskontinuitas dari sinyal digital hasil rekaman, Normalisasi dengan tujuan penormalisasian ini agar amplitude pada saat nada dimainkan bias maksimal. Pada penelitian ini, proses normalisasi dibagi kedalam 3 tahap normalisasi. Normalisasi pertama dilakukan sebelum proses pemotongan sinyal. Dan setelah melalui proses frame blocking data akan dinormalisasi lagi. Dan normalisasi terakhir dilakukan setelah melalui proses Row Mean DCT. Ekstraksi ciri Row Mean DCT yang menunjukkan banyaknya suatu urutan data dari penjumlahan fungsi kosinus pada frekuensi yang berbeda. DCT penting dalam banyak aplikasi seperti dalam bidang sains dan teknik. Pada proses Row Mean DCT ini, Data yang sudah dinormalisasikan akan mengalami proses windowing. Centering yang berfungsi untuk menengahkan sinyal (sinyal yang dengan amplitudo tertinggi ditempatkan dibagian tengah). Sinyal yang sudah ditempatkan pada bagian tengah akan di zero padding ke bagian sebelah kiri dan bagian sebelah kanan.
Pengenalan suara alat musik pada belira, pianika atau recorder dilakukan dengan menggunakan metode fungsi jarak Euclidean, dan Klasifikasi K-NN yang merupakan penentuan hasil keluaran suara alat musik akan ditampilkan dalam bentuk visual GUI Matlab. e. Sistematika penulisan
Sistematika penulisan pada pengenalan suara instrument musik langkah-langkahnya sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
BAB I PENDAHULUAN Bab ini menjelaskan latar belakang, rumusan masalah, tujuan penulisan, batasan masalah dan sistematika penulisan.
BAB II DASAR TEORI Bab ini mennbahas teori-teori pendukung mengenai pengenalan pola, sampling, normalisasi, pemotongan sinyal, frame blocking, windowing hanning, Row Mean DCT, centering, fungsi jarak Euclidean, dan algoritma K-NN.
BAB III PERANCANGAN SISTEM Bab ini membahas rancangan sistem, menjelaskan serta memaparkan teknik pengolahan suara yang digunakan pada proses pra-prosesing, Row Mean DCT, centering, fungsi jarak Euclidean, dan algoritma K-NN.
BAB IV UJI COBA DAN ANALISIS SISTEM Bab ini membahas data-data hasil analisa dari pengujian sistem pengenalan suara instrument musik.
BAB V KESIMPULAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI 2.1
Pianika Adalah salah satu alat musik gabungan yang ditiup dan ditekan. Sama halnya dengan
piano yang memiliki tuts nada namun bedanya pianika itu akan berbunyi jika ditiup [5]. Tangga nadanya adalah tangga nada yang dikenal, seperti C, D, E, F, G, A dan B. Pianika dimainkan dengan tiupan langsung, atau memakai pipa lentur yang dihubungkan ke mulut. Dalam bermain musik, pianika dapat digunakan untuk memainkan melodi pokok dan bila memungkinkan dapat juga untuk mengiringi lagu. Tuts yang berwarna putih pada pianika berfungsi untuk memainkan nada – nada pokok atau asli. Sedangkan, tuts yang berwarna hitam pada pianika berfungsi untuk memainkan nada – nada kromatis. Dalam memainkan alat musik pianika, tangan kiri memegang pianika dan tangan kanan menekan untuk memainkan melodi lagu, sedangkan mulut meniupnya. Sebab itu, nada akan berbunyi jika ada getaran yang berasal dari udara tiupan kita. Gambar alat musik pianika ditunjukkan pada gambar 2.1.
Gambar 2.1 Alat Musik Pianika
2.2
Belira Adalah alat musik yang dimainkan dengan cara dipukul, dan biasa digunakan pada
drum band [6]. Alat musik belira digunakan untuk memainkan nada melodi dalam sebuah lagu pada drum band. Nada pada alat musik belira ada 16 nada yaitu. Gambar alat musik belira ditunjukkan pada gambar 2.2.
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Gambar 2.2 Alat Musik Belira
2.3
Recorder Adalah alat musik melodis yang sumber bunyinya berasal dari tekanan udara yang
dimainkan dengan cara ditiup [7]. Recorder yang umum digunakan dalam proses belajar di sekolah adalah jenis recorder soprano (descant) dimana recorder soprano mempunyai wilayah nada dari C. Beberapa hal yang diharus diperhatikan dalam memainkan recorder, yaitu : I.
Tangan kiri memegan recorder bagian atas dengan posisi jari : 1. Ibu jari menutup lubang oktaf (bagian bawah) 2. Jari telunjuk menutup lubang 1 (lihat gambar) 3. Jari tengah menutup lubang 2 (lihat gambar) 4. Jari manis menutup lubang 3 (lihat gambar)
II.
Tangan kanan memegang recorder bagian bawah, dengan posisi jari : 1. Jari telunjuk menutup lubang 4 (lihat gambar) 2. Jari tengah menutup lubang 5 (lihat gambar) 3. Jari manis menutup lubang 6 (lihat gambar) 4. Jari kelingking menutup lubang 7 (lihat gambar)
III.
Untuk menghasilkan nada tinggi, lubang oktaf yang ditutup dengan ibu jari tangan kiri, dibuka ½ hingga 3/4 . Sumber tiupan diletakkan diatas bibir bagian bawah, bibir bagian atas menyentuh sumber tiupan dengan wajar. Gambar alat musik recorder sopran ditunjukkan pada gambar 2.3.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.3 Alat Musik Recorder [7] Keterangan : 1. Mouthpiece (Bagian Mulut) 2. Lubang suara 3. Lubang 1 4. Lubang 2 5. Lubang 3 6. Lubang 4 7. Lubang 5 8. Lubang 6 9. Lubang 7 10. Lubang udara 0. Lubang oktaf (di bawah) A. Bagian Head (Kepala) B. Bagian Body (Badan) C. Bagian Foot (Kaki)
8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4
9
Sampling Adalah proses pencuplikan gelombang suara yang akan menghasilkan gelombang
diskret. Dalam proses sampling ada yang disebut dengan laju pencuplikan (sampling rate). Sampling rate menandakan berapa banyak pencuplikan gelombang analog dalam 1 detik. Satuan dari sampling rate adalah Hertz (Hz). Pada proses sampling, sebaiknya sampling rate memenuhi kriteria Nyquist. Kriteria Nyquist menyebutkan bahwa sampling rate harus lebih besar dari 2 kali frekuensi tertinggi sinyal suara analog [8]. Secara matematis dapat dituliskan : fs ≥ 2fm
(2.1)
dengan fs adalah frekuensi sampling (sampling rate), sedangkan fm adalah frekuensi tertinggi sinyal suara analog.
(a) Belira
(b) Pianika
(c)Recorder
Gambar 2.4 Sinyal hasil sampling
2.5
Normalisasi Tujuan dari penormalisasian ini agar amplitudo pada saat nada dimainkan bisa
maksimal. Proses normalisasi sangat diperlukan karena besarnya amplitudo pada suara alat musik selalu berbeda saat melalukan perekaman. Perhitungan matematis untuk mencari nilai normalisasi dirumuskan dengan persamaan sebagai berikut :
))
)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
dengan keterangan sebagai berikut : = hasil data sinyal normalisasi (1,2,3,…,N) = data masukan dari sampling (1,2,3,…,N) N merupakan banyaknya data sinyal.
2.6
Normalisasi 1 Proses normalisasi ini digunakan agar amplitudonya suara yang terekam dapat
menjadi maksimal. Proses normalisai 1 ini dilakukan dengan membagi data masukan dengan nilai absolut maksimal suara yang terekam. Gambar sinyal pada proses normalisasi 1 ini adalah hasil yang didapatkan dari proses sebelumnya, yaitu proses sampling. Gambar 2.5 menunjukkan gambar sinyal proses normalisasi 1.
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.5 Sinyal Normalisasi 1 dari gambar sinyal 2.4
2.7
Pemotongan Sinyal Proses pemotongan sinyal dilakukan setelah proses normalisasi 1. Pada proses
pemotongan, sinyal yang dipotong adalah sinyal pada bagian awal sinyal. Tujuan dari proses pemotongan ini adalah untuk menghilangkan sinyal efek noise atau suara lain yang ikut terekam pada saat proses perekaman agar didapatkan sinyal yang benar-benar suara alat musik belira, pianika atau recorder. Proses pemotongan yang pertama yaitu memotong bagian silence atau bagian awal sinyal yang tidak termasuk sinyal nada terekam. Proses pemotongan yang kedua yaitu memotong bagian transisi sinyal. Gambar sinyal untuk pemotongan sinyal adalah hasil yang didapatkan dari proses sebelumnya yaitu proses normalisasi 1 sehingga didapatkan gambar 2.6 yang menunjukkan gambar sinyal hasil pemotongan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.6 Sinyal sebelum pemotongan dari gambar sinyal 2.5
(a)
(b)
Gambar 2.7 (a) Hasil Pemotongan bagian silence pada Belira (b) Hasil Pemotongan bagian Transisi pada Belira
(a)
(b)
Gambar 2.8 (a) Hasil Pemotongan bagian silence pada Pianika (b) Hasil Pemotongan bagian Transisi pada Pianika
(a)
(b)
Gambar 2.9 (a) Hasil Pemotongan bagian silence pada Recorder (b) Hasil Pemotongan bagian Transisi pada Recorde
11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.8
12
Frame Blocking Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan satu
frame terdiri dari beberapa data sampel [9]. Pengambilan sampel tersebut tergantung dari tiap detik suara akan disampel dan berapa besar frekuensi samplingnya. Fungsi frame blocking yaitu untuk memilih data yang akan diproses dalam sistem pengenalan. Pada proses ini, nilai frame blocking akan bervariasi yaitu 64, 256, 1024 dan 4096. Gambar sinyal untuk frame blocking adalah hasil yang didapatkan dari proses sebelumnya yaitu dari hasil proses pemotongan sinyal pada gambar 2.10 sehingga didapatkan gambar dibawah ini yang akan menunjukkan gambar sinyal frame blocking.
(
(a)
(b)
Gambar 2.10 (a) Bagian sinyal Belira yang akan diambil untuk Frame Blocking (a) Frame Blocking Belira dari gambar sinyal 2.7
(a)
(b)
Gambar 2.11 (a) Bagian sinyal Pianika yang akan diambil untuk Frame Blocking (b) Frame Blocking Pianika dari gambar sinyal 2.8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a)
13
(b)
Gambar 2.12 (a) Bagian sinyal Recorder yang akan diambil untuk Frame Blocking (a) Frame Blocking Recorder dari gambar sinyal 2.9
2.9
Normalisasi 2 Proses normalisasi 2 ini adalah hasil sinyal dari proses sebelumnya yaitu dari hasil
sinyal frame blocking pada gambar 2.10, 2.11 dan 2.12. Pada proses ini, data masukan dari hasil frame blocking akan dibagi dengan nilai absolut maksimal dari frame blocking dan hasil keluarannya adalah untuk proses normalisasi 2. Gambar 2.13 menujukkan gambar sinyal dari normalisasi 2.
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.13 Sinyal Normalisasi 2 dari gambar sinyal 2.10, 2.11 dan 2.12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
2.10 Row Mean DCT (Discrete Cosine Transform) 2.10.1 Row Mean DCT (Discrete Cosine Transform) Sinyal suara (1 x 16) 1
Baris
2
3
1 2 3 4
4
5 6 7 8
5 6 7 8 9 Dibagi kedalam 4 kotak 9 10 11 12
13 14 15 16
10
11
Windowing 2D
W
12
13
14
15
16
DCT 2D
Kolom
C1 C2 C3 C4
Sinyal suara dikonversi Menjadi matriks (4 x 4) Transformasi Matriks (4 x 4)
Row Mean (4 x 4)
Gambar 2.14 Proses Row Mean DCT Row Mean DCT adalah proses dimana proses ini meliputi proses pembentukan matriks, kemudian matriks tersebut akan diubah menjadi matriks kotak (reshape) dimana pada pembuatan reshape ini dilakukan proses windowing 2D yaitu setiap kolom dan barisnya dikalikan. Setelah semua kolom dan baris dikalikan, proses selanjutnya adalah proses transformasi matriks reshape kedalam matriks reshape DCT 2D [10]. Pada proses DCT 2D ini, setiap kolomnya akan dirata-ratakan sehingga hasil keluarannya adalah row mean DCT. Proses Row Mean DCT ini adalah hasil sinyal dari proses sebelumnya yaitu dari hasil sinyal normalisasi 2 pada gambar 2.13. Gambar dibawah ini akan menunjukkan gambar sinyal dari pembentukan kolom matriks.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a)
(b)
15
(c)
Gambar 2.15 Sinyal dari pembentukan kolom matriks dari gambar sinyal 2.14
2.10.2 Windowing Fungsi windowing adalah dengan cara melewatkan sinyal yang mempunyai frekuensi sembarang dikonvolusikan dengan fungsi window tertentu sehingga dapat mereduksi sinyal – sinyal yang tergolong bocor sebelum dilakukan proses transformasi. Dalam penelitian ini, pada proses windowing yaitu dimana setiap baris dan kolom dikalikan. Setiap barisnya terlebih dahulu dikalikan, kemudian setelah semua baris dikalikan, barulah setiap kolomnya dikalikan. Ada beberapa fungsi windows yang telah ada diantaranya Kaiser, Hamming, Hanning, Triangular, Rectangular [11].
2.10.3 Hanning Window Windowing digunakan untuk menghilangkan diskontinuitas yang diakibatkan oleh proses Frame Blocking. Pada penelitian ini, jenis window yang dipakai adalah jenis Window Hanning. Window Hanning
memiliki lobe utama dua kali lebih lebar dari Window
Rectangular, dan hampir tiga baris spectral akan selalu dibangkitkan [12]. Persamaan Window Hanning adalah sebagai berikut : w (i) = (
(
))
0
(2.3)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
Pada penelitian ini, akan menggunakan windowing 2D. Proses window hanning ini adalah hasil sinyal dari proses sebelumnya yaitu dari hasil sinyal pembentukan kolom matriks Row Mean DCT pada gambar 2.15 sehingga didapatkan hasil sinyal windowing 2D seperti yang ditunjukkan pada gambar dibawah ini :
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.16 Sinyal windowing 2D dari gambar sinyal 2.15 2.10.4 Discrete Cosine Transform (DCT) Discrete Cosine Transform dari sederet n bilangan real s(x), x = 0, … ,n-1, dirumuskan sebagai berikut [13] : S(u)=√
)∑
)
)
(2.4)
Dengan u = 0, … , n – 1 Dimana C (u) =
,untuk u = 0 1
,untuk lainnya
Pada penelitian ini, digunakan DCT 2D. Proses Discrete Cosine Transform (DCT) ini adalah hasil sinyal dari proses sebelumnya yaitu dari hasil sinyal windowing 2D pada gambar 2.15 sehingga didapatkan hasil sinyal DCT 2D seperti yang ditunjukkan pada gambar dibawah ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a) Belira
(b) Pianika
17
(c) Recorder
Gambar 2.17 Sinyal DCT 2D dari gambar sinyal 2.16 2.10.5 Rerata Baris
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.18 Sinyal Rerata Baris dari gambar sinyal 2.17 Proses rerata baris adalah proses pada bagian akhir dari proses Row Mean DCT. Hasil sinyal pada rerata baris ini adalah hasil sinyal yang diperoleh dari hasil sinyal pada proses sebelumnya yaitu proses DCT 2D pada gambar 2.17 sehingga didapatkan hasil sinyal untuk rerata baris seperti yang ditunjukkan pada gambar 2.18.
2.11 Normalisasi 3
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.19 Sinyal Normalisasi 3 dari gambar sinyal 2.18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
Proses normalisai 3 ini adalah proses akhir dari proses normalisasi. Proses normalisasi ketiga ini adalah sinyal hasil dari proses Row Mean DCT. Pada proses ini, data masukan dari hasil Row Mean DCT dibagi dengan nilai maksimal dari Row Mean DCT. Hasil dari pembagian ini adalah keluaran untuk proses normalisasi ketiga atau normalisasi akhir. Hasil sinyal untuk normalisasi 3 ini didapatkan dari hasil sinyal rerata baris yang ditunjukkan pada gambar 2.18, sehingga diperoleh hasil sinyal untuk normalisai 3 seperti yang ditunjukkan pada gambar 2.19.
2.12 Centering Proses ini adalah proses centering. Dimana centering adalah proses untuk menengahkan sinyal (sinyal yang dengan amplitudo tertinggi ditempatkan dibagian tengah). Sinyal yang sudah ditempatkan pada bagian tengah akan di zero padding ke bagian sebelah kiri dan bagian sebelah kanan. Proses centering ini adalah hasil sinyal dari proses sebelumnya yaitu
dari hasil sinyal normalisasi 3 yang ditunjukkan pada gambar 2.19. 2.12.1 Proses Sisi Kiri dan Kanan Proses sisi kiri dan kanan adalah salah satu proses dari centering dimana sinyal diproses disebelah kiri dan disebelah kanan. Pada proses sebelah kiri sinyal dipotong sebelah kanan setelah itu sinyal akan di zero padding. Pada proses sebelah kanan sinyal dipotong sebelah kiri setelah itu sinyal akan di zero padding. Pemrosesan sinyal sebelah kiri dan kanan yang ditunjukkan pada gambar 2.20 dan gambar 2.21 dibawah ini :
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.20 Pemrosesan Sinyal Proses Sisi Kiri dari gambar sinyal 2.19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a) Belira
(b) Pianika
19
(c)Recorder
Gambar 2.21 Pemrosesan Sinyal Proses Sisi Kanan dari gambar sinyal 2.20 2.12.2 Penggabungan Kiri dan Kanan
(a) Belira
(b) Pianika
(c) Recorder
Gambar 2.22 Pemrosesan Sinyal Gabungan Kiri dan Kanan dari sinyal 2.20 dan 2.21 Pemrosesan sinyal gabungan sebelah kiri dan kanan ini adalah proses akhir dari proses centering. Hasil pemrosesan sinyal gabungan ini didapatkan dari hasil sinyal pada proses sebelumnya yaitu pada pemprosesan sinyal sebelah kiri dan kanan seperti pada gambar 2.20 dan gambar 2.21. Pemrosesan sinyal gabungan kiri dan kanan ditunjukkan pada gambar 2.22.
2.13. Pengenalan Pola Pola adalah deskripsi kuantitatif atau struktural pada sebuah objek. Kelas pola merupakan sekumpulan pola yang terdiri atas beberapa ciri yang sama. Pengenalan pola merupakan suatu aktivitas manusia secara alami dimana manusia menerima informasi melalui sensor tubuh yang diproses seketika oleh otak, dan dalam sekejap manusia dapat mengenali sumber informasi secara alami. Keakuratan manusia untuk dapat melakukan tugas-tugas pengenalan dengan kondisi yang tidak ideal, contohnya, ketika informasi yang perlukan untuk memproses tersebut tidak jelas atau tidak lengkap. Sebenarnya, sebagian besar aktivitas kita berdasarkan pada berhasilnya kita dalam melakukan tugas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
pengenalan pola. Misalnya, ketika membaca buku, kita mengenali angka, huruf, kata, dan akhirnya pemikiran dan konsep, sinyal visual kemudian diterima oleh otak kita yang diproses secara alami tanpa tidak kita sadari. Pengenalan pola (pattern recognition) suatu proses untuk mengenali pola-pola terdapat pada sekumpulan data dan menggolongkannya lalu dikelompokkan sehingga pola-pola yang berada dalam satu kelompok mempunyai kesamaan yang tinggi dan pola-pola yang berbeda mempunyai tingkat kemiripan yang rendah. Pengenalan pola bertujuan untuk menentukan kelompok atau kategori pola berdasar ciri-ciri yang dimiliki pola tersebut. Dengan kata lain, pengenalan pola dapat membedakan suatu objek dengan objek yang lain.[14] Sistem pengenalan pola memiliki beberapa pendekatan diantaranya yaitu :
Pendekatan Template Matching
Pendekatan Statistik
Pendekatan Sintatik
Pendekatan Jaringan Syaraf Tiruan
2.14 Template Matching Tahap perbandingan yaitu salah satu tahap dalam proses pengenalan ucapan. Proses template matching ini akan melakukan perbandingan antara pola data masukan dengan pola database. Salah satu perbandingan metode yang dilakukan dalam template matching yaitu menggunakan fungsi jarak Euclidean. Data masukan yang akan diproses akan dihitung nilai jaraknya sehingga dapat dikenali kemiripan yang sesuai dengan database[15].
2.15 Fungsi Jarak Euclidean Jarak Euclidean adalah jarak antara dua titik yaiu dari titik satu ke titik yang lain dalam satu ruang [16]. Secara umum, yang dimaksud antara dua titik adalah garis terpendek diantara semua garis yang menghubungkan kedua titik tersebut. Dalam ruang Euclidean , jarak antara ke dua titik P dan Q dapat dirumuskan sebagai berikut : P=(
) dan = (
)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
Maka jarak Euclidean P ke Q adalah : )=
)=√
)
)
)
) )
(2.5)
2.16 Klasifikasi K-NN Algoritma yang disebut aturan tetangga terdekat atau biasanya di kenal dengan knearest neighbour(K-NN). Misal ada vektor x yang tidak diketahui, maka[17]:
Dari vektor pelatihan N, identifikasi k tetangga terdekat, dengan mengabaikan label kelas. Untuk masalah 2 kelas dipilih nilai k yang ganjil. Secara umum nilai k ini bukan kelipatan dari jumlah kelas M.
Dari sampel k tersebut, identifikasi jumlah vektor, ki, yang termasuk masuk dalam kelas
ωi, i = 1,2,......,M. Dinyatakan dengan 1 ki = k.
Tetapkan x ke kelas ωi dengan maksimal jumlah sampel dari ki .
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III PERANCANGAN
3.1
Sistem Pengenalan Suara Instrumen Musik Diagram blok sistem pengenalan suara alat musik belira, pianika atau recorder
ditunjukkan pada gambar 3.1 di bawah ini :
Masukan
Proses
Keluaran (Wav)
Gambar 3.1 Blok Diagram Proses Pengenalan Suara Instrumen Musik
Proses Perekaman
Proses Pengenalan Instrumen musik
Gambar 3.2 Blok Diagram Pengenalan Suara Instrumen Musik Sistem pengenalan suara instrumen musik pada belira, pianika atau recorder terdiri atas perangkat keras dan perangkat lunak. Perangkat keras terdiri dari alat musik belira, pianika, recorder, mikrofon dan laptop. Sedangkan untuk perangkat lunaknya terdiri dari program pada laptop yang berfungsi sebagai interface dalam proses pengenalan suara alat musik. 22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
1. Belira Belira adalah alat musik yang merupakan salah satu bagian penting dari group drum band. Alat ini terdiri dari sederetan besi yang sebagian besi berwarna emas dan sebagian lagi berwarna perak. Cara memainkannya hampir sama dengan cara memainkan piano atau pianika, hanya saja perbedaannya terletak pada cara memainkannya. Pada belira cara memainkannya dengan menggunakan alat pukul khusus. Sedangkan pada piano atau pianika cara memainkannya dengan menggunakan jari-jari yang memainkannya. 2. Pianika Pianika adalah sebuah alat musik melodis yang dimainkan dengan cara ditekan dan ditiup. Tangga nadanya adalah tangga nada yang biasa dikenal, seperti C, D, E, F, G, A dan B. 3. Recorder Recorder merupakan alat musik melodis yang sumber bunyinya berasal dari tekanan udara dan dimainkan dengan cara ditiup. 4. Mikrofon Mikrofon yang digunakan adalah microfon jenis mini multimedia microphone Genius MIC01A [18]. Jenis mini microfon ini berfungsi untuk menangkap sinyal analog dan kemudian menyalurkan ke sound card pada laptop melewati line in yang ada pada sound card.
Gambar 3.3 Mini Multimedia Microphone Genius MIC-01A 5. Proses Perekaman Proses perekaman adalah proses masuknya data nada suara terekam berupa sinyal digital. Saat proses perekaman berlangsung sinyal analog dikonversi menjadi sinyal digital dengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
frekuensi sampling. Sinyal digital kemudian disimpan dan digambarkan dalam sebuah plot. Data nada yang telah disimpan disebut nada terekam dan kemudian dapat di proses untuk dikenali lewat proses pengenalan nada. 6. Proses pengenalan suara Proses pengenalan suara adalah proses untuk mengenali suara alat musik yang terekam agar dapat diketahui jenis suara musik apa yang direkam. Proses ini terdiri dari subproses pemotongan sinyal, frame blocking, windowing, normalisasi, ekstraksi ciri Row Mean DCT, centering, fungsi jarak Euclidean, Klasifikasi K-NN, dan penentuan hasil suara alat musik. Diagram blok proses pengenalan suara alat musik dapat dilihat pada gambar 3.4. Masukan (Suara Belira, Pianika dan Recorder) Normalisasi 1
Pemotongan Sinyal
Frame Blocking
Normalisasi 2 Row Mean DCT : a. Pembentukan kolom matriks b. Windowing 2D c. DCT 2D d. Rerata baris
Keluaran
K-NN
Fungsi Jarak Euclidean
Centering
Normalisasi 3
Data Base Gambar 3.4. Diagram Blok Proses Pengenalan Suara Instrumen Musik
3.1.1 Suara Belira, Pianika, Atau Recorder (Wav) Masukan adalah hasil dari sampling suara alat ketahap selanjutnya.
musik yang direkam akan diproses
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
3.1.2 Pemotongan Sinyal Pemotongan sinyal berfungsi untuk menghilangkan efek noise atau suara lain yang ikut terekam saat proses perekaman dan menghilangkan silence dan transisi dari sinyal yang terekam. 3.1.3 Frame Blocking Proses ini berfungsi untuk memilih data dari nada suara musik yang terekam, sehingga data yang dipilih dapat mewakili semua data pada suara alat musik yang terekam. 3.1.4 Normalisasi Di tahap ini semua nada yang sudah terekam akan dinormalisasikan. Tujuan dari penormalisasian ini agar amplitude pada saat nada dimainkan bias maksimal. Pada penelitian ini, proses normalisasi dibagi kedalam 3 tahap normalisasi. Normalisasi pertama dilakukan sebelum proses pemotongan sinyal. Dan setelah melalui proses frame blocking data akan dinormalisasi lagi. Dan normalisasi terakhir dilakukan setelah melalui proses Row Mean DCT. 3.1.5 Row Mean DCT (Discrete Cosine Transform) Menunjukkan banyaknya suatu urutan data dari penjumlahan fungsi kosinus pada frekuensi yang berbeda. DCT penting dalam banyak aplikasi seperti dalam bidang sains dan teknik. Pada proses Row Mean DCT ini, Data yang sudah dinormalisasikan akan mengalami proses windowing. Dalam penelitian ini akan menggunakan jenis Hanning window. Windowing berfungsi untuk mengurangi efek diskontinuitas dari sinyal digital hasil rekaman. 3.1.6 Centering Menengahkan sinyal (sinyal yang dengan amplitudo tertinggi ditempatkan dibagian tengah). Sinyal yang sudah ditempatkan pada bagian tengah akan di zero padding ke bagian sebelah kiri dan bagian sebelah kanan.
3.1.7 Fungsi Jarak (Euclidean) Pengenalan suara alat
musik pada belira, pianika atau
menggunakan metode fungsi jarak Euclidean.
recorder dilakukan dengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
3.1.8 Penentuan Hasil Suara Instrument Musik Proses ini adalah subproses terakhir dari proses pengenalan suara alat musik. Penentuan hasil pengenalan ini akan ditentukan berdasarkan hasil perhitungan nilai dengan klasifikasi KNN. 3.1.9 Hasil Tampilan Tampilan adalah hasil akhir dari software yang mengenali nada suara alat musik dari belira, pianika atau recorder. Hasil keluaran akan ditampilkan dalam bentuk visual GUI Matlab yang telah dirancang oleh penulis.
3.2
Perancangan Suara Referensi Untuk mengenali suara referensi untuk setiap suara yang dikenali pada sistem pengenalan
suara alat musik pada belira, pianika atau recorer. Penulis mengambil 20 sampel untuk setiap nadanya. Dengan nada referensi terdiri dari 9 nada acuan yaitu C, D, E, F, G, A, B, C’, D’. Proses pengambilan dapat dilihat pada Gambar 3.5. Pengambilan data dilakukan melalui beberapa tahap yaitu melalui proses sampling, frame blocking, normalisasi, Row Mean DCT (dimana dalam proses Row Mean DCT akan ada proses pembentukan kolom matriks, Windowing 2D, DCT 2D dan rerata baris),Centering, Fungsi Jarak Eucledian dan Klasifikasi K-NN. Masukan ( Suara Belira, Pianika, dan Recorder) Normalisasi 1
Pemotongan Sinyal
Frame Blocking Normalisasi 2
Keluaran Ekstraksi Ciri Centering
Normalisasi 3
Row Mean DCT : a. Pembentukan kolom matriks b. Windowing 2D c. DCT 2D d. Rerata baris
Gambar 3.5 Diagram Blok Proses Pengambilan Suara Referensi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
Proses pengambilan suara disesuaikan dengan variabel bebas pada pembuatan sistem pengenalan suara alat musik belira, pianika atau recorder. Untuk mendapatkan suara referensi, dilakukan perekaman sebanyak 20 kali untuk setiap nadanya. Hasil Row Mean DCT yang telah dinormalisasikan akan digunakan sebagai suara sampel, sebagai sistem pengenalan suara alat musik belira, pianika atau recorder tidak dilakukan perhitungan kembali dalam mendapatkan suara referensi dan proses pada sistem pengenalan suara alat musik belira, pianika atau recorder berjalan baik. Pada penelitian ini akan diuji 8 sampel input yang keluarannya jika 8 sampel input dibagi menjadi 8, 4, 2 atau 1 maka hasil keluarannya adalah 1, 2, 4 atau 8 untuk hasil ektraksi ciri. Proses ekstraksi ciri dilakukan dengan merata-ratakan hasil ekstraksi ciri pada belira, pianika atau recorder. Database untuk setiap sampel suara dibagi kedalam 2 bagian kemudian dirata-ratakan dan keluarannya adalah hasil untuk ekstraksi ciri.
Suara referensi yang didapat kemudian disimpan dalam fungsi header yang ada dalam sistem pengenalan suara alat musik belira, pianika atau recorder. Sehingga sewaktu-waktu suara referensi dapat dipanggil dalam proses fungsi jarak yang ada dalam sistem pengenalan suara alat musik belira, pianika atau recorder.
3.3
Suara Uji Pada penelitian ini, penulis mengambil 10 sampel pada setiap suara untuk memperoleh
suara uji untuk setiap suara pada proses pengenalan suara alat musik pada belira, pianika atau recorder. Semua sampel suara yang sudah diambil dalam proses perekaman, akan melalui proses sampling sebelum masuk ke tahap proses selanjutnya. Proses pengambilan suara ditunjukkan pada gambar 3.6.
Masukan
Sampling
Keluaran (Wav)
Gambar 3.6. Blok diagram Proses Pengambilan Suara Uji
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.4
Tampilan Program GUI MATLAB
Plot Perekaman Plot Hasil Ekstraksi Ciri Row Mean DCT
Tampilan Keluaran
Rekam
Selesai
Tabel 3.1 Keterangan Tampilan Utama Sistem Nama Plot Perekaman
Keterangan Untuk menampilkan grafik Plot Perekaman
Plot Hasil Ekstraksi Ciri
Untuk menampilkan grafik Hasil
Row Mean DCT
Ekstraksi Ciri Row Mean DCT
Rekam
Untuk memulai program perekaman
Selesai
Untuk mengakhiri program perekaman
Tampilan Keluaran
Untuk menampilkan teks suara instrument alat musik belira, pianika atau recorder.
28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.5
29
Perancangan Alur Program Sistem pengenalan suara alat musik belira, pianika atau recorder ini akan bekerja pada
saat user mulai menjalankan program. Setelah tampilan utama terlihat, proses pengujian sudah dapat dilakukan. User pertama kali harus mengisikan parameter yang digunakan dalam pengujian pada list box “Input nada”. Setelah mengambil data acuan dengan menekan tombol “rekam”, sistem akan mengambil suara musik belira, pianika dan recorder yang dimainkan. Jika suara telah terekam, maka proses akan berlanjut sampai suara musik dikenali. Program berjalan dengan bermacam-macam prose, yaitu perekaman, pemotongan sinyal, frame blocking, normalisasi, windowing, Row Mean DCT, perhitungan jarak dengan Eucledian dan penentuan hasil suara dengan K-NN. Diagram alur perancangan ditunjukkan pada gambar 3.7.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 3.7. Diagram Alir Sistem Pengenalan Suara alat Belira, Pianika atau Recorder
30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
3.5.1 Rekam
Gambar 3.8 Blok Diagram Proses Rekam Proses rekam memiliki proses sampling suara. Proses sampling suara berfungsi untuk merekam suara alat musik belira, pianika atau recorder. Frekuensi sampling yang digunakan adalah 10000 Hz. Untuk frekuensi samplingnya didapatkan dari hasil penelitian yang sudah dilakukan sebelumnya [17]. Penulis memilih nilai frekuensi 10000 Hz karena nilai frekuensi sampling harus lebih besar 2 kali dari nilai frekuensi tertinggi dari sinyal yang sudah disampling. Hasil dari proses perekaman ini akan ditampilkan dalam bentuk plot atau gambar grafik yang ada pada interface GUI Matlab. Proses perekaman ini ditunjukkan pada gambar 3.8.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
3.5.2 Normalisasi 1
Gambar 3.9
Diagram Alir Normalisasi 1
Tujuan dari proses ini adalah agar pengaruh kuat atau lemahnya suara rekaman dapat diminimalisasikan. Proses ini digunakan agar besar amplitudonya setara dengan data sinyal suara yang terekam sehingga terbentuk pada skala yang sama. Gambar sinyal untuk hasil normalisasi ditunjukkan pada gambar 2.5. Diagram alir proses normalisasi 1 ditunjukkan pada gambar 3.9.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
3.5.3 Pemotongan Sinyal
Gambar 3.10 Diagram Alir Pemotongan Sinyal Proses pemotongan sinyal adalah pemotongan sinyal yang tidak digunakan yang terdapat di sisi kiri atau bagian awal dari sinyal yaitu bagian silence dan bagian transisi. Gambar sinyal bagian silence pada belira ditunjukkan pada gambar 2.7 (a), gambar sinyal silence pada pianika ditunjukkan pada gambar 2.8 (a) dan gambar sinyal silence pada recorder ditunjukkan pada gambar 2.9 (a) sedangkan gambar sinyal bagian Transisi pada belira ditunjukkan pada gambar 2.7 (b), gambar sinyal transisi pada pianika ditunjukkan pada gambar 2.8 (b) dan gambar sinyal transisi pada recorder ditunjukkan pada gambar 2.9 (b). Tujuan dari proses pemotongan ini adalah untuk menghilangkan sinyal efek noise atau suara lain yang ikut terekam pada saat proses perekaman agar didapatkan sinyal yang benar-benar suara alat musik belira, pianika atau recorder. Proses pemotongan sinyal ditunjukkan pada gambar 3.10.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
3.5.4 Frame Blocking Proses frame blocking bertujuan untuk mengurangi jumlah data sinyal yang akan diproses. Pilihan nilai pada frame blocking ini ada beberapa pilihan yang bervariasi yaitu 64, 256, 1024 dan 4096. Proses frame blocking ini akan menentukan nilai titik tengah dari data masukan. Setelah data titik tengahnya diambil, maka data yang akan diambil dapat ditentukan dengan nilai frame blocking yang dipilih oleh user. Data yang diambil tersebut merupakan keluaran untuk proses frame blocking. Diagram alir proses frame blocking ditunjukkan pada gambar 3.11. Gambar sinyal untuk proses frame blocking ini ditunjukkan pada gambar 2.10, 2.11 dan 2.12.
Gambar 3.11 Diagram Alir Frame Blocking
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
3.5.5 Normalisasi 2
Gambar 3. 12 Diagram Alir Normalisasi 2 Pada proses normalisasi 2 ini digunakan agar besar pada amplitudo dari data sinyal suara yang sudah di proses pada frame blocking terbentuk pada skala yang sama. Masukan dari normalisasi 2 ini adalah sinyal dari frame blocking. Data masukan dari hasil frame blocking dibagi dengan nilai absolut maksimal dari frame blocking dan hasil keluarannya adalah untuk proses normalisasi 2. Gambar sinyal untuk normalisasi 2 ditunjukkan pada gambar 2.13. Diagram alir proses normalisasi 2 ini ditunjukkan pada gambar 3.12.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
3.5.6 Hanning Windowing
Gambar 3.13
Diagram Alir Hanning Windowing
Proses selanjutnya adalah windowing. Dalam penelitian ini akan menggunakan jenis Hanning window. Windowing berfungsi untuk mengurangi efek diskontinuitas dari sinyal digital hasil rekaman. Hanning memiliki lobe utama dua kali lebih lebar dari Window Rectangular, dan hampir tiga baris spectral akan selalu dibangkitkan. Gambar sinyal untuk hanning windowing dalam windowing 2D ditunjukkan pada gambar 2.16. Diagram alir proses hanning windowing ditunjukkan pada gambar 3.13.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
3.5.7 Row Mean DCT
Gambar 3.14 Diagram Alir Row Mean DCT Proses selanjutnya adalah proses Row Mean DCT. Dimana masukan pada proses ini adalah hasil dari proses windowing, dan keluarannya merupakan hasil dari ekstraksi ciri Row Mean DCT. Proses Row Mean DCT ini meliputi proses pembentukan matriks, kemudian matriks
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
tersebut akan diubah menjadi matriks kotak (reshape) dimana pada pembuatan reshape ini dilakukan proses windowing 2D yaitu setiap kolom dan barisnya dikalikan. Setelah semua kolom dan baris dikalikan, proses selanjutnya adalah proses transformasi matriks reshape kedalam matriks reshape DCT 2D. Pada proses DCT 2D ini, setiap kolomnya akan dirata-ratakan sehingga hasil keluarannya adalah row mean DCT. Gambar sinyal dari pembentukan kolom matriks pada Row Mean DCT ditunjukkan pada gambar 2.15. Diagram alir proses Row Mean DCT ditunjukkan pada gambar 3.14. 3.5.8 Normalisasi 3
Gambar 3.15 Diagram Alir Normalisasi 3 Proses selanjutnya adalah proses normalisasi 3, dimana proses normalisasi ini adalah proses normalisasi akhir. Proses normalisasi ketiga ini adalah sinyal hasil dari proses Row Mean DCT. Pada proses ini, data masukan dari hasil Row Mean DCT dibagi dengan nilai maksimal dari Row Mean DCT. Gambr sinyal dari normalisasi 3 ini ditunjukkan pada gambar 2.19. Hasil dari pembagian ini adalah keluaran untuk proses normalisasi ketiga atau normalisasi akhir. Proses akhir dari normalisasi ditunjukkan pada gambar 3.15.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
3.5.9 Centering
Gambar 3.16 Diagram Alir Centering Proses selanjutnya adalah proses centering. Dimana centering adalah untuk menengahkan sinyal (sinyal yang dengan amplitudo tertinggi ditempatkan dibagian tengah). Sinyal yang sudah ditempatkan pada bagian tengah akan di zero padding ke bagian sebelah kiri dan bagian sebelah kanan. Gambar sinyal untuk centering (Proses sisi kiri, kanan dan penggabungan kiri dan kanan) ditunjukkan pada gambar 2.20, 2.21 dan 2.22. Diagram alir proses centering ditunjukkan pada gambar 3.16.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
3.5.10 Fungsi Jarak (Euclidean)
Gambar 3.17 Diagram Alir Fungsi Jarak Euclidean Proses selanjutnya adalah proses untuk fungsi jarak. Dimana fungsi jarak pada penelitian ini menggunakan fungsi jarak dengan Euclidean. Jarak Euclidean adalah jarak antara dua titik yaiu dari titik satu ke titik yang lain dalam satu ruang. Secara umum, yang dimaksud antara dua titik adalah garis terpendek diantara semua garis yang menghubungkan kedua titik tersebut. Proses fungsi jarak menggunakan Euclidean ditunjukkan pada gambar 3.17.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
3.5.11 K-NN
Gambar 3.18 Diagram Alir k-Nearest Neighbor (K-NN) Proses selanjutnya adalah proses k-Nearest Neighbor (K-NN). Proses ini adalah subproses terakhir dari proses pengenalan suara alat musik. Penentuan hasil keluaran ini dapat ditentukan dengan Look Up Table dan Penentuan hasil pengenalan ini akan ditentukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
berdasarkan hasil perhitungan nilai dengan klasifikasi K-NN. Proses klasifikasi K-NN ditunjukkan pada gambar 3.18.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN Dalam bab ini dibahas mengenai hasil uji coba sistem yang telah dirancang dan dibuat. Uji coba dilakukan untuk mengetahui apakah sistem dapat bekerja dengan sesuai dengan perancangan. Hasil pengujian berupa data-data yang dapat memperlihatkan bahwa sistem yang telah dirancang dapat bekerja dengan baik.
4.1 Pengujian Program Pengenalan Suara Instrument Musik menggunakan Row Mean DCT dan Pengklasifikasian K-NN dan Fungsi Jarak Euclidean Perancangan program menggunakan software Matlab 7.10.0 (R2010a). Pada pengujian program menggunakan laptop dengan spesifikasi: Prosesor
: Intel® Atom™ CPU N280 @1.66GHz 1.67GHz
RAM
: 1 GB
Tipe sistem
: Sistem operasi 32 bit
Dalam perancangan ini, dibuat GUI agar user dengan lebih mudah menggunakan aplikasi dalam penelitian ini. Proses pengenalan suara instrument musik dapat dilakukan dengan menjalankan perintah-perintah yang terdapat dalam GUI, seperti berikut : 1. Sebelum membuka tampilan program, perlu memastikan terlebih dahulu pada Current Directory sudah sesuai dengan tempat penyimpanan program yang telah dirancang. 2. Mengetikan perintah gui pada Command window untuk memunculkan tampilan program pengenalan suara instrument musik. Setelah itu akan muncul tampilan program pengenalan suara instrument musik seperti pada Gambar 4.1.
43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
Gambar 4.1. Tampilan Program Pengenalan Suara Instument Musik 3. User memilih nilai variasi frame blocking, database per nada dan nilai k pada K-NN yang akan digunakan terlebih dahulu sebelum melakukan pengenalan suara isntrumen musik. Nilai variasi frame blocking yang digunakan adalah 64, 256, 1024 dan 4096. Nilai variasi untuk database per nada yang digunakan adalah 1, 2, 4 dan 8. Nilai variasi K-NN yang digunakan adalah 1, 3, 5 dan 7. 4. User dapat memulai pengenalan suara instrument musik dengan menekan tombol “MULAI”. Hasil pengenalan suara instrument musik terlihat seperti pada gambar 4.2.
G a m b a r Gambar 4.2. Tampilan Hasil Pengenalan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
5. User dapat mengulang kembali pengenalan suara instrument musik dengan menekan tombol “RESET” dan mengulang kembali langkah 1 dan 2. 6. User dapat mengakhiri pengenalan suara instrument musik dengan menekan tombol “SELESAI”.
4.1.1 Pengenalan Suara Instrument Musik Pengenalan suara instrument musik hanya dapat dilakukan dengan melakukan langkahlangkah seperti yang sudah dijelaskan di atas. Tampilan pengenalan program dapat dilihat pada gambar 4.1. Pada tampilan pengenalan suara instrument musik terdapat 3 push button, 3 pop up menu, 2 axes, dan 1 edit text. Untuk dapat memulai pengenalan suara instrument musik, user terlebih dahulu melakukan pengaturan pada program pengenalan suara instrument musik. Pengaturan yang dilakukan adalah dengan memilih variasi nilai pada frame blocking, variasi nilai pada database pernada dan variasi nilai k pada K-NN yang terdapat pada pop up menu. Setelah menentukan variasi nilai yang akan digunakan, user dapat memulai pengenalan suara instrument musik dengan menekan tombol “MULAI”. Hasil pengenalan yang ditampilkan adalah plot perekaman, plot Row Mean DCT, dan hasil suara instrument yang berhasil dikenali. User dapat mengulang pengenalan suara instrument musik dengan menekan tombol “RESET” dan user dapat mengakhiri pengenalan dengan menekan tombol “SELESAI”.
a. Pop Up Menu Pada tampilan pop up menu ini, terdapat 3 pop up menu yaitu variasi dari frame blocking, variasi nilai K-NN, dan variasi nilai database per nada. Variasi nilai frame blocking yang ditampilkan pada pada pop up menu yaitu 64, 256, 1024 dan 4096. Variasi nilai yang ditampilkan pada pop up menu K-NN yaitu 1, 3, 5 dan 7. Dan variasi nilai yang ditampilkan pada pop up menu database per nada yaitu 1, 2, 4 dan 8. Variasi frame blocking menjalankan perintah program yang telah dirancang sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 frame=64; case 2 frame=256; case 3 frame=1024; case 4 frame=4096; end handles.frame=frame; guidata(hObject,handles);
Pada program di atas, nilai frame blocking diinisialisasikan dengan menggunakan nama frame. Inisialisasi frame tersebut diproses menggunakan perintah handles. Perintah ini digunakan untuk data atau nilai frame blocking yang telah diinisialisasikan sebagai masukan apabila dilakukan callback. Pada pop up menu variasi nilai pada K-NN listing programnya sebagai berikut : indeks=get(handles.popupmenu3,'Value'); switch indeks case 1 knn=1; case 2 knn=3; case 3 knn=5; case 4 knn=7; end handles.varn=knn; guidata(hObject,handles);
Pada program di atas, nilai K-NN tetap menggunakan nama knn. Knn tersebut diproses menggunakan perintah handles Pada pop up menu variasi nilai pada database per nada listing programnya sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
indeks=get(handles.popupmenu4,'Value'); switch indeks case 1 dbpernada=1; case 2 dbpernada=2; case 3 dbpernada=4; case 4 dbpernada=8; end handles.db_pernada=dbpernada; guidata(hObject,handles);
Proses yang dilalui oleh variasi nilai pada pop up menu database per nada sama dengan proses pada variasi nilai pada pop up menu dari frame blocking. Nilai database per nada diinisialisasikan dengan nama dbpernada. b. Tombol “MULAI” Tombol mulai adalah tombol yang berfungsi untuk melakukan pengenalan suara instrument musik. User dapat melakukan pengenalan suara instrument musik dengan menekan tombol “MULAI”. Setelah menekan tombol “MULAI”, maka proses pengenalan suara instrument musik akan berjalan dengan beberapa subproses. Subproses yang berjalan akan dimulai dari perekaman suara musik, ekstraksi ciri row mean DCT,
penghitungan jarak
Euclidean, dan penentuan hasil pengenalan suara instrument musik berdasarkan kelas yang dipilih oleh user pada nilai K-NN. Listing program yang digunakan pada perekaman ini sebagai berikut : sample_length=1.5; sample_freq=10000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq); %wavwrite(x, sample_freq, 's.wav'); axes(handles.axes1) plot(x); %x=wavread('s.wav');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
Perekaman suara instrument musik pada Matlab menggunakan perintah Wavrecord untuk menyimpan suara instrument musik yang telah direkam. Suara instrument yang telah direkam akan diplot pada tampilan program pengenalan menggunakan perintah plot. Suara instrument musik di plot pada axes yang telah tersedia dalam tampilan program perekaman dan ekstraksi ciri Row Mean DCT (gambar flowchart fungsi jarak). %Row Mean DCT %(a)Pembentukan kolom matriks y2=reshape(x3,seg,[]); %(b)Windowing 2D [baris,kolom]=size(y2); hb=hann(baris);hk=hann(kolom); for k=1:baris y2(k,:)=y2(k,:).*hk'; end for k=1:kolom y2(:,k)=y2(:,k).*hb; end %(c)DCT 2D y3=abs(dct2(y2)); %(d)Rerata baris y4=sum(y3'); %Pemrosesan akhir %(a)Normalisasi 3 y5=y4/max(y4); %(b)Centering hy4=length(y4); %(b.1)Cari indeks dari maksimal global [srt,idx]=sort(y5,'descend'); imax=idx(1); %(b.2)Pemrosesan sisi kiri y6=y5; y6(imax:hy4)=[];
% potong kanan
y6=fliplr(y6); y6(hy4)=0;
% zero padding
y6=fliplr(y6); %(b.3)Pemrosesan sisi kanan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
y7=y5; y7(1:imax-1)=[];
% potong kiri
y7(hy4)=0;
% zero padding
%(b.4)Penggabungan kiri dan kanan z=[y6 y7]'; axes(handles.axes2) %mesh(y3) bar(z);
Suara instrument musik yang telah terekam dan disimpan dipanggil kembali menggunakan perintah wavread. Dengan penginisialisasian nilai frame blocking, batas potong, dan database pernada untuk memudahkan menjalankan proses ekstraksi ciri. Proses ekstraksi ciri memilki 3 masukan yaitu variable yaitu b0 (nilai batas potong), frame blocking, dan database per nada. Frame blocking dan database per nada merupakan nilai masukan yang telah dipilih oleh user. Hasil dari ekstrasi ciri ditampilkan pada tampilan program seperti halnya hasil perekaman. if (frame==64) &&(dbpernada==1) load db1dct64; elseif (frame==64) &&(dbpernada==2) load db2dct64; elseif (frame==64) &&(dbpernada==4) load db4dct64; elseif (frame==64) &&(dbpernada==8) load db8dct64; elseif (frame==256) &&(dbpernada==1) load db1dct256; elseif (frame==256) &&(dbpernada==2) load db2dct256; elseif (frame==256) &&(dbpernada==4) load db4dct256; elseif (frame==256) &&(dbpernada==8) load db8dct256; elseif (frame==1024) &&(dbpernada==1) load db1dct1024; elseif (frame==1024) &&(dbpernada==2) load db2dct1024; elseif (frame==1024) &&(dbpernada==4) load db4dct1024; elseif (frame==1024) &&(dbpernada==8) load db8dct1024; elseif (frame==4096) &&(dbpernada==1) load db1dct4096; elseif (frame==4096) &&(dbpernada==2) load db2dct4096; elseif (frame==4096) &&(dbpernada==4) load db4dct4096; elseif (frame==4096) &&(dbpernada==8) load db8dct4096; end
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Ekstraksi database diperoleh dari proses dengan menggunakan program sebagai berikut : function databasebaru % Variabel penelitian frame=4096; % panjang frame blocking (1024) seg=sqrt(frame); % panjang segmen untuk rdct (32) k=1; % nilai k pada knn (3) db_per_nada=8; % Inisialisasi loop data_per_nada=8; % jumlah sampel/nada x=zeros(2*seg,data_per_nada); % pakai centering b1=x;b2=x;b3=x;b4=x;b5=x;b6=x;b7=x;b8=x;b9=x; r1=x;r2=x;r3=x;r4=x;r5=x;r6=x;r7=x;r8=x;r9=x; p1=x;p2=x;p3=x;p4=x;p5=x;p6=x;p7=x;p8=x;p9=x; % Perhitungan dengan loop for m=1:data_per_nada % Belira b1(:,m)=prosesxc(['bdo1' num2str(m-1) '.wav'],frame,seg); b2(:,m)=prosesxc(['bre1' num2str(m-1) '.wav'],frame,seg); b3(:,m)=prosesxc(['bmi1' num2str(m-1) '.wav'],frame,seg); b4(:,m)=prosesxc(['bfa1' num2str(m-1) '.wav'],frame,seg); b5(:,m)=prosesxc(['bsol1' num2str(m-1) '.wav'],frame,seg); b6(:,m)=prosesxc(['bla1' num2str(m-1) '.wav'],frame,seg); b7(:,m)=prosesxc(['bsi1' num2str(m-1) '.wav'],frame,seg); b8(:,m)=prosesxc(['bdot1' num2str(m-1) '.wav'],frame,seg); b9(:,m)=prosesxc(['bret1' num2str(m-1) '.wav'],frame,seg); % Recorder r1(:,m)=prosesxc(['rdo1' num2str(m-1) '.wav'],frame,seg); r2(:,m)=prosesxc(['rre1' num2str(m-1) '.wav'],frame,seg); r3(:,m)=prosesxc(['rmi1' num2str(m-1) '.wav'],frame,seg); r4(:,m)=prosesxc(['rfa1' num2str(m-1) '.wav'],frame,seg); r5(:,m)=prosesxc(['rsol1' num2str(m-1) '.wav'],frame,seg); r6(:,m)=prosesxc(['rla1' num2str(m-1) '.wav'],frame,seg); r7(:,m)=prosesxc(['rsi1' num2str(m-1) '.wav'],frame,seg); r8(:,m)=prosesxc(['rdot1' num2str(m-1) '.wav'],frame,seg); r9(:,m)=prosesxc(['rret1' num2str(m-1) '.wav'],frame,seg); % Pianika p1(:,m)=prosesxc(['pdo1' num2str(m-1) '.wav'],frame,seg); p2(:,m)=prosesxc(['pre1' num2str(m-1) '.wav'],frame,seg); p3(:,m)=prosesxc(['pmi1' num2str(m-1) '.wav'],frame,seg); p4(:,m)=prosesxc(['pfa1' num2str(m-1) '.wav'],frame,seg); p5(:,m)=prosesxc(['psol1' num2str(m-1) '.wav'],frame,seg); p6(:,m)=prosesxc(['pla1' num2str(m-1) '.wav'],frame,seg); p7(:,m)=prosesxc(['psi1' num2str(m-1) '.wav'],frame,seg); p8(:,m)=prosesxc(['pdot1' num2str(m-1) '.wav'],frame,seg); p9(:,m)=prosesxc(['pret1' num2str(m-1) '.wav'],frame,seg);
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI end % Database if db_per_nada==1 x1=mean(b1(:,1:8)')';y1=mean(r1(:,1:8)')';z1=mean(p1(:,1:8)')'; x2=mean(b2(:,1:8)')';y2=mean(r2(:,1:8)')';z2=mean(p2(:,1:8)')'; x3=mean(b3(:,1:8)')';y3=mean(r3(:,1:8)')';z3=mean(p3(:,1:8)')'; x4=mean(b4(:,1:8)')';y4=mean(r4(:,1:8)')';z4=mean(p4(:,1:8)')'; x5=mean(b5(:,1:8)')';y5=mean(r5(:,1:8)')';z5=mean(p5(:,1:8)')'; x6=mean(b6(:,1:8)')';y6=mean(r6(:,1:8)')';z6=mean(p6(:,1:8)')'; x7=mean(b7(:,1:8)')';y7=mean(r7(:,1:8)')';z7=mean(p7(:,1:8)')'; x8=mean(b8(:,1:8)')';y8=mean(r8(:,1:8)')';z8=mean(p8(:,1:8)')'; x9=mean(b9(:,1:8)')';y9=mean(r9(:,1:8)')';z9=mean(p9(:,1:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9]; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9]; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 ]; elseif db_per_nada==2 x1=mean(b1(:,1:4)')';x2=mean(b1(:,5:8)')'; x3=mean(b2(:,1:4)')';x4=mean(b2(:,5:8)')'; x5=mean(b3(:,1:4)')';x6=mean(b3(:,5:8)')'; x7=mean(b4(:,1:4)')';x8=mean(b4(:,5:8)')'; x9=mean(b5(:,1:4)')';x10=mean(b5(:,5:8)')'; x11=mean(b6(:,1:4)')';x12=mean(b6(:,5:8)')'; x13=mean(b7(:,1:4)')';x14=mean(b7(:,5:8)')'; x15=mean(b8(:,1:4)')';x16=mean(b8(:,5:8)')'; x17=mean(b9(:,1:4)')';x18=mean(b9(:,5:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18]; y1=mean(r1(:,1:4)')';y2=mean(r1(:,5:8)')'; y3=mean(r2(:,1:4)')';y4=mean(r2(:,5:8)')'; y5=mean(r3(:,1:4)')';y6=mean(r3(:,5:8)')'; y7=mean(r4(:,1:4)')';y8=mean(r4(:,5:8)')'; y9=mean(r5(:,1:4)')';y10=mean(r5(:,5:8)')'; y11=mean(r6(:,1:4)')';y12=mean(r6(:,5:8)')'; y13=mean(r7(:,1:4)')';y14=mean(r7(:,5:8)')'; y15=mean(r8(:,1:4)')';y16=mean(r8(:,5:8)')'; y17=mean(r9(:,1:4)')';y18=mean(r9(:,5:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18]; z1=mean(p1(:,1:4)')';z2=mean(p1(:,5:8)')'; z3=mean(p2(:,1:4)')';z4=mean(p2(:,5:8)')'; z5=mean(p3(:,1:4)')';z6=mean(p3(:,5:8)')'; z7=mean(p4(:,1:4)')';z8=mean(p4(:,5:8)')'; z9=mean(p5(:,1:4)')';z10=mean(p5(:,5:8)')'; z11=mean(p6(:,1:4)')';z12=mean(p6(:,5:8)')'; z13=mean(p7(:,1:4)')';z14=mean(p7(:,5:8)')'; z15=mean(p8(:,1:4)')';z16=mean(p8(:,5:8)')'; z17=mean(p9(:,1:4)')';z18=mean(p9(:,5:8)')';
51
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18]; elseif db_per_nada==4 x1=mean(b1(:,1:2)')';x2=mean(b1(:,3:4)')';x3=mean(b1(:,5:6')')';x4=mea n(b1(:,7:8)')'; x5=mean(b2(:,1:2)')';x6=mean(b2(:,3:4)')';x7=mean(b2(:,5:6')')';x8=mea n(b2(:,7:8)')'; x9=mean(b3(:,1:2)')';x10=mean(b3(:,3:4)')';x11=mean(b3(:,5:6')')';x12= mean(b3(:,7:8)')'; x13=mean(b4(:,1:2)')';x14=mean(b4(:,3:4)')';x15=mean(b4(:,5:6')')';x16 =mean(b4(:,7:8)')'; x17=mean(b5(:,1:2)')';x18=mean(b5(:,3:4)')';x19=mean(b5(:,5:6')')';x20 =mean(b5(:,7:8)')'; x21=mean(b6(:,1:2)')';x22=mean(b6(:,3:4)')';x23=mean(b6(:,5:6')')';x24 =mean(b6(:,7:8)')'; x25=mean(b7(:,1:2)')';x26=mean(b7(:,3:4)')';x27=mean(b7(:,5:6')')';x28 =mean(b7(:,7:8)')'; x29=mean(b8(:,1:2)')';x30=mean(b8(:,3:4)')';x31=mean(b8(:,5:6')')';x32 =mean(b8(:,7:8)')'; x33=mean(b9(:,1:2)')';x34=mean(b9(:,3:4)')';x35=mean(b9(:,5:6')')';x36 =mean(b1(:,7:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18 x19 x20... x21 x22 x23 x24 x25 x26 x27 x28 x29 x30... x31 x32 x33 x34 x35 x36]; y1=mean(r1(:,1:2)')';y2=mean(r1(:,3:4)')';y3=mean(r1(:,5:6')')';y4=mea n(r1(:,7:8)')'; y5=mean(r2(:,1:2)')';y6=mean(r2(:,3:4)')';y7=mean(r2(:,5:6')')';y8=mea n(r2(:,7:8)')'; y9=mean(r3(:,1:2)')';y10=mean(r3(:,3:4)')';y11=mean(r3(:,5:6')')';y12= mean(r3(:,7:8)')'; y13=mean(r4(:,1:2)')';y14=mean(r4(:,3:4)')';y15=mean(r4(:,5:6')')';y16 =mean(r4(:,7:8)')'; y17=mean(r5(:,1:2)')';y18=mean(r5(:,3:4)')';y19=mean(r5(:,5:6')')';y20 =mean(r5(:,7:8)')';
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
y21=mean(r6(:,1:2)')';y22=mean(r6(:,3:4)')';y23=mean(r6(:,5:6')')';y24 =mean(r6(:,7:8)')'; y25=mean(r7(:,1:2)')';y26=mean(r7(:,3:4)')';y27=mean(r7(:,5:6')')';y28 =mean(r7(:,7:8)')'; y29=mean(r8(:,1:2)')';y30=mean(r8(:,3:4)')';y31=mean(r8(:,5:6')')';y32 =mean(r8(:,7:8)')'; y33=mean(r9(:,1:2)')';y34=mean(r9(:,3:4)')';y35=mean(r9(:,5:6')')';y36 =mean(r1(:,7:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18 y19 y20... y21 y22 y23 y24 y25 y26 y27 y28 y29 y30... y31 y32 y33 y34 y35 y36]; z1=mean(p1(:,1:2)')';z2=mean(p1(:,3:4)')';z3=mean(p1(:,5:6')')';z4=mea n(p1(:,7:8)')'; z5=mean(p2(:,1:2)')';z6=mean(p2(:,3:4)')';z7=mean(p2(:,5:6')')';z8=mea n(p2(:,7:8)')'; z9=mean(p3(:,1:2)')';z10=mean(p3(:,3:4)')';z11=mean(p3(:,5:6')')';z12= mean(p3(:,7:8)')'; z13=mean(p4(:,1:2)')';z14=mean(p4(:,3:4)')';z15=mean(p4(:,5:6')')';z16 =mean(p4(:,7:8)')'; z17=mean(p5(:,1:2)')';z18=mean(p5(:,3:4)')';z19=mean(p5(:,5:6')')';z20 =mean(p5(:,7:8)')'; z21=mean(p6(:,1:2)')';z22=mean(p6(:,3:4)')';z23=mean(p6(:,5:6')')';z24 =mean(p6(:,7:8)')'; z25=mean(p7(:,1:2)')';z26=mean(p7(:,3:4)')';z27=mean(p7(:,5:6')')';z28 =mean(p7(:,7:8)')'; z29=mean(p8(:,1:2)')';z30=mean(p8(:,3:4)')';z31=mean(p8(:,5:6')')';z32 =mean(p8(:,7:8)')'; z33=mean(p9(:,1:2)')';z34=mean(p9(:,3:4)')';z35=mean(p9(:,5:6')')';z36 =mean(p9(:,7:8)')'; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18 z19 z20... z21 z22 z23 z24 z25 z26 z27 z28 z29 z30... z31 z32 z33 z34 z35 z36]; elseif db_per_nada==8 dbbelira=[b1 b2 b3 b4 b5 b6 b7 b8 b9]; dbrekorder=[r1 r2 r3 r4 r5 r6 r7 r8 r9];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI dbpianika=[p1 p2 p3 p4 p5 p6 p7 p8 p9]; end dz=[dbbelira dbrekorder dbpianika]; save db8dct4096 dz function z=prosesxc(fwav,frame,seg) % Proses ekstraksi ciri % Baca file wav x1=wavread(fwav); % Normalisasi 1 x1=x1/max(abs(x1)); %Pemrosesan Awal b0=0.3; % batas potong %(a)Pemotongan sinyal (sepertiga bagian kiri) % kiri satu b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[]; %kiri dua hy0=floor (0.25*length(x1)); x1(1:hy0)=[]; %(b)Frame blocking dari bagian kiri sinyal terpotong x2=x1(1:frame); %(c)Normalisasi 2 x3=x2/max (abs (x2)); %Row Mean DCT %(a)Pembentukan kolom matriks y2=reshape(x3,seg,[]); %(b)Windowing 2D [baris,kolom]=size(y2); hb=hann(baris);hk=hann(kolom); for k=1:baris y2(k,:)=y2(k,:).*hk'; end for k=1:kolom y2(:,k)=y2(:,k).*hb; end %(c)DCT 2D y3=abs(dct2(y2)); %(d)Rerata baris y4=sum(y3');
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
%Pemrosesan akhir %(a)Normalisasi 3 y5=y4/max(y4); %(b)Centering hy4=length(y4); %(b.1)Cari indeks dari maksimal global [srt,idx]=sort(y5,'descend'); imax=idx(1); %(b.2)Pemrosesan sisi kiri y6=y5; y6(imax:hy4)=[]; % potong kanan y6=fliplr(y6); y6(hy4)=0; % zero padding y6=fliplr(y6); %(b.3)Pemrosesan sisi kanan y7=y5; y7(1:imax-1)=[]; % potong kiri y7(hy4)=0; % zero padding %(b.4)Penggabungan kiri dan kanan z=[y6 y7]';
Program di atas untuk memanggil database yang akan dibandingankan dengan suara instrument musik yang telah terekam menggunakan perhitungan jarak. Database yang dipanggil sesuai dengan pilihan variasi frame blocking dan database pernada yang telah dipilih user. Proses yang dilakukan selanjutnya adalah membandingkan database dengan suara instrument musik yang terekam menggunakan perhitungan jarak. Nilai perhitungan jarak tersebut dimasukkan ke dalam metode penentuan keluaran yaitu k-Nearest Neighbor (k-NN), dimana k-Nearest Neighbor (k-NN) akan mengurutkan dari kecil sampai besar nilai dari hasil perhitungan jarak. Setelah mendapatkan nilai yang paling minimum dari pengurutan nilai hasil penghitungan jarak akan diambil nilai minimum sebanyak k (nilai yang dipilih oleh user) pada k-Nearest Neighbor (kNN), sesuai dengan urutan sampel dari database. Nilai kelas yang paling banyak muncul akan menjadi penentuan keluaran untuk suara instrument musik yang dikenal. Perintah program perhitungan jarak sebagai berikut:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
function z=jarak(x,y) % Perhitungan jarak % x, y : data masukan % z : data keluaran z=sqrt(sum((x-y).^2));
% jarak Euclidean
Setelah didapatkan proses perhitungan jarak selanjutnya masuk dalam penentuan pengeluan kelauran nada dalam tahap ini menggunakan metode k-NN. Kelas yang digunakan kNearest Neighbor (k-NN) adalah bilangan ganjil seperti 1, 3, 5, dan 7. Kelas k=1 sama dengan tidak menggunakan k-Nearest Neighbor (k-NN) karena nilai minimumnya hanya mencari satu nilai sampel dari database dan juga kelasnya hanya ada satu. k=1 tidak bisa mencari nilai yang paling minimum dari nada lain, sedangkan kelas k=3, 5, 7 menggunakan k-Nearest Neighbor (kNN) karena mencari nilai minimum dari sampel database disetiap variasi sesuai dengan nilai k nya. k-Nearest Neighbor (k-NN) yang diambil sebagai keluaran adalah kelas yang paling banyak muncul. Perhitungan pengurutan nilai minimum ini menggunakan fungsi jarak euclidean yang digunakan sebagai perhitungan nilai jarak minimum yang didapatkan dari perbandingan nada masukan dengan database. Berikut perintah program k-NN : % knn jsk=jumdb/3; [s1,s2]=sort(z,'ascend'); kjarak=s1(1:k) kindeks=s2(1:k) kpilih=ceil(kindeks/jsk); kout=mode(kpilih) %idxkout=find(kpilih==kout); %jpilih=kjarak(idxkout); %fjpilih=fliplr(jpilih); %jmaks=fjpilih(1)
% % % % % %
jumlah sampel per kelas pada database urut naik (fungsi jarak) k hasil sorting indeks dari k hasil sorting penentuan kelas-kelas yang terpilih kelas yang paling sering muncul
% % % %
cari indekx kout pada kpilih nilai-nilai jarak pada kout flip kiri-kanan jarak maksimum
c. Tombol “RESET” Tombol “RESET” digunakan apabila user masih ingin melakukan pengenalan suara instrument musik untuk suara instrument musik lainnya. Tombol “RESET” berfungsi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
mengembalikan atau mengulang tampilan program ke tampilan awal. Program yang digunakan untuk tombol RESET adalah sebagai berikut : axes (handles.axes1); plot(0); axes(handles.axes2); plot(0); set(handles.text1,'string',' ');
Program di atas berfungsi untuk mengembailkan atau mengosongkan axes plot dan kolom edit yang menampilkan hasil pengenalan suara instrument musik. d. Tombol “SELESAI” Tombol “SELESAI” berfungsi untuk mengakhiri proses pengenalan suara instrument musik. Program untuk tombol SELESAI : delete(figure(GUIBaru));
4.2
Hasil Pengujian Program Pengenalan Suara Instrument Musik Pengujian program pengenalan suara instrument musik dilakukan dengan beberapa tahap
pengujian. Tahap pengujian ini dilakukan pengujian parameter pengaturan pengenalan suara intument musik meliputi pengujian secara tidak real-time dan pengujian secara real-time.
4.2.1 Pengujian Parameter Pengenalan Suara Instrument Musik Pengujian ini bertujuan untuk menguji seberapa besar tingkat pengenalan suara instrument musik dari setiap parameter. Parameter ini antara lain frame blocking, nilai k pada K-NN dan nilai dari database per nada. Pengujian program pengenalan suara instrument musik dilakukan dengan pengujian secara tidak real-time dan pengujian secara real-time.
4.2.1.1
Pengujian Secara Tidak Real-Time
Suara uji digunakan untuk masukan pengujian secara tidak real-time. Proses pengambilan suara uji sama dengan proses pengambilan database. Pengujian tidak real-time menggunakan suara uji sebanyak 8, 4, 2 dan 1 data dimana setiap suara ujinya memiliki 1,2,4 dan 8 database.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Hasil pengujian tidak real-time adalah data tingkat pengenalan suara dari pengujian yang sudah dilakukan. Presentase tingkat pengenalan sistem dapat dilakukan dengan menggunakan program. Data tingkat pengenalan untuk setiap nilai database 1, 2, 4 dan 8 dari setiap suara tersebut di presentasikan dengan presentase yang menunjukkan tingkat pengenalan suara berdasarkan variasi nilai frame blocking dan k pada k-NN seperti pada table 4.1, 4.2, 4.3 Dan 4.4 (lampiran) Tabel 4.1. Menggunakan nilai frame blocking 64 dengan database per nada 8 Frame Blocking 64 64 64 64
Database nada 8 8 8 8
K-NN 1 3 5 7
Tingkat Pengenalan 100 % 88,42 % 84,25 % 80,55 % 88 %
Tabel 4.2. Menggunakan nilai frame blocking 256 dengan database per nada 8 Frame Blocking 256 256 256 256
Database nada 8 8 8 8
K-NN 1 3 5 7
Tingkat Pengenalan 100 % 96,29 % 95,83 % 93,05 % 96 %
Tabel 4.3. Menggunakan nilai frame blocking 1024 dengan database per nada 8 Frame Blocking 1024 1024 1024 1024
Database nada 8 8 8 8
K-NN 1 3 5 7
Tingkat Pengenalan 100 % 97,68 % 94,90 % 93,98 % 97 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
Tabel 4.4. Menggunakan nilai frame blocking 4096 dengan database per nada 8 Frame Blocking 4096 4096 4096 4096
Database nada 8 8 8 8
K-NN 1 3 5 7
Tingkat Pengenalan 100 % 96,29 % 91,20 % 89,81 % 94 %
Hasil pengenalan diatas berdasarkan dari tabel (lampiran) merupakan hasil pengenalan suara dari program yang menggunakan nilai dari database per nada 1, 2, 4 dan 8. Data tingkat pengenalan untuk database 1, 2, 4 dan 8 dari setiap suara akan dipresentasikan dengan presentasi yang menunjukkan tingkat pengenalan suara berdasarkan variasi nilai frame blocking, database per nada dan nilai k pada k-NN. Dari keempat pilihan variasi nilai database pernada, database per nada yang ke 8 yang mampu untuk mengenali suara instrumen musik dengan tingkat pengenalan kurang lebih 90 persen. Berdasarkan tabel di atas menunjukkan kenaikan dan penurunan kinerja sistem dari hasil pengenalan suara dikarenakan oleh pengaruh variasi nilai dari frame blocking, database per nada dan nilai k pada k-NN. Database per nada yang digunakan adalah 1, 2, 4 dan 8. Berdasarkan data dari tingkat keberhasilan mengenali suara instrument musik, dengan Database pernada yang ke 8 sudah mampu mengenali suara instrument musik dengan baik. Kelas yang digunakan k-Nearest Neighbour (k-NN) adalah bilangan ganjil yaitu 1, 3, 5 dan
7. Berdasarkan data dari tingkat persentase keberhasilan mengenali suara instrumen musik, dengan menggunakan k-nn satu disetiap nada dan alat musik sudah mampu untuk mengenali suara-suara pada alat musik. Sehingga pada peneltian ini k-NN tidak diperlukan pada proses pengenalan suara instrumen musik, dikarenakan untuk kelas k=1 sama dengan tidak menggunakan k-Nearest Neighbor (k-NN) karena nilai minimumnya hanya mencari satu nilai sampel dari database dan juga kelasnya hanya ada satu.k=1 tidak bisa mencari nilai yang paling minimum dari nada lain, sedangkan kelas k=3, 5, 7 menggunakan k-Nearest Neighbor (k-NN) karena mencari nilai minimum dari sampel database disetiap variasi nada sesuai dengan nilai k.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Syarat dari k-Nearest Neighbor (k-NN) yang diambil sebagai keluaran adalah kelas yang paling banyak muncul.
4.2.1.2
Pengujian Real Time
Pada program pengenalan suara instrument musik, user memilih variasi frame blocking, database per nada dan nilai k pada k-NN. Setelah user selesai memilih variasi- variasi yang ada, maka user dapat menjalankan program pengenalan suara instrument musik. Pengujian real time dilakukan dengan menggunakan masukan suara instrument musik secara langsung. Jumlah data yang diambil untuk pengujian ini adalah sebanyak lima kali untuk setiap nada dari suara instrument musiknya. Parameter yang digunakan dalam pengujian real time adalah parameter terbaik yang telah di dapat pada pengujian tidak real time sebelumnya atau pengujian secara offline. Parameter yang didapat secara tidak real time yaitu dengan variasi frame blocking, database per nada dan nilai k pada k-NN yang terbaik adalah 1024, nilai k=1 pada k-NN dan database per nada dengan menggunakan database 4 dan 8. Berdasarkan percobaan yang telah dilakukan, sistem pengenalan suara dapat mengenali suara instrument dengan baik. Hasil pengujian secara real time sesuai dengan hasil pengujian tidak real time yaitu mendapatkan nilai variasi parameter terbaik. Pada sistem pengenalan suara instrument musik tersebut menggunakan variasi terbaik dari frame blocking 64, 256, 1024 dan 4096, database per nada 4 dan 8 dan nilai k = 1 pada k-NN. Tabel 4.5 dan 4.12 memperlihatkan hasil pengujian secara real time yang dilakukan sebanyak 5 kali pengujian seperti pada tabel berikut : Tabel 4.5. Hasil Pengujian secara real time dengan variasi frame blocking 64 database per nada 4 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 36 4 5 80 % Pianika 1 37 7 82,22 % Rekorder 0 2 43 95,55 % Rata-rata tingkat pengenalan (%) 86 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
Tabel 4.6. Hasil Pengujian secara real time dengan variasi frame blocking 64 database per nada 8 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 35 9 1 77,77 % Pianika 1 41 3 91,11 % Rekorder 2 8 35 77,77 % Rata-rata tingkat pengenalan (%) 82,22 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian. Tabel 4.7. Hasil Pengujian secara real time dengan variasi frame blocking 256 database per nada 4 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 41 0 4 91,11 % Pianika 2 40 3 88,88 % Rekorder 4 6 33 73,33 % Rata-rata tingkat pengenalan (%) 84,44 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian. Tabel 4.8. Hasil Pengujian secara real time dengan variasi frame blocking 256 database per nada 8 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 35 5 5 77,77 % Pianika 5 36 4 80 % Rekorder 0 15 30 66,66 % Rata-rata tingkat pengenalan (%) 74,81 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
Tabel 4.9. Hasil Pengujian secara real time dengan variasi frame blocking 1024 database per nada 4 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 35 5 5 77,77 % Pianika 2 42 1 93,33 % Rekorder 1 9 35 77,77 % Rata-rata tingkat pengenalan (%) 82,96 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian. Tabel 4.10. Hasil Pengujian secara real time dengan variasi frame blocking 1024 database per nada 8 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 35 5 5 77,77 % Pianika 2 42 1 93,33 % Rekorder 0 10 35 77,77 % Rata-rata tingkat pengenalan (%) 82,96 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian. Tabel 4.11. Hasil Pengujian secara real time dengan variasi frame blocking 4096 database per nada 4 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 41 4 0 91,11 % Pianika 3 38 3 84,44 % Rekorder 0 10 35 77,77 % Rata-rata tingkat pengenalan (%) 84,44 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
Tabel 4.12. Hasil Pengujian secara real time dengan variasi frame blocking 4096 database per nada 8 dan nilai k=1 pada k-NN. Confusion Matrix Belira Pianika Rekorder Tingkat Pengenalan Belira 35 5 5 77,77 % Pianika 3 39 3 86,66 % Rekorder 0 10 35 77,77 % Rata-rata tingkat pengenalan (%) 80,73 % Ket : Masukan berupa nada do, re, mi, fa, sol, la, si, do tinggi, re tinggi dengan masing-masing 5 kali pengujian. Berdasarkan tabel 4.5 sampai dengan tabel 4.12 merupakan hasil pengujian suara secara real time yang dilakukan dengan masing-masing 5 kali pengujian. Dari tabel tersebut dapat dilihat pada tabel 4.5 menunjukkan bahwa tingkat pengenalan untuk suara alat musik pada rekorder sebesar 95.55 %. Tabel 4.7 dan 4.11 menunjukkan bahwa tingkat pengenalan suara alat musik pada belira sebesar 91.11 % serta pada tabel 4.9 dan 4.10 menunjukkan bahwa tingkat pengenalan suara alat musik pada pianika sebesar 93.33 %. Dari tabel-tabel data hasil percobaan dapat dicari persen pengenalan melalui pehitungan dari masing-masing panjang nilai frame blocking dan dapat dibuat grafik dari pengaruh panjang Row Mean DCT terhadap tigkat pengenalan. Untuk mendapatkan tingkat persen pengenalan dari percobaan tersebut digunakan rumus [18]: ∑
Tingkat pengenalan =
Ket :∑ = jumlah suara yang dikenali dan benar. Perhitungan tingkat pengenalan dari :
a. frame blocking = 64 dengan database per nada 4 Tingkat pengenalan = = = 85,92
∑
(4.1)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI b. frame blocking = 64 dengan database per nada 8 Tingkat pengenalan =
∑
= = 82,22 c. frame blocking = 256 dengan database per nada 4 Tingkat pengenalan =
∑
= = 87,69 d. frame blocking = 256 dengan database per nada 8 Tingkat pengenalan =
∑
= = e. frame blocking = 1024 dengan database per nada 4 Tingkat pengenalan =
∑
= = f. frame blocking = 1024 dengan database per nada 8 Tingkat pengenalan =
∑
= = g. frame blocking = 4096 dengan database per nada 4 Tingkat pengenalan =
∑
= = 85,07 h. frame blocking = 4096 dengan database per nada 8 Tingkat pengenalan = =
∑
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI =
Tabel 4.13.Pengaruh frame blocking terhadap tingkat pengenalan Database per nada dan frame blocking frame blocking 64, Database per nada 4 frame blocking 64, Database per nada 8 frame blocking 256,
Tingkat pengenalan (%) 85, 92% 82, 22% 87,69 %
Database per nada 4 frame blocking 256,
74,81 %
Database per nada 8 frame blocking 1024,
82,96 %
Database per nada 4 frame blocking 1024,
82,96 %
Database per nada 8 frame blocking 4096,
85,07 %
Database per nada 4 frame blocking 4096, Database per nada 8
80,74 %
65
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
Pengaruh Frame Blocking Terhadap Tingkat Pengenalan Suara Tingkat Pengenalan (%)
95.00% 90.00%
88,97%
87,69%
85.00%
82,22% 80.00% 75.00%
85,07% 82,96% 82,96% 80,74% 74,81%
70.00% 65.00%
Tingkat pengenalan (%)
Jumlah Frame Blocking dan Database per nada Gambar 4.3. Grafik Pengaruh Frame Blocking Terhadap Tingkat Pengenalan Suara
Dari tabel dan gambar grafik dari pengaruh frame blocking terhadap tingkat pengenalan suara dapat disimpulkan dan ditentukan nilai parameter yang digunakan dalam proses pengenalan suara secara real time daengan variasi nilai pada frame blocking yang digunakan mulai 64, 256, 1024 dan 4096 serta database per nada 4 dan 8. Setelah melalui perhitungan tingkat persen pengenalan didapatkan hasil seperti pada tabel 4.13. dari tabel tersebut menunjukkan kenaikan dan penurunan kinerja sistem dari hasil pengenalan suara instrument musik dikarenakan oleh pengaruh variasi frame blocking dan database per nada. Secara teori dalam menentukan nilai koefisien yaitu mencari nilai koefisien yang terkecil untuk mendapatkan hasil yang baik , maka nilai koefisien yang digunakan dalam proses pengenalan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
suara instrument musik yaitu 256 karena dengan nilai koefisien 256 sudah mendapatkan hasil pengenalan nada belira sebesar 87,69%. Hasil penelitian tidak selalu benar dikarenakan karena beberapa hal, sehingga penelitian ini tingkat pengenalannya tidak mencapai 100 %. Hasil penelitian ini salah karena disebabkan oleh ketidaksesuaian pemilihan k pada nilai K-NNnya. Penentuan keluaran atau hasil keluaran ini ditentukan dari jumlah pada K-NNnya. Pada penentuan keluarannya sudah ditentukan dari jumlah k pada nilai K-NNnya, sehingga jika keluarannya tidak mencapai angka k pada K-NNnya maka keluaranya akan salah. Hal lain yang disebabkan pengenalan salah adalah karena cara memukul ataupun meniup alat musiknya juga akan berpengaruh pada hasil keluarannya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN
5.1 KESIMPULAN Berdasarkan percobaan dan pengujian sistem suara instrument musik maka dapat disimpulkan sebagai berikut : 1. Implementasi dari sistem pengenalan suara instrument alat musik belira, pianika dan rekorder sudah bisa bekerja. 2. Pengujian pengenalan suara musik secara real-time menggunakan database pernada 4 dan 8 dengan variasi frame blocking 256, 1024 dan 4096, dan nilai k=1 pada k-NN. 3. Pengenalan suara instrument musik pada belira, pianika dan rekorder secara realtime dengan menggunakan database pernada 4 dengan variasi frame blocking 256, dan nilai k=1 pada k-NN memiliki tingkat pengenalan suara instrument musik mencapai 87,69 %.
5.2 SARAN Sistem pengenalan suara instrument musik ini masih memiliki kekurangan. Ada beberapa saran yang diharapkan dapat mengurangi kekurangan tersebut, antara lain: 1. Pengembangan dapat dilakukan agar sistem dapat mengenali banyak alat musik
dengan berbagai nada yang dihasilkan. 2. Untuk pengembangannya dapat juga membuat hardware pengenalan suara
instrument musik.
68
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
DAFTAR PUSTAKA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8] [9] [10]
[11]
Topan bayu., 2009, Pengertian Musik, http://musiktopan.blogspot.in/2009/03/pengertian musik.html diakses pada tanggal 22 Maret 2015 V. Irwan Novariyanto., 2014, Pengenalan Nada Alat Musik Secara Real Time Dengan Ekstraksi Ciri DCT dan Similaritas Kosinus, Skripsi, Teknik Elekro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma, Yogyakarta. Dionysius Edwin Surya., 2012, Pengenalan Nada Alat Musik Pianika Menggunakan Metode Korelasi, Skripsi, Teknik Elekro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma, Yogyakarta. Marianus Hendra Wijaya., 2012, Pengenalan Nada Suling Recorder Menggunakan Fungsi Jarak Chebyshev, Skripsi, Teknik Elekro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma, Yogyakarta. Batu Im., 2010, Aneka alat musik, http://anekaalatmusik.blogspot.com/2010_11_01_archive.html diakses pada tanggal 22 Maret 2015 ------., 2012, Alat-alat Marching Band beserta fungsinya, https://marchingband255.wordpress.com/2012/11/27/alat-alat-marching-bandbeserta-fungsinya/ Marching Band PD INFO., 2013, cara memainkan bellyra/marchingband, http://pengrajindrumband.com/info/cara-memainkan-bellyramarching-bell/ diakses pada tanggal 22 Maret 2015 Sri Kuncoro SP., 2012, Alat Musik Recorder, http://sanggarmodel.blogspot.com/2012/04/alat-musik-recorder.html diakses pada tanggal 22 Maret 2015 Sklar, B., 1988, Digital Communications Fundamental and Application, New Jersey, PTR Prentice Hall. Kartikasari, Y.E., 2006, Pembuatan Software Pembuka Program aplikasi Komputer Berbasis Pengenalan Sinyal Suara, PENS-ITS, Surabaya Dr. Kekre H.B., Vaishali Kulkarni., Sunil Venkatraman., Anshu Priya., dan Sujatha Narasimhan., 2011, Speaker Identification Using Row Mean of DCT and Walsh Hadamard Transform, International Journal on Computer Science and Engineering (IJCSE)., Vol. 3, No. 3, hal 1296-1297. Santoso, T.B., 2005, Protipe Modul Pengamatan Sinyal Domain Waktu danFrekuensi Secara Real Time Untuk Praktikum Pengolahan Sinyal Digital, EEPISITS, Surabaya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
[12] [13]
[14]
[15]
[16] [17] [18]
70
Elib UNIKOM., 2012, Bab II Pengertian Window Hanning, www.ElibUNIKOM.ac.id//File//BABII//docx diakses pada tanggal 29 April 2015 Yani., 2010, perbedaan discrete cosine transform (DCT) dan distrete wavelet transform (DWT), https://anoa5.wordpress.com/2010/05/08/perbedaan-discretecosine-transform-dct-dan-discrete-wavelet-transform-dwt/ diakses pada taanggal 29 Maret 2015 Melantika, A. P., 2010, Pengenalan Pola Batik Yogyakarta menggunakan Metode Hidden Markov Midels dengan Studi Kasus di Museum Batik Yogyakarta, Tugas Akhir, Jurusan Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma, Yogyakarta. Jain, A. K., Duin, R. P. W., & Mao, J. 2000, Statistical Pattern Recognition: A Review. Pattern Analysis and Machine Intelligence, IEEE Transactions on,22(1), 4-37. Alpha C.Chiang, Kevin Wainwringht, 2006. Jarak Dasar-dasar Matematika Ekonomi, edisi 4, jilid 1. Jakarta: Erlangga Theodoridis, Sergios. And Konstantinos Koutroumbas.,2009, Pattern Recognition,4th ed,Elsevier Inc,Massachusetts 01803,USA ------., Microphone 01-A Multimedia Genius, http://finelcomputer.indonetwork.co.id/4033920/microphone-mic-01a-multimediagenius-komputer-bintaro.htm diakses pada tanggal 22 Maret 2015.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L1
LAMPIRAN 1 GAMBARAN SINYAL PADA PROSES ROW MEAN DCT Tujuan : Memperlihatkan gambaran sinyal pada proses Row Mean DCT untuk Belira, Pianika dan Recorder pada nada Do sampai nada Re tinggi. Parameter : 1. Frekuensi sampling yang digunakan 10000 HZ. 2. Durasi sampling perekaman yang digunakan sebesar 1.5 detik. 3. Frame blocking 1024 titik.
Gambar sinyal untuk proses Row Mean DCT 1. Sinyal dari pembentukan kolom matriks a. Belira Do
Re
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Mi
Fa
Sol
La
Si
Do Tinggi
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Re Tinggi
b. Pianika Do
Re
Mi
Fa
L3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Sol
La
Si
Do Tinggi
Re Tinggi
L4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI c. Recorder Do
Re
Mi
Fa
Sol
La
L5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Si
Do Tinggi
Re Tinggi
2. Sinyal Windowing 2D a. Belira Do
Re
L6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Mi
Fa
Sol
La
Si
Do Tinggi
L7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Re Tinggi
b. Pianika Do
Re
Mi
Fa
L8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Sol
Si
Re Tinggi
La
Do Tinggi
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI c. Recorder Do
Re
Mi
Fa
Sol
La
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Si
Do Tinggi
Re Tinggi
3. Sinyal DCT 2D a. Belira Do
Re
L11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Mi
Fa
Sol
La
Si
Do Tinggi
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Re Tinggi
b. Pianika Do
Re
Mi
Fa
L13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Sol
La
Si
Do Tinggi
Re Tinggi
L14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI c. Recorder Do
Re
Mi
Fa
Sol
La
L15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Si
Do Tinggi
Re Tinggi
4. Sinyal rerata baris a. Belira Do
Re
L16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Mi
Fa
Sol
La
Si
Do Tinggi
L17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Re Tinggi
b. Pianika Do
Re
Mi
Fa
L18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Sol
La
Si
Do Tinggi
Re Tinggi
L19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
c. Recorder Do
Re
Mi
Fa
Sol
La
L20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Si
Re Tinggi
Do Tinggi
L21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L22
LAMPIRAN 2 LISTING PROGRAM GUI MATLAB Program Utama function varargout = GUIBaru(varargin) % GUIBARU M-file for GUIBaru.fig % GUIBARU, by itself, creates a new GUIBARU or raises the existing % singleton*. % % H = GUIBARU returns the handle to a new GUIBARU or the handle to % the existing singleton*. % % GUIBARU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUIBARU.M with the given input arguments. % % GUIBARU('Property','Value',...) creates a new GUIBARU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before GUIBaru_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to GUIBaru_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help GUIBaru % Last Modified by GUIDE v2.5 23-Nov-2015 13:47:09 % Begin initialization code - DO NOT gui_Singleton = 1; gui_State = struct('gui_Name', 'gui_Singleton', 'gui_OpeningFcn', 'gui_OutputFcn', 'gui_LayoutFcn',
EDIT mfilename, ... gui_Singleton, ... @GUIBaru_OpeningFcn, ... @GUIBaru_OutputFcn, ... [] , ...
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L23
'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before GUIBaru is made visible. function GUIBaru_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUIBaru (see VARARGIN) % Choose default command line output for GUIBaru handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes GUIBaru wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = GUIBaru_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) sample_length=1.5; sample_freq=10000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI %wavwrite(x, sample_freq, 's.wav'); axes(handles.axes1) plot(x); %x=wavread('s.wav'); %listing program frame=handles.frame; seg=sqrt(frame); % panjang segmen untuk rdct (32) b0=0.3; % batas potong knn=handles.varn; dbpernada=handles.db_pernada; % Normalisasi 1 x1=x/max(abs(x)); %Pemrosesan Awal %(a)Pemotongan sinyal (sepertiga bagian kiri) % kiri satu b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[]; %kiri dua hy0=floor(0.25*length(x1)); x1(1:hy0)=[]; %(b)Frame blocking dari bagian kiri sinyal terpotong x2=x1(1:frame); %(c)Normalisasi 2 x3=x2/max (abs (x2)); %Row Mean DCT %(a)Pembentukan kolom matriks y2=reshape(x3,seg,[]); %(b)Windowing 2D [baris,kolom]=size(y2); hb=hann(baris);hk=hann(kolom); for k=1:baris y2(k,:)=y2(k,:).*hk'; end for k=1:kolom y2(:,k)=y2(:,k).*hb; end %(c)DCT 2D y3=abs(dct2(y2)); %(d)Rerata baris y4=sum(y3');
L24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
%Pemrosesan akhir %(a)Normalisasi 3 y5=y4/max(y4); %(b)Centering hy4=length(y4); %(b.1)Cari indeks dari maksimal global [srt,idx]=sort(y5,'descend'); imax=idx(1); %(b.2)Pemrosesan sisi kiri y6=y5; y6(imax:hy4)=[]; % potong kanan y6=fliplr(y6); y6(hy4)=0; % zero padding y6=fliplr(y6); %(b.3)Pemrosesan sisi kanan y7=y5; y7(1:imax-1)=[]; % potong kiri y7(hy4)=0; % zero padding %(b.4)Penggabungan kiri dan kanan z=[y6 y7]'; axes(handles.axes2) %mesh(y3) bar(z); if (frame==64) &&(dbpernada==1) load db1dct64; elseif (frame==64) &&(dbpernada==2) load db2dct64; elseif (frame==64) &&(dbpernada==4) load db4dct64; elseif (frame==64) &&(dbpernada==8) load db8dct64; elseif (frame==256) &&(dbpernada==1) load db1dct256; elseif (frame==256) &&(dbpernada==2) load db2dct256; elseif (frame==256) &&(dbpernada==4) load db4dct256; elseif (frame==256) &&(dbpernada==8) load db8dct256; elseif (frame==1024) &&(dbpernada==1) load db1dct1024; elseif (frame==1024) &&(dbpernada==2) load db2dct1024; elseif (frame==1024) &&(dbpernada==4) load db4dct1024; elseif (frame==1024) &&(dbpernada==8) load db8dct1024; elseif (frame==4096) &&(dbpernada==1) load db1dct4096; elseif (frame==4096) &&(dbpernada==2) load db2dct4096; elseif (frame==4096) &&(dbpernada==4) load db4dct4096; elseif (frame==4096) &&(dbpernada==8) load db8dct4096; end % Pengenalan %k=1;
L25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L26
db=dz; uji=z; % Perhitungan jarak [x,jumdb]=size(db); z=zeros(1,jumdb); sizedb=size(db) sizeuji=size(uji) for n=1:jumdb z(n)=jarak(uji,db(:,n)); end % knn jskd=jumdb/3; [s1,s2]=sort(z,'ascend'); kjarak=s1(1:knn) kindeks=s2(1:knn) kpilih=ceil(kindeks/jskd) kout=mode(kpilih)
% jumlah sampel per kelas pada database % urut naik (fungsi jarak) % k hasil sorting % indeks dari k hasil sorting % penentuan kelas-kelas yang terpilih % kelas yang paling sering muncul
%idxkout=find(kpilih==kout); %jpilih=kjarak(idxkout); %fjpilih=fliplr(jpilih); %jmaks=fjpilih(1)
% % % %
cari indekx kout pada kpilih nilai-nilai jarak pada kout flip kiri-kanan jarak maksimum
% Penentuan keluaran if kout==1% && jmaks<=0.6 pout='belira'; elseif kout==2% && jmaks<=1.8 pout='rekorder'; elseif kout==3% && jmaks<=1.8 pout='pianika'; end hasilout=pout set(handles.text1,'string',hasilout) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes (handles.axes1); plot(0); axes(handles.axes2); plot(0); set(handles.text1,'string',' '); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L27
% hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(figure(GUIBaru)); % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in popupmenu2. function popupmenu2_Callback(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 frame=64; case 2 frame=256; case 3 frame=1024; case 4 frame=4096; end handles.frame=frame; guidata(hObject,handles); % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L28
% --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu3. function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) indeks=get(handles.popupmenu3,'Value'); switch indeks case 1 knn=1; case 2 knn=3; case 3 knn=5; case 4 knn=7; end handles.varn=knn; guidata(hObject,handles); % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu3 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu3 % --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L29
% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu4. function popupmenu4_Callback(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) indeks=get(handles.popupmenu4,'Value'); switch indeks case 1 dbpernada=1; case 2 dbpernada=2; case 3 dbpernada=4; case 4 dbpernada=8; end handles.db_pernada=dbpernada; guidata(hObject,handles); % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu4 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu4 % --- Executes during object creation, after setting all properties. function popupmenu4_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % hObject % eventdata % handles
L30
handle to pushbutton7 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L31
% Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
Program Fungsi Jarak Euclidean function z=jarak(x,y) % Perhitungan jarak % x, y : data masukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % z
: data keluaran
z=sqrt(sum((x-y).^2));
% jarak Euclidean
Program Pembuatan Database function databasebaru % Variabel penelitian frame=4096; % panjang frame blocking (1024) seg=sqrt(frame); % panjang segmen untuk rdct (32) k=1; % nilai k pada knn (3) db_per_nada=8; % Inisialisasi loop data_per_nada=8; % jumlah sampel/nada x=zeros(2*seg,data_per_nada); % pakai centering b1=x;b2=x;b3=x;b4=x;b5=x;b6=x;b7=x;b8=x;b9=x; r1=x;r2=x;r3=x;r4=x;r5=x;r6=x;r7=x;r8=x;r9=x; p1=x;p2=x;p3=x;p4=x;p5=x;p6=x;p7=x;p8=x;p9=x; % Perhitungan dengan loop for m=1:data_per_nada % Belira b1(:,m)=prosesxc(['bdo1' num2str(m-1) '.wav'],frame,seg); b2(:,m)=prosesxc(['bre1' num2str(m-1) '.wav'],frame,seg); b3(:,m)=prosesxc(['bmi1' num2str(m-1) '.wav'],frame,seg); b4(:,m)=prosesxc(['bfa1' num2str(m-1) '.wav'],frame,seg); b5(:,m)=prosesxc(['bsol1' num2str(m-1) '.wav'],frame,seg); b6(:,m)=prosesxc(['bla1' num2str(m-1) '.wav'],frame,seg); b7(:,m)=prosesxc(['bsi1' num2str(m-1) '.wav'],frame,seg); b8(:,m)=prosesxc(['bdot1' num2str(m-1) '.wav'],frame,seg); b9(:,m)=prosesxc(['bret1' num2str(m-1) '.wav'],frame,seg); % Recorder r1(:,m)=prosesxc(['rdo1' num2str(m-1) '.wav'],frame,seg); r2(:,m)=prosesxc(['rre1' num2str(m-1) '.wav'],frame,seg); r3(:,m)=prosesxc(['rmi1' num2str(m-1) '.wav'],frame,seg); r4(:,m)=prosesxc(['rfa1' num2str(m-1) '.wav'],frame,seg); r5(:,m)=prosesxc(['rsol1' num2str(m-1) '.wav'],frame,seg); r6(:,m)=prosesxc(['rla1' num2str(m-1) '.wav'],frame,seg); r7(:,m)=prosesxc(['rsi1' num2str(m-1) '.wav'],frame,seg); r8(:,m)=prosesxc(['rdot1' num2str(m-1) '.wav'],frame,seg); r9(:,m)=prosesxc(['rret1' num2str(m-1) '.wav'],frame,seg); % Pianika p1(:,m)=prosesxc(['pdo1' num2str(m-1) '.wav'],frame,seg); p2(:,m)=prosesxc(['pre1' num2str(m-1) '.wav'],frame,seg); p3(:,m)=prosesxc(['pmi1' num2str(m-1) '.wav'],frame,seg); p4(:,m)=prosesxc(['pfa1' num2str(m-1) '.wav'],frame,seg); p5(:,m)=prosesxc(['psol1' num2str(m-1) '.wav'],frame,seg); p6(:,m)=prosesxc(['pla1' num2str(m-1) '.wav'],frame,seg);
L32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L33
p7(:,m)=prosesxc(['psi1' num2str(m-1) '.wav'],frame,seg); p8(:,m)=prosesxc(['pdot1' num2str(m-1) '.wav'],frame,seg); p9(:,m)=prosesxc(['pret1' num2str(m-1) '.wav'],frame,seg); end % Database if db_per_nada==1 x1=mean(b1(:,1:8)')';y1=mean(r1(:,1:8)')';z1=mean(p1(:,1:8)')'; x2=mean(b2(:,1:8)')';y2=mean(r2(:,1:8)')';z2=mean(p2(:,1:8)')'; x3=mean(b3(:,1:8)')';y3=mean(r3(:,1:8)')';z3=mean(p3(:,1:8)')'; x4=mean(b4(:,1:8)')';y4=mean(r4(:,1:8)')';z4=mean(p4(:,1:8)')'; x5=mean(b5(:,1:8)')';y5=mean(r5(:,1:8)')';z5=mean(p5(:,1:8)')'; x6=mean(b6(:,1:8)')';y6=mean(r6(:,1:8)')';z6=mean(p6(:,1:8)')'; x7=mean(b7(:,1:8)')';y7=mean(r7(:,1:8)')';z7=mean(p7(:,1:8)')'; x8=mean(b8(:,1:8)')';y8=mean(r8(:,1:8)')';z8=mean(p8(:,1:8)')'; x9=mean(b9(:,1:8)')';y9=mean(r9(:,1:8)')';z9=mean(p9(:,1:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9]; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9]; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 ]; elseif db_per_nada==2 x1=mean(b1(:,1:4)')';x2=mean(b1(:,5:8)')'; x3=mean(b2(:,1:4)')';x4=mean(b2(:,5:8)')'; x5=mean(b3(:,1:4)')';x6=mean(b3(:,5:8)')'; x7=mean(b4(:,1:4)')';x8=mean(b4(:,5:8)')'; x9=mean(b5(:,1:4)')';x10=mean(b5(:,5:8)')'; x11=mean(b6(:,1:4)')';x12=mean(b6(:,5:8)')'; x13=mean(b7(:,1:4)')';x14=mean(b7(:,5:8)')'; x15=mean(b8(:,1:4)')';x16=mean(b8(:,5:8)')'; x17=mean(b9(:,1:4)')';x18=mean(b9(:,5:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18]; y1=mean(r1(:,1:4)')';y2=mean(r1(:,5:8)')'; y3=mean(r2(:,1:4)')';y4=mean(r2(:,5:8)')'; y5=mean(r3(:,1:4)')';y6=mean(r3(:,5:8)')'; y7=mean(r4(:,1:4)')';y8=mean(r4(:,5:8)')'; y9=mean(r5(:,1:4)')';y10=mean(r5(:,5:8)')'; y11=mean(r6(:,1:4)')';y12=mean(r6(:,5:8)')'; y13=mean(r7(:,1:4)')';y14=mean(r7(:,5:8)')'; y15=mean(r8(:,1:4)')';y16=mean(r8(:,5:8)')'; y17=mean(r9(:,1:4)')';y18=mean(r9(:,5:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18]; z1=mean(p1(:,1:4)')';z2=mean(p1(:,5:8)')'; z3=mean(p2(:,1:4)')';z4=mean(p2(:,5:8)')'; z5=mean(p3(:,1:4)')';z6=mean(p3(:,5:8)')'; z7=mean(p4(:,1:4)')';z8=mean(p4(:,5:8)')'; z9=mean(p5(:,1:4)')';z10=mean(p5(:,5:8)')'; z11=mean(p6(:,1:4)')';z12=mean(p6(:,5:8)')';
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L34
z13=mean(p7(:,1:4)')';z14=mean(p7(:,5:8)')'; z15=mean(p8(:,1:4)')';z16=mean(p8(:,5:8)')'; z17=mean(p9(:,1:4)')';z18=mean(p9(:,5:8)')'; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18]; elseif db_per_nada==4 x1=mean(b1(:,1:2)')';x2=mean(b1(:,3:4)')';x3=mean(b1(:,5:6')')';x4=me an(b1(:,7:8)')'; x5=mean(b2(:,1:2)')';x6=mean(b2(:,3:4)')';x7=mean(b2(:,5:6')')';x8=me an(b2(:,7:8)')'; x9=mean(b3(:,1:2)')';x10=mean(b3(:,3:4)')';x11=mean(b3(:,5:6')')';x12 =mean(b3(:,7:8)')'; x13=mean(b4(:,1:2)')';x14=mean(b4(:,3:4)')';x15=mean(b4(:,5:6')')';x1 6=mean(b4(:,7:8)')'; x17=mean(b5(:,1:2)')';x18=mean(b5(:,3:4)')';x19=mean(b5(:,5:6')')';x2 0=mean(b5(:,7:8)')'; x21=mean(b6(:,1:2)')';x22=mean(b6(:,3:4)')';x23=mean(b6(:,5:6')')';x2 4=mean(b6(:,7:8)')'; x25=mean(b7(:,1:2)')';x26=mean(b7(:,3:4)')';x27=mean(b7(:,5:6')')';x2 8=mean(b7(:,7:8)')'; x29=mean(b8(:,1:2)')';x30=mean(b8(:,3:4)')';x31=mean(b8(:,5:6')')';x3 2=mean(b8(:,7:8)')'; x33=mean(b9(:,1:2)')';x34=mean(b9(:,3:4)')';x35=mean(b9(:,5:6')')';x3 6=mean(b1(:,7:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18 x19 x20... x21 x22 x23 x24 x25 x26 x27 x28 x29 x30... x31 x32 x33 x34 x35 x36]; y1=mean(r1(:,1:2)')';y2=mean(r1(:,3:4)')';y3=mean(r1(:,5:6')')';y4=me an(r1(:,7:8)')'; y5=mean(r2(:,1:2)')';y6=mean(r2(:,3:4)')';y7=mean(r2(:,5:6')')';y8=me an(r2(:,7:8)')'; y9=mean(r3(:,1:2)')';y10=mean(r3(:,3:4)')';y11=mean(r3(:,5:6')')';y12 =mean(r3(:,7:8)')'; y13=mean(r4(:,1:2)')';y14=mean(r4(:,3:4)')';y15=mean(r4(:,5:6')')';y1 6=mean(r4(:,7:8)')';
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L35
y17=mean(r5(:,1:2)')';y18=mean(r5(:,3:4)')';y19=mean(r5(:,5:6')')';y2 0=mean(r5(:,7:8)')'; y21=mean(r6(:,1:2)')';y22=mean(r6(:,3:4)')';y23=mean(r6(:,5:6')')';y2 4=mean(r6(:,7:8)')'; y25=mean(r7(:,1:2)')';y26=mean(r7(:,3:4)')';y27=mean(r7(:,5:6')')';y2 8=mean(r7(:,7:8)')'; y29=mean(r8(:,1:2)')';y30=mean(r8(:,3:4)')';y31=mean(r8(:,5:6')')';y3 2=mean(r8(:,7:8)')'; y33=mean(r9(:,1:2)')';y34=mean(r9(:,3:4)')';y35=mean(r9(:,5:6')')';y3 6=mean(r1(:,7:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18 y19 y20... y21 y22 y23 y24 y25 y26 y27 y28 y29 y30... y31 y32 y33 y34 y35 y36]; z1=mean(p1(:,1:2)')';z2=mean(p1(:,3:4)')';z3=mean(p1(:,5:6')')';z4=me an(p1(:,7:8)')'; z5=mean(p2(:,1:2)')';z6=mean(p2(:,3:4)')';z7=mean(p2(:,5:6')')';z8=me an(p2(:,7:8)')'; z9=mean(p3(:,1:2)')';z10=mean(p3(:,3:4)')';z11=mean(p3(:,5:6')')';z12 =mean(p3(:,7:8)')'; z13=mean(p4(:,1:2)')';z14=mean(p4(:,3:4)')';z15=mean(p4(:,5:6')')';z1 6=mean(p4(:,7:8)')'; z17=mean(p5(:,1:2)')';z18=mean(p5(:,3:4)')';z19=mean(p5(:,5:6')')';z2 0=mean(p5(:,7:8)')'; z21=mean(p6(:,1:2)')';z22=mean(p6(:,3:4)')';z23=mean(p6(:,5:6')')';z2 4=mean(p6(:,7:8)')'; z25=mean(p7(:,1:2)')';z26=mean(p7(:,3:4)')';z27=mean(p7(:,5:6')')';z2 8=mean(p7(:,7:8)')'; z29=mean(p8(:,1:2)')';z30=mean(p8(:,3:4)')';z31=mean(p8(:,5:6')')';z3 2=mean(p8(:,7:8)')'; z33=mean(p9(:,1:2)')';z34=mean(p9(:,3:4)')';z35=mean(p9(:,5:6')')';z3 6=mean(p9(:,7:8)')'; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18 z19 z20... z21 z22 z23 z24 z25 z26 z27 z28 z29 z30... z31 z32 z33 z34 z35 z36];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L36
elseif db_per_nada==8 dbbelira=[b1 b2 b3 b4 b5 b6 b7 b8 b9]; dbrekorder=[r1 r2 r3 r4 r5 r6 r7 r8 r9]; dbpianika=[p1 p2 p3 p4 p5 p6 p7 p8 p9]; end dz=[dbbelira dbrekorder dbpianika]; save db8dct4096 dz % Plot database belira %figure(1); %subplot(4,5,1);bar(x1);title('(1)');subplot(4,5,2);bar(x2);title('(2 )'); %subplot(4,5,3);bar(x3);title('(3)');subplot(4,5,4);bar(x4);title('(4 )'); %subplot(4,5,5);bar(x5);title('(5)');subplot(4,5,6);bar(x6);title('(6 )'); %subplot(4,5,7);bar(x7);title('(7)');subplot(4,5,8);bar(x8);title('(8 )'); %subplot(4,5,9);bar(x9);title('(9)');subplot(4,5,10);bar(x10);title(' (10)'); %subplot(4,5,11);bar(x11);title('(11)');subplot(4,5,12);bar(x12);titl e('(12)'); %subplot(4,5,13);bar(x13);title('(13)');subplot(4,5,14);bar(x14);titl e('(14)'); %subplot(4,5,15);bar(x15);title('(15)');subplot(4,5,16);bar(x16);titl e('(16)'); %subplot(4,5,17);bar(x17);title('(17)');subplot(4,5,18);bar(x18);titl e('(18)'); % Plot database rekorder %figure(2); %subplot(4,5,1);bar(y1);title('(1)');subplot(4,5,2);bar(y2);title('(2 )'); %subplot(4,5,3);bar(y3);title('(3)');subplot(4,5,4);bar(y4);title('(4 )'); %subplot(4,5,5);bar(y5);title('(5)');subplot(4,5,6);bar(y6);title('(6 )'); %subplot(4,5,7);bar(y7);title('(7)');subplot(4,5,8);bar(y8);title('(8 )'); %subplot(4,5,9);bar(y9);title('(9)');subplot(4,5,10);bar(y10);title(' (10)'); %subplot(4,5,11);bar(y11);title('(11)');subplot(4,5,12);bar(y12);titl e('(12)'); %subplot(4,5,13);bar(y13);title('(13)');subplot(4,5,14);bar(y14);titl e('(14)'); %subplot(4,5,15);bar(y15);title('(15)');subplot(4,5,16);bar(y16);titl e('(16)'); %subplot(4,5,17);bar(y17);title('(17)');subplot(4,5,18);bar(y18);titl e('(18)');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L37
% Plot database pianika %figure(3); %subplot(4,5,1);bar(z1);title('(1)');subplot(4,5,2);bar(z2);title('(2 )'); %subplot(4,5,3);bar(z3);title('(3)');subplot(4,5,4);bar(z4);title('(4 )'); %subplot(4,5,5);bar(z5);title('(5)');subplot(4,5,6);bar(z6);title('(6 )'); %subplot(4,5,7);bar(z7);title('(7)');subplot(4,5,8);bar(z8);title('(8 )'); %subplot(4,5,9);bar(z9);title('(9)');subplot(4,5,10);bar(z10);title(' (10)'); %subplot(4,5,11);bar(z11);title('(11)');subplot(4,5,12);bar(z12);titl e('(12)'); %subplot(4,5,13);bar(z13);title('(13)');subplot(4,5,14);bar(z14);titl e('(14)'); %subplot(4,5,15);bar(z15);title('(15)');subplot(4,5,16);bar(z16);titl e('(16)'); %subplot(4,5,17);bar(z17);title('(17)');subplot(4,5,18);bar(z18);titl e('(18%)'); function z=prosesxc(fwav,frame,seg) % Proses ekstraksi ciri % Baca file wav x1=wavread(fwav); % Normalisasi 1 x1=x1/max(abs(x1)); %Pemrosesan Awal b0=0.3; % batas potong %(a)Pemotongan sinyal (sepertiga bagian kiri) % kiri satu b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[]; %kiri dua hy0=floor (0.25*length(x1)); x1(1:hy0)=[]; %(b)Frame blocking dari bagian kiri sinyal terpotong x2=x1(1:frame); %(c)Normalisasi 2 x3=x2/max (abs (x2)); %Row Mean DCT %(a)Pembentukan kolom matriks y2=reshape(x3,seg,[]);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI %(b)Windowing 2D [baris,kolom]=size(y2); hb=hann(baris);hk=hann(kolom); for k=1:baris y2(k,:)=y2(k,:).*hk'; end for k=1:kolom y2(:,k)=y2(:,k).*hb; end %(c)DCT 2D y3=abs(dct2(y2)); %(d)Rerata baris y4=sum(y3'); %Pemrosesan akhir %(a)Normalisasi 3 y5=y4/max(y4); %(b)Centering hy4=length(y4); %(b.1)Cari indeks dari maksimal global [srt,idx]=sort(y5,'descend'); imax=idx(1); %(b.2)Pemrosesan sisi kiri y6=y5; y6(imax:hy4)=[]; % potong kanan y6=fliplr(y6); y6(hy4)=0; % zero padding y6=fliplr(y6); %(b.3)Pemrosesan sisi kanan y7=y5; y7(1:imax-1)=[]; % potong kiri y7(hy4)=0; % zero padding %(b.4)Penggabungan kiri dan kanan z=[y6 y7]';
L38
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 3 LISTING PROGRAM TIDAK REAL-TIME function dctkuu % Pengenalan alat musik dengan DCT % Versi 2: dengan th pada knn clc clear all % ------------------------------------------------------% Variabel penelitian frame=256; % panjang frame blocking (4096) seg=sqrt(frame); % panjang segmen untuk rdct (32) k=5; % nilai k pada knn (3) db_per_nada=8; % ------------------------------------------------------% Pembentukan data untuk database % Inisialisasi loop data_per_nada=8; % jumlah sampel/nada x=zeros(2*seg,data_per_nada); % pakai centering b1=x;b2=x;b3=x;b4=x;b5=x;b6=x;b7=x;b8=x;b9=x; r1=x;r2=x;r3=x;r4=x;r5=x;r6=x;r7=x;r8=x;r9=x; p1=x;p2=x;p3=x;p4=x;p5=x;p6=x;p7=x;p8=x;p9=x;
L39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L40
% Perhitungan dengan loop for m=1:data_per_nada % Belira b1(:,m)=prosesxc(['bdo1' num2str(m-1) '.wav'],frame,seg); b2(:,m)=prosesxc(['bre1' num2str(m-1) '.wav'],frame,seg); b3(:,m)=prosesxc(['bmi1' num2str(m-1) '.wav'],frame,seg); b4(:,m)=prosesxc(['bfa1' num2str(m-1) '.wav'],frame,seg); b5(:,m)=prosesxc(['bsol1' num2str(m-1) '.wav'],frame,seg); b6(:,m)=prosesxc(['bla1' num2str(m-1) '.wav'],frame,seg); b7(:,m)=prosesxc(['bsi1' num2str(m-1) '.wav'],frame,seg); b8(:,m)=prosesxc(['bdot1' num2str(m-1) '.wav'],frame,seg); b9(:,m)=prosesxc(['bret1' num2str(m-1) '.wav'],frame,seg); % Recorder r1(:,m)=prosesxc(['rdo1' num2str(m-1) '.wav'],frame,seg); r2(:,m)=prosesxc(['rre1' num2str(m-1) '.wav'],frame,seg); r3(:,m)=prosesxc(['rmi1' num2str(m-1) '.wav'],frame,seg); r4(:,m)=prosesxc(['rfa1' num2str(m-1) '.wav'],frame,seg); r5(:,m)=prosesxc(['rsol1' num2str(m-1) '.wav'],frame,seg); r6(:,m)=prosesxc(['rla1' num2str(m-1) '.wav'],frame,seg); r7(:,m)=prosesxc(['rsi1' num2str(m-1) '.wav'],frame,seg); r8(:,m)=prosesxc(['rdot1' num2str(m-1) '.wav'],frame,seg); r9(:,m)=prosesxc(['rret1' num2str(m-1) '.wav'],frame,seg); % Pianika p1(:,m)=prosesxc(['pdo1' num2str(m-1) '.wav'],frame,seg); p2(:,m)=prosesxc(['pre1' num2str(m-1) '.wav'],frame,seg); p3(:,m)=prosesxc(['pmi1' num2str(m-1) '.wav'],frame,seg); p4(:,m)=prosesxc(['pfa1' num2str(m-1) '.wav'],frame,seg); p5(:,m)=prosesxc(['psol1' num2str(m-1) '.wav'],frame,seg); p6(:,m)=prosesxc(['pla1' num2str(m-1) '.wav'],frame,seg); p7(:,m)=prosesxc(['psi1' num2str(m-1) '.wav'],frame,seg); p8(:,m)=prosesxc(['pdot1' num2str(m-1) '.wav'],frame,seg); p9(:,m)=prosesxc(['pret1' num2str(m-1) '.wav'],frame,seg); end % Database if db_per_nada==1 x1=mean(b1(:,1:8)')';y1=mean(r1(:,1:8)')';z1=mean(p1(:,1:8)')'; x2=mean(b2(:,1:8)')';y2=mean(r2(:,1:8)')';z2=mean(p2(:,1:8)')'; x3=mean(b3(:,1:8)')';y3=mean(r3(:,1:8)')';z3=mean(p3(:,1:8)')'; x4=mean(b4(:,1:8)')';y4=mean(r4(:,1:8)')';z4=mean(p4(:,1:8)')'; x5=mean(b5(:,1:8)')';y5=mean(r5(:,1:8)')';z5=mean(p5(:,1:8)')'; x6=mean(b6(:,1:8)')';y6=mean(r6(:,1:8)')';z6=mean(p6(:,1:8)')'; x7=mean(b7(:,1:8)')';y7=mean(r7(:,1:8)')';z7=mean(p7(:,1:8)')'; x8=mean(b8(:,1:8)')';y8=mean(r8(:,1:8)')';z8=mean(p8(:,1:8)')'; x9=mean(b9(:,1:8)')';y9=mean(r9(:,1:8)')';z9=mean(p9(:,1:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9]; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9]; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 ];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L41
elseif db_per_nada==2 x1=mean(b1(:,1:4)')';x2=mean(b1(:,5:8)')'; x3=mean(b2(:,1:4)')';x4=mean(b2(:,5:8)')'; x5=mean(b3(:,1:4)')';x6=mean(b3(:,5:8)')'; x7=mean(b4(:,1:4)')';x8=mean(b4(:,5:8)')'; x9=mean(b5(:,1:4)')';x10=mean(b5(:,5:8)')'; x11=mean(b6(:,1:4)')';x12=mean(b6(:,5:8)')'; x13=mean(b7(:,1:4)')';x14=mean(b7(:,5:8)')'; x15=mean(b8(:,1:4)')';x16=mean(b8(:,5:8)')'; x17=mean(b9(:,1:4)')';x18=mean(b9(:,5:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18]; y1=mean(r1(:,1:4)')';y2=mean(r1(:,5:8)')'; y3=mean(r2(:,1:4)')';y4=mean(r2(:,5:8)')'; y5=mean(r3(:,1:4)')';y6=mean(r3(:,5:8)')'; y7=mean(r4(:,1:4)')';y8=mean(r4(:,5:8)')'; y9=mean(r5(:,1:4)')';y10=mean(r5(:,5:8)')'; y11=mean(r6(:,1:4)')';y12=mean(r6(:,5:8)')'; y13=mean(r7(:,1:4)')';y14=mean(r7(:,5:8)')'; y15=mean(r8(:,1:4)')';y16=mean(r8(:,5:8)')'; y17=mean(r9(:,1:4)')';y18=mean(r9(:,5:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18]; z1=mean(p1(:,1:4)')';z2=mean(p1(:,5:8)')'; z3=mean(p2(:,1:4)')';z4=mean(p2(:,5:8)')'; z5=mean(p3(:,1:4)')';z6=mean(p3(:,5:8)')'; z7=mean(p4(:,1:4)')';z8=mean(p4(:,5:8)')'; z9=mean(p5(:,1:4)')';z10=mean(p5(:,5:8)')'; z11=mean(p6(:,1:4)')';z12=mean(p6(:,5:8)')'; z13=mean(p7(:,1:4)')';z14=mean(p7(:,5:8)')'; z15=mean(p8(:,1:4)')';z16=mean(p8(:,5:8)')'; z17=mean(p9(:,1:4)')';z18=mean(p9(:,5:8)')'; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18]; elseif db_per_nada==4 x1=mean(b1(:,1:2)')';x2=mean(b1(:,3:4)')';x3=mean(b1(:,5:6')')';x4=me an(b1(:,7:8)')'; x5=mean(b2(:,1:2)')';x6=mean(b2(:,3:4)')';x7=mean(b2(:,5:6')')';x8=me an(b2(:,7:8)')'; x9=mean(b3(:,1:2)')';x10=mean(b3(:,3:4)')';x11=mean(b3(:,5:6')')';x12 =mean(b3(:,7:8)')'; x13=mean(b4(:,1:2)')';x14=mean(b4(:,3:4)')';x15=mean(b4(:,5:6')')';x1 6=mean(b4(:,7:8)')';
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L42
x17=mean(b5(:,1:2)')';x18=mean(b5(:,3:4)')';x19=mean(b5(:,5:6')')';x2 0=mean(b5(:,7:8)')'; x21=mean(b6(:,1:2)')';x22=mean(b6(:,3:4)')';x23=mean(b6(:,5:6')')';x2 4=mean(b6(:,7:8)')'; x25=mean(b7(:,1:2)')';x26=mean(b7(:,3:4)')';x27=mean(b7(:,5:6')')';x2 8=mean(b7(:,7:8)')'; x29=mean(b8(:,1:2)')';x30=mean(b8(:,3:4)')';x31=mean(b8(:,5:6')')';x3 2=mean(b8(:,7:8)')'; x33=mean(b9(:,1:2)')';x34=mean(b9(:,3:4)')';x35=mean(b9(:,5:6')')';x3 6=mean(b1(:,7:8)')'; dbbelira=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10... x11 x12 x13 x14 x15 x16 x17 x18 x19 x20... x21 x22 x23 x24 x25 x26 x27 x28 x29 x30... x31 x32 x33 x34 x35 x36]; y1=mean(r1(:,1:2)')';y2=mean(r1(:,3:4)')';y3=mean(r1(:,5:6')')';y4=me an(r1(:,7:8)')'; y5=mean(r2(:,1:2)')';y6=mean(r2(:,3:4)')';y7=mean(r2(:,5:6')')';y8=me an(r2(:,7:8)')'; y9=mean(r3(:,1:2)')';y10=mean(r3(:,3:4)')';y11=mean(r3(:,5:6')')';y12 =mean(r3(:,7:8)')'; y13=mean(r4(:,1:2)')';y14=mean(r4(:,3:4)')';y15=mean(r4(:,5:6')')';y1 6=mean(r4(:,7:8)')'; y17=mean(r5(:,1:2)')';y18=mean(r5(:,3:4)')';y19=mean(r5(:,5:6')')';y2 0=mean(r5(:,7:8)')'; y21=mean(r6(:,1:2)')';y22=mean(r6(:,3:4)')';y23=mean(r6(:,5:6')')';y2 4=mean(r6(:,7:8)')'; y25=mean(r7(:,1:2)')';y26=mean(r7(:,3:4)')';y27=mean(r7(:,5:6')')';y2 8=mean(r7(:,7:8)')'; y29=mean(r8(:,1:2)')';y30=mean(r8(:,3:4)')';y31=mean(r8(:,5:6')')';y3 2=mean(r8(:,7:8)')'; y33=mean(r9(:,1:2)')';y34=mean(r9(:,3:4)')';y35=mean(r9(:,5:6')')';y3 6=mean(r9(:,7:8)')'; dbrekorder=[y1 y2 y3 y4 y5 y6 y7 y8 y9 y10... y11 y12 y13 y14 y15 y16 y17 y18 y19 y20... y21 y22 y23 y24 y25 y26 y27 y28 y29 y30... y31 y32 y33 y34 y35 y36];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L43
z1=mean(p1(:,1:2)')';z2=mean(p1(:,3:4)')';z3=mean(p1(:,5:6')')';z4=me an(p1(:,7:8)')'; z5=mean(p2(:,1:2)')';z6=mean(p2(:,3:4)')';z7=mean(p2(:,5:6')')';z8=me an(p2(:,7:8)')'; z9=mean(p3(:,1:2)')';z10=mean(p3(:,3:4)')';z11=mean(p3(:,5:6')')';z12 =mean(p3(:,7:8)')'; z13=mean(p4(:,1:2)')';z14=mean(p4(:,3:4)')';z15=mean(p4(:,5:6')')';z1 6=mean(p4(:,7:8)')'; z17=mean(p5(:,1:2)')';z18=mean(p5(:,3:4)')';z19=mean(p5(:,5:6')')';z2 0=mean(p5(:,7:8)')'; z21=mean(p6(:,1:2)')';z22=mean(p6(:,3:4)')';z23=mean(p6(:,5:6')')';z2 4=mean(p6(:,7:8)')'; z25=mean(p7(:,1:2)')';z26=mean(p7(:,3:4)')';z27=mean(p7(:,5:6')')';z2 8=mean(p7(:,7:8)')'; z29=mean(p8(:,1:2)')';z30=mean(p8(:,3:4)')';z31=mean(p8(:,5:6')')';z3 2=mean(p8(:,7:8)')'; z33=mean(p9(:,1:2)')';z34=mean(p9(:,3:4)')';z35=mean(p9(:,5:6')')';z3 6=mean(p9(:,7:8)')'; dbpianika=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10... z11 z12 z13 z14 z15 z16 z17 z18 z19 z20... z21 z22 z23 z24 z25 z26 z27 z28 z29 z30... z31 z32 z33 z34 z35 z36]; elseif db_per_nada==8 dbbelira=[b1 b2 b3 b4 b5 b6 b7 b8 b9]; dbrekorder=[r1 r2 r3 r4 r5 r6 r7 r8 r9]; dbpianika=[p1 p2 p3 p4 p5 p6 p7 p8 p9]; end dz=[dbbelira dbrekorder dbpianika]; % Plot database belira %figure(1); %subplot(4,5,1);bar(x1);title('(1)');subplot(4,5,2);bar(x2);title('(2 )'); %subplot(4,5,3);bar(x3);title('(3)');subplot(4,5,4);bar(x4);title('(4 )'); %subplot(4,5,5);bar(x5);title('(5)');subplot(4,5,6);bar(x6);title('(6 )'); %subplot(4,5,7);bar(x7);title('(7)');subplot(4,5,8);bar(x8);title('(8 )');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L44
%subplot(4,5,9);bar(x9);title('(9)');subplot(4,5,10);bar(x10);title(' (10)'); %subplot(4,5,11);bar(x11);title('(11)');subplot(4,5,12);bar(x12);titl e('(12)'); %subplot(4,5,13);bar(x13);title('(13)');subplot(4,5,14);bar(x14);titl e('(14)'); %subplot(4,5,15);bar(x15);title('(15)');subplot(4,5,16);bar(x16);titl e('(16)'); %subplot(4,5,17);bar(x17);title('(17)');subplot(4,5,18);bar(x18);titl e('(18)'); % Plot database rekorder %figure(2); %subplot(4,5,1);bar(y1);title('(1)');subplot(4,5,2);bar(y2);title('(2 )'); %subplot(4,5,3);bar(y3);title('(3)');subplot(4,5,4);bar(y4);title('(4 )'); %subplot(4,5,5);bar(y5);title('(5)');subplot(4,5,6);bar(y6);title('(6 )'); %subplot(4,5,7);bar(y7);title('(7)');subplot(4,5,8);bar(y8);title('(8 )'); %subplot(4,5,9);bar(y9);title('(9)');subplot(4,5,10);bar(y10);title(' (10)'); %subplot(4,5,11);bar(y11);title('(11)');subplot(4,5,12);bar(y12);titl e('(12)'); %subplot(4,5,13);bar(y13);title('(13)');subplot(4,5,14);bar(y14);titl e('(14)'); %subplot(4,5,15);bar(y15);title('(15)');subplot(4,5,16);bar(y16);titl e('(16)'); %subplot(4,5,17);bar(y17);title('(17)');subplot(4,5,18);bar(y18);titl e('(18)'); % Plot database pianika %figure(3); %subplot(4,5,1);bar(z1);title('(1)');subplot(4,5,2);bar(z2);title('(2 )'); %subplot(4,5,3);bar(z3);title('(3)');subplot(4,5,4);bar(z4);title('(4 )'); %subplot(4,5,5);bar(z5);title('(5)');subplot(4,5,6);bar(z6);title('(6 )'); %subplot(4,5,7);bar(z7);title('(7)');subplot(4,5,8);bar(z8);title('(8 )'); %subplot(4,5,9);bar(z9);title('(9)');subplot(4,5,10);bar(z10);title(' (10)'); %subplot(4,5,11);bar(z11);title('(11)');subplot(4,5,12);bar(z12);titl e('(12)'); %subplot(4,5,13);bar(z13);title('(13)');subplot(4,5,14);bar(z14);titl e('(14)'); %subplot(4,5,15);bar(z15);title('(15)');subplot(4,5,16);bar(z16);titl e('(16)');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L45
%subplot(4,5,17);bar(z17);title('(17)');subplot(4,5,18);bar(z18);titl e('(18)'); % ------------------------------------------------------% Pembentukan data untuk pengujian % Inisialisasi loop data_per_nada_uji=8; % jumlah sampel/nada x=zeros(2*seg,data_per_nada_uji); % pakai centering b1=x;b2=x;b3=x;b4=x;b5=x;b6=x;b7=x;b8=x;b9=x; r1=x;r2=x;r3=x;r4=x;r5=x;r6=x;r7=x;r8=x;r9=x; p1=x;p2=x;p3=x;p4=x;p5=x;p6=x;p7=x;p8=x;p9=x; % Perhitungan dengan loop for n=1:data_per_nada_uji % Belira b1(:,n)=prosesxc(['bdo1' num2str(n-1) '.wav'],frame,seg); b2(:,n)=prosesxc(['bre1' num2str(n-1) '.wav'],frame,seg); b3(:,n)=prosesxc(['bmi1' num2str(n-1) '.wav'],frame,seg); b4(:,n)=prosesxc(['bfa1' num2str(n-1) '.wav'],frame,seg); b5(:,n)=prosesxc(['bsol1' num2str(n-1) '.wav'],frame,seg); b6(:,n)=prosesxc(['bla1' num2str(n-1) '.wav'],frame,seg); b7(:,n)=prosesxc(['bsi1' num2str(n-1) '.wav'],frame,seg); b8(:,n)=prosesxc(['bdot1' num2str(n-1) '.wav'],frame,seg); b9(:,n)=prosesxc(['bret1' num2str(n-1) '.wav'],frame,seg); % Recorder r1(:,n)=prosesxc(['rdo1' num2str(n-1) '.wav'],frame,seg); r2(:,n)=prosesxc(['rre1' num2str(n-1) '.wav'],frame,seg); r3(:,n)=prosesxc(['rmi1' num2str(n-1) '.wav'],frame,seg); r4(:,n)=prosesxc(['rfa1' num2str(n-1) '.wav'],frame,seg); r5(:,n)=prosesxc(['rsol1' num2str(n-1) '.wav'],frame,seg); r6(:,n)=prosesxc(['rla1' num2str(n-1) '.wav'],frame,seg); r7(:,n)=prosesxc(['rsi1' num2str(n-1) '.wav'],frame,seg); r8(:,n)=prosesxc(['rdot1' num2str(n-1) '.wav'],frame,seg); r9(:,n)=prosesxc(['rret1' num2str(n-1) '.wav'],frame,seg); % Pianika p1(:,n)=prosesxc(['pdo1' num2str(n-1) '.wav'],frame,seg); p2(:,n)=prosesxc(['pre1' num2str(n-1) '.wav'],frame,seg); p3(:,n)=prosesxc(['pmi1' num2str(n-1) '.wav'],frame,seg); p4(:,n)=prosesxc(['pfa1' num2str(n-1) '.wav'],frame,seg); p5(:,n)=prosesxc(['psol1' num2str(n-1) '.wav'],frame,seg); p6(:,n)=prosesxc(['pla1' num2str(n-1) '.wav'],frame,seg); p7(:,n)=prosesxc(['psi1' num2str(n-1) '.wav'],frame,seg); p8(:,n)=prosesxc(['pdot1' num2str(n-1) '.wav'],frame,seg); p9(:,n)=prosesxc(['pret1' num2str(n-1) '.wav'],frame,seg); end % Database ujibelira=[b1 b2 b3 b4 b5 b6 b7 b8 b9];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L46
ujirekorder=[r1 r2 r3 r4 r5 r6 r7 r8 r9]; ujipianika=[p1 p2 p3 p4 p5 p6 p7 p8 p9]; % Pengujian harmonika %h1=prosesxc('hdo.wav',frame,seg); %h2=prosesxc('hre.wav',frame,seg); %h3=prosesxc('hmi.wav',frame,seg); %h4=prosesxc('hfa.wav',frame,seg); %ujiharmonika=[h1 h2 h3 h4]; %figure(4); %subplot(4,5,1);bar(h1);title('(1)');subplot(4,5,2);bar(h2);title('(2 )'); %subplot(4,5,3);bar(h3);title('(3)');subplot(4,5,4);bar(h4);title('(4 )'); % Data keseluruhan untuk pengujian uji=[ujibelira ujirekorder ujipianika];% ujiharmonika]; % ------------------------------------------------------% Pengenalan db=dz; % database yang dipakai [x,datauji]=size(uji); % jumlah total data uji jskd=9*data_per_nada_uji; % jumlah data per kelas pada data uji for m=1:datauji pengenalan_ke=m kelasin=ceil(m/jskd); [pout{m},benar(m)]=kenal(db,uji(:,m),kelasin,k); end keluaran=pout jumlah_benar=sum(benar) persen_benar=(jumlah_benar/datauji)*100 %======================================================== % Internal function %======================================================== function z=prosesxc(fwav,frame,seg) % Proses ekstraksi ciri % Baca file wav x1=wavread(fwav); % Normalisasi 1 x1=x1/max(abs(x1)); %Pemrosesan Awal b0=0.3; % batas potong %(a)Pemotongan sinyal (sepertiga bagian kiri) % kiri satu b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
%kiri dua hy0=floor (0.25*length(x1)); x1(1:hy0)=[]; %(b)Frame blocking dari bagian kiri sinyal terpotong x2=x1(1:frame); %(c)Normalisasi 2 x3=x2/max (abs (x2)); %Row Mean DCT %(a)Pembentukan kolom matriks y2=reshape(x3,seg,[]); %(b)Windowing 2D [baris,kolom]=size(y2); hb=hann(baris);hk=hann(kolom); for k=1:baris y2(k,:)=y2(k,:).*hk'; end for k=1:kolom y2(:,k)=y2(:,k).*hb; end %(c)DCT 2D y3=abs(dct2(y2)); %(d)Rerata baris y4=sum(y3'); %Pemrosesan akhir %(a)Normalisasi 3 y5=y4/max(y4); %(b)Centering hy4=length(y4); %(b.1)Cari indeks dari maksimal global [srt,idx]=sort(y5,'descend'); imax=idx(1); %(b.2)Pemrosesan sisi kiri y6=y5; y6(imax:hy4)=[]; % potong kanan y6=fliplr(y6); y6(hy4)=0; % zero padding y6=fliplr(y6); %(b.3)Pemrosesan sisi kanan y7=y5; y7(1:imax-1)=[]; % potong kiri
L47
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI y7(hy4)=0;
L48
% zero padding
%(b.4)Penggabungan kiri dan kanan z=[y6 y7]'; % ------------------------------------------------------function [pout,benar]=kenal(db,uji,kin,k) % Pengenalan % Perhitungan jarak [x,jumdb]=size(db); z=zeros(1,jumdb); for n=1:jumdb z(n)=jarak(uji,db(:,n)); end % knn jsk=jumdb/3; [s1,s2]=sort(z,'ascend'); kjarak=s1(1:k) kindeks=s2(1:k) kpilih=ceil(kindeks/jsk); kout=mode(kpilih)
% % % % % %
jumlah sampel per kelas pada database urut naik (fungsi jarak) k hasil sorting indeks dari k hasil sorting penentuan kelas-kelas yang terpilih kelas yang paling sering muncul
% Penentuan keluaran if kout==1 %&& jmaks<=0.6 pout='belira'; elseif kout==2 %&& jmaks<=1.8 pout='rekorder'; elseif kout==3 %&& jmaks<=1.8 pout='pianika'; end % Perhitungan benar if kout==kin benar=1; else benar=0; end % ------------------------------------------------------function z=jarak(x,y) % Perhitungan jarak % x, y : data masukan % z : data keluaran z=sqrt(sum((x-y).^2));
% jarak Euclidean
%========================================================
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L49
LAMPIRAN 4 HASIL PENGENALAN SUARA INSTRUMEN MUSIK SECARA TIDAK REAL-TIME Hasil prersentase tingkat pengenalan suara instrument musik secara tidak real-time di bawah ini adalah hasil dari database pernada 1, 2, 4 dan 8. Tabel L.1 Hasil Persentase pengenalan nada dengan menggunakan database pernada 1, 2, 4 dan 8 (Hasil dalam bentuk %)
Frame Blocking
64
64
64
64
Database pernada
1
2
4
8
KNN
Tingkat Pengenalan (%)
1
69,90 %
3
67,59 %
5
66,20 %
7
68,51 %
Rata-rata
68,05 %
1
67,12 %
3
68,98 %
5
68,98 %
7
65,27 %
Rata-rata
67,59 %
1
80,09 %
3
75,92 %
5
73,14 %
7
70,83 %
Rata-rata
75 %
1
100 %
3
88,42 %
5
84.25 %
7
80,55 %
Rata-rata
88,31 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L50
Tabel L.2 Hasil Persentase pengenalan nada dengan menggunakan database pernada 1, 2, 4 dan 8 (Hasil dalam bentuk %)
Frame Blocking
256
256
256
256
Database pernada
1
2
4
8
KNN
%
1
89,35 %
3
75,46 %
5
78,24 %
7
76,85 %
Rata-rata
80 %
1
93,05 %
3
87,96 %
5
77,31 %
7
79,62 %
Rata-rata
84,49 %
1
94,90 %
3
92,12 %
5
90,27 %
7
88,42 %
Rata-rata
91,43 %
1
100 %
3
96,29 %
5
95,83 %
7
93,05 %
Rata-rata
96,29 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L51
Tabel L.3 Hasil Persentase pengenalan nada dengan menggunakan database pernada 1, 2, 4 dan 8 (Hasil dalam bentuk %)
Frame Blocking
1024
1024
1024
1024
Database pernada
1
2
4
8
KNN
%
1
85,64 %
3
84,25 %
5
80,09 %
7
78,24 %
Rata-rata
82,06 %
1
93,51 %
3
89,81 %
5
86,11 %
7
83,33 %
Rata-rata
88,19 %
1
97,68 %
3
93,98 %
5
91,20 %
7
89,81 %
Rata-rata
93,17 %
1
100 %
3
97,68 %
5
94,90 %
7
93,98 %
Rata-rata
96,64 %
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L52
Tabel L.4 Hasil Persentase pengenalan nada dengan menggunakan database pernada 1, 2, 4 dan 8 (Hasil dalam bentuk %)
Frame Blocking
4096
4096
4096
4096
Database pernada
1
2
4
8
KNN
%
1
89,35 %
3
87,96 %
5
81,01 %
7
74,53 %
Rata-rata
83,21 %
1
92,12 %
3
89,81 %
5
87,96 %
7
83,79 %
Rata-rata
88,42 %
1
97,68 %
3
90,27 %
5
88,42 %
7
88,42 %
Rata-rata
91,20 %
1
100%
3
96,29 %
5
91,20 %
7
89,81 %
Rata-rata
94,32 %