BAB II TINJAUAN PUSTAKA 2.1 Teori Musik Key merupakan kunci

advertisement
BAB II
TINJAUAN PUSTAKA
2.1 Teori Musik
Key merupakan kunci dari sebuah lagu. Key mengidentifikasi not/nada
(tonic), chord (paduan nada), mayor/minor, yang merepresentasikan titik focus
nada pada suatu bagian (Jehan, 2010). Key hasil ekstraksi musik bernilai 0 sampai
dengan 11. Key untuk masing – masing nilai dapat dilihat pada tabel 2.1.
Tabel 2.1 Nilai Key Lagu
Nilai Key
Key
0
C
1
C-Sharp (C#)
2
D
3
E-Flat (E♭)
4
E
5
F
6
F-Sharp (F#)
7
G
8
A-Flat (A♭)
9
A
10
B-Flat
11
B
Mode adalah jenis skala yang terkait dengan not/nada (tonic). Mode
digunakan untuk mengetahui jenis mayor atau minor dari suatu key (Jehan, 2010).
Hasil ekstraksi mode bernilai 0 atau 1. Musik memiliki mode minor jika bernilai 1
dan memiliki mode mayor jika bernilai 0.
Loudness merupakan kenyaringan secara keseluruhan dari musik dalam
nilai decibels (dB). Loudness
merupakan bagian dari segmen (satu set
5
6
entitas suara di bawah satu detik) yang nilainya didapat dari 2 data yaitu nilai dB
pada onset dan nilai dB maksimal pada musik. Nilai dB pada offset setara dengan
nilai dB pada onset pada satu segmen (Jehan, 2010). Loudness pada setiap musik
memiliki nilai minimum -100.0 dB dan nilai maksimum 100.0 dB.
Energi pada musik bukan merupakan sesuatu yang konstan, tetapi berubah
dari waktu ke waktu. Artinya pada satu lagu bisa memiliki energi yang meningkat
namun pada lagu lain memiliki energy yang cenderung menurun. Energi dapat
dikontrol dengan menggunakan instrument, dinamika, dan irama pada musik.
Meningkatkan jumlah instrument dapat meningkatkan energi musik. Musik yang
keras umumnya lebih energik daripada musik yang lembut. Energi pada setiap
musik memiliki nilai minimum 0.0 dan nilai maksimum 1.0. Semakin energik
musik maka nilai energi semakin besar begitu pula sebaliknya, semakin lembut
musik maka semakin kecil nilai energinya.
Tempo adalah kecepatan atau laju pada bagian rata – rata durasi dari suatu
lagu yang dinyatakan dalam beats per minute (BPM). Beats merupakan unit dasar
waktu dari potongan musik yang dihitung dalam detik (Jehan, 2010). Nilai
maksimum tempo adalah 500.0 BPM dan nilai minimum tempo adalah 0.0 BPM.
Genre adalah suatu pengelompokan musik berdasarkan jenis seperti pop,
blues, dan jazz. Tidak ada pengelompokkan jumlah genre secara pasti di dunia.
Genre musik dapat ditandai oleh musisi, peneliti, atau dipengaruhi latar belakang
budaya suatu bangsa (Mei Lan, 2009). Bahkan beberapa negara memiliki genre
musik tersendiri seperti genre Soukous (Africa Rumba) yang merupakan genre
khusus di Benua Afrika. Menurut allmusic.com terdapat 500 sampai 800 genre
berbeda dari seluruh dunia. Hal ini semakin menunjukkan bahwa jumlah genre
tidak dapat diklasifikasi dengan pasti.
7
2.2 Pengambilan Dataset
Dataset adalah kumpulan data yang digunakan dalam penelitian. Data
yang digunakan adalah nilai dari hasil ekstraksi fitur musik yang dihasilkan oleh
Echonest dan nama genre musik yang diperoleh dari last.fm dan 7digital.com.
Echonest yang dapat diakses pada alamat the.echonest.com merupakan
platform yang menyediakan array data musik dan dapat digunakan untuk
membangun suatu aplikasi berbasis musik, seperti aplikasi +Music yang
merupakan ekstensi dari Google Chrome sehingga browser dapat memiliki
soundtrack tersendiri. Masing – masing data musik memiliki detail fitur yang
dapat diekstrak oleh Echonest API. Secara umum data musik yang diberikan
Echonest adalah data artis dan data lagu. Sedangkan data nama genre musik
diperoleh dari web musik last.fm dan 7digital.com. Last.fm juga digunakan dalam
penelitian mengenai music information retrieval (Lamere, 2008) sedangkan
7digital.com digunakan dalam penelitian mengenai kumpulan dataset lagu (Bertin,
Ellis, Whitman, & Lamere, 2011). Untuk dapat menggunakan Echonest API
pengembang harus memiliki API Key yang dapat diperoleh secara gratis pada web
tersebut. Dengan menggunakan Echonest API pengembang dapat memanggil
method yang tersedia dalam XML dan JSON. Method yang disediakan antara lain
Artist API Methods, Song API Methods, Track API Methods, Playlist API
Methods, dan Catalog API Methods. Pada penelitian ini method yang digunakan
adalah Song API Methods untuk memanggil data mengenai lagu yang diinginkan.
Echonest API juga mendukung berbagai ID lagu atau artis (digunakan saat
pemanggilan method) yang diperoleh dari partner acces database musik seperti
7digital dan MusicBrainz. Pada penelitian ini data lagu diambil oleh Echonest API
dari 7digital.com dengan menggunakan format XML. Berikut merupakan contoh
query song method untuk mengekstraksi fitur musik :
http://developer.echonest.com/api/v4/song/search?api_key=96GANOIWHEX5ZI
6LL&format=xml&results=1&artist=bruno%mars&title=grenade&bucket=id:7di
gital-US&bucket=audio_summary&bucket=tracks.
Pada
URL
song
method
terdapat
API
key
(api_key=96GANOIWHEX5ZI6LL), format hasil yang diinginkan (format=xml),
8
jumlah musik yang ditampilkan (result=1), nama artis (artist=Bruno%mars), judul
lagu (title=grenade), sumber ID lagu (bucket=id:7digital-US), parameter untuk
menampilkan ringkasan dari lagu (bucket=audio_summary), dan parameter untuk
menampilkan detail dari lagu (bucket=tracks). Gambar 2.1 menampilkan hasil
ekstraksi fitur dari query di atas untuk lagu Grenade dari Bruno Mars. Hasil
ekstraksi fitur yang digunakan sebagai dasar data klasifikasi musik adalah nilai
key, mode, loudness, energi, dan tempo.
Gambar 2.1 Contoh Hasil Ekstraksi Fitur
2.3 Social Tagging
Social tagging dapat diartikan sebagai label yang diberikan kepada suatu
item seperti artis, musik, dan album (Lamere, 2008). Tag yang diberikan
mengandung informasi dari item tersebut, misalnya tag Pop yang merupakan
9
informasi genre dari musik. Tag berbeda dengan keyword yang bersifat terikat dan
terkontrol dengan tata bahasa. Ketika tag dibuat oleh berbagai pengunjung maka
pandangan dan penilaian pada lagu akan menjadi kompleks karena semakin
banyak tag yang muncul semakin banyak pula macam penilaian yang dilakukan
pengguna pada lagu atau artis. Misalkan satu penyanyi dapat diberikan tag yang
berbeda, seperti penyanyi Bruno Mars yang memiliki 63 tag berbeda seperti
“Pop” dan “Male Vocalist” yang diberikan oleh pengunjung.
Genre yang digunakan pada penelitian merupakan tag pada web musik
last.fm dan 7digital.com. Tag genre pada Last.fm yang digunakan sebagai dasar
penelitian adalah acoustic, blues, classical, country, electronic, emo, hip hop, jazz,
metal, pop, reggae, r & b, rock, dan soul. Sedangkan pada situs 7digital.com
terdapat 20 tag genre namun yang digunakan sebagai dasar penelitian adalah
genre pop, rock, hip hop, r & b, soul, electronic, jazz, metal, country, dan reggae.
Pemilihan tag genre didasari atas kesesuaian antara Last.fm dan 7digital.com serta
kepopuleran suatu genre bagi para pengunjung dan pendengar musik.
Pemberian tag merupakan suatu hal yang dapat dilakukan oleh setiap
pengunjung situs tanpa mengkhawatirkan kesalahan pemberian tag. Misalnya
pengunjung yang tidak yakin secara pasti genre yang dimiliki oleh artis maka
dapat memberi tag lebih dari satu seperti “Pop” atau “Slow Pop”.
Ada beberapa alasan dan motivasi pengunjung web memberi tag pada lagu
atau artis (Lamere, 2008) di antaranya:
a. Suatu item diberi tag untuk membantu pengambilan informasi secara pribadi
dari suatu item. Misalnya pengunjung memberi banyak tag untuk satu lagu
baru dengan “Favorite”, “Pop”, “Happy”, untuk memberikan deksripsi
sebanyak – banyaknya pada satu lagu.
b. Suatu item diberi tag untuk menemukan musik yang diinginkan di kemudian
hari. Misalnya pengguna memberi satu tag “Accoustic” untuk beberapa lagu
sehingga dapat menjadi playlist jika nantinya ingin mendengarkan lagu – lagu
yang bergenre akustik.
10
c. Pengunjung memberi tag pada suatu item untuk mengekspresikan selera
musiknya kepada pengunjung lain. Misalnya pada Last.fm terdapat tag “Seen
Live” yang menunjukkan artis atau band yang pernah ditonton konsernya.
d. Suatu item diberi tag untuk memberi informasi dan pengetahuan baru bagi
pengunjung lain. Misalnya pengunjung yang tidak mengetahui genre musik
dari artis Taylor Swift dapat melihat pada tag yang diberikan pada artis
tersebut.
e. Pengunjung memberi tag pada suatu item untuk menunjukkan opini mereka
terhadap item tersebut. Misalnya pengunjung memberi tag “Awesome” pada
lagu yang disukai.
f. Suatu item diberi tag sebagai hasil dari suatu permainan. Misalnya permainan
untuk memberi tag “Saddest Song” pada lagu paling sedih yang diketahui.
2.4 Jaringan Saraf Tiruan Backpropagation
Jaringan saraf tiruan (JST) backpropagation (perambatan galat mundur)
merupakan metode sistematik untuk pelatihan multilayer jaringan saraf tiruan
(Kiki & Kusumadewi, 2008). Pada backpropagation, setiap unit yang berada di
input layer terhubung dengan setiap unit yang ada di hidden layer. Hal serupa
berlaku pula pada hidden layer. Setiap unit pada lapisan tersmbunyi terhubung
dengan setiap unit yang ada di output layer. Berikut merupakan lapisan
(multilayer neural networks) yang ada pada backpropagation:
a. Input layer (1 buah). Input layer terdiri dari neuron – neuron atau unit – unit
input, mulai dari unit input 1 sampai unit input n.
b. Hidden layer (minimal 1 buah). Hidden layer terdiri dari unit – unit
tersembunyi mulai dari unit tersembunyi 1 sampai unit tersembunyi p.
c. Output layer (1 buah). Output layer terdiri dari unit – unit keluaran mulai dari
unit keluaran 1 sampai unit keluaran m.
Gambar 2.2 menunjukkan arsitektur backpropagation dengan n buah input
(ditambah sebuah bias), sebuah layar tersembunyi yang terdiri dari p unit
(ditambah sebuah bias), dan m buah unit keluaran.
11
vji merupakan bobot garis dari unit – unit input xi ke unit layar tersembunyi
zj. wkj merupakan bobot dari unit layar tersembunyi zj ke unit keluaran yk.
Gambar 2.2 Arsitektur Backpropagation
(Dhaneswara & Moertini, 2004)
Pelatihan backpropagation meliputi 3 fase (Siang, 2005). Fase pertama
adalah perambatan maju yaitu pola input dihitung maju mulai dari input layer
hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua
adalah perambatan mundur. Selisih antara keluaran actual (actual output) dengan
keluaran target (desired output) merupakan nilai kesalahan yang dipropagasi
mundur. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang
terjadi.
Fungsi aktivasi yang digunakan adalah fungsi sigmoid biner yang
memiliki range (0, 1) untuk menghitung nilai keluaran dari hidden layer lalu
mengirimkan nilai tersebut ke seluruh unit pada output layer dan menghitung nilai
keluaran pada setiap unit di output layer (Siang, 2005). Rumus fungsi sigmoid
biner adalah
12
………………………………… (2.1)
dengan turunan,
…………………………............ (2.2)
Gambar fungsi sigmoid biner terlihat pada gambar 2.3.
Gambar 2.3 Gambar Fungsi Sigmoid Biner
Algoritma pelatihan backpropagation dengan fungsi aktivasi sigmoid
bipolar adalah sebagai berikut:
0 : Inisialisasi bobot dengan bilangan acak kecil.
1 : Jika kondisi tidak tercapai, lakukan langkah 2 – 9.
2 : Untuk setiap pasang data pelatihan, lakukan langkah 3 - 8.
Perambatan Maju
3 : Tiap unit input (xi, i = 1, 2,…, n) menerima sinyal xi dan meneruskan sinyal ini
ke semua unit lapisan tersembunyi.
4 : Hitung semua keluaran di unit tersembunyi zj (j = 1, .., p).
……………………………….. (2.3)
13
………………………………….
(2.4)
5 : Hitung semua keluaran jaringan di unit yk (k = 1, 2, .., m).
………………………………. (2.5)
………………………………. (2.6)
Perambatan Mundur
6 : Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk
(k = 1, 2, …, m).
................................................. (2.7)
Hitung koreksi bobot (digunakan untuk memperbaharui wjk) dengan laju
percepatan α.
………………………………. (2.8)
7 : Hitung faktor δ unit tersembunyi berdasarkan kesalahan di setiap unit
tersembunyi zj (j = 1, 2, … , p).
………………………………. (2.9)
Hitung informasi kesalahan δ dengan mengalikan
dengan turunan
fungsi aktivasi.
……………………………… (2.10)
14
Hitung perubahan bobot vji (yang akan digunakan untuk merubah bobot vji).
……………………………… (2.11)
Perubahan Bobot
8 : Hitung semua perubahan bobot.
Perubahan bobot garis yang menuju unit keluaran:
……………………………… (2.12)
Perubahan bobot garis yang menuju unit tersembunyi:
……………………………… (2.13)
9 : Tes kondisi berhenti menggunakan RMSE atau maksimum iterasi.
Langkah - langkah tersebut dilakukan berulang – ulang sehingga
dihasilkan jaringan yang memberikan tanggapan benar terhadap semua
masukannya (Hermawan, 2006). Kondisi akan berhenti saat nilai benar di bawah
nilai tertentu yang ditentukan atau maksimum iterasi tercapai. Nilai RMSE
didapat dengan menghitung jumlah keseluruhan nilai sum square error (SSE).
SSE dihitung sebagai berikut:
1. Hitung lapisan prediksi atau keluaran model untuk masukan pertama.
2. Hitung selisih antara nilai luar prediksi dengan nilai target atau sinyal
latihan untuk setiap keluaran.
3. Kuadratkan setiap keluaran kemudian hitung seluruhnya.
……………………………..
(2.14)
15
RMSE dihitung sebagai berikut:
1. Hitung SSE.
2. Hasil SSE dibagi dengan perkalian antara banyak data pada latihan dan
banyak keluaran, kemudian diakarkan.
……………………………..
(2.15)
Setelah pelatihan selesai dilakukan, backpropagation diaplikasikan dengan
menggunakan tahap perambatan maju dari algoritma pelatihan (Puspitaningrum,
2006). Prosedur aplikasinya adalah sebagai berikut:
0 : Inisialisasi bobot. Bobot ini diambil dari bobot – bobot terakhir yang diperoleh
dari algoritma pelatihan.
1 : Untuk setiap vektor masukan, lakukan langkah 2 – 4.
2 : Setiap unit input xi menerima sinyal input xi dan menyiarkan sinyal xi ke semua
unit pada hidden layer.
3 : Setiap unit di hidden layer zj menghitung sinyal keluaran dengan menerapkan
fungsi aktivasi terhadap penjumlahan sinyal – sinyal masukan xi. Sinyal
keluaran dari hidden layer kemudian dikirim ke semua unit pada output layer.
………………………………
(2.16)
4 : Setiap unit keluaran yk menghitung sinyal keluaran dengan menerapkan fungsi
aktivasi terhadap penjumlahan sinyal – sinyal masukan bagi lapisan ini, yaitu
sinyal masukan zj dari hidden layer.
…………………………….
(2.17)
Download