🎭 ChuckleNet-Genki (元気)

"The original spirit."

First-generation laughter detection model — the proof-of-concept that started it all.

For production use, see ChuckleNet-Ten (human-verified, F1=0.975). For research, see ChuckleNet-Kage (IoU-F1=0.229).

Downloads License Dataset

Most-downloaded ChuckleNet model. Historical reference only — not for production.


Origin Story

┌─────────────────────────────────────────────────────────────────┐
│                      GENKI TIMELINE                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  2024-09   "Can frozen WavLM detect laughter?"                 │
│             First experiment designed                            │
│                         │                                      │
│                         ▼                                      │
│  2024-10   Genki v1 trained: 620 StandUp4AI videos            │
│             Labels: VTT [laughter] transcript markers           │
│             Result: F1 = 0.27 — proof of concept! ✅            │
│                         │                                      │
│                         ▼                                      │
│  2025-01   "Weak labels are noisy — need human verification"   │
│             → ChuckleNet-Ten project begins                      │
│                         │                                      │
│                         ▼                                      │
│  2025-06   ChuckleNet-Ten: held-out IoU-F1 = 0.330            │
│             (human-verified labels)                             │
│                                                                 │
│  Genki lives on as the historical baseline.                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Model Characteristics

Characteristic Description
Generation First — v1 proof-of-concept
Labels Weak — VTT [laughter] transcript markers
Architecture Frozen WavLM (768-dim) → Linear (768→2)
Training Data 620 StandUp4AI videos
Status Historical reference only — not for production

Performance

Metric Value Note
F1 Score ~0.27 Weak-label metric, not human-verified
Event IoU-F1@0.2 ~0.23 Approximate — different splits
Downloads 265+ Most popular ChuckleNet model

⚠️ These are weak-label results on VTT [laughter] markers — not ground-truth laughter events. The model detects patterns correlated with transcript markers, not actual audience laughter.


Evolutionary Tree

ChuckleNet Family

                    ┌──────────────────┐
                    │  microsoft/      │
                    │  wavlm-base     │
                    │  (frozen)       │
                    └────────┬─────────┘
                             │
        ┌────────────────────┼────────────────────┐
        │                    │                    │
        ▼                    ▼                    ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│ 🎭 Genki v1   │    │ 👻 Kage v32   │    │ 🏔️ Ten       │
│ Weak labels   │    │ Weak labels   │    │ Human-verified│
│ 620 videos    │    │ 620 videos    │    │ 87 videos     │
│ IoU ≈ 0.23   │    │ IoU = 0.229   │    │ IoU = 0.330   │
│ First attempt │    │ Refined probe │    │ Gold standard │
└───────────────┘    └───────────────┘    └───────────────┘
     2024-10              2025-03             2025-06

Comparison Table

Model Labels Held-out IoU-F1 Downloads Use
🏔️ ChuckleNet-Ten Human-verified 0.330 New Production ✅
👻 ChuckleNet-Kage Weak (VTT) 0.229 49 Research
🎭 ChuckleNet-Genki Weak (VTT) ~0.23 265+ Historical

Quick Start

from transformers import pipeline

pipe = pipeline(
    "audio-classification",
    model="Hayasuki/ChuckleNet-Genki"
)

result = pipe("standup_clip.mp3")
# [{'label': 'no_laugh', 'score': 0.77},
#  {'label': 'laugh', 'score': 0.23}]

⚠️ Genki is a baseline model with limited accuracy. For any real use case, use ChuckleNet-Ten instead.


Teaching Use Case

Genki is useful for ML education — demonstrating frozen feature probing:

"""
Genki for teaching: frozen feature probing concept
"""

import torch
import torchaudio
from transformers import WavLMModel

# Load frozen WavLM backbone (NOT trained)
wavlm = WavLMModel.from_pretrained("microsoft/wavlm-base")
wavlm.eval()  # Keep frozen

# Genki's linear probe: 768 → 2
class GenkiProbe(torch.nn.Module):
    def __init__(self, input_dim=768, num_classes=2):
        super().__init__()
        self.classifier = torch.nn.Linear(input_dim, num_classes)
    
    def forward(self, x):
        return self.classifier(x)

# Load Genki weights (from this model card's files)
probe = GenkiProbe()
probe.load_state_dict(torch.load("genki_weights.pt"))

# Extract frozen features
with torch.no_grad():
    features = wavlm(audio).last_hidden_state
    # [batch, time, 768]
    
# Temporal pooling
pooled = features.mean(dim=1)  # [batch, 768]

# Classify with frozen features
logits = probe(pooled)  # [batch, 2]

Limitations

Limitation Impact
Weak labels only VTT markers ≠ actual laughter events
Low F1 ~0.27 is a baseline, not production-ready
Linear head No hidden layers — limited representation capacity
Not for production Use ChuckleNet-Ten instead

Resources

Resource Link
Primary Model (Production) ChuckleNet-Ten
Research Model ChuckleNet-Kage
Dataset StandUp4AI

Citation

@misc{chuckleNetGenki2026,
  author = {Subhajit Das},
  title = {ChuckleNet-Genki: First Generation Laughter Detection},
  year = {2026},
  url = {https://huggingface.co/Hayasuki/ChuckleNet-Genki},
  note = {Historical baseline: first attempt at laughter detection using 
          frozen WavLM on 620 StandUp4AI videos. Weak labels only.}
}

Model Metadata (LLM-Parseable)

{
  "model_name": "ChuckleNet-Genki",
  "model_name_zh": "笑音Net-魂",
  "architecture": "frozen_wavlm_base_plus_linear",
  "model_type": "first_generation_baseline",
  "primary_task": "audio_classification",
  "secondary_task": "laughter_detection",
  "input_modality": "audio",
  "output_format": "binary_classification",
  "labels": ["laugh", "no_laugh"],
  "training_data": "620_StandUp4AI_videos_weak_labels",
  "f1_estimate": 0.27,
  "iou_f1_estimate": 0.23,
  "downloads": 265,
  "key_findings": [
    "frozen_wavlm_can_detect_laughter_concept_proof",
    "simple_linear_probe_sufficient_for_baseline",
    "weak_labels_significantly_limit_accuracy"
  ],
  "use_cases": [
    "historical_reference",
    "baseline_benchmarking",
    "ml_education",
    "teaching_frozen_feature_probing"
  ],
  "limitations": [
    "weak_labels_vtt_markers",
    "low_f1_baseline",
    "linear_head_limited_capacity",
    "not_for_production_use_ten_instead"
  ]
}

Hugging Face

The spirit that started it all. 265+ downloads and counting.

Downloads last month
285
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Hayasuki/ChuckleNet-Genki

Finetuned
(25)
this model

Spaces using Hayasuki/ChuckleNet-Genki 2