snowballlab/30-keywords
KWS Smart-Device Commands (20-class) Merged, length-normalized keyword-spotting dataset for on-device voice control (Nordic nRF5340 + Edge Impulse). Every clip is 16 kHz mono, fixed 2 s, RMS-leveled and silence-padded. 1,447 clips per class (28,940 total). Real CC-BY audio only — no TTS. Classes (30): answer, back, call, close, eight, five, four, help, left, next, nine, no, one, open, play, previous, record, right, search, set_a_timer, seven, six, start, stop, three, two… See the full description on the dataset page: https://huggingface.co/datasets/snowballlab/30-keywords.
KWS Smart-Device Commands (20-class)
Merged, length-normalized keyword-spotting dataset for on-device voice control (Nordic nRF5340 + Edge Impulse). Every clip is 16 kHz mono, fixed 2 s, RMS-leveled and silence-padded. 1,447 clips per class (28,940 total). Real CC-BY audio only — no TTS.
- Classes (30): answer, back, call, close, eight, five, four, help, left, next, nine, no, one, open, play, previous, record, right, search, setatimer, seven, six, start, stop, three, two, volumedown, volumeup, yes, zero
- Features:
audio(WAV bytes + path),label(ClassLabel) - Splits: stratified train/test (80/20)
- License: CC-BY 4.0
Usage
from datasets import load_dataset, Audio
import soundfile as sf
import io
ds = load_dataset("snowballlab/30-keywords")
print(ds)
print(ds["train"].features["label"].names)
# Decode one clip with soundfile (no torch needed):
ex = ds["train"][0]
y, sr = sf.read(io.BytesIO(ex["audio"]["bytes"]))
print(y.shape, sr, ds["train"].features["label"].int2str(ex["label"]))
# Or, if you have torchcodec installed:
# ds = ds.cast_column("audio", Audio(sampling_rate=16000))Sources & attribution
- Google Speech Commands v0.02 — CC-BY 4.0 (Warden, 2018, arXiv:1804.03209)
- Multilingual Spoken Words Corpus (English) — CC-BY 4.0 (MLCommons)
- Timers and Such v1.0 — CC-BY 4.0 (Lugosch et al., 2021)
volume_up/volume_downreconstructed by concatenating CC-BY components (MSWC "volume" + GSC "up"/"down").
Preprocessing matches the MLPerf Tiny KWS reference (16 kHz, MFCC 30/20 ms, 40 mel, 10 coeff, 20–4000 Hz).
