Klasifikasi Genre Musik Menggunakan Neural Network
Paper Review oleh Kelvin Supranata Wangkasa, Kevin Kurniawan, dan Satria Wiro Agung
Editor: Amalia Zahra, S.Kom., Ph.D.
Penelitian yang dilakukan oleh Nikki Pelchat dan Craig M. Gelowitz bertujuan untuk melakukan klasifikasi kategori dari lagu/musik dengan menggunakan metode Machine Learning Convolutional Neural Network (CNN). Paper ini merupakan penelitian lanjutan dari penelitian yang telah dilakukan oleh J.Despois. Namun pada penelitian ini, Nikki Pelchat dan Craig M. melakukan beberapa perubahan, seperti perubahan Activation Function, penggunaan Window Functions yang berbeda untuk memproses sinyal digital ketika mengubah mp3 menjadi spectrogram, perbedaan pada jumlah layer CNN, perubahan dataset hingga jumlah genre yang digunakan.
Dataset
Dataset yang dipakai untuk training dan testing berjumlah 1880 lagu dengan durasi masing-masing 3 menit dan dikategorikan ke 10 genre. Dataset musik tersebut akan diubah ke monochannel dan dikonversi ke spectrogram dengan menggunakan library Sound eXchange (SOX). Spectrogram dari setiap lagu kemudian akan dipotong menjadi ukuran 128 x 128 piksel di mana setiap potongan merepresentasikan 2,56 detik dari suatu lagu. Jadi untuk setiap lagu yang berdurasi 3 menit akan memiliki 70 buah potongan spectrogram. Dengan demikian, total potongan spectrogram dari 1880 lagu akan berjumlah 132000 (70 * 1880). Dataset ini kemudian akan dipisah untuk masing-masing dataset training, validation dan testing dengan perbandingan 7 : 2 : 1.
Contoh gambar spectrogram dari suatu lagu
Tabel Struktur Genre Dataset 1
Model
Model CNN akan menerima input berupa potongan spectrogram dari setiap lagu dengan output berupa 10 kategori musik pada tabel di atas. Model CNN ini menggunakan activation function ReLU, Optimizer Adam dan tambahan layer dropout dengan probabilitas sebesar 0,5 untuk mengurangi overfitting. Struktur model yang digunakan pada penelitian ini adalah sebagai berikut:
Hasil Eksperimen
Penelitian ini dimulai dengan melakukan testing terhadap model original yang digunakan Despois, dan akurasi awal yang didapatkan adalah sebesar 47%. Setelah itu, modifikasi dilakukan dengan mengurangi jumlah genre dari 27 menjadi 7. Akurasi yang didapatkan setelah melakukan pengurangan genre meningkat menjadi 62%.
Modifikasi dilakukan kembali dengan mengubah activation function yang digunakan dari ELU menjadi ReLU. Pemilihan activation function dilakukan dengan melakukan testing terhadap beberapa activation function seperti TanH, ELU, ReLU, dan Leaky ReLU. Perubahan activation function ini meningkatkan akurasi menjadi 67%. Selanjutnya, peneliti mencoba untuk mengubah ukuran gambar dari spectrogram dengan meningkatkan dan mengurangi ukuran piksel spectrogram yang digunakan. Namun, akurasi yang didapatkan mengalami penurunan pada peningkatan maupun pengurangan ukuran pixel spectrogram.
Penyesuaian selanjutnya dilakukan dengan mencoba mengaplikasikan beberapa filter yang berbeda untuk mengubah lagu menjadi spectrogram. Setelah melakukan analisa terhadap filter Hann, Bartlett, Hamming, Rectangular, dan Kaiser, peningkatan akurasi terjadi ketika menggunakan filter Hamming dengan akurasi sebesar 71%.
Setelah beberapa perubahan telah dilakukan, peneliti mencoba mengubah kembali jumlah genre menjadi 10 meskipun terjadi pengurangan akurasi menjadi 69%. Hal ini dilakukan sehingga klasifikasi dapat dilakukan terhadap dataset yang dimiliki peneliti. Awalnya penelitian ini menggunakan CNN dengan jumlah layer sebanyak 4 layer. Namun setelah peneliti mencoba menambah dan mengurangi jumlah layer, terjadi peningkatan akurasi ketika jumlah layer ditambahkan menjadi 6 layer. Sehingga akurasi akhir meningkat menjadi 72%.
Untuk memastikan model yang digunakan dapat menghasilkan akurasi yang konsisten, model dilatih kembali menggunakan dataset yang berbeda dan menghasilkan akurasi sebesar 79%. Peneliti menduga akurasi dari dataset kedua lebih tinggi disebabkan karena adanya distribusi jumlah lagu yang seimbang antar genre. Oleh karena itu, peneliti mencoba kembali menyeimbangkan distribusi jumlah lagu pada dataset pertama dan didapatkan akurasi sebesar 85% pada data testing. Hal ini menunjukkan adanya peningkatan akurasi ketika distribusi datanya seimbang.
Pengembangan yang dapat dilakukan dari penelitian ini adalah sebagai berikut:
- Mengaplikasikan filter yang berbeda saat mengubah file mp3 menjadi spectrogram. Pada penelitian ini, filter yang digunakan adalah Hann, Bartlett, Hamming, Rectangular, and Kaiser dengan hasil terbaik didapatkan dengan menggunakan filter
- Melakukan training model dengan menggunakan spectrogram yang berwarna. Pada penelitian ini, spectrogram yang digunakan masih berupa grayscale.
- Melakukan testing dengan pendekatan yang berbeda. Kali ini testing hanya dilakukan dengan mengklasifikasikan gambar potongan spectrogram dari suatu lagu. Untuk ke depannya, mungkin testing bisa dilakukan berdasarkan spectrogram utuh dari suatu lagu untuk mengklasifikasikan genre lagu tersebut. Misalnya dalam suatu lagu dengan durasi 3 menit akan menghasilkan 70 gambar spectrogram dengan masing-masing durasi 2,56 detik. Dari 70 gambar spectrogram tersebut, seluruhnya akan digunakan kembali sebagai fitur untuk mengklasifikasikan suatu lagu dengan utuh.
- Mengaplikasikan algoritma genre classifier untuk menentukan apakah user akan suka dengan suatu lagu berdasarkan preferensi lagu yang dimiliki user.
Referensi: Pelchat, N., & Gelowitz, C. M. (2020). Neural network music genre classification. Canadian Journal of Electrical and Computer Engineering, 43(3), 170-173.