Offline Transcription
By default, Verba sends recorded audio to the Deepgram Nova-3 API for transcription. As an alternative, the VS Code extension can transcribe entirely on-device via whisper.cpp — no audio ever leaves your machine, and there's no per-minute API cost.
Platform support
Offline transcription currently supports macOS. Linux and Windows support is planned for a future release.
When to Use It
- Privacy — sensitive dictation (credentials, proprietary code, confidential notes) never crosses the network.
- Zero cost — no Deepgram usage charges; only your one-time model download.
- Offline environments — works without an internet connection once a model is downloaded, though Claude post-processing still requires network access to the Anthropic API.
Setup
-
Install whisper.cpp:
-
Download a model with the command Verba: Download Whisper Model (
dictation.downloadModel). Models are fetched from Hugging Face and stored in VS Code's global storage, shared across all workspaces. -
Switch the transcription provider in
settings.json:
Available Models
| Model | Size | Speed | Quality |
|---|---|---|---|
tiny |
~75 MB | Fastest | Lower accuracy |
base |
~148 MB | Fast | Good balance |
small |
~488 MB | Moderate | Better accuracy |
medium |
~1.5 GB | Slow | High accuracy |
large-v3-turbo |
~1.6 GB | Slowest | Best accuracy |
Tip
Start with base. If accuracy is insufficient, upgrade to small or medium. large-v3-turbo gives the best quality but needs the most disk space and processing time.
How It Works
TranscriptionService uses a strategy pattern: setProvider('deepgram' | 'local') selects the active backend, and process() delegates to it. The cloud path goes through core/deepgramProvider.ts; the local path goes through localWhisperProvider.ts, which shells out to the whisper-cli binary and parses its output. Both implement the same TranscriptionBackend contract, so the rest of the pipeline — Claude post-processing, glossary, voice commands, course correction — is identical regardless of which provider transcribed the audio.
Related Settings
| Setting | Default | Description |
|---|---|---|
verba.transcription.provider |
"deepgram" |
"deepgram" (cloud API) or "local" (whisper.cpp) |
verba.transcription.localModel |
"base" |
tiny, base, small, medium, or large-v3-turbo |
See Configuration for the full settings reference.