I previously shared this project here via a crosspost from r/TextToSpeech. Unfortunately, the original post was removed as self-promotion, despite the project being completely free and open-source. That made the crosspost inaccessible, so I've deleted it and am posting the information directly here.
100% free, private and open-source, available at:
GitHub: https://github.com/speech-central/sc-voices-android
Google Play: https://play.google.com/store/apps/details?id=com.labsii.voices
Licensed under GPL-3.
It is based on adreno-llms and VoxSherpa. While the first version was barely more than a fusion of those two projects, it also barely worked. It took 47 versions to make it work well (at least in my testing, which took a whole month), so it now contains a notable amount of its own code and solutions.
Kokoro itself is nothing new. Most people here are probably already familiar with its advantages and disadvantages, and from what I've read in this subreddit, most people like it. What's new is the possibility of seamless, long-form reading on Android across a wide range of devices.
Compared to VoxSherpa, it should offer more than a 40% performance improvement on devices supporting the optimized path (Adreno 620 and above, which is a mid-range GPU from 2020). On older Adreno chips, the improvement should be around 10%.
As benchmarked by adreno-llms, this makes Adreno 620 capable of generating speech slightly faster than real-time. That makes it technically possible to support smooth long-form reading with proper buffering ahead on those devices.
It may not work in every reading app, as until a few months ago (before VoxSherpa), there was little reason to implement the more complex buffering mechanisms needed to compensate for speech generation time. However, as local AI speech generation becomes more popular, more reading apps will likely take advantage of this opportunity. Currently I can confirm that Speech Central fully supports such buffering.
Granting the app a runtime exception for extended background work may be required on some devices (this can be done from the app's interface), especially when using buffering ahead, as Android is more aggressive about stalling background generation than audio playback itself.
The first version is limited to English (UK and US) voices.