thomas.kopp 6b0ee60d94 fix: cache pyannote diarization pipeline to stop memory leak / OOM
The meeting pipeline created a fresh Diarizer per recording, each loading
the multi-GB pyannote speaker-diarization model anew (api/pipeline.py).
Whisper and Ollama run remotely in this deployment, so pyannote was the
only heavy in-process consumer. Reloading it per recording leaked CPU
memory (torch reference cycles + glibc arena fragmentation) that was
never returned to the OS, climbing to a 37 GB peak over a multi-day run
until the kernel OOM-killed the service.

Cache the loaded pipeline on the class and reuse it across Diarizer
instances, mirroring TranscriptionEngine._model. RSS now stays flat.
2026-07-22 09:03:42 +02:00
2026-04-01 02:12:41 +02:00
2026-04-01 02:12:41 +02:00
2026-04-01 02:12:41 +02:00
S
Description
Lokales KI-Transkriptionstool — Whisper + Ollama + Browser-UI
203 KiB
Languages
Python 66.1%
HTML 20.3%
JavaScript 11.5%
Shell 2.1%