VocalBurst Classifier — single-burst
A sharper classifier specialised for clips that contain exactly one isolated vocal burst (no speech).
Same taxonomy (82 classes + no_burst). Softmax (single most-likely type). Use it as the "name the
burst" stage after a detector has isolated a segment.
Architecture
laion/voiceclap-commercial (768-d, frozen) → MLP 1024-wide × 3 deep → 83-way softmax. ~3M params.
Training
Trained ONLY on clean single-burst clips: Gemini-confirmed DACVAE positives (82 classes, exactly one
label, no speech) + pure Emilia no_burst clips (~15.9k). Cleaner labels, no speech confusion → sharper.
50 epochs, AdamW, cross-entropy, best-mAP checkpoint.
v2 (current): retrained with 9,000 multilingual burst-free negatives (FLEURS: Chinese, Hindi, Bengali, Arabic, Persian, Urdu, Tamil, Telugu, Vietnamese, Thai, Indonesian, Japanese, Korean, Swahili, Yoruba, Zulu, Turkish, Russian) — fixes hallucinated bursts on non-European speech.
Results (held-out pure single-burst clips)
| metric | fine (82) | coarse (16 families) |
|---|---|---|
| macro mAP | 0.68 | 0.87 |
| top-1 exact | 60% | – |
| a true label in top-3 | 88% | – |
| On isolated bursts it names the coarse family very reliably (~0.87) and the fine subtype well. |
How it works
Two stages: a frozen laion/voiceclap-commercial audio encoder turns a clip into a 768-d embedding
(encode_waveform, auto-downloaded — the repo needs no extra setup), then this small trained MLP head
maps it to 83 outputs = 82 VocalBurst classes + no_burst (taxonomy: LAION-AI/voice-taxonomies · vocalburst).
A no-burst gate: if P(no_burst) ≥ 0.5 the clip is declared burst-free (no false alarm); otherwise the top classes are returned. Clips are truncated to the first 30 s (the encoder's window).
Usage
from inference import VocalBurstClassifier
clf = VocalBurstClassifier("laion/vocalburst-classifier-single") # HF repo id, or a local checkout dir
print(clf.predict("clip.wav")) # -> {no_burst, p_no_burst, top1, predictions:[(class,prob)], group}
Files
model.pt (MLP weights) · config.json (arch) · classes.json (83 labels, index order) ·
class_to_group.json (fine→16 coarse families) · inference.py · example.py · requirements.txt.
Interactive demos (audio + predictions)
- Multi-label predictions vs ground truth: https://projects.laion.ai/procedural-voice-captions/vocalburst-predictions/
- Single-burst classifier: https://projects.laion.ai/procedural-voice-captions/vocalburst-single/
- Two-stage detect→classify combo: https://projects.laion.ai/procedural-voice-captions/vocalburst-combo/
- On MOSS character voices: https://projects.laion.ai/procedural-voice-captions/vocalburst-character/
Training data + embeddings: laion/vocalburst-classification. Embedder: laion/voiceclap-commercial. License: CC-BY-4.0.
- Downloads last month
- 33