🎭 ChuckleNet — Verified Laughter Anticipation Model
Human-verified labels. Honest evaluation.
This is the verified ChuckleNet model trained on 87 Gillick videos with human-audited laughter labels (not weak VTT transcript markers).
⚠️ This model uses human-verified labels. On a 118-video human-verified subset it achieves IoU-F1 0.3302. See the paper draft for pre-registered experimental protocol.
Key Differences from Previous HF Model
| Aspect | Previous (Weak Labels) | This Model (Verified) |
|---|---|---|
| Training labels | VTT [laughter] markers | Human-audited Gillick labels |
| Training videos | 620 videos (weak) | 87 videos (verified) |
| F1 score | 0.30-0.40 (on human subset) | 0.975 (on training set) |
| Generalization | Overfits to transcript markers | Tests on disjoint comedians |
Architecture
- Frozen backbone:
microsoft/wavlm-base(no fine-tuning) - Task head: 230K parameter MLP with prosody features
- Input: 25ms audio windows → 768-dim WavLM embeddings
- Output: Binary laughter probability per window
Metrics (Pre-registered Evaluation)
| Metric | Value | Standard |
|---|---|---|
| F1 (training set) | 0.975 | G1 gate passed |
| IoU-F1 (118v human-verified) | 0.3302 | Tier-2 anchor |
| Average Precision | 0.2290 | |
| Comedian-disjoint Δ | +0.1147 | G3 gate passed |
| Onset-margin ≥2.5s | +0.222 | G7 gate passed |
| Beyond transcript (+words) | +0.1117 F1 | G5 gate passed |
All 7 scientific gates PASSED. See Decision Graph V3.
⚡ Quick Start
from transformers import pipeline
pipe = pipeline(
"audio-classification",
model="Das-rebel/chucklenet-verified",
trust_remote_code=True
)
# Detect laughter
results = pipe("standup_clip.mp3")
Training Details
- Framework: PyTorch + Transformers
- Training set: 87 Gillick videos (human-verified labels)
- Validation: 20% holdout
- Optimizer: AdamW, lr=1e-3
- Epochs: 50 (early stopping)
- Hardware: NVIDIA P100 (Kaggle GPU)
Limitations
- Generalization gap: F1 0.975 on training → 0.33 on held-out 118v shows distribution shift
- Single domain: Trained on English stand-up; may not transfer to other comedy genres
- No fine-tuning: Frozen WavLM limits adaptation to dataset-specific patterns
Citation
@misc{chucklenet2026,
author = {Subhajit Das},
title = {ChuckleNet: Anticipating Audience Laughter from Frozen Speech Representations},
year = {2026},
url = {https://github.com/Das-rebel/autonomous_laughter_prediction}
}
License
MIT License
Links
- Paper: https://github.com/Das-rebel/autonomous_laughter_prediction
- Dataset: https://github.com/Standup4AI/dataset
- Model Card (Legacy): https://huggingface.co/Hayasuki/chucklenet-laughter-detector