Voice Interaction in QUILL

QUILL can be driven by voice — hands-free, on your own device, with nothing uploaded. This page is the complete reference for what voice can do today, how each mode works, exactly which spoken commands are understood, and the safety rules that never change.

Everything here is part of the Hey QUILL program. It is off by default, always off in Safe Mode, and every layer keeps recognition on your machine.

The one safety rule

Voice can only run a curated, non-destructive allowlist of commands. Saying the wrong thing cannot close a document without saving, send, publish, or delete anything — those actions are simply not in voice’s vocabulary. The same allowlist bounds the AI agent. If you ask voice something it does not recognize as a safe command, it tells you what it heard and does nothing.

Turning voice on

  1. Open Settings and turn on Voice commands (push-to-talk). This one switch enables every voice mode below.
  2. Make sure an offline speech model is installed (QUILL offers to download one the first time you use voice; it is a one-time on-device download).
  3. Optionally assign keyboard shortcuts to the voice commands under Settings → Keyboard, so you can start them without the menu.

Voice is unavailable in Safe Mode, and needs microphone-capture support (the optional sounddevice component, included in standard installs).

Choosing the recognition engine

Voice interaction runs on an on-device speech engine, and you can choose which one under Settings → Voice recognition engine:

Whichever you pick, you need a model installed for that engine (download one from Tools → Speech → Manage Speech Models). If the chosen engine or its model isn’t available, QUILL automatically falls back to your main engine, so voice always works.

The four ways to use voice

QUILL’s voice support was built in four layers. Each one builds on the one before it, and they share the same on-device recognition and the same safe allowlist.

1. Voice Command (push-to-talk)

Tools → Speech → Voice Command (Offline).

The simplest mode. Run the command, speak one command, run it again to stop and act. QUILL recognizes the phrase on your device and runs the matching command. Say “cancel” or “never mind” to abort.

Best when you want to fire a single command without touching the keyboard.

2. Voice Conversation Mode

Tools → Speech → Voice Conversation Mode.

The hands-free version. Run it once and QUILL listens for a command, then keeps a short follow-up window open after acting so you can chain commands — “next heading”, then “read aloud”, then “word count” — without arming again between them. A warm audio cue marks every state:

Cue Meaning
Rising three-note chime Conversation mode turned on
Soft two-note The microphone is open; speak your command
Gentle rise Your command was recognized (a brief “cancel” window follows)
Sparkle The action finished
Quiet tick QUILL is still working, so the wait is never silent
Calm falling tone Nothing matched
Settling tone Relaxed back to rest

Run it again, or say “stop”, to turn conversation mode off.

Your turn ends when you stop speaking — QUILL listens to the microphone’s energy and finishes the turn after your pause, rather than cutting you off at a fixed time. You can make it more personal, too: set your name in Settings and QUILL uses it in its prompts (“Listening, Jeff.”), with wording that varies naturally and follows the time of day. If you’d like the prompts spoken aloud, turn on Speak prompts aloud; QUILL keeps that silent whenever a screen reader is running, so it never talks over your reader.

Timing you can tune (Settings; set any to 0 to switch that part off):

The nine cues are ordinary Sound Events — retune or replace them in any sound pack from the Sound Events dialog, exactly like every other QUILL earcon.

3. “Hey QUILL” wake word

Tools → Speech → Listen for Hey QUILL.

Always-listening. QUILL listens continuously, on your device, for the phrase “Hey QUILL”. Two ways to use it:

While it is on, the status bar shows that the microphone is live and plays a periodic reminder, so an open microphone is never a surprise. Run the command again, or say “stop”, to turn listening off instantly.

It stays off unless you say otherwise. Always-listening turns itself off when QUILL closes; a separate setting — Keep listening for “Hey QUILL” across restarts — lets you have it resume automatically at startup if you want that.

Checking what voice is doing — Speak Voice Status

Tools → Speech → Speak Voice Status tells you, at any moment, exactly what voice is up to: listening for “Hey QUILL”, in conversation mode, capturing a command, or not listening at all. It is a quick way to confirm the microphone state — assign it a shortcut for an instant check.

4. Ask a question — routed to Ask Quill

When you speak something that is a question rather than a command — either starting with “ask” (“ask what a heading is”) or shaped like a question (“how do I save my document”) — voice hands it to Ask Quill, QUILL’s AI assistant, with your question pre-filled and ready to send.

You press Enter to send it, so a person is always in the loop for anything that reaches the AI. Ask Quill answers with its own spoken-reply and change-review tools. This needs AI to be set up; if it is not, Ask Quill offers to set it up rather than failing. Questions are only routed to AI — voice never sends anything to a network service on its own.

What voice can run — the command allowlist

These are the commands voice understands today, with the phrases that select each. Matching is forgiving: the command’s own name works too, and close phrasings still match.

Say Runs
“save”, “save file”, “save document” Save
“save all”, “save everything” Save All
“new”, “new document”, “new file” New
“undo” Undo
“redo” Redo
“select all” Select All
“bold”, “make bold” Bold
“italic”, “make italic” Italic
“uppercase”, “make uppercase” Upper Case
“lowercase”, “make lowercase” Lower Case
“title case” Title Case
“sentence case” Sentence Case
“bullet list”, “bulleted list” Insert Bullet List
“numbered list” Insert Numbered List
“word count”, “count words” Word Count
“spell check”, “check spelling” Spell Check
“read aloud”, “start reading”, “pause reading” Read Aloud (start/pause)
“stop reading”, “stop read aloud” Stop Read Aloud
“next heading” Next Heading
“previous heading”, “prior heading” Previous Heading
“outline”, “show outline” Outline Navigator
“find”, “search”, “find text” Find
“soft wrap”, “word wrap” Toggle Soft Wrap
“command palette”, “commands” Command Palette

Anywhere you can speak a command, you can also say “cancel”, “never mind”, “stop”, or “dismiss” to abort.

Teaching dictation your words (a dictation profile)

Dictation can learn your vocabulary. QUILL reads a small, human-editable file called dictation.md in your QUILL data folder; edit it, save, and the next dictation uses it. Every section is optional.

## Vocabulary
- QUILL
- wxPython
- GitHub

## Replacements
new line => \n
open paren => (
get hub => GitHub

## Commands
save everything => file.save_all

The profile applies everywhere dictation transcribes: Locked Dictation and the Dictate (Offline) toggle.

Choosing a speech engine and model

Dictation is engine-agnostic and fully offline. In Manage Speech Models you can install and choose:

Privacy and control at a glance

Roadmap

Voice interaction shipped in four phases, and the polish refinements followed: true silence detection (your turn ends when you stop speaking), personalized and optionally-spoken prompts with screen-reader parity, the Speak Voice Status check, and the editable dictation profile (dictation.md) are all in place. The one genuinely future item is a dedicated low-power keyword spotter for the wake word (so always-listening costs even less than it does today).