100% on-device voice dictation. Your audio never leaves your machine.
No cloud, no API keys, no data collection. State-of-the-art speech recognition running entirely on your hardware.
- Hold the hotkey (default:
Right Optionon macOS,Right Alton Windows/Linux) - Speak naturally
- Release β transcribed text is pasted at your cursor
Murmur delivers live partial transcriptions as you speak. Backends with native streaming support produce smooth, append-only text updates with no flickering or re-typing.
Everything runs on your hardware. Audio is captured, transcribed, and discarded β never written to disk, never sent over the network. The only network requests murmur ever makes are to download model weights on first run.
- No cloud APIs, no telemetry, no data collection
- Audio processed entirely in memory
- Models downloaded once, run forever offline
Raw speech recognition is just the foundation. Murmur adds layers that make dictation practical:
- Two recording modes β Push to Talk (hold to record) or Open Mic (toggle on/off), with instant paste at your cursor that preserves clipboard contents
- Spoken punctuation β say "period", "comma", "question mark", "new paragraph" and they're converted to symbols
- Filler word removal β automatically strips "um", "uh", "er", "ah" and other verbal fillers
- Noise suppression β built-in audio denoising cleans up background noise before transcription
- Speech detection β voice activity detection and hallucination filtering ensure only real speech is transcribed
- Smart vocabulary biasing β provide domain-specific terms and murmur prioritizes them during transcription
- Context-aware formatting β detects the active application and adjusts transcription formatting automatically
- System tray UI β control model, backend, language, mode, hotkey, and all settings from the menu bar
Murmur is built in Rust with an optimized audio pipeline designed for low-latency dictation:
| Metric | Detail |
|---|---|
| Pre-roll buffer | 200 ms of audio captured before you press the hotkey β first words are never clipped |
| Minimum audio | Processes recordings as short as 0.25 seconds |
| Streaming latency | Partial results update every ~300 ms while speaking |
| In-memory pipeline | Zero disk I/O β audio is recorded and transcribed entirely in memory |
| GPU acceleration | Metal (Apple Silicon), CUDA (NVIDIA), Vulkan (cross-vendor) |
| Quantized models | INT4/INT8 inference for faster speed with minimal accuracy loss |
Murmur supports multiple ASR (Automatic Speech Recognition) backends β all running locally on your machine. Choose the engine that best fits your needs:
| Engine | Models | Languages | Streaming | Strengths |
|---|---|---|---|---|
| Qwen3-ASR | 0.6B, 1.7B | 52 | β Native | Lowest word error rate, native streaming |
| Whisper | tiny β large | 90+ | Broad language coverage | |
| Parakeet-TDT | 0.6B | English | Fast, pre-formatted output with punctuation |
Switch backends with a single flag:
murmur start --backend qwen3-asr # Best accuracy + native streaming
murmur start --backend whisper # Maximum language support
murmur start --backend parakeet # Fast English with auto-punctuationPre-built binaries β no build tools required. macOS Apple Silicon builds include Metal GPU acceleration.
macOS / Linux:
curl -sSfL https://github.com/jafreck/murmur/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/jafreck/murmur/releases/latest/download/install.ps1 | iexThe installer downloads the correct binary for your platform, installs it, and registers murmur as a service that starts at login.
brew install jafreck/murmur/murmurgit clone https://github.com/jafreck/murmur.git
cd murmur
cargo build --release --features metal # Whisper backend (default)
cargo build --release --features metal,onnx # + Qwen3-ASR & Parakeet backends# macOS Apple Silicon (Metal)
cargo build --release --features metal
# NVIDIA (CUDA)
cargo build --release --features cuda
# Cross-vendor (Vulkan)
cargo build --release --features vulkan# Start with default backend (Whisper)
murmur start
# Start with a specific backend
murmur start --backend qwen3-asr
# Download a model
murmur download-model base.en # Whisper
murmur download-model 0.6b --backend qwen3-asr # Qwen3-ASR
murmur download-model 0.6b-v2 --backend parakeet # Parakeet
# Set the hotkey
murmur set-hotkey ctrl+shift+space
# Show status
murmur statusEdit the config file:
- macOS:
~/Library/Application Support/murmur/config.json - Windows:
%APPDATA%\murmur\config.json - Linux:
~/.config/murmur/config.json
{
"hotkey": "rightoption",
"asr_backend": "qwen3_asr",
"model_size": "0.6b",
"asr_quantization": "int4",
"language": "en",
"spoken_punctuation": false,
"filler_word_removal": false,
"noise_suppression": true,
"translate_to_english": false,
"mode": "push_to_talk",
"streaming": false,
"vocabulary": []
}Models are downloaded from HuggingFace on first run and cached locally. Each backend has its own model family:
| Model | Quantization | Disk Size | WER (LibriSpeech) | Best for |
|---|---|---|---|---|
0.6b |
INT4 | ~2 GB | 5.16% | Fast, accurate (default) |
0.6b |
FP32 | ~3.3 GB | 4.42% | Maximum accuracy |
1.7b |
INT4 | ~4 GB | 4.20% | Lowest error rate |
| Model | Disk Size | Speed | Best for |
|---|---|---|---|
tiny.en |
75 MB | Fastest | Quick notes |
base.en |
142 MB | Fast | Most users |
small.en |
466 MB | Moderate | Technical terms |
medium.en |
1.5 GB | Slower | High accuracy |
large-v3-turbo |
1.6 GB | Moderate | Multilingual |
distil-large-v3 |
~1.5 GB | Fast | Best distilled quality |
| Model | Quantization | Disk Size | Best for |
|---|---|---|---|
0.6b-v2 |
INT8 | ~500 MB | Fast English with auto-punctuation |
- macOS: Requires Accessibility and Microphone permissions
- Windows: May need to allow through antivirus (keyboard hook for hotkey detection)
- Linux (X11): Works out of the box
- Linux (Wayland): User must be in the
inputgroup for hotkey detection
macOS / Linux:
curl -sSfL https://github.com/jafreck/murmur/releases/latest/download/uninstall.sh | bashWindows (PowerShell):
irm https://github.com/jafreck/murmur/releases/latest/download/uninstall.ps1 | iexRemoves the binary, service/startup config, and logs. Prompts before deleting user config and downloaded models.
Warning
murmur-copilot is in preview and under active development. APIs and features may change.
murmur-copilot is a local meeting assistant built on top of murmur. It provides a transparent overlay that live-transcribes meetings, captures both your microphone and remote participants' system audio, and offers LLM-powered suggestions and summaries β all running on-device.
Key features: live dual-stream transcription, AI suggestions via local Ollama, meeting session history with export.
See crates/murmur-copilot/README.md for build instructions, configuration, and usage.
MIT
git config core.hooksPath .githooksThis enables the pre-push hook which runs cargo fmt --check and cargo clippy before each push.