Skip to main content

Unofficial PyTorch dataset for Slakh

Project description

Slakh PyTorch Dataset

Unofficial PyTorch dataset for Slakh.

This project is a work in progress, expect breaking changes!

Roadmap

Automatic music transcription (AMT) usecase with audio and labels

  • Specify dataset split (original, splits_v2, redux)
  • Add new splits (redux_no_pitch_bend, ...) (Should also be filed upstream) (implemented by skip_pitch_bend_tracks)
  • Load audio mix.flac (all the instruments comined)
  • Load individual audio mixes (need to combine audio in a streaming fashion)
  • Specify train, validation or test group
  • Choose sequence length
  • Reproducable load sequences (usefull for validation group to get consistent results)
  • Add more instruments (eletric-bass, piano, guitar, ...)
  • Choose between having audio in memory or stream from disk (solved by max_files_in_memory)
  • Add to pip

Audio source separation usecase with different audio mixes

  • List to come

Usage

  1. Download the Slakh dataset (see the official website). It's about 100GB compressed so expect using some time on this point.

  2. Install the Python package with pip:

pip install slakh-dataset
  1. Convert the audio to 16 kHz (see https://github.com/ethman/slakh-utils)

  2. You can use the dataset (AMT usecase):

from torch.utils.data import DataLoader
from slakh_dataset import SlakhAmtDataset


dataset = SlakhAmtDataset(
    path='path/to/slakh-16khz-folder'
    split='redux', # 'splits_v2','redux-no-pitch-bend'
    audio='mix', # 'mix'
    instrument='electric-bass', # or `midi_programs`
    # midi_programs=[33, 34, 35, 36, 37],
    groups=['train'],
    skip_pitch_bend_tracks=True,
    sequence_length=327680,
    max_files_in_memory=200,
)

batch_size = 8
loader = DataLoader(dataset, batch_size, shuffle=True, drop_last=True)

# train model on dataset...

Acknowledgement

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slakh-dataset-0.1.7.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

slakh_dataset-0.1.7-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file slakh-dataset-0.1.7.tar.gz.

File metadata

  • Download URL: slakh-dataset-0.1.7.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.7.2 Darwin/20.1.0

File hashes

Hashes for slakh-dataset-0.1.7.tar.gz
Algorithm Hash digest
SHA256 06cb92b744b54b2ff76c5f6683a6b6058f14b7d13601140c9b40b12e11fb64d9
MD5 e9d0b18e7a8da27cb44dbe421dd6cc11
BLAKE2b-256 6757a25cf5262d8ac75de9ad878a775f155f52c1ab37b1ad7707b22cab3707d6

See more details on using hashes here.

File details

Details for the file slakh_dataset-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: slakh_dataset-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 48.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.7.2 Darwin/20.1.0

File hashes

Hashes for slakh_dataset-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 aefa85bc2a6e70f85b4d327d2023904b8dce84b850b5d5a23a3e500b1c8856e3
MD5 4bb28cbdec0c3646cf63265b4ae83d38
BLAKE2b-256 3c55bd9b6132cf3ce09ae2701f28faf78e7ece28b8668eebea6d589b0cb05c3b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page