LinearPilot
Engineering3 min read

Voice: what stays on your device

LinearPilot Team
July 19, 2026

Voice features in software almost always come with a quiet asterisk about where your audio goes. LinearPilot's voice has a real on-device guarantee, but it covers one half of the round trip and not the other, and this post exists mainly to make sure nobody walks away with the wrong half.

The setup is simple to describe. You can speak to the assistant, and it speaks back. That's two separate systems: turning your speech into text on the way in, and turning the assistant's reply into speech on the way out. They are built completely differently, and only one of them carries a strong guarantee.

The output half is the one with the promise. When the assistant answers, the spoken audio is generated in your browser. The speech model runs on your machine, the sound is synthesized there, and the resulting audio is never uploaded anywhere — the code that plays it has no network call in it at all. There is no round-trip to a voice service just to let you hear the response out loud.

That's the half worth protecting, because the reply is where your business actually shows up: the figures, the names, the substance of the answer. Producing that audio locally means the spoken version of your data isn't shipped off to be read aloud by a service you don't control. It's also the half you'd have the hardest time verifying from the outside, which is why it's the one we'd rather state precisely.

The input half is where the asterisk lives, and it works the opposite way. When you dictate, the browser records the audio and uploads it to LinearPilot, which sends it to Google for transcription — the same provider named on our sub-processor page, under the same terms as the rest of the AI. We chose that over the browser's own speech recognition because the accuracy difference is large, particularly for languages the browser handles poorly. It is a real trade, made deliberately, and it is not what the word “local” would lead you to expect.

The browser's built-in recognition is still wired in, as the fallback. It takes over when your browser can't record, when the transcription service is unavailable, and — this one matters — when a workspace hasn't consented to AI processing. So a company that declines external AI still gets dictation; it simply gets the browser's version of it, and stays on that for the rest of the session.

We're spelling this out because the honest version of a privacy claim is the one that survives a careful reader. It would be easy to print “your voice never leaves your device” across a page and let everyone assume it covers the whole round trip. It doesn't. The reply audio is generated on your machine and stays there; the audio of your question is uploaded and transcribed by a named provider. Two different sentences, and collapsing them into one would be the exact thing this blog is supposed to avoid.

There's a practical cost to the on-device half that's worth knowing before you turn it on. The speech model has to be downloaded to your browser the first time — roughly four hundred megabytes, once, then cached. It's a real download, it's slow on a phone, and it's the price of not sending your audio somewhere to be spoken. Thirteen of the fourteen supported languages are read out by that on-device model; Chinese falls back to whatever voice your browser provides.

The boundaries are worth naming. This is speech in and speech out for the assistant. It isn't a phone system, and it isn't there to transcribe your meetings. What it gives you is a hands-free way to ask a question and hear the answer, with the answer's audio produced and kept on your machine.

So the checkable version of the claim, which is the only version worth making: the assistant's reply is spoken on your device and that audio stays there. Dictation goes to a provider we name. That is a great deal narrower than the sweeping version of this promise you will see elsewhere, and it has the considerable advantage of being true.