YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

ChuckleNet β€” Chunk-Level Laughter Detector

Headline

ChuckleNet is a chunk-level binary laughter detector that classifies 5-second audio segments from comedic video content using WavLM audio embeddings fused with prosodic features.

Model Description

ChuckleNet combines a 768-dimensional WavLM embedding with 23-dimensional prosodic features (F0, energy, ZCR, spectral characteristics) into a 791-dimensional input vector, processed through a fully-connected classifier. Trained with class-weighted BCE loss on the StandUp4AI EMNLP subset of 221 comedic videos, achieving CV F1 = 0.879 on held-out video groups.

Intended Use

Primary:

  • Detecting laughter events in stand-up comedy and similar comedic video content
  • Indexing comedic video archives for laughter-rich segments
  • Laughter density analysis across video corpora
  • Highlight reel generation from high-laugh segments

Out-of-scope:

  • Word-level or turn-level laughter timing (Β±2.5s precision only)
  • Non-comedic content with different acoustic profiles
  • Real-time streaming (validated on fixed 5-second chunks)

Training Data

Dataset: StandUp4AI EMNLP Subset β€” 221 comedic videos Audio: 5-second non-overlapping chunks Labels: Binary (laughter / no-laugh) per chunk Class distribution: ~30% positive, ~70% negative Features per chunk:

  • WavLM-base embedding (768d): frame-level features averaged across chunk
  • Prosodic features (23d): F0, RMS, ZCR, spectral centroid/bandwidth

Evaluation Results

Cross-validation: 5-fold GroupKFold grouped by video ID

Fold Precision Recall F1
1 0.861 0.897 0.878
2 0.882 0.874 0.877
3 0.847 0.931 0.887
4 0.903 0.835 0.867
5 0.899 0.868 0.883
Mean 0.878 0.881 0.879
Std β€” β€” 0.022

Limitations

  • Chunk-level precision: Β±2.5s localization β€” word-level timing unavailable
  • Domain bias: English stand-up comedy only; other genres/languages untested
  • False positives: May fire on coughs, sighs, audience murmurs
  • Short laughs: Brief (<1s) or soft laughs may be missed

Architecture

Input(791)
  β†’ Linear(791 β†’ 512) + BatchNorm + ReLU + Dropout(0.3)
  β†’ Linear(512 β†’ 256)  + BatchNorm + ReLU + Dropout(0.3)
  β†’ Linear(256 β†’ 64)   + BatchNorm + ReLU + Dropout(0.3)
  β†’ Linear(64 β†’ 1)     β†’ raw logit

Training: BCEWithLogitsLoss(pos_weight=2.33), Adam(lr=1e-3), early stopping.

How to Use

import torch
from transformers import AutoModel

model = AutoModel.from_pretrained("subhajitdas/chucklenet")
# Extract 791-dim features per 5s chunk β†’ model β†’ laughter probability

Citation

@article{chucklenet,
  title={ChuckleNet: Chunk-Level Laughter Detection on Stand-Up Comedy Video},
  author={Das, Subhajit},
  year={2026}
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Space using Hayasuki/chucklenet 1