I have used Kokoro fairly extensively for an accessibility product. I have loved working with it (especially because I don't have an NVidia GPU like many TTS of similar quality require).
I particularly appreciate the fact that it lets you manually add IPA pronunciation guides. There have been some cases where an important word is a homograph and Kokoro assumed the wrong pronunciation.
The place where it falls a little short is in saying just a single word or two. Try having it say simply "six" and it almost always says something like "ah-six-ah". I found a way around that though. If you give it a longer sentence to say (eg "The word is: six") it will say it fine. The trick is that the Kokoro API gives you the timestamp of each word in the sentence. So you can have a Python script crop out just the word you care about. The intonation is a little flat this way, but is very reliable.
I asked about this on the discord, and was told that it is a limitation of the small parameter size. But in fairness to Kokoro, even eleven-labs' voices suffer from this occasionally.
dmayle 2 hours ago [-]
Fun... This is something I actually care about...
I used to keep a version of whisperx around, because I think it's important to have not just transcription, but also timing and speaker identification (e.g. for subtitles)... It depends on pyannote, though, which has some wierd licensing (and is tougher to script the installs because of it), so I wanted to look at something that both had better transcription, and supported diarization (the speaker and timing). I decided on parakeet for the transcription with softformer (the diarization), but most of the available engines for it don't include softformer.
I coded up an OpenAI compatible server for parakeet-rs ( https://github.com/altunenes/parakeet-rs ) (which does support softformer) and I've been using it with OpenWhispr (a desktop app for transcription that handles all sorts of neat thing).
I'm doing CPU-only transcription (because I use my GPUs for other stuff and haven't gotten around to adding in the GPU-path), but it's incredibly empowering to be able to have local transcriptions at will.
dghlsakjg 1 hours ago [-]
This is TTS. Not STT.
For what you are doing, Senko works really well for diarization along with parakeet.
Faster and more accurate than Pyannote and whisper on my MacBook anyway.
dmayle 1 hours ago [-]
You're right... I read the title too quickly... I'll have to look at Senko vs Softformer later...
deivid 10 minutes ago [-]
I spent a day fiddling with AI and dropping the expensive layers in kokoro, on phones, on CPU, on MNN, it runs 3x faster.
Cool I actually got it ported to iPhone’s ANE finally yesterday! So we can get both rt natural local TTS and 4x less battery drainage and thermals
dvt 2 hours ago [-]
I'm using Kokoro for a fun little side-project browser-based game I'm working on. It's legitimately super good for being only 85mb (for the wasm version) or 300mb (for the webgpu version).
Judson 28 minutes ago [-]
Love Kokoro tts. I wrote https://github.com/Jud/kokoro-coreml to try pushing the limits a bit on speed & size. Such great quality at a given size. As others have mentioned short utterances are problematic, but solvable.
kn100 2 hours ago [-]
I'm using exactly this TTS engine for my intercom door system I built. The quality of the TTS is very good.
fady0 25 minutes ago [-]
Anyone know which local TTS is best, close to Eleven Labs quality?
I've found that for CPU inference the PyTorch-based (non-quantized) version of Pocket TTS actually performs (both speed and quality-wise) better than the ONNX version, even after fiddling with all of the knobs that ONNX provides.
teravor 2 hours ago [-]
i found the exact opposite, the pytorch version on the cpu barely does over 2 times realtime while i can get the onnx int8 version to reach 5x.
elevation 2 hours ago [-]
Any good debian-ish distros that integrate TTS and STT in a usable shell?
othmanosx 2 hours ago [-]
Yeah, we need to keep up with how quickly AI types back to us, typing on the keyboards is no longer quick enough, gotta dictate everything now.
victorbjorklund 1 hours ago [-]
This is the opposite way
croes 55 minutes ago [-]
Great way to enter your passwords
0gs 2 hours ago [-]
kokoro is surprisingly great at nuance but it's tough to improve that last ~2% or so. kokoro + rvc is really great too; i use that for ELEMENT47, the LLM-centric comedy podcast i do that i wish more people would listen to. (e47.net , feel free to subscribe!)
lostmsu 2 hours ago [-]
> Apple M2 Pro: 4.5 seconds
> AMD Ryzen 7 8745HS: 1.5 seconds
These two can probably do it much faster on their iGPUs.
dygd 58 minutes ago [-]
Yep, and Kokoro-FastAPI (which he already uses) makes it super easy with start-gpu_mac.sh
SubiculumCode 2 hours ago [-]
kokoro is very nice, but I am disappointed that this wasn't an announcement of a new kokoro version.
tempaccountabgd 37 minutes ago [-]
[dead]
Rendered at 21:28:50 GMT+0000 (Coordinated Universal Time) with Vercel.
I particularly appreciate the fact that it lets you manually add IPA pronunciation guides. There have been some cases where an important word is a homograph and Kokoro assumed the wrong pronunciation.
The place where it falls a little short is in saying just a single word or two. Try having it say simply "six" and it almost always says something like "ah-six-ah". I found a way around that though. If you give it a longer sentence to say (eg "The word is: six") it will say it fine. The trick is that the Kokoro API gives you the timestamp of each word in the sentence. So you can have a Python script crop out just the word you care about. The intonation is a little flat this way, but is very reliable.
I asked about this on the discord, and was told that it is a limitation of the small parameter size. But in fairness to Kokoro, even eleven-labs' voices suffer from this occasionally.
I used to keep a version of whisperx around, because I think it's important to have not just transcription, but also timing and speaker identification (e.g. for subtitles)... It depends on pyannote, though, which has some wierd licensing (and is tougher to script the installs because of it), so I wanted to look at something that both had better transcription, and supported diarization (the speaker and timing). I decided on parakeet for the transcription with softformer (the diarization), but most of the available engines for it don't include softformer.
I coded up an OpenAI compatible server for parakeet-rs ( https://github.com/altunenes/parakeet-rs ) (which does support softformer) and I've been using it with OpenWhispr (a desktop app for transcription that handles all sorts of neat thing).
I'm doing CPU-only transcription (because I use my GPUs for other stuff and haven't gotten around to adding in the GPU-path), but it's incredibly empowering to be able to have local transcriptions at will.
For what you are doing, Senko works really well for diarization along with parakeet.
Faster and more accurate than Pyannote and whisper on my MacBook anyway.
Quality is very close.
Will vary in your setup, but here is my script: https://github.com/DavidVentura/translator-rs/blob/master/sc...
the onnx version of pocket-tts does perform better. https://huggingface.co/KevinAHM/pocket-tts-onnx
> AMD Ryzen 7 8745HS: 1.5 seconds
These two can probably do it much faster on their iGPUs.