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")# pip install -U transformers accelerate # Load model directly from transformers import WavLMForLaughterDetection model = WavLMForLaughterDetection.from_pretrained("Hayasuki/ChuckleNet-Genki", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from Hayasuki/ChuckleNet-Genki: direct link, hf CLI and curl.
- Browser
- Download file 9.95 kB
-
https://huggingface.co/Hayasuki/ChuckleNet-Genki/resolve/main/README.md
- Command line
-
hf download hf://Hayasuki/ChuckleNet-Genki/README.md
-
curl -L -o README.md https://huggingface.co/Hayasuki/ChuckleNet-Genki/resolve/main/README.md
9.95 kB
| title: ChuckleNet-Genki — The Original Spirit | |
| emoji: 🎭 | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: gradio | |
| pipeline_tag: audio-classification | |
| license: mit | |
| library_name: transformers | |
| base_model: microsoft/wavlm-base | |
| tags: | |
| - audio-classification | |
| - laughter-detection | |
| - wavlm | |
| - speech | |
| - humor | |
| - stand-up-comedy | |
| - transformers | |
| - genki | |
| metrics: | |
| - f1 | |
| datasets: | |
| - StandUp4AI | |
| papers: | |
| - https://huggingface.co/Hayasuki/ChuckleNet-Genki | |
| <div align="center"> | |
| # 🎭 ChuckleNet-Genki (元気) | |
| ***"The original spirit."*** | |
| **First-generation laughter detection model — the proof-of-concept that started it all.** | |
| **For production use, see [ChuckleNet-Ten](https://huggingface.co/Hayasuki/ChuckleNet-Ten) (human-verified, F1=0.975). For research, see [ChuckleNet-Kage](https://huggingface.co/Hayasuki/ChuckleNet-Kage) (IoU-F1=0.229).** | |
| [](https://huggingface.co/Hayasuki/ChuckleNet-Genki) | |
| [](https://opensource.org/licenses/MIT) | |
| [](https://github.com/Standup4AI/dataset) | |
| **Most-downloaded ChuckleNet model. Historical reference only — not for production.** | |
| </div> | |
| --- | |
| ## 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](https://huggingface.co/Hayasuki/ChuckleNet-Ten)** | Human-verified | **0.330** | New | **Production ✅** | | |
| | 👻 **[ChuckleNet-Kage](https://huggingface.co/Hayasuki/ChuckleNet-Kage)** | Weak (VTT) | 0.229 | 49 | Research | | |
| | 🎭 **ChuckleNet-Genki** | Weak (VTT) | ~0.23 | **265+** | Historical | | |
| --- | |
| ## Quick Start | |
| ```python | |
| 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](https://huggingface.co/Hayasuki/ChuckleNet-Ten) instead. | |
| --- | |
| ## Teaching Use Case | |
| Genki is useful for **ML education** — demonstrating frozen feature probing: | |
| ```python | |
| """ | |
| 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](https://huggingface.co/Hayasuki/ChuckleNet-Ten) instead | | |
| --- | |
| ## Resources | |
| | Resource | Link | | |
| |----------|------| | |
| | **Primary Model (Production)** | [ChuckleNet-Ten](https://huggingface.co/Hayasuki/ChuckleNet-Ten) | | |
| | **Research Model** | [ChuckleNet-Kage](https://huggingface.co/Hayasuki/ChuckleNet-Kage) | | |
| | **Dataset** | [StandUp4AI](https://github.com/Standup4AI/dataset) | | |
| --- | |
| ## Citation | |
| ```bibtex | |
| @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) | |
| ```json | |
| { | |
| "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" | |
| ] | |
| } | |
| ``` | |
| --- | |
| <div align="center"> | |
| [](https://huggingface.co/Hayasuki/ChuckleNet-Genki) | |
| *The spirit that started it all. 265+ downloads and counting.* | |
| </div> | |