Есть ли что-то общее у разных песен-хитов?

Автор оригинала: Tobi Oluwole
  • Перевод
image

Если выполнить вход на Spotify.me, то можно получить персонализированную сводку того, как Spotify понимает вас через музыку, которую вы слушаете на этом сайте Spotify. Это круто!

Я слушаю много музыки и люблю работать с данными, поэтому это вдохновило меня на попытку анализа моей коллекции музыки.

Мне было очень любопытно, существуют ли какие-то конкретные ингредиенты, из которых составлены хитовые песни. Что делает их крутыми? Почему нам нравятся хиты, и есть ли у них определённая «ДНК»?

Задача


Это привело меня к попытке ответить при помощи данных Spotify на два вопроса:

  1. На что похож мой музыкальный плейлист?
  2. Существуют ли конкретные атрибуты аудио, общие для всех хитовых композиций?

Инструменты


К счастью, есть очень простые инструменты, позволяющие подключиться к Spotify, получить данные, а затем визуализировать их.

Мы будем работать с языком программирования Python 3, библиотекой Python Spotipy, позволяющую подключаться к Spotify Web API, а визуализировать данные будем с помощью plot.ly и Seaborn.

Массив данных


В конце каждого кода Spotify компилирует плейлист из 100 самых часто воспроизводимых песен. Использованный мной массив данных уже выложен на Kaggle: Top Spotify Tracks of 2018. Список 100 самых популярных песен со Spotify кажется вполне разумным массивом данных для изучения хитов, не правда ли?

Приступим!


Для начала нужно создать аккаунт на developer.spotify.com. После этого можно получить прямой доступ к Spotify Web API Console и начать исследовать различные конечные точки API.

Примечание: ссылка на код, который я использовал для проекта, находится в конце поста.

После подключения к Spotify Web API мы создадим при помощи Spotipy Python Library объект Spotify, который затем будем использовать для передачи запросов к конечной точке 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)

Анализ данных моего плейлиста


Это один из самых важных этапов в data science. Наша цель здесь — понять тип музыки в моём плейлисте, извлечь любые интересные наблюдения и сравнить их с характеристиками аудио сотни популярных композиций 2018 года.

График частоты исполнителей



Частота появления исполнителей в моём плейлисте

Взглянув на эту гистограмму, я могу понять, насколько часто исполнители встречаются в одном из моих плейлистов.

Характеристики аудио


Теперь давайте взглянем на характеристики аудио (audio features) песен из плейлиста. Spotify составил список характеристик аудио для каждой композиции на Spotify! Вот краткое описание характеристик, которые мы будем использовать в этой статье:

Instrumentalness (инструментальность): прогнозирует, что в треке нет вокала. В этом контексте звуки «оу» и «а-а-а» считаются инструментальными. Рэп или треки со словами очевидно являются «вокальными». Чем ближе значение инструментальности к 1.0, тем выше вероятность того, что в треке не содержится голоса.

Energy (энергия): это величина в интервале от 0.0 до 1.0, характеризующая критерий восприятия «яркости» и «активности» песни. Обычно энергичные композиции быстрые, громкие и шумные. Например, высокой энергией обладает death metal, а прелюдия Баха имеет по этой шкале низкие показатели.

Acousticness (акустика): мера уверенности в том, что композиция является акустической в интервале от 0.0 до 1.0. Значение 1.0 обозначает высокую уверенность в том, что композиция акустическая.

Liveness (живое исполнение): распознаёт присутствие в записи слушателей. Чем больше значения liveness, тем выше вероятность того, что песня исполнялась вживую. Значение выше 0.8 даёт серьёзную уверенность в живом исполнении.

Speechiness (текст): Speechiness обнаруживает присутствие текста в песне. Если speechiness композиции выше 0.66, то она скорее всего состоит из текста, значение от 0.33 до 0.66 означает, что песня может содержать и музыку, и слова, а значение ниже 0.33 означает, что в песне нет никаких слов.

Danceability (танцевальность): Danceability описывает пригодность дорожки для танцев на основании таких музыкальных элементов, как темп, стабильность ритма, сила долей и общее постоянство. Композиции со значением 0.0 наименее танцевальные, со значением 1.0 — наиболее танцевальные.

Valence: эта величина в интервале от 0.0 до 1.0 описывает музыкальную позитивность, передаваемую песней. Песни с высокой valence звучат более позитивно (т.е. они передают счастье, радость или эйфорию), а перни с низкой valence звучат негативнее (т.е. они печальные, депрессивные или гневные).




Распределение музыкальных стилей в моём плейлисте

Результаты наблюдений:

  • Большинство композиций в моём плейлисте имеет широкое распределение танцевальности и в нём не так много «счастливых» песен, что видно из высокой частотности композиций со значениями ниже 0.5 valence. Поэтому можно сказать, что мне нравятся песни, под которые можно танцевать (и это правда!)
  • На графике есть крутой спуск вниз для speechiness, instrumentalness и немного liveness. Это говорит нам, что в музыке из моего плейлиста обычно редко бывают слова, в нём мало инструментальных композиций и песен, исполняемых вживую.
  • Acousticness распределена приблизительно равномерно между 0 и 1, то есть в этом атрибуте у меня нет предпочтений. (Обычно мне нравятся акустические песни, но я не стал бы искать акустические каверы для каждой песни).
  • Наконец, energy распределена нормально и имеет небольшие хвосты с обоих концов, что означает меньшую вероятность добавления в мой плейлист. То есть по сути мне нравятся композиции со средней энергией.
  • Мои композиции не так уж популярны

Анализ данных Top 100 Songs 2018 года


Скачав и импортировав массив данных с Kaggle в моё приложение, я начал с анализа самых популярных исполнителей, определённых по количеству попаданий в этот список.


Исполнители в Top 100 Songs 2018 года по частоте

Исполнители, чаще всего встречающиеся в Top 100 Songs 2018


Фрагмент кода




Post Malone и XXXTENTACION

Теперь давайте исследуем характеристики аудио ста самых популярных композиций в нашем массиве данных, и посмотрим, как они выглядят! Мы создадим такую же гистограмму, как и для моего плейлиста, чтобы можно было позже их сравнить.




Распределение музыкальных стилей в top 100 songs 2018

Взглянув на гистограмму, мы можем увидеть, что композиции top 100 обладают следующими характеристиками:

  • Очень высокая танцевальность и энергия, но низкая вероятность живого исполнения, наличия текста и акустичности (мы уже видим некоторые признаки того, что мой плейлист не такой крутой, как top 100 ).

Например, песня «In My Feelings» Дрейка из нашего массива данных имеет высокую danceable и относительно высокое значение energy.


Наконец, я решил создать лепестковую диаграмму песен top 100 и наложить на неё характеристики аудио моего плейлиста.

Песни из Top 100 показаны синим, а мои песни — оранжевым.


Заключение


Итак, похоже, у меня есть ответы на оба вопроса из начала поста. Мне удалось увидеть, как выглядит моя музыка и я нашёл ДНК хитовых композиций. Характеристики аудио из моего плейлиста немного похожи на top 100, но у меня больше акустических песен и меньше живого исполнения.

Хотите написать хитовую песню? Сделайте её танцевальной, с большой энергией и долей позитивности.

Я доволен получившимися результатами, но хочу продолжить исследования.

Код всего проекта выложен на GitHub.

Вот что я рекомендую сделать дальше:

  • Изучите, как можно использовать ваш плейлист, чтобы определить персональные предпочтения и рекомендуемую рекламу, которая вам может понравиться.
  • Использовать алгоритм кластеризации машинного обучения «K-среднее», чтобы узнать, какие песни похожи на ваши. Так можно искать новые песни, которые вам могут понравиться.
  • Использовать машинное обучение для прогнозирования «популярности» песен на основании их характеристик аудио



Благодарю Элвина Чуна, Ashrith и Джона Коха за полезные статьи по этой теме. Spotify и Spotipy, спасибо за потрясающие API и библиотеку!
Поддержать автора
Поделиться публикацией

Похожие публикации

Комментарии 13

    0
    Напомнило:

    The Axis Of Awesome

      0
      Danceability часто определяется первыми 5-10-15 секундами. Ритмической структурой (ударные, бас, луп, риф) или строчкой из припева. Товар должен быть показан лицом.

      Для примера: Adamski — Killer, Queen — Another One Bites the Dust, Propaganda — Dr. Mabuze, Moby — Porcelain, Deep Purple — Smoke On The Water, Blondie — Heart Of Glass, M People — Moving on Up. С первых секунд ясно, что это определено быть хитом.

      Будет интересно сделать анализ не по всей песне, а лишь по первым секундам.
        0
        Queen — Another One Bites the Dust — танцевальная? о_О
        0
        с первых секунд обычно понятно что это «танец», но не факт что будет хитом. Одного ритма мало.
          0

          Для полноты картины интересно посмотреть другой вариант — признаки есть, а хитом не стала.

            0
            Плюс стала хитом в Великобритании, но не в США, к примеру.
          +1
          Как музыкальным ремесленникам сделать коммерчески успешную жвачку, о которой все забудут уже через несколько месяцев? Сочинить композицию в строгом соответствии с рецептом, изложенным в статье (сделать замеры, затем испечь трек, следуя всем модным тенденциям).
          Как написать что-то, что не совпадает с трендами, но выстреливает и само становится трендом — вот в чём вопрос.
            0
            Взять за основу, что-то знакомое, понятное и подать в новой форме. Это как суши: все у нас ели рис и рыбу, тут ничего нового, но вот именно способ донесения…
            0
            После анализа делаем поиск по большой БД по вычисленным параметрам «ДНК». И получим отличную систему рекомендаций. Или системы поиска потенциальных хитов, которые не выстрелили по причине отсутствия раскрутки например)
              0
              А можно как-то можно проанализировать трек не залитый в Spotify по этим параметрам?
                0
                Хотите написать хитовую песню? Сделайте её танцевальной, с большой энергией и долей позитивности

                Противоположное, как ни странно, тоже может выстрелить :) Пример: баллады — вполне себе порой хитовые вещи, но ни позитива, ни энергетики: печальное и медленное произведение.

                С танцевальностью тут сложно. С одной стороны, под балладу не поотжигаешь, как под «Wild dances», с другой строны, под них вполне танцуют: парно, обнявшись, и положив голову на плечи друг друга, медленно шатаясь в такт музыке :) Но в целом, наверное, танцевальность, низкая.
                  0
                  «чтобы узнать, какие песни похожи на ваши. Так можно искать новые песни, которые вам могут понравиться»

                  Так найдутся только похожие песни, и их новизна не сильно порадует… Попробуйте найти людей, с похожей диаграммой. И те песни из их топа, которых вы не слышали — вот они будут интересны :)

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое