Skip to content
Arion
Blog

Product

Where your dictation goes

Arion recognizes speech on your computer. Here is what stays on the device, the few things that use the network, and how to check it yourself.

A soft, motion-blurred photograph of falling flowers

Voice input hears everything you say while it is on. That makes one question matter more than any feature: where does the audio go? For Arion the answer is short. It stays on your computer, and so does the text it becomes.

What stays on your device

When you press ⌥ Space, Arion records into memory, recognizes the speech with a model on your computer, and types the result where your cursor is. Audio is held only for the dictation in progress and dropped when it ends. Drafts and corrections are kept the same way.

Press ⌥ Space in the frame, or click it, to start and stop a pretend dictation. Nothing is recorded.

Words you teach Arion stay too. Correct a word it typed and it applies the fix next time, with an undo:

The pill after a correction. The learned word is stored on the device, encrypted.

Approved and learned vocabulary is sealed with AES-256-GCM. The key is generated on the device and kept in the login Keychain on macOS, or with DPAPI on Windows.1

What uses the network

Three things, and none of them carries what you said:

RequestWhat it sendsWhen
Model downloadA request for public model files, each checked against a pinned SHA-256 digestOnce, before first use
Update checkNo content or device identifierAutomatically, unless you turn it off
Sign-in and cloud polishingRecognized text and enabled context, never audioOnly if you sign in or connect a provider

After the model download, dictation needs no network at all. Arion has no cloud speech recognition and no telemetry.

Check it yourself

Arion is open source under AGPL-3.0, so you do not have to take this post's word for it. Build it from a fresh clone:

git clone https://github.com/AstraFoundry/Arion.git
cd Arion
make install
make desktop-build

Then turn off Wi-Fi and dictate. If anything here stops being true, it is a bug, and the privacy page and the specification2 change in the same change set as the code.

Footnotes

  1. A missing key or a failed integrity check is an error. Arion never falls back to storing vocabulary in plaintext. ↩

  2. Specification 005: Privacy in the repository. ↩

More from the blog