/ Модель

Характеристики

Лицензия
MIT
Архитектура
chucklenet · dense
Базовая модель
wavlm-base
Библиотека
transformers
Опубликована
13 сен 2026

chucklenet-laughter-detector

Классификация аудиоАудио → label3 профессии

ChuckleNet обнаруживает и отмечает временными метками эпизоды смеха в аудио стендап-комедии.

49скачиваний за 30 дней0лайковвеса обновлены13 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

ChuckleNet — модель Hayasuki для обнаружения смеха в аудио стендап-выступлений. Она классифицирует аудиосегменты и может возвращать временные метки реакций зрителей и смеха исполнителя; предусмотрены сценарии поиска удачных моментов, ранжирования сегментов по реакции и создания подборок. Модель построена на замороженном энкодере Microsoft WavLM Base с mean pooling последнего скрытого состояния размерности 768 и обучаемой MLP-головой из примерно 230 тысяч параметров. Для работы через Transformers требуется загрузка доверенного кода репозитория.

Модель дообучена на 620 видео и 121 928 сегментах; метки получены из маркеров [laughter] в субтитрах и являются слабыми, а не полностью проверенными человеком. На отложенной выборке указаны F1 0,2732 на уровне сегментов и IoU-F1 0,229 при пороге перекрытия 0,2; на отдельной выборке с человеческой проверкой сообщается IoU-F1 0,30–0,40. README предупреждает, что модель не проверялась для разговоров нескольких участников, телефонных записей, неречевых сценариев и неанглийской речи, а обнаружение смеха не следует трактовать как общую классификацию эмоций. Лицензия — MIT.

Сценарии применения

  • Поиск моментов, вызывающих смех, в записях стендап-выступлений
  • Ранжирование фрагментов стендапа по интенсивности реакции зрителей
  • Автоматический отбор фрагментов для комедийных подборок
  • Исследование временных реакций аудитории на выступления

Ограничения

Обучающие метки основаны на субтитровых маркерах смеха и содержат шум; качество на отложенных видео умеренное. Модель не проверена для многосторонних разговоров, телефонного аудио и неанглийской речи и не предназначена для общей классификации эмоций.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🎭 ChuckleNet — Laughter Detection in Stand-Up Comedy

Find the funny moments. ChuckleNet takes any stand-up comedy audio and returns timestamps of laughter events — audience reactions, performer laughs, and the beats between punchlines that get the biggest response.

Built on a frozen microsoft/wavlm-base encoder + a 230K parameter MLP head. Drop-in via Transformers pipeline or use model.detect(audio, sr) for timestamped events.

⚠️ Labels are transcript-markers ([laughter] cues from VTT files), not human-audited gold labels. This is explicitly a weak-label evaluation. On a 118-video human-verified subset the same architecture reaches IoU-F1 0.30–0.40. See the ChuckleNet repo for the full pre-registered experiment log.


⚡ Quick Start

1-line pipeline (easiest)

from transformers import pipeline

pipe = pipeline("audio-classification", model="Hayasuki/chucklenet-laughter-detector", trust_remote_code=True)
# Done — pipe now has a .detect() method

model.detect() — timestamps directly

import librosa
from transformers import AutoModelForAudioClassification

model = AutoModelForAudioClassification.from_pretrained(
    "Hayasuki/chucklenet-laughter-detector",
    trust_remote_code=True
)

audio, sr = librosa.load("comedy_special.mp3", sr=None)   # any sr, mono
events = model.detect(audio, sr=sr, threshold=0.5)        # lower threshold = more recalls

for ev in events:
    print(f"{ev['start']:6.2f}s → {ev['end']:6.2f}s  confidence={ev['p']:.2f}")

Output looks like:

  1.23s →  4.51s  confidence=0.91   ← big audience laugh
 12.07s → 13.82s  confidence=0.87
 18.40s → 19.15s  confidence=0.54   ← quiet chuckle

detect() runs energy VAD → segment padding/splitting → batch scoring → merge adjacent detections (gap ≤ 0.3s). Default threshold=0.85 is precision-oriented; drop to 0.5 for recall-heavy use.


📊 Evaluation Results

Weak-label eval (124 held-out videos, video-disjoint)

Trained on 620 videos · 121,928 utterance segments · 1,965 positives (1.6%)

MetricValue
Utterance-level F1 (thr=0.85)0.2732
Event IoU-F1 @ 0.2 overlap0.2290 (P=0.281, R=0.193)
Average Precision0.142

Human-verified subset (118 videos, pre-registered)

On a subset with word-level human-verified labels, the same architecture reaches IoU-F1 0.30–0.40 and beats order-shuffled acoustic controls by +0.09 F1 — demonstrating the model captures real temporal interaction signal, not just static acoustics.

What does this beat?

  • Order-shuffled baseline: +0.09 F1 improvement over shuffled controls (pre-registered, p<0.05)
  • Acoustic-only controls: Survives breath/cough/applause/cheer controls (mean FPR=0.189 < 0.2, E01 SUPPORTED)

🔬 Scientific Context

ChuckleNet is a pre-registered research program testing whether interaction behavior carries information beyond what words alone provide.

FindingResult
E01 — Robustness: Survives breath/cough/applause/cheer/silence controls✅ SUPPORTED
E02 — Temporal order matters: Sequence order carries laughter-predictive signal beyond static acoustics✅ REPLICATED (+0.034 / +0.087 F1)
E05 — Scope: Beyond-words signal is specific to laughter/reaction, not general emotion✅ SUPPORTED

See the full pre-registered log for experiment details.


🏗️ Architecture

ComponentDetail
Encodermicrosoft/wavlm-base (frozen) · 768-d mean-pooled last hidden state
Head768 → 256 → 128 → 1 MLP · ReLU · Dropout 0.3/0.2
Trainable params230K (entire head < 1 MB)
LossBCEWithLogitsLoss · pos_weight = N_neg/N_pos
OptimizerAdamW · lr=1e-3 · wd=1e-4 · cosine schedule · 30 epochs
SplitGroupShuffleSplit by video · 80/20 · seed=42 · no video overlap

🎯 Intended Use

Great for:

  • Finding the funniest moments / laugh lines in comedy specials
  • Ranking segments by laughter intensity for highlight reels
  • Reaction-event research in performed monologue audio
  • Building "best-of" compilations automatically

Not verified for:

  • Multi-party conversation (meetings, podcasts)
  • Phone/call audio
  • Non-English speech
  • General emotion classification (see E05 above — behavior ≠ emotion)

📦 Files

FilePurpose
model.safetensorsTrained MLP head weights (230K params)
config.jsonModel configuration
modeling_chucklenet.pyChuckleNetDetector class + detect() pipeline
README.mdThis card

🔗 Try It Now

Open in Colab

Kaggle

Live Demo


📖 Citation

@misc{das2026chucklenet,
  author       = {Subhajit Das},
  title        = {ChuckleNet: Temporal Interaction Signals for Laughter Detection in Stand-Up Comedy},
  year         = {2026},
  url          = {https://github.com/Das-rebel/ChuckleNet},
  note         = {Preprint forthcoming}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · audio-classification

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
ChuckleNetDetector
Ревизия весов
c980c98

0 моделей