neerajaabhyankar/hindustani-raag-small
hindustani-raag-small 50 raags of Hindustani classical music, chunked from YouTube recordings, each chunk carrying the hand-annotated tonic (Sa) of the recording it came from. raags 50 train clips 1810 test clips 150 clip length 20-60 s source videos 412 Columns audio — an mp3 chunk, 20-60 s, cut from a full recording. label — ClassLabel over the 50 raag names. tonic_hz — the recording's Sa in Hz, annotated by ear and snapped to a peak… See the full description on the dataset page: https://huggingface.co/datasets/neerajaabhyankar/hindustani-raag-small.
hindustani-raag-small
50 raags of Hindustani classical music, chunked from YouTube recordings, each chunk carrying the hand-annotated tonic (Sa) of the recording it came from.
Columns
audio— an mp3 chunk, 20-60 s, cut from a full recording.label—ClassLabelover the 50 raag names.tonic_hz— the recording's Sa in Hz, annotated by ear and snapped to a peak of the recording's own pitch histogram. This is an input feature, not a label: it describes the performance's tuning, and a model may legitimately use it at inference time. Chunks from one recording share a tonic.
The repo also keeps the raw layout at the root — <Raag>/{train,test}_[<video-id>]_chunk<n>.mp3 plus metadata.csv — for anyone who would rather stream the files than the parquet.
v1 — what changed, and what breaks
Unchanged: the 50 raag names and their label integer encoding; the <Raag>/ folder layout of the raw files; the {split}_[{video}]_chunk{n}.mp3 naming; which videos are train and which are test.
Breaking, for code that loads the dataset unpinned:
- Splits. v0 was one flat
trainsplit with test clips distinguished only by thetest_filename prefix. v1 has realtrainandtestsplits, sods["train"]is now train-only and every row index has moved. Anything that cached per-row artifacts keyed by index (embeddings namedtrain_<i>.npz, for instance) will silently mis-pair them with labels. Recompute, do not reuse. - The audio itself is different. Chunks are 20-60 s taken at new offsets, where v0's were
0.01 x duration(~6 s for a 10-minute recording), and there are 5 train / 3 test chunks per video where v0 had 3 / 2. All cached features are invalid regardless of indexing. - 20 videos were dropped — flagged during tonic annotation as speech, the wrong raag, or otherwise unusable — and 6 were added, to give six raags a test recording they lacked.
- `tonic_hz` is new. Purely additive.
Nothing pinned breaks. v0 remains at its own revision; load_dataset(..., revision=...) against the old sha keeps returning v0 exactly.
License notice
This repository contains third-party sound recordings that are not licensed by the dataset curator. The CC BY-NC-SA 4.0 license applies only to the curator-created annotations, splits, organization, and documentation. See LICENSE for full terms.
