Hayasuki commited on
Commit
fb90e4e
·
verified ·
1 Parent(s): d8b1279

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +26 -66
README.md CHANGED
@@ -8,88 +8,48 @@ sdk_version: 5.34.0
8
  app_file: app.py
9
  pinned: false
10
  license: mit
 
11
  ---
12
 
13
- # 🎭 ChuckleNet — Audio Laughter Detection Benchmark
14
 
15
- **The first model that detects and predicts laughter beyond words or language.**
16
 
17
- > Laughter is universal — it transcends language, culture, and geography. ChuckleNet uses audio prosody (pitch, energy, voice quality) to detect laughter, enabling AI systems to understand human joy **regardless of what language is being spoken**.
18
 
19
- ## Why Laughter Detection Matters for AI
 
 
 
 
 
20
 
21
- Current AI systems (ASR, TTS, conversation AI) struggle with non-verbal emotional signals. Laughter is one of the most important social signals in human conversation — yet it leaves no textual trace.
22
 
23
- **Key use cases:**
24
- - **Conversational AI** — detect when users are laughing to adapt response tone
25
- - **Meeting summarization** — mark moments of audience reaction in presentations
26
- - **Content moderation** — identify comedic or positive content at scale
27
- - **Dubbing/localization** — detect laughter regions that don't translate across languages
28
 
29
- ## How It Works
30
-
31
- ```
32
- Audio → Prosody Features (F0, RMS, ZCR, spectral) → ChuckleNet → Laughter Detection
33
- ```
34
-
35
- No text. No language model. Pure audio signal.
36
-
37
- ## Quick Facts
38
-
39
- | Property | Value |
40
- |---|---|
41
- | **Input** | 791-dim (WavLM 768-dim + prosody 23-dim) |
42
- | **Task** | Binary: laugh vs non-laugh per 5-second chunk |
43
- | **Training data** | 221 English stand-up comedy videos |
44
- | **Validation F1** | 0.879 ± 0.022 (5-fold GroupKFold) |
45
- | **Prosody-only F1** | 0.715 (23-dim prosody, no text) |
46
- | **Language agnostic** | Works on any language — no text required |
47
-
48
- ## Key Finding: Prosody Rivals WavLM
49
-
50
- | Model | Input | F1 | Notes |
51
- |---|---|---|---|
52
- | Prosody MLP | 23-dim | 0.715 | Simple spectral + F0 features |
53
- | WavLM MLP | 768-dim | 0.220 | Frozen transformer |
54
- | **Fusion** | **791-dim** | **0.879** | WavLM + prosody |
55
-
56
- **Insight:** Prosody alone captures 81% of the fusion performance while being **33× smaller** and **language-agnostic**. A frozen WavLM encoder adds only +16% F1 over simple prosody features.
57
-
58
- ## Why No Text?
59
-
60
- 1. **Laughter is universal** — a laugh sounds the same in English, Mandarin, or Arabic
61
- 2. **Cross-lingual** — works on languages you've never trained on
62
- 3. **Real-time** — no ASR needed, can run on raw audio stream
63
- 4. **Emotion signal** — captures the *how* not the *what* of communication
64
 
65
  ## Limitations
66
 
67
- ⚠️ **Chunk-level only:** 5-second fixed windows — not word-level timestamps
68
- ⚠️ **English comedy domain:** Trained on stand-up; generalization varies by domain
69
- ⚠️ **No temporal context:** Each chunk classified independently
70
- ⚠️ **F1 ≠ IoU-F1:** Our F1=0.88 and StandUp4AI's IoU-F1=0.51 are NOT comparable
71
 
72
- ## Comparison with Prior Work
73
 
74
- | Work | Metric | Dataset | Notes |
75
- |---|---|---|---|
76
- | StandUp4AI (EMNLP 2025) | IoU-F1=0.51 | 330hr, 7 lang | Word-level, requires text |
77
- | Gillick et al. 2021 | F1=0.75 | Switchboard | Utterance-level |
78
- | **ChuckleNet (ours)** | **F1=0.88** | **221 videos** | **Audio-only, language-agnostic** |
79
 
80
  ## Citation
81
 
82
  ```bibtex
83
- @article{chuckleNet,
84
- title={ChuckleNet: Audio Laughter Detection Beyond Language},
85
- author={Subhajit Das},
86
- year={2026},
87
- url={https://huggingface.co/Hayasuki/chuckleNet-v2}
88
  }
89
  ```
90
-
91
- ## Contact
92
-
93
- - **Model:** [Hayasuki/chuckleNet-v2](https://huggingface.co/Hayasuki/chuckleNet-v2)
94
- - **Demo:** [Hayasuki/a3m-router](https://huggingface.co/spaces/Hayasuki/a3m-router)
95
- - **Code:** [Das-rebel/autonomous_laughter_prediction](https://github.com/Das-rebel/autonomous_laughter_prediction)
 
8
  app_file: app.py
9
  pinned: false
10
  license: mit
11
+ short_description: First benchmark for laughter detection beyond words — evaluates on held-out comedians.
12
  ---
13
 
14
+ # 🎭 ChuckleNet — Laughter Detection Benchmark
15
 
16
+ **What makes ChuckleNet unique:** The first laughter detection model evaluated on **held-out comedians** (unseen performers), which is the real deployment scenario. Previous works report strong results on seen comedians but don't assess cross-comedian generalization.
17
 
18
+ ## Benchmark Results
19
 
20
+ | Method | Metric | Dataset | Generalization? |
21
+ |--------|---------|---------|------------------|
22
+ | **ChuckleNet (prosody)** | Word F1=0.21 | 40 EMNLP videos | ✅ held-out |
23
+ | **ChuckleNet (fusion)** | IoU-F1=0.30 @ IoU≥0.2 | 40 EMNLP videos | ✅ held-out |
24
+ | StandUp4AI | IoU-F1=0.51 @ IoU≥0.2 | ~255 EMNLP videos | ❌ seen comedians |
25
+ | MTLLFM | Clip F1=0.99 | Proprietary | ❌ seen comedians |
26
 
27
+ **Key insight:** Simple prosody features (F0, RMS, ZCR) transfer better across comedians than deep transformer embeddings (WavLM), even though embeddings are 50x higher dimensional.
28
 
29
+ ## Key Findings
 
 
 
 
30
 
31
+ 1. **Prosody > WavLM for cross-comedian transfer**: 5-dim pitch features outperform 768-dim WavLM on held-out comedian evaluation
32
+ 2. **Segment-level is easier than word-level**: Our segment-level F1=0.952 vs word-level IoU-F1=0.30 reveals the task difficulty gap
33
+ 3. **Positive rate matters**: Models collapse when positive rate < 15%
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
  ## Limitations
36
 
37
+ - **Small evaluation set**: 40 EMNLP videos with word-level labels (only ~22% of 221 available had correct timestamps)
38
+ - **No word-level IoU breakthrough yet**: Best word-level IoU-F1=0.30 vs StandUp4AI's 0.51
39
+ - **Resource-constrained extraction**: Word-level WavLM features couldn't complete on available GPU
 
40
 
41
+ ## How It Works
42
 
43
+ 1. **Prosody extraction** (5-dim): F0 mean/std/max/min/voiced_rate from librosa.pyin()
44
+ 2. **Fusion MLP**: 791-dim (WavLM 768 + prosody 23) → 512 → 256 → 64 → 1
45
+ 3. **Training**: Class-weighted BCE, GroupKFold by video for proper comedian separation
 
 
46
 
47
  ## Citation
48
 
49
  ```bibtex
50
+ @article{chucklenet,
51
+ title={ChuckleNet: Laughter Detection Beyond Words},
52
+ author={Das, Subhajit},
53
+ year={2026}
 
54
  }
55
  ```