Jika Anda masuk ke
Spotify.me , Anda bisa mendapatkan ringkasan yang dipersonalisasi tentang bagaimana Spotify memahami Anda melalui musik yang Anda dengarkan di situs Spotify ini. Ini luar biasa!
Saya mendengarkan banyak musik dan menikmati bekerja dengan data, jadi itu mengilhami saya untuk mencoba menganalisis koleksi musik saya.
Saya sangat ingin tahu apakah ada bahan khusus yang membentuk lagu-lagu hit. Apa yang membuat mereka keren? Mengapa kita suka hit, dan mereka punya "DNA" tertentu?
Tantangan
Ini mendorong saya untuk mencoba menjawab dua pertanyaan dengan data Spotify:
- Seperti apa daftar putar musik saya?
- Apakah ada atribut audio tertentu yang umum untuk semua lagu hit?
Alat-alatnya
Untungnya, ada alat yang sangat sederhana untuk terhubung ke Spotify, menerima data, dan kemudian memvisualisasikannya.
Kami akan bekerja dengan
bahasa pemrograman
Python 3 , pustaka Python
Spotipy , yang memungkinkan Anda terhubung ke
API Web Spotify , dan kami akan memvisualisasikan data menggunakan
plot.ly dan
Seaborn .
Array data
Di akhir setiap kode, Spotify menyusun daftar putar dari 100 lagu yang paling sering diputar. Dataset yang saya gunakan sudah diunggah ke Kaggle:
Top Spotify Tracks of 2018 . Daftar 100 lagu paling populer dengan Spotify tampaknya seperti jumlah data yang masuk akal untuk mempelajari hit, bukan?
Ayo mulai!
Untuk memulai, Anda perlu membuat akun di
developer.spotify.com . Setelah itu, Anda dapat langsung mengakses
Spotify Web API Console dan mulai menjelajahi berbagai titik akhir API.
Catatan : tautan ke kode yang saya gunakan untuk proyek adalah di akhir posting.
Setelah tersambung ke Spotify Web API, kami akan membuat objek Spotify menggunakan Perpustakaan Spotipy Python, yang kemudian akan kami gunakan untuk mengirim permintaan ke titik akhir Spotify.
import spotipy from spotipy.oauth2 import SpotifyClientCredentials from spotipy import util cid =”Your-client-ID” secret = “Your-Secret” client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret) sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
Menganalisis Data Daftar Putar Saya
Ini adalah salah satu langkah terpenting dalam ilmu data. Tujuan kami di sini adalah untuk memahami jenis musik di daftar putar saya, mengekstrak pengamatan menarik dan membandingkannya dengan karakteristik audio dari ratusan lagu populer tahun 2018.
Grafik Frekuensi Pelaku
Seberapa sering artis muncul di daftar putar sayaMelihat histogram ini, saya dapat memahami seberapa sering artis bertemu di salah satu daftar putar saya.
Spesifikasi audio
Sekarang mari kita lihat fitur audio dari lagu-lagu dari daftar putar. Spotify telah menyusun daftar
spesifikasi audio untuk setiap lagu di Spotify! Berikut adalah deskripsi singkat tentang fitur yang akan kami gunakan dalam artikel ini:
Instrumentalness : memprediksi bahwa tidak ada vokal di trek. Dalam konteks ini, suara "oh" dan "aaaa" dianggap instrumental. Rap atau lagu dengan kata-kata jelas "vokal". Semakin dekat nilai instrumental ke 1.0, semakin tinggi kemungkinan lagu tersebut tidak mengandung suara.
Energi : ini adalah nilai dalam kisaran 0,0 hingga 1,0 yang mencirikan kriteria untuk memahami "kecerahan" dan "aktivitas" dari sebuah lagu. Biasanya komposisi energik cepat, keras dan berisik. Misalnya, death metal memiliki energi tinggi, dan pengantar Bach memiliki indikator rendah pada skala ini.
Akustik : Ukuran keyakinan bahwa suatu komposisi akustik dalam kisaran 0,0 hingga 1,0. Nilai 1,0 berarti sangat percaya diri bahwa komposisinya akustik.
Liveness : Mengenali keberadaan pendengar dalam rekaman. Semakin tinggi nilai live, semakin tinggi kemungkinan lagu itu ditampilkan secara langsung. Nilai di atas 0,8 memberikan kepercayaan serius dalam kinerja live.
Speechiness (teks) : Speechiness mendeteksi keberadaan teks dalam sebuah lagu. Jika kemampuan bicara komposisi di atas 0,66, maka kemungkinan besar terdiri dari teks, nilai dari 0,33 menjadi 0,66 berarti bahwa lagu tersebut dapat berisi musik dan kata-kata, dan nilai di bawah 0,33 berarti bahwa lagu tersebut tidak mengandung kata apa pun.
Danceability : Danceability menggambarkan kesesuaian trek tari berdasarkan elemen musik seperti tempo, stabilitas irama, kekuatan beat dan keteguhan umum. Komposisi dengan nilai 0,0 adalah yang paling tidak dapat menari, dengan nilai 1,0 adalah yang paling dapat ditari.
Valence : nilai ini dalam kisaran 0,0 hingga 1,0 menggambarkan kepositifan musik yang disampaikan oleh lagu. Lagu-lagu dengan valensi tinggi terdengar lebih positif (mis. Mereka menyampaikan kebahagiaan, kegembiraan atau euforia), dan lagu-lagu dengan valensi rendah terdengar lebih negatif (mis. Mereka sedih, tertekan atau marah).
Distribusi gaya musik di daftar putar sayaHasil Pengamatan:
- Sebagian besar lagu dalam daftar putar saya memiliki distribusi tarian yang luas dan tidak ada banyak lagu “bahagia” di dalamnya, seperti yang dapat dilihat dari frekuensi lagu yang tinggi dengan nilai di bawah 0,5 valensi . Karena itu, kita dapat mengatakan bahwa saya suka lagu-lagu yang dapat Anda menari (dan itu benar!)
- Ada keturunan yang curam di tangga lagu untuk berbicara, instrumentalness dan sedikit semangat . Ini memberitahu kita bahwa dalam musik dari daftar putar saya jarang ada kata-kata, ada beberapa komposisi instrumental dan lagu yang ditampilkan secara langsung.
- Akustik didistribusikan secara merata antara 0 dan 1, yaitu, dalam atribut ini saya tidak punya preferensi. (Saya biasanya suka lagu akustik, tapi saya tidak akan mencari sampul akustik untuk setiap lagu).
- Akhirnya, energi didistribusikan secara normal dan memiliki ekor kecil di kedua ujungnya, yang berarti lebih sedikit kesempatan ditambahkan ke daftar putar saya. Faktanya, saya suka komposisi dengan energi sedang.
- Komposisi saya tidak begitu populer
2018 Top 100 Lagu Analisis Data
Setelah mengunduh dan mengimpor array data dari Kaggle ke dalam aplikasi saya, saya mulai dengan menganalisis artis paling populer, ditentukan oleh jumlah hit pada daftar ini.
2018 Penampilan Top 100 Lagu berdasarkan FrekuensiArtis paling sering terlihat di Top 100 Lagu 2018Cuplikan kodePoskan Malone dan XXXTENTACIONSekarang mari kita periksa karakteristik audio dari seratus lagu paling populer di dataset kami, dan lihat bagaimana tampilannya! Kami akan membuat histogram yang sama dengan daftar putar saya sehingga Anda dapat membandingkannya nanti.
Distribusi gaya musik di 100 lagu teratas 2018Melihat histogram, kita dapat melihat bahwa 100 komposisi teratas memiliki karakteristik sebagai berikut:
- Tarian dan energi sangat tinggi, tetapi kemungkinan pertunjukan live yang rendah, kehadiran teks dan akustik (kita sudah melihat beberapa tanda bahwa daftar putar saya tidak sekeren 100 teratas).
Sebagai contoh, lagu “In My Feelings” oleh Drake dari dataset kami memiliki nilai energi yang tinggi dan dapat menari.
Akhirnya, saya memutuskan untuk membuat diagram kelopak dari 100 lagu teratas dan memberikan karakteristik audio di daftar putar saya.
100 lagu teratas ditampilkan dengan warna biru dan lagu saya ditampilkan dengan warna oranye.
Kesimpulan
Jadi sepertinya saya punya jawaban untuk kedua pertanyaan dari awal posting. Saya berhasil melihat bagaimana musik saya terlihat dan saya menemukan DNA lagu-lagu hit. Karakteristik audio dari daftar putar saya agak seperti 100 teratas, tetapi saya memiliki lebih banyak lagu akustik dan kinerja live yang lebih sedikit.
Ingin menulis lagu hit? Buat tariannya, dengan energi besar dan sedikit kepositifan.
Saya senang dengan hasilnya, tetapi saya ingin melanjutkan penelitian.
Kode untuk seluruh proyek diposting di
GitHub .
Inilah yang saya rekomendasikan
untuk dilakukan selanjutnya :
- Pelajari bagaimana Anda dapat menggunakan daftar putar Anda untuk menentukan preferensi pribadi Anda dan merekomendasikan iklan yang mungkin Anda sukai.
- Gunakan K-Secondary Machine Learning Clustering Algorithm untuk mengetahui lagu mana yang mirip dengan lagu Anda. Jadi Anda bisa mencari lagu baru yang mungkin Anda sukai.
- Gunakan pembelajaran mesin untuk memprediksi "popularitas" lagu berdasarkan karakteristik audio mereka
Terima kasih kepada Alvin Chun , Ashrith dan John Koch untuk artikel yang bermanfaat tentang topik ini. Spotify dan Spotipy, terima kasih untuk API dan pustaka yang mengagumkan!