Vozel
Windows dictation app that transcribes on-device and inserts text into the application you are using.
- Rust
- Tauri 2
- ONNX Runtime
- React
- TypeScript
- SQLite
- Tailwind CSS
- shadcn/ui
Problem
Many dictation tools send audio to a cloud service or only work inside their own editor, which is a poor fit for private text and for writing directly in other applications.
Solution
Hold Ctrl+Win to dictate: audio is captured and transcribed locally with a Parakeet-TDT speech model running on ONNX Runtime, optionally cleaned up by a small on-device language model, then inserted into the active application. Cloud transcription (Groq, OpenAI or Deepgram) is an explicit opt-in.
My contribution
Personal product developed under ExponentValue: the Rust backend (audio capture, speech recognition, text insertion, storage), the React interface and the design decisions documented in the repository.
Key features
- Global push-to-talk (Ctrl+Win) implemented with a Windows low-level keyboard hook
- Local speech recognition with Parakeet-TDT (INT8) on ONNX Runtime, chosen after a benchmark against whisper.cpp on French audio
- Optional on-device text cleanup with a quantised (int4) language model in the same runtime
- Cloud transcription behind a common provider interface (Groq, OpenAI, Deepgram), disabled by default, with API keys masked in logs
- Text insertion into the focused application with a clipboard fallback
- Local dictation history and personal dictionary stored in SQLite
Architecture
Engineering decisions
- Privacy by default: cloud transcription and model-based cleanup are opt-in settings.
- All database access lives on the Rust side (sqlx); the React interface calls Tauri commands.
- For the cleanup model, llama.cpp was dropped for ONNX Runtime because of build-dependency problems, and int8 quantisation was abandoned for int4 after quality testing.
Validation and tests
- 58 Rust tests cover storage, cloud-provider response parsing, keyboard-combination logic and text cleanup; 8 of them need the model files or a real target application and are skipped by default.
- Real microphone dictation into other applications was validated manually.
Status and limitations
- Windows only for now: the macOS and Linux text-insertion adapters are placeholders.
- The speech model (about 670 MB) is not bundled in the repository and must be installed separately.
- The on-device cleanup model (1.5 billion parameters, int4) gives uneven rewrite quality, which is why cleanup is optional.
- The interface has no automated tests yet. The source is public for review under an all-rights-reserved licence.