The XDA piece on self-hosting Speakr instead of paying Otter.ai $20 a month landed because it named what most people in meeting-heavy jobs quietly suspect: the convenience of a SaaS transcription service is bought with the audio of every customer call, every interview, every brainstorm. Once you notice that the recording leaves your laptop, it is hard to unsee. The good news is that local Whisper inference has gotten fast enough on 2024-era hardware that a self-hosted transcription stack is no longer a weekend project. We tested 7 of the best apps for self-hosted transcription on desktop, each one running models on the machine in front of you, with nothing leaving the local network.
The list spans single-binary GUI apps that drop on a Mac in a minute, cross-platform Electron apps with diarization and a UI, a TypeScript wrapper for batch transcription, and the Whisper.cpp CLI that quietly powers most of the others. Every pick is judged on transcription quality at the high-accuracy large-v3 tier, speed on an M-series Mac and a recent x86 laptop, and how cleanly it handles the parts that always go wrong: speaker labels, long files, mixed languages, and timestamped export.
What to look for in a self-hosted transcription app
A self-hosted transcription pipeline lives or dies on the same five things:
- Model choice. The Whisper family is the standard, but the app should let you pick between
tiny,base,small,medium,large-v2, andlarge-v3. Larger means slower and more accurate. A locked-in model is a footgun. - Speed on real hardware. On an M2 MacBook Air,
large-v3should transcribe a one-hour file in well under thirty minutes. On a 12th-gen Intel laptop with no GPU it can take longer than the recording itself. The app should make that tradeoff legible. - Speaker diarization. The single feature most people want and most local stacks fudge. Look for pyannote integration or an equivalent local diarizer rather than a generic “speaker A / speaker B” guess.
- Export formats. SRT and VTT for video work, plain text with timestamps for notes, and JSON with confidence scores for downstream tools. A copy-to-clipboard transcript and nothing else is a deal-breaker.
- No network egress by default. The whole point. The app should not phone home, ship telemetry, or fetch the model from a CDN unless you explicitly ask.
Quick comparison
| App | License | Platforms | GPU acceleration | Diarization | Best for |
|---|---|---|---|---|---|
| MacWhisper | Commercial (free tier) | macOS | Apple Silicon Metal | Yes (Pro) | Apple Silicon daily driver |
| Vibe | MIT (open source) | Windows, macOS, Linux | NVIDIA, Metal, Vulkan | Yes | Cross-platform GUI |
| WhisperX | BSD-2 (open source) | Windows, macOS, Linux | NVIDIA, CPU | Yes (pyannote) | Word-level alignment for pros |
| Speakr | MIT (open source) | Windows, macOS, Linux (Docker) | NVIDIA, CPU | Yes | Self-hosted server with web UI |
| Aiko | Free, closed source | macOS, iOS | Apple Silicon Metal | No | Quick one-off Mac transcripts |
| Buzz | MIT (open source) | Windows, macOS, Linux | NVIDIA, Metal, CPU | No | Single-binary cross-platform CLI+GUI |
| Whisper.cpp | MIT (open source) | Windows, macOS, Linux | NVIDIA, Metal, CPU | No (manual) | Headless CLI for scripts and servers |
The 7 best apps for self-hosted transcription on desktop in 2026
1. MacWhisper — Best for an Apple Silicon daily driver
MacWhisper is what most Mac users will use without ever opening a terminal. The free tier handles drag-and-drop transcription with the tiny through medium Whisper models, the Pro tier adds large-v3, batch jobs, podcast import, and speaker diarization. Inference runs on Apple’s Metal stack, so an M2 Air chews through a one-hour file in a few minutes without sounding like a hairdryer. The UI is the one piece this category gets right less often than it should.
Where it falls short: macOS only, and the diarization quality lags WhisperX on tricky multi-speaker recordings. The Pro licence is a one-time purchase, not free, which disqualifies it for some.
Pricing: Free for medium and below. One-time Pro purchase for large-v3, diarization, batch, and YouTube import.
Platforms: macOS (Apple Silicon recommended; Intel Macs supported but slow).
Download: MacWhisper site
Bottom line: If most transcription happens on a Mac, start here and move on. The Pro fee pays itself back in a week of meeting notes.
2. Vibe — Best cross-platform GUI
Vibe is the closest the Windows and Linux world has to MacWhisper. A single download installs a GUI that loads any Whisper model, runs on NVIDIA CUDA, Apple Metal, or Vulkan on AMD, and offers diarization out of the box. The plugin system lets you wire in summarization or translation steps without leaving the app, and the project ships frequent releases.
Where it falls short: First model load is heavy because the binary fetches weights at runtime. Diarization on long files can stall on Vulkan backends; CUDA users do not see this.
Pricing: Free, MIT licensed.
Platforms: Windows, macOS (Intel and Apple Silicon), Linux.
Download: Vibe site
Bottom line: The right starting point on Windows and Linux. Mac users with NVIDIA eGPUs should pick Vibe over MacWhisper.
3. WhisperX — Best for word-level alignment and serious diarization
WhisperX is what professional transcribers use when the timestamps actually matter. It pairs Whisper with a forced-aligner so every word lands on a precise timecode, then runs pyannote diarization to label speakers. The result is SRT subtitles that hold up to broadcast standards and JSON that any downstream tool can ingest.
Where it falls short: Pure CLI, no GUI, and the Python dependency tree can bite on Windows. Setup is an afternoon, not a weekend, but it is not the “drag a file in” experience MacWhisper offers.
Pricing: Free, BSD-2 licensed.
Platforms: Windows, macOS, Linux.
Download: WhisperX GitHub
Bottom line: Pick WhisperX when accurate word-level timestamps and labelled speakers matter more than UI polish. Subtitlers and journalists, this is the one.
4. Speakr — Best for a self-hosted server with a web UI
Speakr is the app the XDA piece sent everyone to. It runs as a Docker container that any laptop or home server can host, exposes a clean web UI, and turns local Whisper inference into a service the whole house can hit. Recordings sync over the LAN, transcripts land in a searchable library, and the diarization is good enough for one-on-one interviews without further tuning.
Where it falls short: It is a server, so getting started is a docker compose up, not a .dmg. Users who do not run Docker should pick something else.
Pricing: Free, MIT licensed.
Platforms: Anything that runs Docker (Windows, macOS, Linux).
Download: Speakr GitHub
Bottom line: The right pick when more than one person on the network needs transcription. Run it on the same box that hosts Jellyfin or Home Assistant.
5. Aiko — Best for quick one-off Mac transcripts
Aiko is the closest thing the Mac App Store has to a free, no-account transcription utility. Drop a file, pick a model, watch the transcript stream out. There is no diarization, no speaker labels, no fancy export, just clean text with timestamps that you can paste into a note-taking app.
Where it falls short: macOS and iOS only, and the model choices stop short of large-v3. Anyone who needs serious accuracy should skip this and use MacWhisper.
Pricing: Free, no in-app purchases.
Platforms: macOS, iOS.
Download: Aiko on the Mac App Store
Bottom line: The right pick for voice memos and short interviews on a Mac. Not the right pick for a serious workflow.
6. Buzz — Best single-binary cross-platform option
Buzz ships as a one-download app that runs on Windows, macOS, and Linux with the same UI. It supports live transcription from the microphone, file-based jobs, and a built-in OpenAI API mode for users who want to compare local and cloud output side by side. The codebase is small enough to audit in an afternoon.
Where it falls short: No diarization. The live mode chops sentences in unhelpful places on long monologues.
Pricing: Free, MIT licensed.
Platforms: Windows, macOS, Linux.
Download: Buzz GitHub
Bottom line: A good first install on a fresh Linux machine. The fastest path from “I want local transcription” to a working app.
7. Whisper.cpp — Best headless CLI for scripts and servers
Whisper.cpp is the C++ port that quietly powers half of the apps above. It compiles to a single binary, has no Python runtime, and runs on everything from a Raspberry Pi 5 to an M4 Max. Pipe a WAV file in, get SRT or VTT out. The CMake build now ships precompiled binaries for the major platforms.
Where it falls short: Pure CLI. No diarization, no UI, no app polish. You build the workflow around it yourself.
Pricing: Free, MIT licensed.
Platforms: Windows, macOS, Linux, BSD, anywhere with a C++ compiler.
Download: Whisper.cpp GitHub
Bottom line: The right pick for scripting transcription into existing pipelines, for embedded use cases, and for anyone who wants the smallest, most auditable surface area.
How to pick the right one
- If you want a self-hosted Otter.ai replacement that the whole house can use: Speakr.
- If you live on macOS and just want the best local app: MacWhisper.
- If you are on Windows or Linux and want a clean GUI: Vibe.
- If you need broadcast-grade timestamps and labelled speakers: WhisperX.
- If you have an old Mac and just want occasional transcripts: Aiko.
- If you want to script transcription into a larger pipeline: Whisper.cpp.
FAQ
Is Whisper good enough to replace Otter.ai?
For English-only single-speaker recordings, yes. For multi-speaker meetings with overlap, Whisper with pyannote diarization is close but still trails Otter on speaker labelling. The gap closed a lot in 2025 and is closing further every release.
How much hardware do I need to run local transcription?
large-v3 runs comfortably on any Apple Silicon Mac and on any NVIDIA GPU with 8 GB or more of VRAM. CPU-only inference works but takes longer than the recording. For meeting transcription at a casual pace, a five-year-old laptop is fine if you pick small or medium.
Which Whisper model is best for accuracy?
large-v3 is the most accurate published model. large-v3-turbo is a faster variant with a small quality drop that most users will not notice on clean audio. Skip large-v2 in favour of v3 unless you have a specific reason.
Can self-hosted transcription handle non-English audio?
Whisper supports nearly 100 languages and is competitive with cloud services on the major ones (Spanish, French, German, Portuguese, Japanese, Mandarin). Quality drops for lower-resource languages, and accent-heavy English from non-native speakers still trips up every local model.
Does any of this work offline once installed?
Yes, fully. Once the model weights are downloaded, every app on this list runs without a network connection. That is the entire point of self-hosting.