m-bain/whisperX

Potential optimisation: temp-file mode for load_audio() to reduce memory on long audio

Open

#1,440 opened on Jun 20, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Python (650 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (6,880 stars)
PR merge metrics
 (Avg merge 61d 7h) (2 merged PRs in 30d)

Description

load_audio() currently buffers the entire ffmpeg output in Python memory via subprocess.run(capture_output=True). For very long audio (10h+ ≈ 1.15 GB raw PCM), this can cause OOM on constrained systems since the Python bytes buffer, numpy view, and float32 copy all coexist at peak.

A use_tmp_file=True option could write ffmpeg output to a temp file instead of piping to stdout, then read with np.fromfile(), keeping the raw PCM out of Python's heap entirely.

Originally proposed in #1221 (bundled with unrelated dep changes that have since landed).

Contributor guide