Как добавить жанр музыки в на python

от admin

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня)

Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code.


Фото Conor Samuel / Unsplash

FoxDot

Это — библиотека для начинающих муз. программистов. Его разработал инженер Райан Киркбрайд (Ryan Kirkbride) в 2015 году. FoxDot задумывался как личный проект — с его помощью Райан устаивал live-сессии под псевдонимом Qirky — однако теперь с инструментом работают по всему миру.

Библиотека использует возможности пакетного протокола Open Sound Control (OCS) и виртуальной среды для аудиосинтеза SuperCollider, которая была разработана в 1996-м, но до сих пор активно поддерживается сообществом. Программист создает объекты с аргументами, обозначающими инструмент, высоту тона, продолжительность звучания. Звуки можно выстраивать в паттерны и зацикливать, чтобы создавать сложные музыкальные конструкции. Код превращается в музыку в реальном времени — вот пример работы с библиотекой:

Если вы хотите изучить инструмент самостоятельно, имеет смысл начать знакомство с подробной официальной документации. Ответы на многие вопросы есть на тематическом форуме. Свои предложения и пожелания с новыми функциями можно оставлять в репозитории на GitHub.

Pippi

Эту библиотеку разработал один из представителей инди-лейбла LuvSound, поддерживающего новую музыку и молодых исполнителей. В своём составе она имеет несколько структур для работы со звуком, включая распространенные SoundBuffer и Wavetable. Предназначение Pippi — работа с уже имеющимися звуками — инструмент позволяет объединять и модифицировать загруженные семплы.

Он также дает возможность строить на основе семплов абсолютно новые акустические конструкции — например, формировать «гранулированные» звуки. Это — метод, при котором семпл разбивают на множество коротких отрезков («гранул») и перемешивают их. Вот код для создания 10-секундного сигнала такого формата из звука в переменной enveloped:

Библиотека Pippi не позволяет воспроизводить музыку в реальном времени, поэтому сама по себе плохо подходит для «живых» концертов. Однако в тематическом треде на Hacker News автор рассказал, что разработал сторонний интерфейс — Astrid. Он автоматически перезапускает музыкальный файл после сохранения, тем самым открывая возможности для выступлений на сцене.

Music-Code

Эту небольшую библиотеку написал дата-саентист Уэсли Лоуренс (Wesley Laurence). Она умеет генерировать аккорды, звуки барабанов и бас-гитар. Свой инструмент автор использует, чтобы создавать семплы для моделей машинного обучения. Библиотека позволяет работать с секвенсорами, агрегаторами, семплерами и различными акустическими эффектами. Кроме музыки, Music-Code позволяет готовить визуализации для муз.композиций.


Фото Tanner Boriack / Unsplash

Пока что у Music-Code совсем небольшая аудитория, так как библиотека довольно молодая — она была опубликована на GitHub всего три месяца назад. Однако автор планирует развивать свой инструмент и надеется, что ему удастся привлечь новых пользователей — особенно среди специалистов в области систем ИИ. Автор планирует записать и выложить видео с инструкциями о том, как подступиться к Music-Code.

Дополнительное чтение в «Мире Hi-Fi»:

Что такое музыкальное программирование — кто и почему им занимается
Где взять аудио для машинного обучения: подборка открытых библиотек
Как устроен Sporth — ЯП для музыкальных live-сессий
Где брать аудио для разработки игр и других проектов
Звуки для UI: подборка тематических ресурсов

Как добавить жанр музыки в на python

Аудиоанализ — область, включающая автоматическое распознавание речи (ASR), цифровую обработку сигналов, а также классификацию, тегирование и генерацию музыки — представляет собой развивающийся поддомен приложений глубокого обучения. Некоторые из самых популярных и распространенных систем машинного обучения, такие как виртуальные помощники Alexa, Siri и Google Home, — это продукты, созданные на основе моделей, извлекающих информацию из аудиосигналов.

Обзор аудиофайлов

Аудио фрагменты представлены в формате .wav. Звуковые волны оцифровываются путем выборки из дискретных интервалов, известных как частота дискретизации (как правило, 44,1 кГц для аудио с CD-качеством, то есть 44 100 семплов в секунду).

Каждый семпл представляет собой амплитуду волны в определенном временном интервале, где глубина в битах (или динамический диапазон сигнала) определяет, насколько детализированным будет семпл (обычно 16 бит, т.е. семпл может варьироваться от 65 536 значений амплитуды).

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

Приложения по обработке звука

К ним можно отнести:

  • Индексирование музыкальных коллекций согласно их аудиопризнакам.
  • Рекомендация музыки для радиоканалов.
  • Поиск сходства для аудиофайлов (Shazam).
  • Обработка и синтез речи — генерирование искусственного голоса для диалоговых агентов.

Обработка аудиоданных с помощью Python

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

Некоторые устройства могут улавливать эти звуки и представлять их в машиночитаемом формате. Примеры этих форматов:

  • wav (Waveform Audio File)
  • mp3 (MPEG-1 Audio Layer 3)
  • WMA (Windows Media Audio)

Процесс обработки звука включает извлечение акустических характеристик, относящихся к поставленной задаче, за которыми следуют схемы принятия решений, которые включают обнаружение, классификацию и объединение знаний. К счастью, некоторые библиотеки Python помогают облегчить эту задачу.

Аудио библиотеки Python

Мы будем использовать две библиотеки для сбора и воспроизведения аудио:

1. Librosa

Это модуль Python для анализа звуковых сигналов, предназначенный для работы с музыкой. Он включает все необходимое для создания системы MIR (поиск музыкальной информации) и подробно задокументирован вместе со множеством примеров и руководств.

Установка:

Для повышения мощности декодирования звука можно установить ffmpeg, содержащий множество аудио декодеров.

2. IPython.display.Audio

С помощью IPython.display.Audio можно проигрывать аудио прямо в jupyter notebook.

Сюда загружен случайный аудиофайл. Попробуем передать его в консоль jupyter.

Загрузка аудиофайла:

Этот фрагмент возвращает звуковой временной ряд в качестве массива numpy с частотой дискретизации по умолчанию 22 кГц моно. Это поведение можно изменить с помощью повторного семплинга на частоте 44,1 кГц.

Повторный семплинг также можно отключить:

Частота дискретизации — это количество аудио семплов, передаваемых в секунду, которое измеряется в Гц или кГц.

Задача

Компании в настоящее время используется классификация музыки, чтобы иметь возможность размещать рекомендации для своих клиентов (например, Spotify, Soundcloud) или просто как продукт (например, Shazam). Определение музыкальных жанров — первый шаг в этом направлении. Методы машинного обучения оказались весьма успешными в извлечении тенденций и моделей из большого объема данных. Те же принципы применяются и в музыкальном анализе.

В этой статье мы рассмотрим, как анализировать аудио / музыкальный сигнал в Python. Затем мы будем использовать навыки, полученные дляклассифицировать музыкальные клипы в разных жанрах.

Обработка аудио с помощью Python

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

источник

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

  • формат mp3
  • Формат WMA (Windows Media Audio)
  • WAV (Waveform Audio File) формат

Аудио библиотеки

Python имеет некоторые отличные библиотеки для обработки аудио, таких как Librosa и PyAudio. Существуют также встроенные модули для некоторых основных функций аудио.

В основном мы будем использовать две библиотеки для сбора и воспроизведения аудио:

1. Либроса

Это модуль Python для анализа звуковых сигналов в целом, но больше ориентированный на музыку. Он включает гайки и болты для построения системы MIR (поиск музыкальной информации). Это было очень хорошо документированный наряду с множеством примеров и учебных пособий.

Более подробное введение, описывающее принципы дизайна упаковки, см. В бумага либроса в SciPy 2015 ,

Установка

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

2. IPython.display.Audio

IPython.display.Audio позволяет воспроизводить звук прямо в блокноте Jupyter.

Загрузка аудиофайла

Это возвращает звуковой временной ряд в виде пустого массива с частотой дискретизации по умолчанию 22 кГц моно. Мы можем изменить это поведение, сказав:

произвести повторную выборку на частоте 44,1 кГц или

отключить повторную выборку.

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

Воспроизведение аудио

С помощью, IPython.display.Audio играть аудио

Это возвращает аудио-виджет в блокнот jupyter следующим образом:

снимок экрана аудио виджета Ipython

Этот виджет не будет работать здесь, но он будет работать в ваших записных книжках. Я загрузил то же самое в SoundCloud, чтобы мы могли его послушать.

Вы можете даже использовать формат mp3 или WMA для примера аудио.

Визуализация аудио

форма волны

Здесь у нас есть график амплитудной огибающей формы волны.

спектрограмма

спектрограмма это визуальное представление спектр из частоты из звук или другие сигналы, поскольку они меняются со временем. Спектрограммы иногда называютsonographs,Голосовые метки, илиvoicegrams, Когда данные представлены на трехмерном графике, их можно назватьводопады, В двумерных массивах первая ось — это частота, а вторая ось — время.

Мы можем отобразить спектрограмму, используя. librosa.display.specshow.

На вертикальной оси показаны частоты (от 0 до 10 кГц), а на горизонтальной оси показано время клипа. Поскольку мы видим, что все действие происходит в нижней части спектра, мы можем преобразовать ось частот в логарифмическую.

Написание аудио

Создание аудиосигнала

Давайте теперь создадим аудиосигнал с частотой 220 Гц. Аудиосигнал — это пустой массив, поэтому мы создадим его и передадим в аудиофункцию.

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

Извлечение функций

Каждый аудиосигнал состоит из множества функций Однако мы должны извлечь характеристики, относящиеся к проблеме, которую мы пытаемся решить. Процесс извлечения признаков для использования их для анализа называется извлечением признаков. Давайте изучим несколько особенностей в деталях.

  • Скорость пересечения нуля

скорость пересечения нуля скорость изменения знака вдоль сигнала, то есть скорость, с которой сигнал изменяется с положительного на отрицательный или обратно. Эта функция интенсивно использовалась в обоих распознавание речи а также поиск музыкальной информации, Обычно он имеет более высокие значения для высокоперкуссионных звуков, как в металле и роке.

Давайте посчитаемскорость пересечения нулядля нашего примера аудиоклип.

Там, кажется, 6 пересечений нуля. Давайте сверимся с librosa.

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

Читать:
Как сделать чтобы флешка открывалась автоматически

librosa.feature.spectral_centroid вычисляет спектральный центроид для каждого кадра в сигнале:

Поднимается спектральный центроид к концу.

  • Спектральный спад

Это мера формы сигнала. Он представляет собой частоту, ниже которой указанный процент от общей спектральной энергии, например, 85%, ложь.

librosa.feature.spectral_rolloff вычисляет частоту спада для каждого кадра в сигнале:

Кепстральные коэффициенты Mel частоты (MFCC) сигнала представляют собой небольшой набор признаков (обычно около 10–20), которые кратко описывают общую форму огибающей спектра. Он моделирует характеристики человеческого голоса.

Давайте на этот раз поработаем с простой петлей волны.

Здесь mfcc вычислил 20 MFCC с более чем 97 кадров.

Мы также можем выполнить масштабирование объекта таким образом, чтобы у каждого измерения коэффициента было нулевое среднее значение и единичная дисперсия:

Характеристики Chroma — интересное и мощное представление для музыкального аудио, в котором весь спектр проецируется на 12 элементов разрешения, представляющих 12 различных полутонов (или цветность) музыкальной октавы.

Пример: классифицируйте песни по разным жанрам.

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

Задача

В его разделе мы попытаемся смоделировать классификатор для классификации песен по разным жанрам. Давайте предположим сценарий, в котором по какой-то причине мы находим на нашем жестком диске набор файлов MP3 со случайным названием, которые, как предполагается, содержат музыку. Наша задача — отсортировать их в соответствии с жанром музыки по разным папкам, таким как джаз, классика, кантри, поп, рок и металл.

Dataset

Мы будем использовать знаменитый GITZAN набор данных для нашего тематического исследования. Этот набор данных был использован для известной статьи в жанровой классификации « Музыкальная жанровая классификация звуковых сигналов «Дж. Цанетакис и П. Кук в IEEE Транзакции по обработке звука и речи 2002 г.

Набор данных состоит из 1000 звуковых дорожек каждые 30 секунд. Он содержит 10 жанров, а именно:блюз, классика, кантри, диско, хип-хоп, джаз, регги, рок, метал и поп.Каждый жанр состоит из 100 аудиоклипов.

Предварительная обработка данных

Перед обучением модели классификации мы должны преобразовать необработанные данные из аудиосэмплов в более значимые представления. Аудиоклипы необходимо преобразовать из формата .au в формат .wav, чтобы сделать его совместимым с волновым модулем python для чтения аудиофайлов. Я использовал открытый исходный код SoX модуль для конвертации. Вот удобный шпаргалка для преобразования SoX.

классификация

  • Функция извлечения

Затем нам нужно извлечь значимые функции из аудиофайлов. Чтобы классифицировать наши аудиоклипы, мы выберем 5 функций, а именно: Цепльные коэффициенты Mel-частоты, Спектральный центроид, Частота пересечения нуля, Частоты цветности, Спектральный спад. Все функции затем добавляются в файл .csv, чтобы можно было использовать алгоритмы классификации.

  • классификация

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

В любом случае, много экспериментов может быть сделано с точки зрения моделей. Вы можете экспериментировать и улучшать свои результаты Использование модели CNN (на изображениях спектрограммы) дает лучшую точность и ее стоит попробовать.

Следующие шаги

Классификация музыкальных жанров — одно из многих направлений Поиск музыкальной информации, Отсюда вы можете выполнять другие задачи с музыкальными данными, такие как отслеживание ударов, генерация музыки, системы рекомендаций, разделение дорожек, распознавание инструментов и т. Д. Анализ музыки — это разнообразная и интересная область. Музыкальная сессия как-то представляет момент для пользователя. Найти эти моменты и описать их — интересная задача в области науки о данных.

Модуль для воспроизведения музыки в python [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 4 месяца назад .

Посоветуйте модуль для воспроизведения музыки в python и покажите пример.

Kromster's user avatar

Gleb's user avatar

Andrio Skur's user avatar

insolor's user avatar

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2022.12.9.43097

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня)

Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code.


Фото Conor Samuel / Unsplash

FoxDot

Это — библиотека для начинающих муз. программистов. Его разработал инженер Райан Киркбрайд (Ryan Kirkbride) в 2015 году. FoxDot задумывался как личный проект — с его помощью Райан устаивал live-сессии под псевдонимом Qirky — однако теперь с инструментом работают по всему миру.

Библиотека использует возможности пакетного протокола Open Sound Control (OCS) и виртуальной среды для аудиосинтеза SuperCollider, которая была разработана в 1996-м, но до сих пор активно поддерживается сообществом. Программист создает объекты с аргументами, обозначающими инструмент, высоту тона, продолжительность звучания. Звуки можно выстраивать в паттерны и зацикливать, чтобы создавать сложные музыкальные конструкции. Код превращается в музыку в реальном времени — вот пример работы с библиотекой:

Если вы хотите изучить инструмент самостоятельно, имеет смысл начать знакомство с подробной официальной документации. Ответы на многие вопросы есть на тематическом форуме. Свои предложения и пожелания с новыми функциями можно оставлять в репозитории на GitHub.

Pippi

Эту библиотеку разработал один из представителей инди-лейбла LuvSound, поддерживающего новую музыку и молодых исполнителей. В своём составе она имеет несколько структур для работы со звуком, включая распространенные SoundBuffer и Wavetable. Предназначение Pippi — работа с уже имеющимися звуками — инструмент позволяет объединять и модифицировать загруженные семплы.

Он также дает возможность строить на основе семплов абсолютно новые акустические конструкции — например, формировать «гранулированные» звуки. Это — метод, при котором семпл разбивают на множество коротких отрезков («гранул») и перемешивают их. Вот код для создания 10-секундного сигнала такого формата из звука в переменной enveloped:

Библиотека Pippi не позволяет воспроизводить музыку в реальном времени, поэтому сама по себе плохо подходит для «живых» концертов. Однако в тематическом треде на Hacker News автор рассказал, что разработал сторонний интерфейс — Astrid. Он автоматически перезапускает музыкальный файл после сохранения, тем самым открывая возможности для выступлений на сцене.

Music-Code

Эту небольшую библиотеку написал дата-саентист Уэсли Лоуренс (Wesley Laurence). Она умеет генерировать аккорды, звуки барабанов и бас-гитар. Свой инструмент автор использует, чтобы создавать семплы для моделей машинного обучения. Библиотека позволяет работать с секвенсорами, агрегаторами, семплерами и различными акустическими эффектами. Кроме музыки, Music-Code позволяет готовить визуализации для муз.композиций.


Фото Tanner Boriack / Unsplash

Пока что у Music-Code совсем небольшая аудитория, так как библиотека довольно молодая — она была опубликована на GitHub всего три месяца назад. Однако автор планирует развивать свой инструмент и надеется, что ему удастся привлечь новых пользователей — особенно среди специалистов в области систем ИИ. Автор планирует записать и выложить видео с инструкциями о том, как подступиться к Music-Code.

Дополнительное чтение в «Мире Hi-Fi»:

Что такое музыкальное программирование — кто и почему им занимается
Где взять аудио для машинного обучения: подборка открытых библиотек
Как устроен Sporth — ЯП для музыкальных live-сессий
Где брать аудио для разработки игр и других проектов
Звуки для UI: подборка тематических ресурсов

Как добавить жанр музыки в на python

Hello fellow learner! Today we are going to learn how to play music in Python using a few simple lines of code.

Method 1: The playsound module

The playsound library is a cross platform module that can play audio files. This doesn’t have any dependencies, simply install the library using the pip command and you are ready to go!

To play the music we just have to use the playsound function and pass the music file path as a parameter. The library works for both mp3 and wav files.

The code for the same is shown below:

The music is played once in the background and then the program is ready for the next part of code to be executed.

Method 2: The pydub Library

The pydub library works only with .wav file format. By using this library we can play, split, merge, edit our .wav audio files.

For the library to work we import two functions namely AudioSegment and play module from playdub.playback module.

Then we simply load the song in .wav format and play the song. The code for the same is shown below:

Method 3: Using the snack sound kit

The snack sound kit can be used to play audio files in almost all the formats inclusing WAV, AU, AIFF, MP3, CSL, SD, SMP, and NIST/Sphere.

This library needs the GUI module Tkinter in order to play sounds. So we are required to import tkinter module before importing snack sound kit.

Playing audio files through snack sound kit involves creating a Tk window and initialize it. Then sound function is called and read function to load the music.

Finally to play the music we use the play function. The code for the same is shown below:

The Output Music

The music below will be the output background music which will be played in each method.

Conclusion

Today we learned playing music in python using simple lines of code and various libraries. Awesome!

Try out the codes yourself and play amazing music in Python. Thank you for reading! Happy coding!

Как добавить жанр музыки в на python

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня)


Фото Conor Samuel / Unsplash

FoxDot

Pippi

Music-Code


Фото Tanner Boriack / Unsplash

Что такое музыкальное программирование — кто и почему им занимается
Где взять аудио для машинного обучения: подборка открытых библиотек
Как устроен Sporth — ЯП для музыкальных live-сессий
Где брать аудио для разработки игр и других проектов
Звуки для UI: подборка тематических ресурсов

Похожие статьи