All articles

Read in Czech

STT for an Unsupported Language on iPhone – Part 3

By Pavel Stančík · 2026-10-04

In the second part, I described why I chose a model running directly on the phone and what the solution looks like in practice. In this last general part, I look at where things still stall for a language not supported by Apple and what I would like to see in the future.

Czech as a "Small" Language

Czech clearly shows how big a difference the line between languages the system supports and those it doesn't makes. A developer gets a supported language almost for free: the model is part of the system, Apple has prepared it in advance and it starts instantly. With Czech, the app has to take care of everything itself.

This solution comes at a price:

  • the size of the model, which must be downloaded and stored,
  • preparing the model for the specific phone, which takes minutes,
  • making sure the preparation isn't interrupted and that the app also runs in the background.

This isn't just a Czech problem. Apple Intelligence currently supports only about sixteen languages, so hundreds of others are in a similar position. The greatest help would therefore be support for Czech directly in the system. Then this whole detour would be unnecessary. Until that happens, a custom solution is what remains.

What Doesn't Work Yet and What to Watch Out For

The first is transcription quality, because even Whisper makes mistakes, especially with names, technical terms and in noisy environments. Models that couldn't handle Czech produced nonsense or switched to another language.

To get the transcript and response right, I let users set the language with a toggle. Czech marks gender even in everyday sentences ("byl jsem unavený" vs. "byla jsem unavená", i.e. "I was tired" said by a man or a woman), so I also offer an "I am a man / I am a woman / Prefer not to say" option.

Several minutes of waiting is unpleasant for a new user, and so far I haven't managed to hide it completely. Unfortunately, the app also has to be running while the model is being prepared. Loading it into the phone's memory afterwards is very fast.

It is also rather annoying that training data shows up in the text. Often at the end of sentences, instead of a silent gap, a fragment resembling subtitles appears, such as the name of the subtitle translator; it almost seems that Whisper was trained, among other things, on content from the website titulky.com.

AI Is Not a Therapist

AI responses are an aid to self-reflection, not therapy or professional advice. The mood mentor can point out patterns, such as poor sleep after evening meetings, but it cannot replace a doctor or psychologist. If you are not feeling well, please reach out to a professional.

Conclusion

I wanted a journal that I could dictate into my watch, for example while driving or whenever the thought strikes me, and that would help me understand my own moods. I found that even if the system doesn't support your native language, you don't have to give up. But you have to accept compromises: the size of the model, the initial preparation and the fact that part of the work Apple does elsewhere, I have to do myself.

If you're interested in the technical details, I'm preparing a separate article. It will cover:

  • how the app detects whether the phone supports Apple Intelligence and selects the engine accordingly,
  • why I hosted the model on Cloudflare's R2 storage,
  • how model preparation for the Neural Engine works and what triggers it again,
  • how transcription runs in the background even with the phone locked, and where to store keys in the Keychain,
  • how the language and speaker-gender toggle works.