Local voice dictation for macOS. Press a shortcut, talk, press it again, and cleaned-up text gets typed into whatever window you have focused. Everything runs on your machine, nothing leaves your computer.
Audio is captured from your mic and passed through a three-stage local pipeline:
- Voice activity detection (Silero VAD) splits speech at natural pauses so long dictations are processed in chunks.
- Speech-to-text (Nvidia Parakeet TDT 0.6B v3) transcribes each chunk via
sherpa-onnx(int8, ~490 MB). - Cleanup (Qwen3.5-0.8B + rules) strips filler words (
um,uh), collapses repeated words and phrases ("this is this is"), formats spoken lists, fixes punctuation and capitalization, and resolves self-corrections ("no wait, make that Tuesday") viamistral.rson Metal (Q6_K GGUF, ~640 MB).
Once processed, the text is typed into the active app (or pasted via the clipboard if the app doesn't accept synthetic keystrokes). If the LLM isn't available, dictation falls back to basic rule-based cleanup.
Parakeet TDT 0.6B v3 detects and transcribes 25 European languages automatically without needing to switch settings:
Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, and Ukrainian.
Requires macOS on Apple Silicon, Rust, Node.js, and pnpm.
pnpm install
./scripts/download-models.sh # downloads ~1.2 GB of models into src-tauri/models/
pnpm tauri devOn first launch, grant Microphone access when prompted, and add the app under System Settings -> Privacy & Security -> Accessibility so it can type into other windows.
The default shortcut is Ctrl+Alt+Space (press once to start recording, press again to finish).
To build a release app bundle:
pnpm tauri buildYou can optionally create ~/Library/Application Support/talksify/config.toml to change the shortcut or pin a specific microphone:
hotkey = "Ctrl+Alt+Space"
# audio_device = "MacBook Pro Microphone"