BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Fitur

advertisement
BAB II
TINJAUAN PUSTAKA
BAB II TINJAUAN PUSTAKA
2.1
Fitur-Fitur Musik
Musik terdiri dari fitur-fitur musik seperti mode, harmoni, tempo, ritme,
dan dinamik (loudness) (Meyers, 2007). Fitur-fitur lainnya adalah energi, key,
timbre, pitch, dan lainnya. Beberapa fitur musik yang dapat digunakan untuk
mendapatkan kemiripan audio adalah key, mode, loudness, energi, dan tempo.
Key terdiri dari c, c-sharp, d, e-flat, e, f, f-sharp, g, a-flat, a, b-flat, dan b.
Key merujuk pada nada dasar yang digunakan dalam sebuah musik. Key
mengidentifikasi tonic triad (sebuah chord dengan tiga nada yang terdiri atas root,
third, dan fifth dari sebuah key), chord, dan mode. Sebuah musik bisa dimainkan
dengan key tertentu. Contohnya sebuah musik dimainkan dengan key c akan
memiliki sebuah progresi chord C – Am –F – G7 – C. Pada chord C terdiri dari
sebuah tonic triad do-mi-sol sedangkan chord Am terdiri dari la-do-mi.
Dari identifikasi key, musik mempunyai dua mode yaitu mayor dan minor.
mode digunakan untuk mengekspresikan perasaan melalui musik. Mode mayor
cocok untuk mengekspresikan kegembiraan, suka cita, dan keindahan, sedangkan
mode minor cocok untuk mengekspresikan kelembutan, keluhan dan kesedihan
(Cook, 2002).
Loudness dihubungkan dengan intensitas yang dirasa dari suatu suara.
Loudness sebuah musik bisa berkisar dari lembut dan menenangkan sampai sangat
keras. Rentang loudness musik berkisar dari -100 sampai 100. Musik dengan
loudness tinggi biasanya memiliki energi yang tinggi. Menambah jumlah
instrumen musik pada saat tertentu juga bisa meningkatkan energi.
Berbeda dengan loudness dan energi, tempo adalah sebuah indikasi
kecepatan dari sebuah musik (Duckworth, 2009). Tempo biasanya diukur dengan
beats per minute (bpm). Tempo yang cepat jatuh pada range 140 - 200 bpm
(allegro, vivace, presto) dan tempo lambat diantara 40 dan 80 bpm (largo, lento,
adagio) (Meyers, 2007).
4
5
2.2
Genre Musik
Dalam musik, istilah genre secara simpel berarti tipe atau kelas dari musik
yang kita dengar. Genre musik memberikan ekspektasi bagaimana bunyi musik,
berapa lama musik tersebut, dan bagaimana pendengar harus berperilaku. Pada era
Mozart, ada lima genre utama, yaitu symphony, string quartet, sonata, concerto,
dan opera (Wright, 2011). Pada era musik modern, musik dapat dibagi menjadi
berbagai genre seperti acoustic, blues, classical, country, electronic, emo, hip hop,
jazz, metal, pop, R&B, reggae, rock, dan soul. Deskripsi dari genre-genre tersebut
adalah sebagai berikut:
1.
Pada genre acoustic, musik dimainkan tanpa instrumen listrik seperti gitar
listrik atau biola listrik sehingga suara alat-alat musik terdengar natural.
2.
Genre blues berasal dari musik-musik spiritual dan pujian yang menggunakan
kalimat yang saling bersahutan.
3.
Genre classical adalah kumpulan dari genre musik pada era Mozart dengan
bentuk seperti symphony, string quartet, sonata, concerto, dan opera. Musik
classical biasa dimainkan dengan alat-alat musik tertentu seperti biola, yang
telah ada sejak pertengahan abad ke-19.
4.
Genre country sering diidentikkan dengan musik cowboy. Genre ini lahir
sejak tahun 1920 di Amerika bagian selatan, saat itu musik country
dimainkan memakai gitar, bass, dan steel guitar.
5.
Genre electronic adalah musik yang menggunakan alat musik elektronik dan
teknologi musik elektronik (electromechanical) dalam produksinya. Contoh
alat produksi suara electromechanical adalah telharmonium dan gitar elektrik.
6.
Genre metal mengutamakan permainan gitar dan biasanya dimainkan dengan
tempo lagu yang sangat cepat.
7.
Genre rock mirip dengan metal, mengutamakan permainan gitar tetapi
memiliki tempo lagu yang lebih lambat dari genre metal.
8.
Genre emo adalah gaya musik rock dengan lirik yang ekspresif dan berisi
pengakuan.
9.
Genre hip hop adalah genre musik yang terdiri dari musik berirama dan
disertai dengan rap.
6
10. Genre jazz banyak menggunakan instrumen gitar, trombone, terompet, dan
saksofon. Musik jazz dimainkan dengan banyak improvisasi nada.
11. Genre R&B (Rhythm and Blues) adalah genre musik populer yang
menggabungkan jazz, gospel, dan blues.
12. Genre soul adalah sebuah genre musik yang menggabungkan musik gospel
dan R&B.
13. Genre reggae adalah musik yang menggunakan chord berulang yang kadang
menyebabkan efek hipnotis. Dimainkan dengan drum, perkusi, gitar dan
keyboard.
14. Secara umum musik pop berdurasi 2,5 sampai 3,5 menit, biasanya diisi
dengan elemen ritmik yang jelas dan pusat melodi yang berkesan bagi
pendengar.
2.3
Music Information Retrieval (MIR)
Music Information Retrieval (MIR) merupakan sebuah bidang ilmu untuk
mengambil dan mengolah informasi dari file musik yang berupa metadata ataupun
konten. Berikut ini adalah beberapa task dari penelitian di bidang Music
Information Retrieval berdasarkan The Music Information Retrieval Evaluation
eXchange
(MIREX), yaitu Klasifikasi Genre, Klasifikasi Mood, Identifikasi
Artis, Pengenalan Instrumen, dan Music Annotation (Fu, Lu, Ting, & Zhang,
2011).
Chai merangkum penelitian dalam MIR dalam tiga bidang, yaitu Music
Searching and Query by Examples, Music Classification, dan Music Segmentation
and Summarization (Chai, 2005). Dalam bidang Music Searching and Query by
Examples, sistem MIR membantu pengguna mencari musik berdasarkan isinya,
daripada informasi dari referensi tertentu. Music Classification adalah salah satu
topik populer dalam MIR. Klasifikasi yang dilakukan beragam, bisa berdasarkan
genre musik, penyanyi, dan emosi/mood. Music Summarization bertujuan
menemukan bagian yang paling representative, sering diasumsikan sebagai bagian
yang paling sering diulang dari sepotong musik.
7
2.4
Pengumpulan Dataset
Echo Nest adalah sebuah website yang menyediakan platform untuk para
pengembang aplikasi musik. Website Echo Nest dapat diakses pada alamat
www.echonest.com. Echo Nest menggunakan signal processing dan machine
learning untuk mengekstrak semua fitur dalam musik. Teknik machine learning
ini menyimulasikan bagaimana orang mendengar musik, menggabungkan prinsip
psychoacoustics, persepsi musik, dan pembelajaran adaptif untuk memodelkan
proses fisik dan kognitif dari pendengaran manusia.
Beberapa pendekatan umum untuk mendeskripsikan properti musik
menggunakan signal processing diawali dengan pemotongan musik menjadi
bagian-bagian kecil yang disebut frame. Panjang suatu frame adalah sekitar 20
ms. Metode-metode yang digunakan untuk menganalisis potongan musik tersebut
adalah Root Mean Square (RMS) untuk mendeteksi struktur ritmik musik dan
loudness. Untuk mendeteksi pitch digunakan metode seperti menghitung nilai
zero-crossing, autocorrelation, dan analisis Fourier (Widmer, Dixon, Knees,
Pampalk, & Pohle, 2005). Dengan menggunakan signal processing dan machine
learning, didapatkan fitur-fitur musik yang terlihat pada Gambar 2.1.
Gambar 2. 1 Fitur - Fitur Musik
8
Output dari analisis fitur musik terdiri dari deskripsi lengkap dari musik,
struktur dan atribut global seperti key, loudness, time signature, tempo, beats,
sections, harmoni. Hal ini menjadikan pengembang bisa membuat aplikasiaplikasi yang berhubungan dengan musik.
Echo Nest menyediakan Application Programming Interface (API) yang
bisa digunakan oleh pengembang untuk pembuatan web musik atau pembuatan
play list. Echo Nest API memberikan akses ke pengembang musik untuk
berinteraksi dengan data-data musik Echo Nest dengan cara memanggil metodemetode yang memberikan respon dalam bentuk JSON atau XML.
Metode-metode Echo Nest API terdiri dari lima kelompok besar, yaitu
Artist API Methods, Song API Methods, Track API Method, Playlist API Method
dan Catalog API Method. Metode yang digunakan untuk mendapatkan dataset
fitur musik adalah Song API Method. Dataset merupakan nilai dari satu atau
beberapa fitur musik.
Penggunaan Song API Method disertai penggunaan parameter Bucket
untuk mendapatkan kumpulan informasi dari setiap lagu. Bucket yang digunakan
untuk mendapat dataset dari ekstraksi fitur berupa parameter audio dari sebuah
lagu adalah audio_summary.
Parameter audio yang ditampilkan menggunakan Song API Method dan
Bucket audio_summary ditunjukkan pada Tabel 2.1.
Tabel 2. 1 Parameter Audio
Parameter
title
artist_name
id
artist_id
key
Keterangan
judul dari sebuah lagu
nama pemusik
id lagu
id pemusik
(c, c-sharp, d, e-flat, e, f, f-sharp, g,
a-flat, a, b-flat, b) 0 - 11
mode
(minor, mayor) 0, 1
9
loudness
-100.0 < loudness < 100.0
energi
0.0 < energi < 1.0
tempo
0.0 < tempo < 500.0 (BPM)
Berikut ini adalah contoh penerapan Song API Method untuk menampilkan
informasi dari lagu milik Lady Gaga yang berjudul Just Dance:
http://developer.echonest.com/api/v4/song/search?api_key=96GANOIWHEX5ZI
6LL&format=xml&results=1&artist=lady%gaga&title=just%20dance&bucket=id
:7digital-US&bucket=audio_summary
dataset fitur dari lagu tersebut dapat dilihat pada Gambar
2.1.
Gambar 2. 2 Contoh Dataset Ekstraksi Fitur Lagu dari Echo Nest
2.5
Self Organizing Map (SOM)
Self Organizing Map (SOM) adalah neural model jaringan saraf yang
diaplikasikan secara luas untuk analisis data dan khususnya untuk clustering.
SOM sering digunakan untuk clustering dari sebuah data set yang besar dan
berdimensi tinggi. Di antara arsitektur-arsitektur dan algoritma-algoritma yang
disarankan untuk jaringan saraf buatan, Self Organizing Map mempunyai properti
10
spesial yang secara efektif membuat organisasi representasi internal dari berbagai
fitur sinyal-sinyal input (Kohonen, 2001).
Jaringan SOM menggunakan metode pembelajaran unsupervised yang
memetakan data dari dimensi berapapun ke dalam peta dua dimensi (Kohonen,
2001). Jaringan SOM terdiri dari dua lapisan (layer), yaitu lapisan input dan
lapisan output. Setiap neuron dalam lapisan input terhubung dengan setiap neuron
pada lapisan output. Setiap neuron lapisan output merepresentasikan cluster dari
input yang diberikan.
Jaringan SOM menghasilkan proyeksi ruang data ke peta ruang dua
dimensi sedemikian rupa, sehingga data item yang mirip terletak berdekatan satu
sama lainnya pada peta (Rauber, Pampalk, & Merkl, 2003).
Output
Layer
Y1
…..
Y2
Yj
W1i
W2i
W12
W21
Wj1
W22
Wj2
W11
Input
Layer
X1
X2
…..
Wji
Xi
Gambar 2. 3 Jaringan Self Organizing Map
Pada Gambar 2.3 ditunjukkan bahwa setiap neuron output (Y1, Y2, … Yj)
mempunyai bobot (W11, W12, … Wji) untuk masing-masing neuron input (X1, X2,
… Xi). Proses clustering dilakukan dengan penyesuaian terhadap setiap bobot
pada neuron output. Proses tersebut dimulai dengan menghitung Euclidean
Distance untuk setiap input yang diberikan dengan setiap neuron output,
kemudian dilakukan pencarian neuron output yang mempunyai jarak minimum.
Neuron dengan jarak minimum disebut neuron pemenang. Setelah mendapatkan
neuron Pemenang, perbaharui nilai bobot neuron pemenang dan neuron
tetangganya.
11
Algoritma Self Organizing Map mempunyai langkah-langkah sebagai
berikut:
0.
Inisialisasi bobot Wji.
Tetapkan topologi neuron output
Tetapkan learning rate (α).
Tetapkan jari-jari ketetanggaan topologis.
1.
Selama syarat berhenti salah, lakukan langkah 2-7
2.
Untuk setiap vektor masukan X, lakukan langkah 3-5
3.
Untuk setiap j, hitung Euclidean Distance
.............................................. (2.1)
4.
Cari indeks j sedemikian sehingga Dj minimum.
5.
Untuk semua unit j di dalam ketetanggaan j dan untuk semua i, hitunglah
perubahan bobot
Wij(baru) = Wij(lama) + α (Xi – Wij(lama)) ................................ (2.2)
6.
Perbaharui learning rate.
7.
Kurangi jari-jari ketetanggaan topologis dengan pencacahan tertentu.
8.
Uji kondisi berhenti. Jika benar, maka berhenti.
(Mehrad & Koleini, 2007)
Learning rate dan bobot ditentukan secara acak dengan nilai diantara 0
dan 1. Learning rate dikurangi dengan cara mengalikan learning rate saat ini
dengan nilai diantara 0 dan 1, sedangkan jari-jari ketetanggaan topologis
dikurangi pada tiap iterasi dengan nilai diantara 0 dan 1 sehingga pada akhirnya
jari-jari ketetanggaan topologis bernilai 0.
Kondisi pemberhentian iterasi adalah selisih antara Wij saat itu dan Wij
pada iterasi sebelumnya. Apabila semua Wij hanya berubah sedikit saja, berarti
iterasi sudah mencapai konvergensi sehingga dapat dihentikan (Siang, 2005).
Algoritma SOM berakhir ketika perubahan selisih antara bobot pada sebuah
iterasi ke iterasi berikutnya adalah kurang dari 0,0001 (Xiao, Dow, Eherhart,
12
Miled, & Oppelt, 2003). Jika syarat ini sudah terpenuhi, maka iterasi telah
mencapai konvergensi sehingga algoritma dapat dihentikan.
Proses clustering dengan SOM dapat dilihat pada contoh berikut:
Vektor-vektor yang akan dikelompokkan adalah [1 1 0 0], [0 0 0 1], [1 0 0 0],
[0 0 1 1]. Jumlah neuron output yang digunakan adalah 2 (m = 2), dengan bobot
awal tiap neuron output w1 = [0,2 0,6 0,5 0,9] w2 =[0,8 0,4 0,7 0,3].
Ditetapkan learning rate awal α(0) = 0,6 dengan α(t+1) = 0,5α (t). Radius
ketetanggaan R=0. Carilah matriks bobot setelah 100 (Siang, 2005).
Penyelesaian:
0.
Inisialisasi matriks bobot
Inisialisasi Radius R=0
Inisialisasi Learning Rate α=0,6
1.
Mulai Pelatihan, selama syarat berhenti salah lakukan langkah 2-7
2.
Untuk vektor pertama [1 1 0 0] lakukan langkah 3-5
3.
D(1) =
= 1,02
D(2) =
= 0,76
4.
Dj minimum adalah D(2) (pemenang)
5.
Bobot unit pemenang diperbaharui dengan persamaan
Wi2(baru) = Wi2(lama) + α (Xi – Wi2(lama))
W12(baru) = 0,8 + 0,6(1 – 0,8) = 0,92
W22(baru) = 0,4 + 0,6(1 – 0,4) = 0,76
W32(baru) = 0,7 + 0,6(1 – 0,7) = 0,28
W42(baru) = 0,3 + 0,6(1 – 0,3) = 0,12
Matriks bobot saat ini
13
Ulangi langkah 2 untuk setiap vektor lainnya. Setelah matriks
bobot berubah untuk semua vektor, lanjut ke langkah 6.
6.
Kurangi learning rate
α = 0,5(0,6) = 0,3
7.
Iterasi berlanjut sampai iterasi 100.
Hasil dari perhitungan sampai dengan 100 iterasi akan menghasilkan
matriks bobot yang konvergen dengan matriks sebagai berikut:
Pengelompokan vektor dilakukan dengan menghitung Euclidean Distance
vektor dengan bobot optimal. Vektor pertama [1 1 0 0] memiliki
D(1) =
= 3,25
D(2) =
= 0,25
Pengelompokan ditentukan dengan nilai Euclidean Distance vektor
dengan bobot optimal terkecil. Dengan demikian, vektor pertama termasuk dalam
cluster 2, vektor kedua termasuk dalam cluster 1, vektor ketiga termasuk dalam
cluster 2, dan vektor keempat termasuk dalam cluster 1.
2.6
Facebook Applications
Facebook adalah sebuah layanan jejaring sosial dimana pengguna dapat
membuat profil pribadi yang dilengkapi foto, informasi pribadi, dan daftar
ketertarikan pribadi (self interest). Pengguna dapat berkomunikasi dengan teman
dan pengguna lain melalui pesan dan fitur chat. Pengguna juga dapat bergabung
14
dengan Facebook Groups, menyukai (like) Facebook Pages, dan memakai
Facebook Applications.
Facebook Applications adalah program-program kecil yang berjalan di
dalam Facebook. Hanya pengguna Facebook yang dapat menggunakan Facebook
Applications. Beberapa built-in applications pada Facebook adalah Notes, Events,
dan Photos (Veer, 2011). Photos Applications adalah salah satu aplikasi yang
baling populer, dimana pengguna bisa mengunggah foto dan album. Facebook
mengizinkan pengguna mengunggah foto dalam jumlah yang tidak terbatas.
Selain built-in applications, jenis lain dari Facebook Applications adalah
Platform Applications, yaitu aplikasi web yang di-host diluar Facebook. Pengguna
tidak perlu meng-install aplikasi tersebut, pengguna hanya perlu memberikan izin
aplikasi untuk mengakses informasi personal. Platform Applications biasanya
berbentuk kuis atau permainan.
Sebelum pengguna memulai penggunaan aplikasi dalam Facebook,
pengguna diharuskan memberikan izin pada Facebook Application untuk
berinteraksi dengan profil dan informasi pengguna. Sebagian besar Facebook
Applications menggunakan halaman Request for Permission untuk meminta izin
pengguna (Pearlman & Abraham, 2010).
Gambar 2. 4 Request for Permissions Pada Facebook Application
2.7
Facebook Platform
Secara definisi, Facebook Platform memungkinkan pengembang Facebook
Application dapat membuat aplikasi-aplikasi yang dapat berinteraksi dan
15
terintegrasi dengan layanan inti Facebook. Komponen-komponen ini dibuat
berdasarkan bahasa pembangunan web yang sudah dikenal seperti HTML,
JavaScript, dan SQL agar Facebook Application bisa dibangun dengan mudah
(Maver & Popp, 2009).
Beberapa bagian dari komponen platform tingkat tinggi adalah Graph API,
Authentication, Sosial Plugins, dan Open Graph Protocol. Gaph API adalah inti
dari Facebook Platform, memungkinkan pengembang untuk membaca dan
menulis data ke Facebook. Graph API mewakili benda misalnya foto dan pages
serta hubungan diantara mereka, seperti pertemanan dan likes.
Facebook Authentication memungkinkan aplikasi pengembang untuk
berinteraksi dengan Graph API atas nama pengguna Facebook, dan menyediakan
mekanisme single-sign on pada web, mobile, dan aplikasi desktop.
Social Plugins, termasuk didalamnya Like Button, rekomendasi, dan
Activity Feed memungkinkan pengembang untuk memberikan pengalaman sosial
untuk pengguna mereka dengan hanya beberapa baris HTML. Semua Social
Plugins merupakan perluasan dari Facebook dan telah dirancang secara khusus
sehigga tidak ada data pengguna yang dibagikan di tempat Social Plugins
digunakan.
Open
Graph
Protocol
memungkinkan
pengembang
untuk
mengintegrasikan halaman web ke dalam Social Graph. Memberikan Open Graph
tags pada sebuah halaman web membuat halaman web tersebut setara dengan
sebuah Facebook Page. Hal ini berarti bahwa jika pengguna menekan Like Button
dari sebuah halaman web dengan Open Graph, halaman tersebut akan muncul di
profil pengguna pada bagian Likes and Interests.
2.8
Facebook Query Language (FQL)
Facebook Query Language menawarkan fitur-fitur dan elemen bahasa
seperti Structured Query Language (SQL) yang memberikan akses Facebook
Applications untuk secara langsung meng-query internal data milik Facebook.
FQL tidak menyediakan semua sintak SQL, hanya sintak sederhana seperti
SELECT, WHERE, ORDER BY,
dan LIMIT (Maver & Popp, 2009).
16
Query biasanya dalam bentuk SELECT [fields] FROM [table] WHERE
[conditions].
Beberapa tabel yang bisa digunakan dalam FQL ditunjukkan pada
Tabel 2.2. Tidak seperti SQL, clausa FROM pada FQL hanya bisa memuat satu
tabel. Fungsi lainnya yang tersedia adalah now(), strlen(), substr(), dan
strops().
Tabel 2. 2 Daftar Tabel Facebook
Nama Tabel
album
connection
Isi Tabel
Informasi tentang album foto pengguna.
Informasi tentang teman pangguna dan Facebook Pages
pengguna.
friendlist
like
Informasi tentang teman-teman pengguna.
Informasi tentang ID pengguna yang menyukai (like)
objek Facebook (video, note, link, foto, album)
page
Informasi tentang sebuah Facebook Page
photo
Informasi sebuah foto
profile
Informasi yang bisa terlihat di profil
video
Informasi tentang sebuah video
Download