#383

Dictation in Omarchy with the Mac's on-device speech recognition

OpenNimbleAINinjaopened 3d ago

What would you like to improve?

Try Omarchy's dictation backends each come with a trade-off:

  • Superwhisper, preinstalled since Try Omarchy 1.0.1, uses cloud processing by default, so the audio leaves the machine.
  • Superwhisper's local models and Voxtype recognise inside the VM, on its CPU, without GPU acceleration. That's slower, and a heavy load inside a VM.

Meanwhile the Mac has fast, private, on-device speech recognition (SpeechAnalyzer, macOS 26) and the microphone itself.

Suggested change

Recognise on the Mac, type in Omarchy:

  • A virtio-serial port for dictation. Omarchy says start and stop; a helper in the app runs SpeechAnalyzer on the Mac microphone only while a session is live, and sends back partial and final text. The orange microphone indicator shows only then, and nothing leaves the Mac.

  • A "Dictation" launcher setting. On macOS 15, or in a build without the macOS 26 SDK, there's no setting and no port.

  • In the try-omarchy package:

    • a small user service that serves the port to guest programs on a socket;
    • Apple Speech, an Omarchy dictation backend in Omarchy's documented form (omarchy-dictation-<backend>, plus an installer and remover).

    Apple Speech is offered under Setup > Defaults > Dictation only while the port exists and is never selected automatically. Omarchy's own dictation keys then use it. With the setting off, it does nothing and Omarchy keeps the user's previous backend.

I have a working implementation with tests (including make e2e), and can open a PR if you'd like this. On an M1 MacBook Air, the text appears 53–239 ms after the key is released (median 112 ms).

Two choices I'd welcome your view on:

  1. Default for the launcher setting. My implementation has it on. The cost is a port and an idle guest service of about 7 MB; the microphone is never touched until a recording starts.
  2. How Apple Speech is offered. I've kept it to Omarchy's Setup > Defaults > Dictation menu and never select it automatically, so Superwhisper stays the default until the user switches. Is that what you'd want, or should turning on the launcher's Dictation setting also choose it?

Activity

0

No activity yet.