Back to Articles

Inside the buildProduct engineering

A small key. A complete speech system

Inside Quill, a Windows dictation tool that connects native desktop controls, local speech models, and careful fallback behavior.

See the workflow

Hold a key. Speak. Keep working.

Hold F9 to capture a short utterance.

Illustrative replay · example text. Simplified to explain the flow; timing is illustrative.
Capabilities in practice
  • Native Windows app
  • Local speech models
  • Failure-aware interaction

Hold F9, speak, and release. Quill records your voice, sends it to a server for transcription, and attempts to paste the words where you were typing.

The internal Windows tool connects native controls, local speech models, and the receiving application.

Start with usable audio

The Tauri, TypeScript, and Rust client moves recording and network work off the keyboard hook, keeping that callback responsive.

An accidental F9 tap shorter than 0.35 seconds is rejected before upload. The client also checks for an effectively silent microphone. These filters address unsuitable input before asking a model to interpret it.

Preserve the words when cleanup fails

The server uses faster-whisper large-v3 for transcription. An optional Ollama model then adds punctuation and removes filler.

An editor might answer a dictated question instead of preserving it. Quill checks output length and word overlap, returning the original transcription when cleanup fails or strays too far. These checks cannot guarantee that every word retains its meaning.

Architecture at a glance
Architecture / from voice to cursor
  1. 01CaptureNative key hook and microphone checks
  2. 02TranscribeWhisper turns audio into words
  3. 03CheckOptional cleanup with raw-text fallback
  4. 04PlaceClipboard first, then a guarded paste

If cleanup is rejected, the original transcription continues to delivery.

Each boundary protects a different part of the interaction: usable audio, faithful wording, and recoverable text delivery.

Keep the text when paste cannot proceed

Quill writes the transcript to the clipboard before attempting a paste. It checks whether the foreground window changed, waits for held modifier keys, and checks whether the destination has higher Windows privileges that could block input.

The clipboard provides a manual fallback, replacing its previous contents. Quill cannot confirm that every destination accepted the paste; delivery needs its own checks.

Share the hardware deliberately

Short dictation benefits from a ready model. Long recordings need a queue that survives interruption. The dictation backend can warm its model and release it after inactivity; the lecture transcriber checks available GPU memory and uses a separate process for each job.

How the GPU is shared
Resource design / one GPU, two workloads
Interactive dictation

Warm the model for nearby requests. Release it after inactivity to return memory to other work.

Long recordings

Keep jobs in a durable queue. Wait for capacity, then use a separate worker process for each recording.

Different lifecycles accommodate short interactions and long jobs on shared hardware. This is a scheduling design, not a latency benchmark.

Quill needs its server connection and human review. It demonstrates complete product integration: native controls, models, shared resources, and recoverable text delivery.

About the cover illustration
A black keyboard key connects a gold sound wave to orderly ivory marks representing text
Editorial illustration of speech becoming text. The artwork is not a screenshot of Quill.

Keep reading.

All articles

Bring us the work behind the work

A recurring report, a tool your team needs, or a process spread across too many systems. Start with the job you want to make easier.

Talk through your workflow