What voice is for
Checked against the Orcyx source tree at c339cf993 on 2026-09-14. Where this page describes something the build does not do yet, it says so in place rather than describing the intention.
Dictation types into whatever has focus - a pane's prompt, a composer, an input box - so a long instruction to an agent can be spoken instead of typed. It is an input method, not a separate mode you enter and leave.
Separate Sage and Quick Dictation controls
In Settings > Voice, choose Sage or Quick Dictation. Each has its own transcription engine, enhancement and polishing switches, and provider and model choices. Turning enhancement or polishing off keeps that processing off for the selected mode without changing the other mode.
The Audio tab holds shared microphone and speaker settings. Sage Streaming recovers when the main window is recreated; if capture still fails, the error stays visible.
The engine ladder
Several transcription engines are supported, and they are genuinely different products with different trade-offs rather than interchangeable backends:
| Engine | Runs | Trade-off |
|---|---|---|
| The browser speech engine | In the webview | No key, no setup. Sessions are time-limited - it stops on its own after roughly a minute and a half - and language coverage depends on the platform. |
| Sage Offline (bundled, local) | On your machine | Fully offline. Slower, and accuracy depends on which model tier is present, which the interface names rather than hiding. |
| Sage Streaming (local) / Sage Voice service | On your machine, as a sidecar | Offline with better accuracy than the small bundled tier, at the cost of a process to start and memory to hold it. |
The microphone opens before engine discovery has finished, deliberately: the alternative is a button that appears to do nothing for a second while the app works out which engine it has. You start speaking, and the engine that services the capture is named once it is known.
When an engine is not available
A downgrade is disclosed, not silent. If the preferred engine has no key, cannot be reached, or is not installed, the app says which engine actually handled the capture - including the model tier when a local model has several, because "transcribed locally" means something very different on a tiny model than on a large one.
This is the same rule the rest of the product follows: a degraded result that is labelled is usable, and a degraded result that looks identical to a good one is a bug you will chase somewhere else entirely.
Microphone selection is a known rough edge on Windows. The webview does not reliably honour a preferred-device hint, so a specific microphone may need selecting at the operating-system level rather than in the app.
Speech out
The app can also speak - agent output read aloud through a voice service. It is queued rather than fired per message, so a burst of agent chatter does not produce overlapping speech.