Builds
MomoTTS: Neural Text-to-Speech That Never Leaves Your Android Phone (Piper + Kokoro Voices, Zero Cloud)
MomoTTS runs Piper and Kokoro neural voices entirely on an Android phone: no account, no cloud, no per-character bill. Design, limits, checksums inside.

Last updated: November 13, 2026 · 6-minute read
Zero bytes uploaded — that is the whole architecture of MomoTTS, the text-to-speech studio I built for Android. Every stage of the pipeline, from splitting the text to stitching the final audio, runs inside the phone's own sandbox on compiled ONNX runtimes. No account, no cloud call, no per-character meter. This post covers why I built it that way, what the design actually guarantees, and where on-device speech honestly runs out of road.
Cloud TTS rents you a voice. The text you paste — a contract, a diary entry, an unpublished chapter — travels to a server, gets logged somewhere you cannot audit, and comes back as audio with an invoice attached. For narration drafts and private documents, that trade stopped making sense to me the moment phone hardware could run real neural voices locally. MomoTTS is the result: a studio that treats offline as a feature, not a fallback.
Two Voice Families, One Sandbox
The engine layer is Sherpa-ONNX, running two open voice families:
- Piper VITS (MIT) — crisp, efficient narration voices, the workhorses for long documents
- Kokoro-82M (Apache 2.0) — the expressive lead voices, 82 million parameters aimed at emotive delivery
The hub ships with 12 or more voices across the two families, downloaded on demand rather than baked into the APK, each with its own storage readout and a one-tap cache cleaner. That choice keeps the app itself lean and makes the storage cost of every voice visible — on-device software has to respect the device, because there is no server farm absorbing the waste.
The interface is Flutter. All inference runs in background isolates, so the UI thread never touches synthesis and the screen keeps scrolling while a chapter renders. Projects, models, and temp audio live in sandboxed SQLite and app-private storage. The only network the design allows is user-initiated voice downloads; the documentation's phrase is zero telemetry sockets, ever, and the contributing rules make that a merge blocker rather than a preference.
The Pipeline, Paste to Master File
Long text is where phone TTS usually dies. MomoTTS splits first, synthesises second:
1. Paste anything. Articles, EPUB excerpts, screenplays — the splitter has no length ceiling. 2. Split at natural pauses. The splitter reads punctuation rhythm and avoids abbreviation traps — "Dr.", "e.g.", decimals — cutting where a human narrator would breathe. 3. Synthesise in parallel. Chunks render across background isolates. 4. Stitch losslessly. The chunks rejoin into one gapless master at 24 kHz, exported as 16-bit WAV or voice-tuned MP3 through the native share sheet.
Multi-character work gets its own track. Scripts written as NAME: line are auto-cast to distinct voices per character, with per-line re-rendering and saved cast presets — the feature that turns a dialogue scene from a copy-paste marathon into one pass. For my own narration workflows, that and the splitter are the two capabilities that justify the app existing next to a dozen simpler readers.
Download It, Verify It
Release v1.0 (build 106), published October 20, 2026, ships three builds of the same application:
Minimum system is Android 8.0. Every build ships with published SHA-256 checksums, and the security policy is blunt: a checksum mismatch means the file is not the official build — do not install it. Sideloaded software lives or dies on that ritual, and a privacy app that skipped it would be asking for trust it had not earned.
The public site is a separate design system on purpose — Golden Hour Studio: warm paper canvas, Fraunces display type, tangerine and pink accents, features presented as numbered album tracks. It shares nothing visual with MomoStack's dark Obsidian Editorial system. Two products from one maker should read as siblings raised in different studios, not as one template with the name swapped.
TL;DR
- MomoTTS is a free Android TTS studio that runs 100 percent on-device — Piper VITS and Kokoro-82M voices through Sherpa-ONNX, zero cloud, zero telemetry, zero accounts
- A sentence-aware splitter, parallel chunk synthesis in background isolates, and lossless 24 kHz stitching handle documents of unlimited length
- NAME: line scripts get multi-voice dialogue casting with saved presets
- v1.0 (build 106) ships three APK builds for Android 8.0+, each with published SHA-256 checksums
- MIT-licensed (site and documentation), with Piper (MIT), Kokoro (Apache 2.0), and Sherpa-ONNX (Apache 2.0) under their own licences
- The honest limits: a single v1.0 release, single-digit download counts so far, and on-device voices that trail the best cloud voices on raw expressiveness
Where It Falls Short
The honest answer: MomoTTS wins on custody of your text, and loses — today — on polish, reach, and proof.
- One release, almost no mileage. v1.0 is the first stable release, and the GitHub release page shows single-digit download counts as of November 2026 — four downloads on the recommended arm64 build. I built it, I use it, and that is currently most of the user base. Read the guarantees above as design commitments documented in the repo, not as a track record.
- On-device voices have a ceiling. Kokoro-82M is remarkable for 82 million parameters that fit on a phone, but the largest cloud voices still win on raw expressiveness, pronunciation of edge-case names, and language breadth. If your output is a commercial audiobook, audition both before committing.
- Your phone is the render farm. Long documents synthesise at the speed your hardware allows, and they spend battery doing it. The isolate design keeps the UI smooth; it does not repeal physics.
- Sideloading is the distribution, with everything that implies. No Play Store listing means no store discovery, no automatic update channel, and the checksum ritual above standing between users and impostor copies.
- The repo is the site as much as the app. The public repository carries the Golden Hour Studio landing site and documentation set; the release APKs are the app. That openness is deliberate, but it means the codebase reads as a product site first — judge the app by its release and its privacy specification, both linked from the repo.
The Verdict
MomoTTS exists because a category of text — private, unpublished, personal — should never have needed a server's permission to be read aloud. It keeps that promise with open engines, published checksums, and an architecture where uploading your words is not a setting but an impossibility. Small, young, and mine: if it grows, it grows on those terms.
It belongs to the same offline-first shelf as the privacy tools I actually use, and it feeds the same narration pipeline as perfect-srt, the subtitle fixer from earlier this week. The rest of the shelf lives on the projects page.
---
Not affiliated with the Piper, Kokoro, or Sherpa-ONNX projects. Sources: MomoTTS GitHub repository, including its README, capability matrix, release v1.0 download and verification tables, and privacy specification.