tugas pola

Upload: thohiroh-agus-kumala

Post on 19-Jul-2015

136 views

Category:

Documents


1 download

TRANSCRIPT

ANALISIS KLASIFIKASI MUSIC BERDASARKAN JENIS DENGAN FORMAT WAV MENGGUNAKAN ALGORITMA K-MEANS

A. Pendahuluan Perkembangan musik dewasa ini sudah begitu pesat. Banyak sekali macam musik yang ada. Hal ini menyebabkan lagu yang ada menjadi sangat banyak. Untuk memudahkan proses penyimpanan, saat ini banyak yang disimpan dalam bentuk elektronik. Keadaan ini kadang kala menyebabkan proses pencarian terhadap sebuah lagu menjadi sulit. Kadang kala bahkan musik yang disimpan tidak diketahui judul Salah satu solusi yang bisa digunakan untuk menangani masalah ini adalah dengan membuat suatu klasifikasi terhadap lagu tersebut berdasarkan atas kriteria tertentu sesuai dengan keperluan. Klasifikasi yang dilakukan diharapkan dapat membantu proses pencarian terhadap suatu lagu tertentu. Proses klasifikasi musik dapat dilakukan berdasarkan kriteria-kriteria tertentu, misalnya nama artis, judul lagu, jenis lagu dan sebagainya. Salah satu kriteria yang digunakan adalah dengan berdasarkan jenis musik. Klasifikasi berdasarkan jenis musik. Pada makalah ini dikembangkan sebuah sistem yang melakukan klasifikasi terhadap file musik berdasarkan atas jenis musiknya. Jenis file yang menjadi inputan adalah file WAVE. Untuk proses pengenalan musik program ini dibagi dalam dua fase, yaitu fase ekstraksi fitur dan fase klasifikasi musik. B. Teori 1. pengenalan Pola Pola adalah entitas yang terdefinisi dan dapat diidentifikasi melalui ciri-cirinya (features). Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola lainnya. Ciri yang bagus adalah ciri yang memiliki daya pembeda yang tinggi, sehingga pengelompokan pola berdasarkan ciri yang dimiliki dapat dilakukan dengan keakuratan yang tinggi. Pengenalan pola bertujuan menentukan kelompok atau kategori pola berdasarkan ciri- ciri yang dimiliki oleh pola tersebut. Dengan kata lain terdapat dua pendakatan yang dilakukan dalam pengenalan pola, pendekatan secara statistik dan pendekatan secara sintatik atau struktural. Struktur pengenalan pola dapat dilihat dari gambar berikut (gambar 1) :

Gambar 1.Struktur Pengenalan Pola1

a. Input Transducer Menganalisa sinyal elektronik yang diinput. Alat yang digunakan : scanner b. Preprocessor Melakukan penambahan kondisi sinyal, termasuk fungsi penguatan sinyal, analisa spektrum dan konversi analog ke digital. c. Feature Extractor Sebagai distriminator, dengan membandingkan kecocokan template. d. Response selector Algoritma untuk memilih input pattern dengan data pattern yang sudah ada di software dengan menggunakan teknik pencarian, sortir, least-squares analysis. e. Output System Output system mungkin berupa suara, gambar atau video yang sesuai dengan hasil proses aplikasi. 2. File WAVE Merupakan salah satu format data yang digunakan untuk menyimpan suara. Dengan menggunakan format tertentu maka suara baik berupa ucapan orang maupun bunyi yang dihasilkan dari alat musik dapat tersimpan, sehingga sewaktu waktu dapat dijalankan kembali. Musik sendiri merupakan hasil karya seni dalam bentuk suara tersusun atas satuan waktu, perpaduan dari seseorang atau beberapa pemusik beserta dengan alat musiknya. Metode penyimpanan file WAVE menggunakan sistem Pulse Code Manupulation (PCM) untuk mengkodekan suara dari bentuk analog menjadi bentuk digital. Gambaran mengenai format file WAVE bisa dilihat pada Gambar 1.

Gambar 2. Gambaran Format File WAV

2

Sebuah file WAVE terdiri dari kelompokkelompok data yang disebut chunk (Sapp, 2003). Dalam sebuah chunk terdapat bagian header dan data. File WAVE biasanya terdiri dari sebuah chunk yang mengandung dua sub-chunks. 3. Ekstraksi Ciri Untuk mendapatkan data yang akurat dan konsisten dari setiap sampel, digunakan suatu metode ekstraksi ciri sinyal suara dengan domain waktu dan domain frekuensi. Pada tugas ini penulis hanya menggunakan masing- masing dua metode untuk tiap domain. Adapun metode yang digunakan adalah Time Domain. Time domain adalah pemaparan teknik sinyal audio dasar, dimana sinyal digambarkan sebagai amplitudo dengan satuan waktu, sinyal dapat bernilai positif atau negatif tergantung pada tekanan suara. Everage Energi Menandakan kekerasan suara pada waktu yang pendek Dimana, AE adalah Sort time energy N = Jumlah Sampel X(n) = Nilai sinyal dari sampel

Zero Crossing Rate Sampel berurutan pada sebuah sinyal digital memiliki perbedaan tanda, ukuran dari noise sebuah sinyal pada fitur domain Dimana, ZC = Zero crosing rate sgn x(n) = nilai dari x(n) , bernilai 1 jika x(n) positif, -1 jika x(n) negatif N = Jumlah Sampel

4. Pengklasteran K_Means Data Clustering merupakan salah satu metode Data Mining yang bersifat tanpa arahan (unsupervised). Ada dua jenis data clustering yang sering dipergunakan dalam proses pengelompokan data yaitu hierarchical (hirarki) data clustering dan nonhierarchical (non hirarki) data clustering. Kmeans merupakan salah satu metode data clustering non hirarki yang berusaha mempartisi data yang ada ke dalam bentuk satu atau lebih cluster/kelompok. Metode ini mempartisi data ke dalam cluster/kelompok sehingga data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu cluster yang sama dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke dalam kelompok yang lain. Adapun tujuan dari data clustering ini adalah untuk meminimalisasikan objective function yang diset dalam proses clustering, yang pada umumnya berusaha meminimalisasikan variasi di dalam suatu cluster dan memaksimalisasikan variasi antar cluster. Data clustering menggunakan metode K-Means ini secara umum dilakukan dengan algoritma dasar sebagai berikut : 1. Tentukan jumlah cluster3

2. Alokasikan data ke dalam cluster secara random 3. Hitung centroid/rata-rata dari data yang ada di masing-masing cluster 4. Alokasikan masing-masing data ke centroid/ratarata terdekat 5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau apabila perubahan nilai pada objective function yang digunakan di atas nilai threshold yang ditentukan. C. Langkah-langkah Analisa Data Pada analisa klasisfikasi musik dan pengklasteran ke dalam k-means ini, kita lakukan langkah-langkah sebagai berikut : 1. Pre Prosessing pada Pre Prosessing yang dilakukan adalah mengconvert file MP3 ke dalam File Wav , yaitu kita akan mengambil file tersebut dengan durasi 10 detik, dengan mneggunakan software convert. Yaitu dalam hal ini menggunakan cool editpro, setelah diperoleh file wav yang telah di potong durasinya menjadi 10 detik maka file tersebut disimpan kedalam path dari pada matlab. Membaca File WAV langkah selanjutnya adalah dilakukan pembacaan file atau sinyal suara music yang telah di potong dengan durasi 10 detik dan diconvert ke wav tersebut. Frame Blocking Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan satu frame terdiri dari beberapa sampel. Pengambilan sampel tersebut tergantung dari tiap detik suara akan disampel dan berapa besar frekuensi samplingnya. Dalam tugas ini menggunakan frekuensi sampling 8000 Hz dan pengambilan sampel tiap 10 detik. Yang mana akan di blok setiap 1 detik sehingga setiap blok mempunyai sampling sebesar 8000Hz, maka isi seluluh data adalah 8000x10 maka jumlahnya adah 80.000 untuk keseluruhan. Contoh bentuk sinyal pada sebuah data adalah pada gambar 2 : Gambar 2. sinyal satu data sampel 10 detik 2. Proses Sampling Sinyal suara merupakan sinyal yang tidak terbatas dalam domain waktu (infinite timeinterval). Suara akan menghasilkan sinyal analog yang terus kontinyu. Untuk keperluan pemrosesan maka sinyal suara harus dibentuk dalam potongan potongan waktu yang terbatas (finite time interval). Karena itu sinyal yang ada dipotong-potong dalam slot-slot interval waktu tertentu. Sinyal suara seperti terlihat pada gambar 3 Gambar 3. Pembagian sinyal pada suara4

3. Penghitung Time Domain perhitungan ini bertujuan untuk mencari nilai dari data, sehingga data dapat dianalisa dan di klusternakan ke dalam suatu pengklasteran. Everage Energi Dalam menghitung Average Energi pertama akan dihitung average energi setiap data sampling yaitu jika dalam satu data terdapat 10 sampling maka dan setiap sampling terdiri dari sepuluh plot atau potongan sehingga akan dihitung sebesar 10 (data sampel) x 10 (data sampling ) sehingga jumlah semuanya adalah 100 data average Energi. Karena setiap data terdiri dari 10 sampling dan data sejumlah 10 data. Hasil Average energi setiap data dapat digambarkan dalam bentuk grafik. Lihat gambar 4. Gambar 4. Sinyal data Average Energi 10 sampel data Zero Crossing Rate setelah menghitung AE (Average Energi ) pada setiap sampel maka selanjutnya akan dihitung Zero Crossing Rate. Sama halnya pada perhitungan AE, pada ZCR akan dihitung berdasarkan jumlah sampel yang ada. Jika dilihat grafik dari datanya yang sudah diperoleh maka seperti pada gambar 5.

Gambar 5. grafik pada data ZCR dari seluruh data 5. Penaklasteran K_means Implementasi Algoritma dilakukan dengan membangun algoritma K-Means dalam suatu bahasa pemrograman dan melakukan pengujian terhadap sebaran data yang telah ada. Implementasi Algoritma Clustering K-Means pada tulisan ini menggunakan Matalab 2008 dengan data yang akan diambil sebagai pengujian sebanyak 100 data. Pada implementasi algoritma K-Means ini terdapat ketentuan seperti : Jumlah Cluster yang diinginkan 3 (K = 3) Maximum iterasi yang terjadi adalah 100 (menjaga agar tidak terjadi infinite loop / MaxIter = 100) Threshold pergeseran pusat cluster terbaru dengan pusat cluster yang terbentuk sebelum pusat cluster terbaru adalah nol (Threshold = 0) Data yang diterima untuk ditrain dua atribut atau dua vektor (AE dan ZCR) Pengambilan titik pusat cluster awal yang dilakukan secara acak dilakukan tanpa pengacakan sistem namun menggunakan penentuan awal yang ditentukan oleh pembangun program atau penulis, dengan cara menuliskan pada program sebagai berikut :

5

program untuk K-means : [maxRow, maxCol]=size(m) if maxRow=0;

13

sign_y1_2 = (y(:,i)> AE 0.0044; 0.0031; 0.0564; 0.0044; 0.1027; 0.0009; 0.0001; 0.0122; 0.0003; 0.0002; 0.0257;

14

0.0005; 0.0110; 0.0011; 0.0022; 0.0009; 0.0004; 0.0198; 0.0009;

0.0957; 0.0044; 0.0034; 0.0013; 0.0004; 0.0000; 0.0044; 0.0154;

0.0037; 0.0155; 0.0155; 0.0000; 0.0001; 0.0005; 0.0396; 0.0083;

0.0000; 0.1250;

0.0001; 0.0206;

0.0907; 0.0000;

0.0060; 0.0064; 0.0000; 0.0005; 0.0000; 0.0000; 0.0161; 0.0198;

0.0407; 0.0206; 0.0000; 0.0000; 0.0031; 0.0025; 0.0154; 0.0006;

0.0191; 0.0248; 0.0004; 0.0001; 0.0002; 0.0578; 0.1009; 0.0104;

0.0009; 0.0028; 0.0009; 0.0005; 0.0009; 0.0564; 0.0564; 0.0022;

0.0011; 0.0005 ; 0.0198; 0.0034; 0.0005; 0.0011; 0.0006; 0.0000; 0.0002; 0.0001; 0.0001; 0.0001; 0.0002; 0.0022; 0.0176; 0.0044; 0.0004; 0.0604; 0.0169;

0.0008; 0.0000; 0.0020; 0.0008; 0.0044 ; 0.0088; 0.0011; 0.0020 >> plot (AE)

>> zcr maka akan menampilkan data sejumlah seratus buah, 0.0199; -0.0011; 0.0079; 0.0022; 0.0100; 0.0075; 0.0069; 0.0018; 0.0056; 0.0118; 0.0148; 0.0071; 0.0090; 0.0100; -0.0089; 0.0020; 0.0125; 0.0049; -0.0061; 0.2284; -0.1426; -0.0096; -0.0403; 0.0071; -

0.0182; -0.0136; -0.0131; 0.0182; 0.0015; -0.0120; -0.0196; -0.0299; 0.0004; -0.0006; 0.0040; -0.0073; 0.0086; -0.0041; -0.0140; 0.0045; -0.0077; 0.0113; 0.0420; -0.0040; 0.0154; 0.0116;

0.0130; -0.1049; -0.0046; -0.0180; -0.0105; 0.0679; -0.1336; -0.0025; -0.0283; -0.0069; 0.0715; -0.1144; -0.0056; -0.0129; -0.0109; 0.0961; 0.0806; 0.0796; -0.0681; -0.1601; -0.1812; -0.0116; -0.0066; -0.0071; -0.0115; -0.0089; 0.0019; 0.0003; 0.0060; 0.0027;

0.0008; -0.0151; 0.0055; 0.0121; >> plot (zcr) 0.0044; 0;

0.0626; -0.1471; -0.0029; -0.0016; -0.0011; 0.0684; -0.1510; 0.0030; -0.0124; 0.0113;

0.0099; -0.0011;

0.0041;

0.0735; -0.0884; -0.0125; -0.0086;-0.0090

15

menampilkan nilai AE dan ZCR yang disini diveriabelkan ez : 4.39544783128239e-06 3.05183507728578e-06 5.64315426712628e-05 4.39508074780519e-06 0.0199375000000000 -0.00106250000000000 0.00556250000000000 0.0118125000000000

0.000102662235620635 0.0148125000000000 9.23160610687499e-07 1.22185829201360e-07 1.22090493054793e-05 2.74735462665796e-07 1.94889354865317e-07 2.56674804889002e-05 4.88327981948853e-07 9.57120987922032e-05 3.69379530442549e-06 7.63034927858417e-09 1.22094158650652e-07 9.06530851422602e-05 5.98275100720310e-06 4.06624085457040e-05 1.90751687169147e-05 9.23157846466071e-07 1.10243999987993e-05 4.39544775441327e-06 1.54508295929317e-05 0.228437500000000 -0.142562500000000 -0.00956250000000000 -0.0403125000000000 0.00706250000000000 -0.00787500000000000 0.0182500000000000 -0.0136250000000000 -0.0131250000000000 0.00712500000000000 0.0130000000000000 -0.104875000000000 -0.00462500000000000 -0.0180000000000000 -0.0105000000000000 -0.00225000000000000 0.0182500000000000 0.000375000000000000 -0.000625000000000000

0.000125005655005663 0.00900000000000000

16

2.06307993321448e-05 4.20628087059336e-10 6.41723728193021e-06 2.06321727390808e-05 2.47925768234540e-05 2.75432683480954e-06 1.09894184160829e-06 3.36594014656557e-06 1.54529574395776e-05 1.09871007728578e-06 4.88662767420352e-07 1.98459017200604e-05 3.36511237336212e-06 3.06549549181620e-08 1.37475154462167e-10 3.73840333104149e-07 9.23317912221685e-07 2.20505621063747e-06 1.28942871522909e-06 3.05786563396502e-08 4.88315585255682e-07 6.86731343270689e-08 1.75798074035647e-05 4.88525536689301e-07 7.70664227081844e-09 1.22085571409002e-07

0.0678750000000000 -0.133625000000000 -0.00250000000000000 -0.0282500000000000 -0.00687500000000000 -0.0100000000000000 0.00150000000000000 0.00400000000000000 -0.00725000000000000 0.0100000000000000 0.0715000000000000 -0.114375000000000 -0.00562500000000000 -0.0128750000000000 -0.0108750000000000 -0.00750000000000000 -0.0120000000000000 0.00862500000000000 0.0112500000000000 -0.00887500000000000 0.0961250000000000 -0.0681250000000000 -0.0116250000000000 -0.0115000000000000 0.000250000000000000 0.00687500000000000

17

4.88282251363995e-07 9.23272147300378e-07 3.73864174962059e-07 1.22117048382819e-07 1.09894181740290e-06 1.22131347775593e-07 4.39499285519147e-06 7.64465522772077e-09 3.05179214584851e-06 1.90743446350098e-07 9.23343701486126e-07 3.74027286654130e-07 3.05414258247018e-08 4.88396656513587e-07 6.18058210492671e-07 1.22078899860755e-07 3.73864174366012e-07 3.05213929416091e-08 2.47234452059640e-06 5.77523957597361e-05 5.64281058694250e-05 1.98441020518607e-05 4.39517593493582e-06 3.95527126712892e-05 3.05263425703202e-08 1.91430096182370e-07

-0.0196250000000000 -0.00412500000000000 0.0420000000000000 0.00200000000000000 0.0806250000000000 -0.160125000000000 -0.00662500000000000 -0.00887500000000000 0.00600000000000000 0.00175000000000000 -0.0298750000000000 -0.0140000000000000 -0.00400000000000000 0.0125000000000000 0.0796250000000000 -0.181250000000000 -0.00712500000000000 0.00187500000000000 0.00275000000000000 0.000750000000000000 -0.0151250000000000 0.00450000000000000 0.0153750000000000 0.00487500000000000 0.0626250000000000 -0.147125000000000

18

6.04376568910766e-05 1.61443949015409e-05 1.54495249028469e-05

-0.00287500000000000 -0.00162500000000000 -0.00112500000000000

0.000100908472656967 -0.00550000000000000 5.64289337112919e-05 9.25937774768427e-07 1.54497680835757e-05 8.31613548711396e-06 2.06117294329779e-07 2.21162444353178e-06 1.68535194439948e-05 1.98467347722848e-05 6.20560399230137e-07 1.04448557101522e-05 2.20508196652150e-06 7.63034859188334e-07 7.62939453220371e-09 1.95404152871347e-06 7.62986183166519e-07 4.39469243061580e-06 8.81969547462644e-06 1.09905340004624e-06 1.95324041795744e-06 0.00437500000000000 -0.00775000000000000 0.0116250000000000 -0.00612500000000000 0.0683750000000000 -0.151000000000000 0.00300000000000000 -0.0123750000000000 0.0112500000000000 0.0121250000000000 0 0.00987500000000000 -0.00112500000000000 0.00412500000000000 0.0735000000000000 -0.0883750000000000 -0.0125000000000000 -0.00862500000000000 -0.00900000000000000

Lampiran 2 : Klastring- Kmeans >> y=kMeansCluster(m,k,isRand)

19

%m adalah matrix [ae,zcr]; m = [0 0.02 0 0 0.06 0.01 0 0.01 0.1 0.01 0 0.23 0 -0.14 0.01 -0.01 0 -0.04 0 0.01 0.03 -0.01 0 0.02 0.1 -0.01 0 -0.01 0 0.01 0 0.01 0.09 -0.1 0.01 0 0.04 -0.02 0.02 -0.01 0 0 0.01 0.02 0 0 0.02 0 0.13 0.01 0.02 0.07 0 -0.13 0.01 0 0.02 -0.03 0.02 -0.01 0 -0.01 0 0 0 0 0.02 -0.01 0 0.01 0 0.07 0.02 -0.11 0 -0.01 0 -0.01 0 -0.01 0 -0.01 0 -0.01 0 0.01 0 0.01 0 -0.01 0 0.1 0 -0.07 0.02 -0.01 0 -0.01 0 0 %menentukan Jumlah kluster k=3; isRand=0;

0 -0.02 0 0 0 0.04 0 0 0 0.08 0 -0.16 0 -0.01 0 -0.01 0 0.01 0 0 0 -0.03 0 -0.01 0 0 0 0.01 0 0.08 0 -0.18 0 -0.01 0 0 0 0 0.06 0 0.06 -0.02 0.02 0 0 0.02 0.04 0 0 0.06 0 -0.15 0.06 0 0.02 0 0.02 0 0.1 -0.01 0.06 0 0 -0.01 0.02 0.01 0.01 -0.01 0 0.07 0 -0.15 0.02 0 0.02 -0.01 0 0.01 0.01 0.01 0 0 0 0.01 0 0 0 0 0 0.07 0 -0.09 0.01 -0.01 0 -0.01 0 -0.01] 0 0.01

20

% menghitung jumlah baris dan kolom pada matrik. [maxRow, maxCol]=size(m) if maxRow