/ Модель

Характеристики

Контекст
1 024 токена
Параметры
23,2 млн
Опубликована
5 ноя 2022

pop2piano

Распознавание речиАудио → текст3 профессии

Pop2Piano преобразует аудио поп-музыки в фортепианную аранжировку в формате MIDI.

23 430скачиваний за 30 дней17лайковвеса обновлены29 авг 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

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

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

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Pop2Piano — модель Jongho Choi и Kyogu Lee для создания фортепианных аранжировок поп-музыки по аудиозаписи. Она принимает аудиоволну и генерирует последовательность токенов, которые декодируются в MIDI с указанием времени, громкости и нот.

Модель использует архитектуру encoder-decoder Transformer на основе T5 и содержит 23,2 млн параметров. Она предназначена для преобразования поп-композиций в партии для фортепиано без отдельных модулей извлечения мелодии и аккордов. Основным материалом обучения был корейский поп; модель также показывает хорошие результаты на западной поп-музыке и хип-хопе. Для загрузки аудио рекомендуется частота дискретизации 44,1 кГц.

Для работы нужны библиотека Transformers и дополнительные аудиоинструменты. В предоставленной карточке лицензия не указана. Качество результата зависит от входной записи и может различаться для жанров, отличающихся от поп-музыки.

Сценарии применения

  • создание фортепианного MIDI-покрытия поп-песни
  • подготовка фортепианной аранжировки по аудиозаписи
  • преобразование корейской поп-музыки в MIDI-партию для фортепиано
  • создание вариаций фортепианной партии для западной поп-музыки и хип-хопа

Ограничения

Основной обучающий материал — корейская поп-музыка, поэтому результаты для других жанров могут различаться. Для наилучшего качества рекомендуется подавать аудио с частотой дискретизации 44,1 кГц.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

POP2PIANO

Pop2Piano, a Transformer network that generates piano covers given waveforms of pop music.

Model Details

Pop2Piano was proposed in the paper Pop2Piano : Pop Audio-based Piano Cover Generation by Jongho Choi and Kyogu Lee.

Piano covers of pop music are widely enjoyed, but generating them from music is not a trivial task. It requires great expertise with playing piano as well as knowing different characteristics and melodies of a song. With Pop2Piano you can directly generate a cover from a song's audio waveform. It is the first model to directly generate a piano cover from pop audio without melody and chord extraction modules.

Pop2Piano is an encoder-decoder Transformer model based on T5. The input audio is transformed to its waveform and passed to the encoder, which transforms it to a latent representation. The decoder uses these latent representations to generate token ids in an autoregressive way. Each token id corresponds to one of four different token types: time, velocity, note and 'special'. The token ids are then decoded to their equivalent MIDI file.

Model Sources

Usage

To use Pop2Piano, you will need to install the 🤗 Transformers library, as well as the following third party modules:

pip install git+https://github.com/huggingface/transformers.git
pip install pretty-midi==0.2.9 essentia==2.1b6.dev1034 librosa scipy

Please note that you may need to restart your runtime after installation.

Pop music to Piano

Code Example

  • Using your own Audio
>>> import librosa
>>> from transformers import Pop2PianoForConditionalGeneration, Pop2PianoProcessor

>>> audio, sr = librosa.load("<your_audio_file_here>", sr=44100)  # feel free to change the sr to a suitable value.
>>> model = Pop2PianoForConditionalGeneration.from_pretrained("sweetcocoa/pop2piano")
>>> processor = Pop2PianoProcessor.from_pretrained("sweetcocoa/pop2piano")

>>> inputs = processor(audio=audio, sampling_rate=sr, return_tensors="pt")
>>> model_output = model.generate(input_features=inputs["input_features"], composer="composer1")
>>> tokenizer_output = processor.batch_decode(
...     token_ids=model_output, feature_extractor_output=inputs
... )["pretty_midi_objects"][0]
>>> tokenizer_output.write("./Outputs/midi_output.mid")
  • Audio from Hugging Face Hub
>>> from datasets import load_dataset
>>> from transformers import Pop2PianoForConditionalGeneration, Pop2PianoProcessor

>>> model = Pop2PianoForConditionalGeneration.from_pretrained("sweetcocoa/pop2piano")
>>> processor = Pop2PianoProcessor.from_pretrained("sweetcocoa/pop2piano")
>>> ds = load_dataset("sweetcocoa/pop2piano_ci", split="test")

>>> inputs = processor(
...     audio=ds["audio"][0]["array"], sampling_rate=ds["audio"][0]["sampling_rate"], return_tensors="pt"
... )
>>> model_output = model.generate(input_features=inputs["input_features"], composer="composer1")
>>> tokenizer_output = processor.batch_decode(
...     token_ids=model_output, feature_extractor_output=inputs
... )["pretty_midi_objects"][0]
>>> tokenizer_output.write("./Outputs/midi_output.mid")

Example

Here we present an example of generated MIDI.

  • Actual Pop Music
  • Generated MIDI

Tips

  1. Pop2Piano is an Encoder-Decoder based model like T5.
  2. Pop2Piano can be used to generate midi-audio files for a given audio sequence.
  3. Choosing different composers in Pop2PianoForConditionalGeneration.generate() can lead to variety of different results.
  4. Setting the sampling rate to 44.1 kHz when loading the audio file can give good performance.
  5. Though Pop2Piano was mainly trained on Korean Pop music, it also does pretty well on other Western Pop or Hip Hop songs.

Citation

BibTeX:

@misc{choi2023pop2piano,
      title={Pop2Piano : Pop Audio-based Piano Cover Generation}, 
      author={Jongho Choi and Kyogu Lee},
      year={2023},
      eprint={2211.00895},
      archivePrefix={arXiv},
      primaryClass={cs.SD}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Архитектура Pop2PianoForConditionalGeneration неизвестна transformers в образе рантайма.

Класс архитектуры
Pop2PianoForConditionalGeneration
Ревизия весов
142e8ed

0 моделей