v3.0.0-beta.1 — Local Engine (Whisper) beta
Pre-release🧩 v3.0.0 beta: fully-local transcription
This pre-release adds a pluggable ASR engine layer with an opt-in local Whisper engine — the whole pipeline (transcription, keyterms via Ollama, translation via Ollama) can now run offline, on your hardware, at $0, with nothing leaving your machine. Deepgram Nova-3 remains the default engine.
Try the beta
Fully-local stack (no API keys at all):
curl -LO https://raw.githubusercontent.com/tylerbcrawford/subgeneratorr/v3.0.0-beta.1/examples/docker-compose.local.example.yml
# edit MEDIA_PATH, then:
docker compose -f docker-compose.local.example.yml up -dOr pin the opt-in images in your existing compose:
ghcr.io/tylerbcrawford/subgeneratorr-web-local:3.0.0-beta.1ghcr.io/tylerbcrawford/subgeneratorr-worker-local:3.0.0-beta.1ghcr.io/tylerbcrawford/subgeneratorr-cli-local:3.0.0-beta.1
The small model is baked in (works offline from first boot); pick bigger models in the UI — the picker shows RAM/speed guidance. Measured on a low-power Intel N100: a 21-minute episode in ~6.5 minutes (0.3× runtime), ~89% word-level agreement with Nova-3.
Highlights
- Engine switch on the main screen — choose Cloud or Local per job; the UI hides options the selected engine can't do (via the new
/api/capabilities). - Native SRT writer with readability-focused cues (max 2×42 chars, ≤7 s, splits at sentence ends and silence gaps) + VAD anti-hallucination tuning.
- Zero-cloud deploys boot keyless:
DEEPGRAM_API_KEYis optional; without it the Cloud engine is greyed out and API calls followASR_ENGINE. - Live progress for local jobs — real per-file percentage while Whisper transcribes.
- Changed (affects cloud users): subtitles no longer embed
[speaker N]tags by default — cues read as on-screen dialogue. Re-enable with the Speaker labels in subtitles toggle (web) orSPEAKER_LABELS=1(CLI). Diarization itself is unchanged and still powers speaker-mapped transcripts.
Existing users are unaffected: :latest still points at v2.4.x and the lean images are byte-equivalent to before.
Full details in the CHANGELOG.
Feedback → #4