Audio Classification
Transformers
PyTorch
laughter_detection
laughter-detection
wavlm
speech
humor
stand-up-comedy
genki
Instructions to use Hayasuki/ChuckleNet-Genki with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Hayasuki/ChuckleNet-Genki with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("audio-classification", model="Hayasuki/ChuckleNet-Genki")# Load model directly from transformers import WavLMForLaughterDetection model = WavLMForLaughterDetection.from_pretrained("Hayasuki/ChuckleNet-Genki", device_map="auto") - Notebooks
- Google Colab
- Kaggle
🎭 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).
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"
]
}
- Downloads last month
- 285
Model tree for Hayasuki/ChuckleNet-Genki
Base model
microsoft/wavlm-base