/ Модель

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

Параметры
113 млн
Лицензия
MIT
Архитектура
eat-laughter · dense
Базовая модель
EAT-base_epoch30_finetune_AS2M
Библиотека
transformers
Опубликована
9 сен 2026

laughter-detection

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

Модель Zencastr на основе EAT-base обнаруживает смех в подкастах и разговорной речи и выдаёт оценки по аудиокадрам и события с временными отметками.

115скачиваний за 30 дней3лайкавеса обновлены28 сен 2026

Бенчмарки

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

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

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

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

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

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

Модель Zencastr Laughter Detection разработана Zencastr для обнаружения смеха в разговорной речи, записанной на близко расположенные микрофоны, в частности в подкастах. Она принимает аудио и классифицирует его по кадрам, а затем объединяет оценки в события с приблизительными временными отметками. Входной сигнал преобразуется в лог-мел-спектрограмму на частоте 16 кГц; оценки выдаются с шагом 160 мс на перекрывающихся четырёхсекундных окнах. Модель содержит 113,2 млн параметров и основана на EAT-base, дообученной с LoRA для обнаружения смеха; доступны веса Safetensors и варианты ONNX для CPU и GPU.

Модель предназначена для разметки подкастов и разговорных записей, поиска эпизодов смеха и анализа звуковых событий. В README приведены разные режимы настройки порога для приоритета точности или полноты. На тестах, описанных авторами, модель показала высокую точность обнаружения на нескольких разговорных наборах данных, однако порог влияет на баланс ложных срабатываний и пропусков; точность временных отметок ограничена. Проверка параметров проводилась на внутренних подкастных записях Zencastr. Лицензия — MIT.

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

  • поиск эпизодов смеха в подкастах
  • автоматическая разметка смеха в разговорных записях
  • создание временных отметок для фрагментов со смехом
  • анализ звуковых событий в микрофонных записях

Ограничения

Баланс точности и полноты зависит от выбранного порога; на приведённых режимах точность обнаружения начала события составляет примерно 1,4–1,6 секунды. Оценки параметров настройки основаны на внутренних подкастных записях Zencastr.

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

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

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

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

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

Открыть на Hugging Face

Zencastr Laughter Detection

Detect laughter events in close-microphone conversational speech. Built at Zencastr for podcast audio and open-sourced as a tool for creators.

Usage

Whole audio in, events out. Input can use any format ffmpeg can decode (path, URL, bytes, array) at any length or sample rate.

from transformers import pipeline

pipe = pipeline(
    "laughter-detection",
    model="zencastr/laughter-detection",
    trust_remote_code=True,
    device=0,
)

pipe("episode.mp3")
# {
#   "duration_s": 3591.4,
#   "events": [
#     {
#       "start": 812.16,
#       "end": 814.4,
#       "score": 0.997,
#     },
#     ...
#   ],
#   "operating_point": {
#     "name": "high_precision",
#     "threshold": 0.99,
#     "min_duration_s": 0.2,
#     "merge_gap_s": 1.0
#   },
# }

From the model repository, run the command-line scripts with uv:

uv run events.py episode.mp3 --operating-point max_f1 --pretty  # PyTorch
uv run events_onnx.py episode.mp3                               # ONNX

For clip-level classification of audio up to 4 s:

clf = pipeline(
    "audio-classification",
    model="zencastr/laughter-detection",
    trust_remote_code=True,
)
clf("clip.wav")
# [
#   {"label": "laughter", "score": 0.93},
#   {"label": "no_laughter", "score": 0.07}
# ]

Inference

Audio x is converted to a 128-bin log-mel spectrogram X at 16 kHz using 25 ms Hann windows and a 10 ms hop. The encoder f and laughter heads g then produce frame and clip probabilities. φ denotes the LoRA adapters. The model produces frame probabilities every 160 ms from 4 s windows evaluated with a 2 s hop. Scores from overlapping windows are combined by taking their maximum, then converted into events with approximate timestamps using a threshold, minimum duration, and merge gap. View the frame probabilities and tune the event parameters as follows:

pipe("episode.mp3", threshold=0.9, return_frame_probs=True)

The audio-classification pipeline instead returns one attention-pooled probability for the entire clip.

Operating points

Operating points are named presets for decoding frame probabilities into events.

pipe("episode.mp3", operating_point="max_f1")

The presets were selected on ~17 h of internal podcast audio from 21 recordings using a 0.2 s matching tolerance. high_precision maximizes recall at precision ≥ 0.88 and is recommended when false alarms are costly; high_recall reaches recall 0.88 and is recommended when missed laughter is costly; max_f1 maximizes F1 and provides a balance between precision and recall.

PresetThresholdMin durationMerge gapPrecisionRecallF1Onset error
high_precision (default)0.990.2 s1.0 s0.880.700.781.6 s
max_f10.970.16 s1.0 s0.800.770.781.6 s
high_recall0.690.2 s0.16 s0.590.880.701.4 s

Evaluation

Our model achieves the highest mean clip-level average precision (AP) on three conversational benchmarks while maintaining a reasonable false positive rate (FPR) on other non-speech vocalizations.

ModelPodcast holdout AP ↑PodcastFillers AP ↑AMI AP ↑VocalSound AP ↑FSD50K FPR ↓
Ours0.973 ± 0.0020.833 ± 0.0110.948 ± 0.0030.955 ± 0.00515 ± 1%
EAT0.948 ± 0.0180.784 ± 0.0490.923 ± 0.0240.957 ± 0.0138 ± 3%
SenseVoice-S0.967 ± 0.0120.771 ± 0.0440.898 ± 0.0300.935 ± 0.01717 ± 4%
CED-base0.950 ± 0.0190.811 ± 0.0600.854 ± 0.0390.970 ± 0.0104 ± 2%
CED-tiny0.933 ± 0.0240.798 ± 0.0660.856 ± 0.0320.956 ± 0.0127 ± 2%
BEATs0.908 ± 0.0230.748 ± 0.0640.842 ± 0.0300.927 ± 0.01715 ± 4%
Gillick et al.0.951 ± 0.0190.819 ± 0.0420.853 ± 0.0310.717 ± 0.03148 ± 5%

Our row reports mean ± SD across multiple seeds while baselines rows report the performance of a single checkpoint ± the 95% bootstrap half-width. FSD50K FPR measures false positives on 1,136 clips of non-laughter vocalizations (coughing, sneezing, breathing, gasping, sighing, crying, and burping) at model-specific thresholds yielding 90% recall. CED, EAT, and BEATs use their AudioSet heads; SenseVoice uses its utterance-level laughter tag.

Inference speed

Real-time factors measured on an NVIDIA L4 using the same 1,800 s of audio, batch 64, and the median of nine passes. All models use fp16 and PyTorch except ours, which uses ONNX opset 23 with fused attention. Timings include windowing and host-to-device transfer, and exclude model loading, audio decoding, and event decoding.

ModelParametersWindow / hop× realtime ↑
CED-tiny5.5 M4 s / 2 s4,540×
CED-base85.7 M4 s / 2 s2,145×
Ours (ONNX)90.7 M4 s / 2 s1,355×
EAT (PyTorch)90.4 M4 s / 2 s1,032×
BEATs90.7 M2 s / 1 s410×
SenseVoice-Small234.0 M4 s / 2 s328×
Gillick et al.0.8 M1 s / 23 ms46×

Files

FilePurpose
model.safetensorsPyTorch weights with LoRA merged and the AudioSet teacher head removed. Loads through AutoModelForAudioClassification / AutoModelForAudioFrameClassification.
model.onnxFloat32, opset 17. Takes 16 kHz waveforms, including the mel front end in the graph. Runs with onnxruntime + numpy on CPU or GPU.
model_fp16.onnxFloat16 encoder, opset 17, for GPU inference.
model_fp16_opset23.onnxFloat16 with native ONNX Attention; onnxruntime ≥ 1.22, GPU. Used for the throughput result above.
export.jsonONNX input/output contracts and parity checks against PyTorch.
laughter_core.pyShared numpy windowing, stitching, and event decoding.

Provenance and licenses

Model and code: MIT (LICENSE). Base encoder: worstchan/EAT-base_epoch30_finetune_AS2M, revision 60d61e8b, weights SHA-256 5fa59385…69fff1b; MIT, © 2024 Wenxi Chen (LICENSE-EAT). The base encoder was pretrained and fine-tuned on AudioSet.

Adaptation used Zencastr platform audio collected under terms permitting model training. Public datasets were used only for evaluation and monitoring during adaptation. Dataset licenses: AudioSet annotations (CC BY 4.0), AMI (CC BY 4.0), VocalSound (CC BY-SA 4.0), PodcastFillers (CC BY-NC), and FSD50K (per-clip CC licenses).

Citation

@software{zencastr2026laughter,
  title  = {Zencastr Laughter Detection},
  author = {{Zencastr}},
  year   = {2026},
  url    = {https://huggingface.co/zencastr/laughter-detection}
}

@article{chen2024eat,
  title   = {EAT: Self-Supervised Pre-Training with Efficient Audio Transformer},
  author  = {Chen, Wenxi and Liang, Yuzhe and Ma, Ziyang and Zheng, Zhisheng and Chen, Xie},
  journal = {arXiv preprint arXiv:2401.03497},
  year    = {2024}
}

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

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

GPU в ailist

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

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

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

Класс архитектуры
LaughterForAudioFrameClassification
Ревизия весов
849623f

0 моделей