PENGENALAN CHORD PADA GITAR DENGAN MFCC SEBAGAI METODE EKSTRAKSI CIRI DAN JARINGAN SARAF TIRUAN SEBAGAI METODE PENGENALAN POLA
FAUZI SISWOYO
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PENGENALAN CHORD PADA GITAR DENGAN MFCC SEBAGAI METODE EKSTRAKSI CIRI DAN JARINGAN SARAF TIRUAN SEBAGAI METODE PENGENALAN POLA
FAUZI SISWOYO
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
ABSTRACT FAUZI SISWOYO. Identification of Guitar Chords with MFCC as a Method of Feature Extraction and Artificial Neural Networks As a Method of Pattern Recognition. Supervised by AGUS BUONO. Human hearing system is capable of identifying sounds or audio signals, especially sounds that are familiar in their daily lives. However, recognizing chord sequences played in some kind of music is not an easy task. People need big effort to train their sense of hearing so that they can recognize chords. This condition is also valid for a computer system. Finding the key and labeling the chords automatically from music are of great use for those who want to do harmonic analysis of music. This research is about to recognize chords played and recorded by a guitar instrument. There are 24 chords used in this research. MFCC was used as a feature extraction using 13 and 26 cepstral coefficients. Each chord signal which has been extracted is modeled using artificial neural networks as a method of pattern recognition. This research results in an accuracy level above 90%. From the research that has been done, it can be concluded that modeling using back propagation neural networks on guitar chords recognition has an accuracy of 92%, better than the codebook method performed in the previous research which resulted in an accuracy of 88%. An increasing accuracy level is shown by using artificial neural networks for pattern recognition. Keywords: artificial neural networks, back propagation ANN, chord, MFCC. .
Judul Skripsi Nama NIM
: Pengenalan Chord pada Gitar dengan MFCC Sebagai Metode Ekstraksi Ciri dan Jaringan Saraf Tiruan Sebagai Metode Pengenalan Pola : Fauzi Siswoyo : G64076025
Disetujui: Pembimbing
Dr. Ir. Agus Buono M.Si., M.Kom NIP 19660702 199302 1 001
Diketahui: Ketua Departemen Ilmu Komputer
Dr. Ir. Agus Buono M.Si., M.Kom NIP 19660702 199302 1 001
Tanggal Lulus:
RIWAYAT HIDUP Penulis dilahirkan di Balikpapan tanggal 02 Februari 1986 dari Ayah yang bernama Mu’anam dan Ibu yang bernama Pudiaswati. Penulis merupakan anak bungsu dari tiga bersaudara. Pada tahun, 2004 penulis lulus dari SMU Negeri 2 Bogor dan lulus undangan seleksi masuk IPB tingkat Diploma III di Institut Petanian Bogor Jurusan Elektronika dan Teknologi Komputer. Setelah lulus Diploma III pada tahun 2007 penulis melanjutkan studi di Institut Pertanian Bogor jurusan Ilmu Komputer (alih jenis) untuk memperoleh gelar Sarjana Ilmu Komputer.
PRAKATA AlhamdulillahhiRobbil’alamin, puji dan syukur penulis panjatkan kepada Allah Subhanahuwata’ala atas segala limpahan rahmat dan karunia-Nya sehingga laporan penelitian ini berhasil diselesaikan. Shalawat dan salam selalu dicurahkan kepada Nabi Muhammad Salallahualaihiwassalam beserta keluarga, sahabat, dan para pengikutnya. Dalam penyelesaian penelitian ini, penulis mendapatkan banyak bantuan dan dukungan dari berbagai pihak. Oleh karena itu, penulis ingin mengutarakan rasa terima kasih kepada: 1 Kedua orang tua yang selalu memberikan dukungan dan semangat yang seakan tak pernah henti memenuhi hati dan sanubari dari si penulis. 2 Bapak Dr. Ir. Agus Buono M.Si M.Kom selaku dosen pembimbing atas segala saran, arahan, dan bimbingannya dalam penyelesaian tugas akhir ini. 3 Anggi yang sudah mengkalibrasi gitar untuk penelitian ini sehingga mengeluarkan suara yang sesuai dengan tangga nada. 4 Teman-teman sesama ilkom ekstensi angkatan dua yang telah memberikan banyak dukungan dan menemani di kala sedang kebingungan, Anggi, Iqbal, Fakih, Rudi, Fazriah, Munarni, Wanda, Imam, Bule, Dodot, Ahmed, Decky, dan teman-teman lain yang tak sempat disebutkan. 5 Anggi, Iqbal, Fakih, Ahmed yang selalu menemani saya bermain bulutangkis setiap sabtu sore untuk melepas lelah dan stress. 6 Teman-teman dan para karyawan b1net yang juga memberikan dukungan untuk menyelesaikan penelitian ini. 7 Semua pihak yang turut membantu dan belum sempat saya sebutkan di atas. Penulis menyadari bahwa masih banyak kekurangan yang terdapat dalam penelitian ini sehingga diharapkan saran, kritik, dan masukan dari semua pihak. Semoga penelitian ini dapat bermanfaat bagi pihak yang membutuhkan, amin.
Bogor, Maret 2013
Fauzi Siswoyo
Penguji: 1. Aziz Kustiyo S.Si., M.Kom. 2. Mushthofa S.Kom., M.Sc.
DAFTAR ISI Halaman DAFTAR TABEL ..................................................................................................................................... vi DAFTAR GAMBAR ................................................................................................................................ vi DAFTAR LAMPIRAN............................................................................................................................. vi PENDAHULUAN Latar Belakang ..................................................................................................................................... 1 Tujuan Penelitian.................................................................................................................................. 1 Ruang Lingkup ..................................................................................................................................... 1 Manfaat ................................................................................................................................................. 1 TINJAUAN PUSTAKA Nada dan Chord Gitar .......................................................................................................................... 1 Sinyal .................................................................................................................................................... 3 Ekstraksi Ciri ........................................................................................................................................ 4 MFCC (Mel-Frequency Cepstrum Coefficients) ................................................................................. 4 Jaringan Saraf Tiruan (JST) ................................................................................................................. 5 JST Propagasi Balik ............................................................................................................................. 5 METODE PENELITIAN Kerangka Pikir Studi ............................................................................................................................ 6 Pengambilan Data ................................................................................................................................ 6 Praproses............................................................................................................................................... 7 Pemilihan Data Latih dan Data Uji ...................................................................................................... 7 Proses Ekstrasi Ciri .............................................................................................................................. 7 Perancangan Jaringan Saraf Tiruan ..................................................................................................... 7 Penentuan Target Hasil Identifikasi ..................................................................................................... 7 Pengujian .............................................................................................................................................. 8 Lingkup pengembangan ....................................................................................................................... 8 HASIL DAN PEMBAHASAN Proses Pengujian Chord ....................................................................................................................... 8 Evaluasi Hasil Identifikasi ................................................................................................................... 8 Kemiripan Antar Chord ....................................................................................................................... 9 KESIMPULAN DAN SARAN Kesimpulan ........................................................................................................................................... 9 Saran ..................................................................................................................................................... 9 DAFTAR PUSTAKA .............................................................................................................................. 10 LAMPIRAN ............................................................................................................................................. 11
v
DAFTAR TABEL Halaman 1 Daftar chord gitar yang digunakan ....................................................................................................... 7 2 Struktur JST Backpropagation yang dikembangkan ........................................................................... 8 3 Daftar bilangan biner chord .................................................................................................................. 8 4 Hasil akurasi pengenalan chord ............................................................................................................ 9
DAFTAR GAMBAR Halaman 1 Ilustrasi dari nada yang dihasilkan dengan cara menekan senar padafret tertentu (Vaseghi 2007) ... 3 2 Ilustrasi bentuk chord D pada posisi yang berbeda ............................................................................. 3 3 Bentuk sinyal analog ............................................................................................................................. 3 4 Bentuk sinyal digital ............................................................................................................................. 3 5 Diagram blok proses MFCC ................................................................................................................. 4 6 Arsitektur jaringan lapis jamak dengan satu lapis unit tersembunyi ................................................... 5 7 Grafik fungsi sigmoid biner .................................................................................................................. 6 8 Diagram proses pengenalan chord gitar ............................................................................................... 7 9 Grafik perbandingan akurasi................................................................................................................. 9 10 Sinyal dan hasil ciri chord E ................................................................................................................. 9 11 Sinyal dan hasil ciri chord E Minor ..................................................................................................... 9
DAFTAR LAMPIRAN Halaman
1 Bentuk chord yang digunakan pada pelatihan dan pengujian ........................................................... 12 2 Sinyal-sinyal chord yang didapatkan ................................................................................................. 14 3 Tabel hasil akurasi .............................................................................................................................. 22 4 Tabel pengenalan chord ...................................................................................................................... 23
vi
1
PENDAHULUAN Latar belakang Setiap manusia memiliki kemampuan untuk mendengar dan mengenali suara. Bukan hal yang sulit untuk mengenali jenis suara tertentu, apalagi jika suara tersebut sudah biasa didengar oleh manusia pada kehidupan sehari-hari. Namun, suara yang dikeluarkan oleh alat musik atau yang dikenal dengan sebutan nada tidak bisa begitu saja dikenali oleh telinga manusia pada umumnya, kecuali seorang musisi yang handal dan sudah terlatih dalam mengenali nada-nada alat musik pada kehidupan sehariharinya. Kumpulan dua atau lebih nada yang dirangkai sehingga terbentuk suara yang harmonis pada alat musik disebut juga dengan chord. Susunan chord yang dimainkan menentukan jenis dan kualitas dari sebuah musik. Susunan chord pada sebuah musik atau lagu juga dapat dimanfaatkan untuk mengetahui pola-pola chord pada jenis atau kategori musik tertentu sehingga dapat mengklasifikasikan suatu musik atau lagu ke dalam kategori tertentu. Seorang penyuka musik yang ingin memainkan gitar dengan lagu tertentu, perlu mengetahui terlebih dahulu chord apa saja yang digunakan untuk menyusun lagu tersebut. Maka, diharapkan penelitian ini dapat dikembangkan nantinya sehingga mampu mengenali semua susunan chord pada lagu tersebut. Pada penelitian ini, sistem pengenalan suara lebih dikhususkan pada sistem kecerdasan komputer dalam mengenali chord pada alat musik gitar. Untuk meningkatkan nilai akurasi dalam pengenalan chord, penelitian ini akan menggunakan metode jaringan saraf tiruan (JST) backpropagation sebagai pengenalan pola, dan MFCC (Mel-Frequency Cepstrum Coefficients) sebagai pengekstraksi ciri. Metode JST merupakan salah satu jenis jaringan saraf tiruan yang memiliki tingkat akurasi yang cukup tinggi dalam mengidentifikasi sumber suara. Telah banyak fitur pengekstraksi ciri pengenalan suara yang dikembangkan saat ini, salah satunya MFCC. Sinyal suara analog yang dikeluarkan sumber suara diubah menjadi sinyal digital. Sinyal tersebut merupakan sebuah representasi vektor yang relatif berukuran besar sehingga, dalam pengenalan ciri dari sumber suara, vektor tersebut diubah terlebih dahulu
menggunakan MFCC, agar dari vektor tersebut hanya menyisakan cirinya saja, yang akan dipakai sebagai pengenalan pola. Hasil dari vektor-vektor tersebut digunakan sebagai data latih dan data uji pada pengenalan pola menggunakan JST. Penelitian mengenai pengenalan chord sudah pernah dilakukan sebelumnya oleh Wisnudisastra (2009) dengan metode codebook. Pada penelitian tersebut, gitar yang digunakan menggunakan senar nilon. Akurasi rata-rata yang dihasilkan cukup baik, yaitu 88% sampai 97%, namun terdapat satu chord dengan akurasi yang agak kecil yaitu chord F# dengan akurasi 30% sampai 66%. Untuk itu, penelitian kali ini mencoba menggunakan metode JST, dan gitar yang digunakan menggunakan senar baja. Tujuan Penelitian Tujuan penelitian ini adalah memanfaatkan JST backpropagation sebagai pengenal pola dan menggunakan MFCC sebagai pengekstraksi ciri pada sistem pengenalan suara sehingga dapat digunakan untuk mengenali chord pada alat musik gitar. Ruang lingkup Ruang lingkup dari penelitian ini adalah: 1 Chord yang akan dikenali hanyalah chord dasar mayor dan minor. Total terdapat 24 chord mayor/minor. 2 Chord yang akan diuji hanya dimainkan dengan dibunyikan serentak dalam satu posisi. 3 Sumber suara chord yang dikenali hanya suara dari gitar yang menggunakan senar baja. 4 Pengembangan sistem dengan menggunakan MatLab. Manfaat Penelitian ini diharapkan dapat digunakan untuk memberikan informasi keakuratan metode JST dalam pengenalan chord pada alat musik gitar. Selain itu, model yang dihasilkan dapat digunakan untuk mengembangkan sistem pengenalan nada pada alat musik.
TINJAUAN PUSTAKA Nada dan Chord Gitar Nada merupakan suatu simbol atau bunyi yang menjadi dasar dalam susunan musik. Terdapat tujuh nada natural yang telah dibakukan dan diberi nama dengan huruf, yaitu: C, D, E, F, G, A, B. Masing-masing nada tersebut memiliki frekuensi yang berbeda. Jarak
2
antar dua nada disebut dengan interval. Interval dari deretan nada C-D-E-F-G-A-B-C adalah 11-½ -1-1-1-½. Jarak sebesar 1 disebut dengan wholetone dan jarak sebesar ½ disebut semitone. Jarak enam antara dua nada yang sama disebut satu oktaf. Contohnya adalah jarak antara nada C1 sampai nada C2. Nada C2 berada satu oktaf di atas nada C1. Nada natural dapat dinaikkan maupun diturunkan sebanyak ½ nada. Nada yang dinaikkan ½ nada diberi simbol #, sedangkan nada yang diturunkan ½ nada diberi simbol b. Misalnya nada C dinaikkan ½ nada menjadi C#. Nada C# atau bisa disebut cis ini sama dengan nada Db. Untuk nada E bila dinaikkan ½ nada akan menjadi nada E# atau sama dengan nada F, karena interval dari kedua nada ini adalah ½. Begitu pula pada nada B ke C. Dengan demikian, terdapat 12 nada, yaitu C, C#, D, D#, E, F, F#, G, G#, A, A#, B. Tangga nada adalah susunan nada-nada dengan sistem jarak tertentu di sepanjang kesatuan enam jarak nada atau oktaf (Solapung 1991). Terdapat tujuh nada yang dibedakan secara berurut dengan jarak nada 1 dan jarak nada ½. Terdapat dua jenis tangga nada dasar, yaitu tangga nada Do atau tangga nada mayor dan tangga nada La atau tangga nada minor. Tangga nada mayor memiliki susunan sebagai berikut: Jarak nada : 1 1 ½ 1 1 1 ½ Nada nyanyi : Do Re Mi Fa Sol La Si Do Tangga nada minor memiliki susunan sebagai berikut: Jarak nada : 1 ½ 1 1 ½ 1 1 Nada nyanyi : La Si Do Re Mi Fa Sol La Contohnya untuk tangga nada C = Do atau disebut juga tangga nada C mayor adalah C-D-E-F-G-A-B-C. Chord merupakan satuan nada-nada yang dibunyikan secara serentak yang berfungsi sebagai pengiring dalam lagu maupun permainan musik (Hendro 2004). Chord direpresentasikan dengan huruf C, D, E, F, G, A, B. Terdapat pula chord C# = Db, D# = Eb, E# = F, F# = Gb, A# = Bb, B# = C. Terdapat banyak jenis chord berdasarkan nada yang menyusunnya, di antaranya adalah chord mayor, minor, augmented, dan diminished. Setiap chord memiliki bentuk dan corak yang berbeda sesuai dengan unsur-unsur yang membentuknya. Chord sangat berperan dalam keharmonisan sebuah lagu. Chord umumnya terdiri atas tiga nada, yaitu nada ke-1, nada ke-3, dan nada ke-5 dari tangga nada penyusunnya. Hal ini disebut triad. Misalnya
chord C mayor atau C dengan tangga nada C-DE-F-G-A-B-C terdiri atas nada C, E, dan G. Chord C minor atau Cm dengan tangga nada CD-Eb-F-G-Ab-Bb-C terdiri atas nada C, Eb, dan G. Chord mayor memiliki jarak nada ke-1 ke nada ke-3 dan nada ke-3 ke nada ke-5 berturutturut sebesar 2 dan 1½. Chord minor memiliki jarak nada ke-1 ke nada ke-3 dan nada ke-3 ke nada ke-5 berturut-turut sebesar 1½ dan 2. Chord-chord yang menyusun sebuah lagu dapat ditentukan berdasarkan nada dasarnya. Yaitu, chord yang nada penyusunnya terdapat dalam tangga nada dasar lagu tersebut. Sebagai contoh pada nada dasar D = Do dengan tangga nada D-E-F#-G-A-B-C#-D, chord yang mungkin dimainkan adalah: Chord I (tonic) atau D mayor (D-A-F#) Chord II (super tonic) atau E minor (E-AF#) Chord III (mediant) atau F# minor (F#-AC#) Chord IV (dominant) atau G mayor (G-B-D) Chord V (sub dominant) atau A mayor (AC#-E) Chord VI (sub mediant) atau B minor (B-DF#) Chord VII (lead tone) atau C# half diminished (C#-E-G) Tonic, dominant, dan sub dominant adalah chord mayor yang berfungsi sebagai chord pokok atau chord utama. Di sisi lain, super tonic, mediant, dan sub mediant adalah chord minor yang berfungsi sebagai chord pembantu. Setiap chord mayor memiliki hubungan paralel atau dekat dengan chord minor yang disebabkan oleh kesamaan nada-nada yang menyusun tangga nadanya, yaitu: Chord C dengan chord Am Chord C# dengan chord A#m Chord D dengan chord Bm Chord D# dengan chord Cm Chord E dengan chord C#m Chord F dengan chord Dm Chord F# dengan chord D#m Chord G dengan chord Em Chord G# dengan chord Fm Chord A dengan chord F#m Chord A# dengan chord Gm Chord B dengan chord G#m Gitar merupakan alat musik yang paling banyak dikenal oleh masyarakat. Suara yang dihasilkan berasal dari senar yang dipetik atau dipukul yang ditekan pada posisi fret tertentu
3
ataupun tidak ditekan. Pada alat musik gitar, satu nada yang sama dapat dihasilkan dari posisi yang berbeda. Ilustrasi letak nada-nada yang ada pada gitar dapat dilihat pada Gambar 1.
Gambar 1 Ilustrasi dari 12 fret pertama dan nada-nada yang dihasilkan dengan cara menekan senar pada fret-fret tertentu (Vaseghi 2007) Oleh karena itu, chord pada gitar juga dapat dibentuk dengan berbagai posisi seperti terlihat pada Gambar 2. Posisi pembentukan semua chord yang digunakan lebih lengkapnya dapat dilihat pada Lampiran 1. Chord D
Chord D
Proses digitasi suara terdiri atas dua tahap, yaitu sampling dan kuantisasi (Jurafsky dan Martin 2000). Gambar 4 menunjukkan sinyal digital. Sampling ialah proses pengambilan nilai setiap jangka waktu tertentu. Nilai ini menyatakan amplitudo (besar/kecilnya) volume suara pada saat itu. Hasilnya adalah sebuah vektor yang menyatakan nilai-nilai hasil sampling. Panjang vektor data ini tergantung pada panjang atau lamanya suara yang didigitalisasikan serta sampling rate yang digunakan pada proses digitalisasinya. Sampling rate itu sendiri adalah banyaknya nilai yang diambil setiap detik. Sampling rate yang biasa digunakan ialah 8000 Hz dan 16000 Hz (Jurafsky dan Martin 2000). Hubungan antara panjang vektor data yang dihasilkan dan sampling rate dengan panjang data suara yang digitalisasikan dapat dinyatakan secara sederhana sebagai berikut.
S = Fs * T Keterangan:
S = panjang vektor Fs = sampling rate yang digunakan (Hertz) T = panjang suara (detik).
Setelah melalui tahap sampling, proses selanjutnya ialah kuantisasi, yaitu menyimpan nilai amplitudo ini ke dalam representasi nilai 8 bit atau 16 bit (Jurafsky dan Martin 2000).
Gambar 2 Ilustrasi bentuk chord D pada posisi posisi yang berbeda
Sinyal Sinyal adalah suatu kuantitas fisik yang bervariasi dengan waktu, ruang, maupun sembarang satu atau lebih peubah bebas lainnya. Sinyal suara terbuat dari hasil transformasi yang sangat kompleks dari beberapa tingkat semantik (tata bahasa), linguistik (gaya bicara, emosi dialek), artikulosis (proses suara), dan akustik (nada suara, spektrum, dan profil energi).
Gambar 3 Bentuk sinyal analog
Sinyal suara merupakan gelombang atau getaran analog yang merambat melalui medium (zat perantara). Manusia dapat mendengar suara dikarenakan adanya getaran yang merambat dari medium lain sampai ke telinga manusia. Sinyal analog dapat dilihat pada Gambar 3. Gambar 4 Bentuk sinyal digital
4
Ekstraksi ciri Ekstraksi ciri merupakan proses mengubah bentuk gelombang suara dengan beberapa jenis representasi parametrik sehingga ciri dan pola dari suara tersebut dapat dilihat. Ketika diamati dalam jangka waktu yang sangat pendek (5-100 ms), karakteristiknya relatif sama. Namun, dalam jangka waktu yang panjang (lebih dari 0.2 detik) karakteristik sinyal berubah dan merefleksikan perbedaan sinyal yang diucapkan. Oleh karena itu, digunakan spektrum waktu pendek (short-time spectral analysis) untuk mengkarakterisasi sinyal suara. MFCC (Mel-Frequency Cepstrum Coefficients) Tujuan utama dari proses MFCC adalah menirukan perilaku dari pendengaran manusia. MFCC didasarkan pada variasi yang telah diketahui dari jangkauan kritis telinga manusia terhadap frekuensi. Filter dipisahkan secara linear pada frekuensi rendah dan logaritmik pada frekuensi tinggi. Hal ini telah dilakukan untuk menangkap karakteristik penting dari sinyal suara. Selain itu, MFCC telah terbukti bisa menyebutkan variasi dari gelombang suara itu sendiri. Diagram alir dari MFCC dapat dilihat pada Gambar 5. Continous Speech
Mel Cepstrum
Frame Blocking
Windowing
Cepstrum
FFT
Mel Frequency
Gambar a 5 Diagram blok proses MFCC (Do 1994) Penjelasan tahapan pada proses MFCC sebagai berikut (Do 1994): 1 Frame blocking. Pada tahap ini, sinyal suara (continuous speech) dibagi ke dalam frame-frame. Tiap frame terdiri atas N sample. Frame yang satu dengan yang lainnya memiki overlap antara 0, 25, 50, dan 75%. 2 Windowing. Proses selanjutnya ialah melakukan windowing pada tiap frame yang bertujuan meminimalkan diskontinuitas sinyal pada awal dan akhir tiap frame. Konsepnya meminimalkan distorsi spektral dengan menggunakan window untuk memperkecil sinyal hingga mendekati nol pada awal dan akhir tiap frame. Jika window didefinisikan sebagai w(n), 0 ≤ n ≤ N-1, dengan N ialah banyaknya sampel tiap frame, hasil windowing ialah sinyal dengan persamaan
Y(n) = x(n) w(n), 0 ≤ ...n ≤ N-1. Pada umumnya yang digunakan ialah Hamming window dengan persamaan: w(n) = 0.54 - 0.46 cos (2πn/N-1), 0 ≤ n ≤ N-1 3
Fast Fourier Transform (FFT). Pada tahap ini dilakukan konversi dari domain waktu ke domain frekuensi untuk tiap-tiap frame. FFT ialah suatu algoritme untuk mengimplementasikan DFT (Discrete Fourier Transform) yang didefinisikan pada himpunan N sampel {xk} sebagai berikut : N 1
X k x n e j 2kn / N , k 0,1,2,..., N 1 n0
j digunakan untuk menotasikan unit imajiner, yaitu j = √-1. Secara umum, Xk adalah bilangan kompleks. Barisan {Xk} yang diartikan ialah sebagai berikut: frekuensi nol berkorespondensi dengan n=0, frekuensi positif 0 < f < Fs/2 berkorespondensi dengan nilai 1 ≤ n ≤ N/2-1, sedangkan frekuensi negatif -Fs/2 < f < 0 berkorespondensi dengan N/2+1 < n < N-1. Dalam hal ini f adalah sampling frequency. Hasil yang didapatkan dalam tahap ini biasa disebut dengan spektrum sinyal atau periodogram. 4 Mel-frequency wrapping. Tahap ini merupakan hasil studi psikofisik yang menunjukkan bahwa persepsi pendengaran manusia terhadap frekuensi sinyal suara tidak berupa skala linier. Oleh karena itu, untuk setiap nada dengan frekuensi f, tinggi subjektifnya diukur dengan skala ‘mel’. Frekuensi skala ‘mel’ adalah selang frekuensi di bawah 1000 Hz dan selang logaritmik untuk frekuensi di atas 1000 Hz sehingga persamaan berikut dapat digunakan untuk perhitungan melfrequency pada frekuensi f dalam satuan Hertz : Mel(f) = 2595 * log10 (1 + f/700). 5 Cepstrum. Tahapan ini merupakan langkah terakhir proses MFCC, yaitu dengan mengonversi log mel spectrum dari domain frekuensi ke domain waktu. Hasilnya disebut mel frequency cepstrum coefficients. Hasil tersebut merupakan representasi cepstral spektrum suara berupa properti spektral lokal yang baik dari suatu sinyal untuk analisis frame. Mel spectrum coefficients (dan logaritmanya) berupa bilangan real sehingga dapat dikonversikan ke domain waktu dengan metode DCT (discrete cosine transform).
5
Jaringan Saraf Tiruan (JST) Jaringan saraf tiruan (JST) adalah sebuah sistem pemrosesan informasi yang memiliki karakteristik yang hampir sama dengan jaringan saraf biologis (Fausett 1994). Jaringan saraf tiruan telah banyak digunakan dalam berbagai aplikasi, misalnya: pemrosesan sinyal, sistem kontrol, pengenalan pola, pengobatan, pengenalan suara, produksi suara, dan bisnis. Sebuah JST terdiri atas sejumlah elemen pemroses yang dinamakan neuron. Masingmasing neuron ini dihubungkan ke neuron lainnya dengan suatu bilangan yang dinamakan weight atau bobot keterhubungan, yang berisi informasi yang digunakan jaringan untuk menyelesaikan masalah. Sebuah JST pada umumnya memiliki karakteristik: arsitektur, algoritme pembelajaran, dan fungsi aktivasi. Arsitektur adalah pola koneksi antar neuron. Algoritme pembelajaran adalah metode yang digunakan untuk menentukan bobot keterhubungan. Fungsi aktivasi adalah fungsi yang digunakan neuron untuk memetakan sinyal masukan yang diterima menjadi sinyal keluaran yang akan dikirimkan ke neuron lainnya. Menurut arsitekturnya, JST seringkali diklasifikasikan sebagai jaringan lapis tunggal dan jaringan lapis jamak. Jaringan lapis tunggal terdiri atas satu lapis unit masukan dan satu lapis unit keluaran. Jaringan lapis jamak terdiri atas satu lapis unit masukan, n lapis unit tersembunyi, dan satu lapis unit keluaran. Arsitektur jaringan lapis jamak dengan satu lapis unit tersembunyi dapat dilihat pada Gambar 6.
Gambar 6 Arsitektur jaringan lapis jamak dengan satu lapis unit tersembunyi Kehadiran unit-unit tersembunyi dan fungsi aktivasi pada jaringan dapat memberikan kemampuan kepada jaringan untuk
menyelesaikan lebih banyak masalah daripada jaringan yang hanya memiliki unit-unit masukan dan unit-unit keluaran. Menurut Fausett (1994), suatu JST dicirikan oleh tiga hal berikut: 1 Arsitektur jaringan saraf tiruan Arsitektur jaringan adalah pengaturan neuron dalam suatu lapisan yang akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya. Dalam JST, neuron-neuron diatur dalam sebuah lapisan (layer). Ada tiga tipe lapisan, yaitu lapisan input, lapisan tersembunyi (hidden layer), dan lapisan output. Jaringan neuron dikelompokan sebagai lapis tunggal (single layer), yang tediri atas lapisan input dan output, dan lapisan banyak (multiple layer) yang terdiri atas lapisan input, lapisan tersembunyi, dan lapisan output. 2 Metode pembelajaran untuk penentuan pembobot koneksi. Metode pembelajaran digunakan untuk menentukan nilai pembobot yang akan digunakan pada saat pengujian. Ada dua tipe pembelajaran, yaitu dengan supervised learning (terarah) dan unsupervised learning (tidak terarah). Pembelajaran supervised mengasosiasikan vektor-vektor masukan dengan target keluaran, contohnya: Hebb, Perceptron, Adaline, Learning Vector Quantization (LVQ), dan BackPropagation. Pembelajaran unsupervised mengelompokkan vektor-vektor masukan yang memiliki sifat mirip menjadi satu keluaran tanpa memperhatikan target keluaran, contohnya: Self Organizing Maps (SOM) dan Adaptive Resonance Theory (ART). 3 Fungsi aktivasi yang digunakan. Fungsi aktivasi merupakan fungsi yang menentukan level aktivasi, yaitu keadaan internal sebuah neuron dalam JST. Keluaran aktivasi ini biasanya dikirim sebagai sinyal ke neuron lainnya. Contoh fungsi aktivasi ialah fungsi identitas, fungsi tangga biner, fungsi tangga bipolar, fungsi sigmoid biner, dan fungsi sigmoid bipolar. JST Propagasi Balik Jaringan propagasi balik (propagation network) adalah jaringan umpan maju berlapis banyak (multilayer feedforward network). Aturan pembelajaran propagasi balik disebut backpropagation yang merupakan jenis dari teknik gradient descent dengan backward error (gradient) propagation (Fu 1994). Menurut Pandjaitan (2007), propagasi balik mengacu pada metode pelatihan JST yang
6
menggunakan pengaturan bobot pada jaringan yang serupa dengan jaringan umpan maju. Selama operasinya, semua informasi mengalir dengan arah maju. Teknologi jaringan propagasi balik akan mengatur bobot jaringannya pada arah berlawanan dengan menggunakan perubahan error sesaat. Menurut Fausett (1994), fungsi aktivasi yang digunakan dalam propagasi balik ialah fungsi sigmoid. Hal ini disebabkan dalam jaringan propagasi balik fungsi aktivasi yang digunakan harus kontinyu, dapat didiferensialkan, dan monoton naik. Salah satu fungsi aktivasi yang paling banyak digunakan adalah fungsi sigmoid biner, yang memiliki selang [0, 1] dan didefinisikan sebagai: f1(x) =
1 1 + exp (-x) Turunannya adalah:
(1)
f1’(x) = f1(x) [1 - f1 (x)]
(2)
Grafik fungsi sigmoid biner dapat dilihat pada Gambar 7 dengan n sebagai masukan dan a sebagai keluaran dari neuron tersebut.
masukan ini akan berubah sesuai dengan propagasi pola tersebut ke lapisan-lapisan berikutnya hingga menghasilkan keluaran. Keluaran ini akan dibandingkan dengan target. Apabila dari hasil perbandingan dihasilkan nilai yang sama, proses pembelajaran akan berhenti. Apabila berbeda, jaringan akan mengubah pembobot yang ada pada hubungan antarneuron agar nilai keluaran lebih mendekati nilai target. Proses perubahan pembobot dilakukan dengan mempropagasikan kembali nilai korelasi galat keluaran jaringan ke lapisan-lapisan sebelumnya (propagasi balik). Kemudian dari lapisan masukan, pola akan diproses lagi untuk mengubah nilai pembobot hingga akhirnya memperoleh keluaran jaringan baru. Proses ini dilakukan berulang-ulang hingga diperoleh nilai yang sama atau minimal sesuai dengan galat yang diinginkan. Proses perubahan pembobot inilah yang disebut proses pembelajaran.
METODE PENELITIAN Penelitian ini dilakukan dengan mengambil data suara pada gitar yang dihubungkan langsung dengan komputer melalui sebuah kabel audio dan direkam menggunakan software MatLab. Kerangka Pikir Studi Diagram alur penelitian yang dilakukan dapat dilihat pada Gambar 8.
Gambar 7 Grafik fungsi sigmoid biner Menurut Fausett (1994), jaringan propagasi balik menggunakan metode pembelajaran dengan pengarahan (supervised learning). Sifat utama jaringan propagasi balik adalah dapat mengenali ciri utama pelatihan yang diberikan pada masukan. Jaringan dapat dirancang dan dilatih untuk mengenali bermacam-macam pemetaan karena simpul lapisan dalam dapat dilatih untuk menanggapi ciri-ciri utama yang ditemukan pada masukan. Pelatihan JST backpropagation memiliki tiga tahapan, yaitu pelatihan masukan yang bersifat umpan maju, perhitungan galat, dan penyesuaian pembobot. Secara umum, cara kerja JST backpropagation terdiri atas beberapa langkah. Pertama, pola masukan dan target dimasukkan dalam jaringan. Selanjutnya, pola
Pengambilan Data Data yang digunakan adalah suara 24 jenis chord gitar yang dimainkan dengan cara dipukul serentak dari atas ke bawah dan direkam masing-masing sebanyak 40 kali pengulangan. Untuk mempertahankan kestabilan suara chord, gitar dikalibrasi setiap kali pengambilan data suara sehingga memberikan kestabilan dan kemudahan pada saat perekaman suara atau pengambilan data. Dengan demikian, masing-masing chord memiliki 40 data suara. Kemudian, dipilih data suara secara acak dari masing-masing chord untuk dijadikan sebagai data latih dan data uji dengan perbandingan 50:50, 60:40, dan 75:25. Chord-chord yang dipakai adalah 24 jenis chord mayor dan minor seperti yang terlihat pada Tabel 1. Ke-24 chord mayor dan minor tersebut hanya dimainkan pada satu posisi saja. Bentuk 24 chord mayor dan minor yang digunakan untuk proses pelatihan dan pengujian pada penelitian ini dapat dilihat pada Lampiran 1.
7
selama 5 detik dan disimpan dalam file berekstensi WAV. Masing-masing chord direkam dengan sampling rate sebesar 11000 Hz.
Mulai
Pengambilan Data
Praproses
Data Latih
Data Uji
Ekstraksi ciri (MFCC)
Setelah tahap standardisasi selesai, tahap praproses selanjutnya adalah penghapusan silence. Silence merupakan bagian ‘diam’ yang biasanya terdapat pada saat awal dan akhir perekaman suara.
Pembuatan model JST
Pengujian
Ekstraksi ciri (MFCC)
Analisis hasil
Dokumentasi Penelitian
Selesai
Gambar 8 Diagram proses pengenalan chord gitar Tabel 1 Daftar chord gitar yang digunakan
Chord Mayor
Praproses Data suara yang sudah didapat harus melalui tahap praproses terlebih dahulu. Tahapan praproses terdiri atas standardisasi suara dan penghapusan silence. Setiap rekaman suara memiliki nilai range amplitudo yang berbedabeda. Oleh karena itu, semua data suara dinormalisasi dengan cara membagi setiap nilai dengan nilai maksimum pada data masingmasing suara sehingga didapatkan range nilai amplitudo suara yang sama.
Chord Minor
Pemilihan Data Latih dan Data Uji Data latih dan data uji dipilih dengan perbandingan 50:50, 60:40, dan 75:25. Pemilihan data untuk pelatihan dan pengujian dilakukan secara acak menggunakan permutasi acak. Proses Ekstrasi Ciri Data suara yang direkam dan dihapus silence-nya masih terlalu besar jika diproses untuk pengenalan pola maka dilakukan proses ekstraksi ciri. Ekstraksi ciri merupakan proses menentukan suatu nilai atau vektor yang dapat digunakan sebagai penciri objek. Pada pemrosesan suara, ciri yang biasa digunakan adalah nilai koefisien cepstral dari sebuah frame. Metode ekstraksi ciri yang digunakan ialah MFCC.
C C# D D# E F F# G G# A A# B
Cm C#m Dm D#m Em Fm F#m Gm G#m Am A#m Bm
Data direkam langsung dengan gitar melalui kabel audio menggunakan software MatLab
Perancangan Jaringan Saraf Tiruan Perancangan JST propagasi balik yang digunakan adalah multilayer perceptron dengan satu hidden layer. Jumlah neuron input disesuaikan dengan hasil pereduksian MFCC. Jumlah neuron hidden akan dicobakan beberapa nilai sebagai pembanding, sedangkan jumlah neuron output disesuaikan dengan target sumber suara. Struktur JST dapat dilihat pada Tabel 2. Penentuan Target Hasil Identifikasi Penentuan target dimaksudkan untuk menentukan atau memposisikan hasil yang didapat dan akan digunakan untuk mengenali chord tersebut sebagai salah satu dari 24 jenis chord. Masing-masing chord diberi identitas dengan menggunakan bilangan biner sebagai acuan. Contohnya, chord A akan diberi identitas
8
sebagai chord pertama dengan bilangan biner 00001, chord E diberi identitas sebagai chord ke-15 dengan bilangan biner 01111. Daftar chord dan masing-masing bilangan binernya dapat dilihat pada Tabel 3. Tabel 2 Struktur JST Backpropagation yang dikembangkan Karakteristik
Spesifikasi
Jumlah neuron input Jumlah neuron hidden Jumlah neuron output Fungsi aktivasi Maksimal epoch Toleransi galat
Dimensi hasil MFCC 48 24 (definisi target) Sigmoid biner 2000 0.0001
Tabel 3 Daftar bilangan biner chord Chord ke1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Chord A Am A# A#m B Bm C Cm C# C#m D Dm D# D#m E Em F Fm F# F#m G Gm G# G#m
Kode biner 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000
Pengujian Pengujian dilakukan pada data uji yang telah dipersiapkan. Setiap data yang diuji akan dilihat apakah data tersebut teridentifikasi pada chord yang semestinya. Persentase tingkat akurasi dihitung dengan fungsi berikut: hasil =
Jumlah chord yang benar Jumlah chord yang diuji
x 100%
Lingkup Pengembangan Program diimplementasikan menggunakan perangkat lunak Matlab sebagai pengolah data dan perekam suara. Pemilihan perangkat lunak Matlab dilakukan dengan mempertimbangkan kemudahan perekaman dan pengelolaan data dengan matriks besar.
HASIL DAN PEMBAHASAN Proses Pengujian Chord Dari semua data yang telah diperoleh yaitu sebanyak 960 data diacak permutasi dan dibagi menjadi data latih dan data uji. Pada percobaan ini ada 3 kombinasi untuk pembagian data latih dan data uji yakni perbandingan 50:50, 60:40, dan 75:25 kemudian terlebih dahulu dilakukan ekstraksi ciri dengan menggunakan MFCC. Dalam pemakaiannya terdapat lima parameter yang harus dimasukkan, yaitu input suara, sampling rate, time frame, overlap, dan jumlah cepstral coefficient. Pemilihan nilai untuk time frame adalah 23.7 ms dan overlap 40 %. Jumlah koefisien cepstral yang digunakan sebanyak 13 dan 26 koefisien. Proses ekstraksi ciri ini dilakukan terhadap semua data. MFCC mengubah sinyal suara ke dalam suatu matriks yang berukuran sama dengan jumlah koefisien yang digunakan dikali dengan banyaknya frame suara yang terbentuk. Matriks ini menunjukkan ciri spectral dari sinyal suara tersebut. Pada proses pembuatan JST, data yang digunakan adalah data latih terpilih yang sudah berupa ciri dari suara chord yang telah diperoleh pada tahap sebelumnya, sedangkan data uji digunakan untuk menguji model JST yang sudah dibuat sehingga memperoleh hasil rataan tingkat akurasi untuk setiap chord. Dapat dilihat pada Gambar 9 bahwa akurasi terbaik didapatkan pada percobaan dengan perbandingan data latih dan data uji 75:25, dengan 26 koefisien MFCC, yaitu sebesar 98.75%. Pada setiap perbandingan data, dapat dilihat pula bahwa hasil percobaan dengan 26 koefisien MFCC mampu memberikan hasil akurasi yang lebih baik dibandingkan dengan 13 koefisien MFCC. Total keseluruhan hasil akurasi yang didapatkan mampu mencapai di atas 90% dan dapat dikatakan baik. Evaluasi Hasil Identifikasi Tabel 4 menunjukkan hasil akurasi pada percobaan dengan perbandingan data latih dan data uji 75:25. Jika dirata-ratakan, hasil akurasi dengan 26 koefisien mendapatkan peningkatan sebesar 3.3% lebih baik daripada akurasi
9
dengan 13 koefisien. Pada pengenalan chord F# hasil akurasi rata-rata yang didapatkan adalah 92.7%, dengan akurasi terkecil 81.25% dan akurasi terbesar 100%. Pada percobaan sebelumnya, akurasi yang didapatkan adalah antara 20% sampai 66%. Hasil yang didapatkan pada percobaan dengan 26 koefisien dominan menunjukkan hasil yang lebih baik, namun terdapat salah satu hasil yang menunjukkan penurunan akurasi, yaitu pada chord G#m. Hal ini mungkin disebabkan oleh kurang stabilnya perangkat keras sehingga percobaan berikutnya mendapatkan hasil yang kurang baik. Tabel hasil akurasi dan tabel pengenalan chord lebih lengkapnya dapat dilihat pada lampiran 3 dan 4.
Kemiripan Antar Chord Pengenalan antar-chord yang mirip atau berdekatan sering terjadi karena pada saat dipraktikkan pada alat musik gitar hanya terdapat sedikit perbedaan bentuk chord. Salah satu kesalahan identifikasi terjadi pada pengenalan chord E dan chord E Minor. Hal ini mungkin juga dikarenakan ciri yang didapatkan dari ekstraksi ciri kedua chord tersebut memiliki kesamaan sehingga bisa salah diidentifikasi juga oleh komputer. Hasil sinyal yang didapatkan dari perekaman chord E dan chord E Minor beserta hasil ekstraksi cirinya dapat dilihat pada Gambar 10 dan 11. Hasil keseluruhan ekstraksi ciri chord dapat dilihat pada Lampiran 2.
Gambar 10 Sinyal dan hasil ciri chord E
Gambar 9 Grafik perbandingan akurasi Tabel 4 Hasil akurasi pengenalan chord Chord A Am A# A#m B Bm C Cm C# C#m D Dm D# D#m E Em F Fm F# F#m G Gm G# G#m Rata-rata
13 koefisien
25 koefisien
100% 90% 90% 100% 100% 100% 90% 100% 100% 100% 100% 100% 90% 100% 80% 90% 90% 90% 90% 100% 100% 90% 100% 100% 95.42%
100% 90% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 90% 100% 100% 100% 100% 100% 100% 90% 98.75%
Gambar 11 Sinyal dan hasil ciri chord E Minor
KESIMPULAN DAN SARAN Kesimpulan Pada penelitian ini, metode JST dan teknik MFCC telah berhasil diimplementasikan dalam mengenali chord pada gitar dengan rataan akurasi sebesar 92%. Chord F#, yang pada penelitian sebelumnya sulit untuk dikenali dengan metode codebook, mampu diidentifikasi dengan baik pada penelitian ini yaitu dengan akurasi rata-rata sebesar 92.5%. Saran Penelitian ini masih sangat sederhana sehingga memungkinkan untuk dikembangkan lebih lanjut. Saran-saran yang dapat diberikan untuk pengembangan lebih lanjut adalah: 1
Pada penelitian ini, chord yang dicobakan hanya dimainkan dengan dipukul searah saja. Jika dimasukkan chord yang sama dan dimainkan dengan cara dipetik bersamaan atau dengan cara dan posisi berbeda,
10
kemungkinan besar chord akan salah dikenali. Maka, disarankan untuk memodelkan semua cara permainan gitar yang ada untuk memainkan suatu chord. 2
Mengembangkan sistem sehingga dapat mengenali chord yang dimainkan langsung dari gitar pada saat pengujian.
3
Mengembangkan sistem agar dapat mengenali chord tertentu dari kombinasi beberapa chord.
DAFTAR PUSTAKA Do MN. 1994. DSP (digital signal processing) mini-project: an automatic recognition system. [internet]. http://ifp.illinois.edu/~minhdo/teaching/spea ker_recognition/speaker_recognition.doc [15 Jun 2009]. Fausett L. 1994. Fundamentals of Neural Network. New York: Prentice Hall.
Fu LM. 1994. Neural Networks in Computer Intelligence. Singapura: McGraw-Hill. Hendro. 2004. Panduan Praktis Improvisasi Gitar. Jakarta: Penerbit Puspa Swara. Jurafsky D, Martin JH. 2000. Speech and Language Processing an Introduction to Natural Language Processing, Computational Linguistic, and Speech Recognition. New Jersey: Prentice Hall. Pandjaitan LW. 2007. Dasar-Dasar Komputasi Cerdas. Yogyakarta: ANDI. Solapung KA. 1991. Gitar Tunggal. Jakarta: PT Intermasa. Vaseghi SV. 2007. Multimedia Signal Processing. New Jersey: John Wiley & Sons. Wisnudisastra E. 2009. Pengenalan chord pada alat musik gitar menggunakan codebook dengan teknik ekstraksi ciri MFCC [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
12
Lampiran 1 Bentuk chord yang digunakan pada pelatihan dan pengujian
13
Lampiran 1 Lanjutan
14
Lampiran 2 Sinyal-sinyal chord yang didapatkan Sinyal chord A
Sinyal MFCC chord A
Sinyal chord A Minor
Sinyal MFCC chord A Minor
Sinyal chord A #
Sinyal MFCC chord A #
15
Lampiran 2 Lanjutan Sinyal chord A # Minor
Sinyal MFCC chord A # Minor
Sinyal chord B
Sinyal MFCC chord B
Sinyal chord B Minor
Sinyal MFCC chord B Minor
16
Lampiran 2 Lanjutan Sinyal chord C
Sinyal MFCC chord C
Sinyal chord C Minor
Sinyal MFCC chord C Minor
Sinyal chord C #
Sinyal MFCC chord C #
17
Lampiran 2 Lanjutan Sinyal chord C # Minor
Sinyal MFCC chord C # Minor
Sinyal chord D
Sinyal MFCC chord D
Sinyal chord D Minor
Sinyal MFCC chord D Minor
18
Lampiran 2 Lanjutan Sinyal chord D #
Sinyal MFCC chord D #
Sinyal chord D # Minor
Sinyal MFCC chord D # Minor
Sinyal chord E
Sinyal MFCC chord E
19
Lampiran 2 Lanjutan Sinyal chord E Minor
Sinyal MFCC chord E Minor
Sinyal chord F
Sinyal MFCC chord F
Sinyal chord F Minor
Sinyal MFCC chord F Minor
20
Lampiran 2 Lanjutan Sinyal chord F #
Sinyal MFCC chord F #
Sinyal chord F # Minor
Sinyal MFCC chord F # Minor
Sinyal chord G
Sinyal MFCC chord G
21
Lampiran 2 Lanjutan Sinyal chord G Minor
Sinyal MFCC chord G Minor
Sinyal chord G #
Sinyal MFCC chord G #
Sinyal chord G # Minor
Sinyal MFCC chord G # Minor
22
Lampiran 3 Tabel hasil akurasi
23
Lampiran 4 Tabel pengenalan chord