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 byskip_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
ortest
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
-
Download the Slakh dataset (see the official website). It's about 100GB compressed so expect using some time on this point.
-
Install the Python package with pip:
pip install slakh-dataset
-
Convert the audio to 16 kHz (see https://github.com/ethman/slakh-utils)
-
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
-
This code is based on the dataset in Onset and Frames by Jong Wook Kim which is MIT Lisenced.
-
Slakh http://www.slakh.com/
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06cb92b744b54b2ff76c5f6683a6b6058f14b7d13601140c9b40b12e11fb64d9 |
|
MD5 | e9d0b18e7a8da27cb44dbe421dd6cc11 |
|
BLAKE2b-256 | 6757a25cf5262d8ac75de9ad878a775f155f52c1ab37b1ad7707b22cab3707d6 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | aefa85bc2a6e70f85b4d327d2023904b8dce84b850b5d5a23a3e500b1c8856e3 |
|
MD5 | 4bb28cbdec0c3646cf63265b4ae83d38 |
|
BLAKE2b-256 | 3c55bd9b6132cf3ce09ae2701f28faf78e7ece28b8668eebea6d589b0cb05c3b |