Éist research · snapshot 2026-09-15-v1
On-device TTS performance in Éist
Observed real-time factor (RTF) from production installations with analytics enabled. Analytics is enabled by default and users can turn it off in Settings. Lower is faster: 0.5 means synthesis took about half the generated audio duration. These are field observations from Éist, not controlled engine benchmarks.
Observation window
25 Aug–15 Sep 2026
Qualified device cohorts
25
Engine/platform health samples
100,574
Engine and platform results
Each installation contributes one typical value. Do not interpret configured concurrency as throughput.
| Engine | Platform | Median RTF | p10–p90 | Installations | Health samples |
|---|---|---|---|---|---|
| Kokoro | android | 3.48 | 2.326–5.258 | 63 | 1,998 |
| Kokoro | ios | 1.325 | 0.868–2.322 | 59 | 5,614 |
| Kokoro Turbo | ios | 0.438 | 0.227–0.672 | 105 | 2,602 |
| Piper | android | 0.247 | 0.115–0.782 | 297 | 11,193 |
| Piper | ios | 0.115 | 0.088–0.23 | 293 | 16,620 |
| Supertonic | android | 0.791 | 0.385–2.505 | 247 | 18,865 |
| Supertonic | ios | 0.304 | 0.212–0.531 | 244 | 43,682 |
Device cohorts
A device row is published only with at least 100 active health samples and 10 installations. Android models are too fragmented to clear the installation floor in this snapshot, so Android appears only in the platform-level table above.
| Engine | Device | Observed OS | Median RTF | p10–p90 | Installations | Health samples |
|---|---|---|---|---|---|---|
| Piper | iPhone18,2 | iOS 26.6–27.0 | 0.09 | 0.088–0.103 | 11 | 193 |
| Piper | iPhone18,1 | iOS 26.3–26.6.1 | 0.098 | 0.089–0.192 | 10 | 360 |
| Piper | iPhone17,2 | iOS 26.5.2–26.6.2 | 0.101 | 0.095–0.21 | 11 | 234 |
| Piper | iPhone18,3 | iOS 26.6–27.0 | 0.101 | 0.086–0.162 | 14 | 969 |
| Piper | iPhone15,2 | iOS 18.5–26.6.2 | 0.102 | 0.093–0.317 | 15 | 222 |
| Piper | iPhone17,1 | iOS 18.6.2–27.0 | 0.103 | 0.085–0.175 | 17 | 512 |
| Piper | iPhone16,1 | iOS 18.7.8–26.6.1 | 0.106 | 0.088–0.174 | 15 | 373 |
| Piper | iPhone16,2 | iOS 26.5–27.0 | 0.11 | 0.093–0.129 | 11 | 168 |
| Piper | iPhone17,3 | iOS 26.3–27.0 | 0.115 | 0.095–0.186 | 27 | 2,399 |
| Piper | iPhone15,4 | iOS 26.3.1–27.0 | 0.122 | 0.097–0.214 | 14 | 1,428 |
| Piper | iPhone15,3 | iOS 26.6–27.0 | 0.123 | 0.092–0.238 | 12 | 138 |
| Piper | iPhone14,7 | iOS 18.7.2–27.0 | 0.133 | 0.1–0.249 | 13 | 2,468 |
| Piper | iPhone14,5 | iOS 18.5–26.6.2 | 0.153 | 0.113–0.274 | 21 | 399 |
| Piper | iPhone12,1 | iOS 18.2–26.6.2 | 0.196 | 0.166–0.797 | 16 | 260 |
| Supertonic | iPhone18,1 | iOS 26.3–27.0 | 0.247 | 0.21–0.459 | 12 | 2,624 |
| Supertonic | iPhone17,1 | iOS 18.5–27.0 | 0.271 | 0.218–0.36 | 17 | 2,235 |
| Supertonic | iPhone18,3 | iOS 26.5.2–27.0 | 0.278 | 0.227–0.38 | 24 | 1,074 |
| Supertonic | iPhone16,1 | iOS 26.5–26.6.2 | 0.281 | 0.216–0.427 | 14 | 2,181 |
| Supertonic | iPhone17,3 | iOS 26.3–26.6.2 | 0.283 | 0.22–0.466 | 14 | 1,958 |
| Supertonic | iPhone15,4 | iOS 26.5–26.6.2 | 0.309 | 0.221–0.428 | 12 | 5,868 |
| Supertonic | iPhone16,2 | iOS 26.5–26.6.2 | 0.324 | 0.21–0.5 | 12 | 2,942 |
| Supertonic | iPhone14,7 | iOS 18.7.2–27.0 | 0.394 | 0.339–0.477 | 10 | 391 |
| Supertonic | iPhone14,5 | iOS 18.5–26.6.2 | 0.415 | 0.334–0.679 | 14 | 1,756 |
| Kokoro Turbo | iPhone17,1 | iOS 18.7.8–27.0 | 0.469 | 0.333–0.673 | 12 | 275 |
| Kokoro Turbo | iPhone16,1 | iOS 26.5–26.6.2 | 0.5 | 0.379–0.75 | 10 | 285 |
Download this snapshot
Immutable, privacy-screened aggregate data. The JSON includes platform summaries; the CSV contains the visible device table.
Citation
Éist. “On-device TTS performance in Éist.” Snapshot 2026-09-15-v1, methodology 1.0.0. Updated 21 September 2026.
Methodology and limits
The app emits a periodic synthesis_health observation while real synthesis work is active. avg_rtf is cumulative generated-audio time divided by synthesis time inside the active coordinator. We first calculate an exact median for each installation and then calculate exact cohort percentiles across those installation summaries. A highly active listener therefore gets the same weight as a lighter listener.
The snapshot includes release builds, foreground playback, physical devices, approved app versions, and values where 0 < RTF ≤ 10. It excludes emulators, sideloaded and test builds, background observations, system TTS, opted-out installations, and sparse cohorts. No raw identifier, timestamp, book, voice choice, location, or person-level row is published.
This dataset describes Éist’s implementation and usage mix. It does not measure speech quality, battery, memory, thermals, or global device ownership. Active health samples are not individual synthesis calls. Configured concurrency is not observed utilisation, so this release deliberately makes no throughput claim.
Configuration IDs
- Supertonic: upstream v3 model, Éist cache version 7.
- Piper: VITS through sherpa-onnx 1.12.40, Éist cache version 5.
- Kokoro: fp32 model through sherpa-onnx 1.12.40, Éist cache version 5.
- Kokoro Turbo: iOS MLX/Metal bf16 pack v3, Éist cache version 3.
Changelog
2026-09-21: first reviewed publication. Android device-level rows withheld because no exact model reached 10 installations.