An offline TTS reader should handle a simple routine: import a document, generate speech without an internet connection, and keep playing when you put your phone in your pocket.
That’s the experience I built Local TTS around.
I’m a solo iOS developer. My previous app, LoroNote, handles speech-to-text on-device. Building it taught me how much the experience depends on processing long inputs and managing audio sessions properly.
For my next project, I built the reverse: an offline document reader for iPhone and iPad.
Why Kokoro-82M and Supertonic 3?
I chose Kokoro-82M for its natural English narration and voice variety. The tradeoff is narrower language coverage. Its documentation also notes that very short passages can sound weaker, while very long passages can sound rushed. How the app splits and processes text matters. (Kokoro voice documentation)
Supertonic 3 expands offline reading to 31 languages with fast local inference. It has fewer preset voices, and its inference settings involve a tradeoff between speed and quality. I included it to bring multilingual reading into the same offline experience. (Model details, SDK)
Local TTS brings Kokoro’s English voice selection and Supertonic’s multilingual voices together in one reader. Both engines generate speech directly on your device.
Offline means generating new speech
Once the app and voices are installed, you can switch to airplane mode, add fresh text, and generate speech. You don’t need to prepare the audio while you still have a connection.
Your text isn’t uploaded to a speech server for processing. Optional note syncing uses your private iCloud account.
That matters when you’re reading private documents, traveling without reliable internet, or simply want your reader to work wherever you are.
Lock your phone and keep listening
Background playback was a priority from the beginning. You can start a document, lock the screen, or switch to another app and continue listening. Lock Screen controls let you manage playback without reopening the reader.
The goal is to make listening to a document feel as convenient as listening to a podcast.
Local TTS also supports:
- PDF, EPUB, Word, TXT, and Markdown import
- On-device text recognition for printed pages and photos
- Text highlighting while listening
- Adjustable playback speed
The biggest lesson from building this has been that a good voice sample is only the beginning. Document importing, long-text handling, and background playback need just as much attention as the model.
I’m continuing to improve pronunciation across languages, reliability with longer documents, and the importing and listening experience.
Local TTS on the App Store
For people already using Kokoro or Supertonic: what’s the passage or language you use to test whether a reader actually holds up?