At work I build real-time transcription with cloud speech APIs. They are very good. They also need a network connection, an account, a key, a bill, and a decision about whose servers your users' voice

Markdown supported · ⌘↵ to post
Keeping the audio on the phone removes the whole question of whose servers the voice goes to, that alone makes on-device worth the accuracy tradeoff for a lot of apps. Getting live text to settle without flickering is harder than it looks.
One edge case I’d be curious about is what happens when the audio route changes mid-session. For example, a user starts dictating through a Bluetooth headset, unplugs it halfway through a sentence, and the phone switches back to its built-in mic with a different sample rate.
On iOS, a route change can affect the sample rate and channel configuration, so it’s not just a microphone restart problem. How does transcribe_cpp handle that transition? Does it rebuild the capture pipeline while preserving the current utterance, or does it finalize the sentence and start a fresh one? That distinction matters quite a bit for hands-free transcription, especially during long sessions.
The "whose servers your users' voices go to" framing is exactly the decision point. I hit the same one with documents instead of voice - official letters people shouldn't upload anywhere - and ended up with a local model on CPU for the same reason you ended up on-device: the constraint turns out to be the feature. The 40x-real-time number on a mid-range phone kills the assumption that local always means slow. Curious about the voice detection part: did you have to tune it per language or per environment, or does the default hold up in noisy places?
The two-read agreement rule raises an interesting boundary: what happens if a word agrees twice, then the completed sentence changes it? Does the final pass correct the displayed text, or is the committed prefix fixed? A small example with a long pause in the middle of a phrase would help distinguish stable display from final transcription accuracy.
Julian Neagu
500+ AI tools shipped solo. Founder of VisionVix.
The audio never leaving the phone is a big deal for apps handling private stuff. Nice to see offline speech getting fast enough to feel usable on a normal phone.