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.
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!)
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).
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.
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.
Unfortunately it makes it unsuited for my use case, which is almost entirely single words, as I don't particularly want to deal with stitching/segmenting input/output.
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.
Both Text-to-Speech and Speech-to-Text now have local models that are good enough to get the job done. Kokoro for TTS, Parakeet for STT and Fluid-1 for text formatting (I use it with FluidVoice). I hope this is a trend that continues for other applications.
A couple months back I wrote a chrome extension that does this on any webpage, with simultaneous highlighting of the sentence being read. Skips both the container launching step and the copy pasting website contents step. Might be useful to anyone trying to use kokoro ergonomically.
It's interesting that the male voices are all so much worse than the female voices (several are quite good). There is bias in machine learning, but I wonder whether there is also systematically more training data of female speech?
Love this model. I’m GPU poor and have had FOMO that I haven’t played with local models at all. About a month ago I setup Kokoro on my GTX1650 to do TTS for an article reader. A simple WebUI lets me paste a URL or a chunk of copy pasted text. Python cleans it up and sends to Kokoro for TTS and it’s then served via RSS for Apple Podcasts. Then for my morning drive I’ll catch up on articles or blog posts I’ve gathered.
At some point I’d like to play with separate voices and see if I could build something like NotebookLM for kind of like a radio morning show of news items I’ve gathered.
I just hooked it up to my personal AI Japanese Teacher app, pretty good quality / natural sounding speech in mixed English / Japanese while running fast on CPU so I don't waste VRAM.
For Japanese TTS, AivisSpeech-Engine[1] works really well with mixed Japanese/English text in my experience. They also provide container images on ghcr.io for both CPU and GPU inference.
Naive question, but I once downloaded a particular voice file that I wanted to use with some other RVC TTS project, but ended up not being able to run it CPU only, so I only kept the voice I wanted.
Thing is, the voice is in .pth format, and on Kokoro's huggingface page, their voices are all .pt.
Would I be able to use this voice I already have with Kokoro? If not, is there any way to convert it?
I could always go looking if someone made this specific voice but in .pt format, but I barely mess with AI and don't know how I could search for this.
It's self-improving over time, runs on your local machine, and is generally decent software. 60% of my interaction with my PC nowadays is pure voice input.
Technically Voiceio also does TTS, but it's really crappy and just meant to read stuff loud / select a lot of text and listen to it podcast style whilst I'm e.g. washing the dishes.
However you're totally right that it's focused on STT. I probably use it 95% for STT and only occasionally for TTS (which also reflects itself in the amount of polish I put into each)
Who is going to hack together a mac widget that allows us to select text anywhere, press a shortcut key and finally get a non robotic voice outputted in a reasonable amount of time?
I am aware of the Option + Esc shortcut on osx for the onboard TTS but wow is it hard to listen to in 2026.
In System Settings, if you go to Accessibility and click "Read & Speak" in the "Vision" section, you can select a different voice using the "System voice" section. Click the "(i)" to preview your various options and even download more. Some, like "Allison (Enhanced)," sound leagues better than the default voice.
Great point! these are better than Samantha and they're free. But still, if I could wait a few seconds to get a much richer TTS experience I'd pay for that.
Easy to send one’s clipboard to Microsoft Azure and have their DragonHD voices read the text, say with Keyboard Maestro (or presumably Alfred, Raycast, etc.). Should work with selected text too.
You’d definitely get to pay for it, not what I consider cheap. (“$15 per 1M characters”) But IMO just about best-in-class (maybe ElevenLabs has a voice I’d like even better).
Kokoro is great. I built an mcp for it a while back that has gotten decent traction - https://github.com/mberg/kokoro-tts-mcp if anyone wants to go that route
Another endorsement - I used Kokoro pretty extensively with an app I was developing over the last year and it's been excellent, both on- and off- GPU. Even with Elevenlabs (long time subscriber) the comparative quality of Kokoro keeps up really well until you get to their larger models with their professional voices.
I do wish there were better support for SSML, as well as deeper documentation of how to influence inflection in-line, but the default does well with standard emphasis (e.g. putting asterisks around text elements). Both asks are getting outside the zone of reasonable asks for this sort of distribution, though, and I remain incredibly grateful for the quality of what hexgrad and nazdridoy have put out in the world.
I built a pipeline through hermes using edge-tts to automate and listen to links that I provide to it just this morning, google notebooklm style. I replaced the TTS model with Kokoro after seeing this post, thank you. Here's the pipeline if anyone is interested. https://www.klaweht.com/2026-07-07-link-to-podcast-rss-pipel... By the way, it took hermes just around 10-15 minutes to build first iteration. I am impressed.
Saw it first on reddit, and later I created a small project to generate audio books from epub. So far I've listened to couple of books generated this way and am quite satisfied with the quality. There is just one particular word I remember that it pronounced wrongly - "Malay".
this is very cool! i also made a kokoro based tts tool which runs on a jetson orin kit. it serves tts generations over durable streams, try it out here: https://streamtts.dev/ , i also wrote about it: https://s2.dev/blog/local-ai
I don't want to just spew AI-hate, but is an LLM actually necessary for this? I haven't worked with, but came across loads of non-AI TTS tools. Are these now exceptionally better to justify the overhead? Genuinely asking.
I love Kokoro. I use it to read ebooks that don't have audiobooks and it works pretty good for that. I have a Python script that reads epub/html, runs the model and writes mp3s.
Kokoro supports a limited number of languages. I've had to resort to other models to support Dutch, and they just aren't as good. And usually a lot slower and bigger (too big for my 8GB VRAM). I've had to resort to the Windows built-in TTS. It doesn't sound natural at all, but at least it can pronounce most words and is very fast.
TTS has come incredible long way, there are so many options. There is Kokoro of course, then there is Pocket TTS which is also a tiny 100M model that allows voice cloning. There is also Chatterbox Turbo, which is bit bigger but also allows for more emotional control of the voice. And then finally there is the Fish Audio S2, which is even bigger but allows even larger and essentially unbounded finegrained control of tone and emotion. And all of these can easily run on your Macbook.
Dunno why people still write about Kokoro, there are better alternatives. Pocket TTS has more natural intonation and voice cloning. Supertonic 3 is another great model in the same weight class, which is the only one that can autodetect language and make a mix of different languages sound good.
I recently created a video and didn't want to use my voice on it.
Rather than TTS I did STS (speech to speech) through Eleven Labs (you upload the video it alters the audio track to voice of choosing with some parameters you can control).
I showed it to a bunch of people and they could not believe it was non-human. The bit that got most was all the pausing, broken sentences ...essentially elements you don't put into text if your doing T2S.
An LLM over the original text could perhaps inject these elements though if prompted correctly.
Supertonic 3 is pretty amazing too. I’ve got time to first sound down to well under a second by streaming chunks and stitching together from CPU with goonx (non c-go onnx) - happy to upload model if any go devs interested.
This is awesome.
People are already talking about use of local models for heavy tasks like llm inference. TTS is very much possible on device without any high end gpu.
That's why Ive been working integrating it into a free reader web app with some features more than just getting audio from a text.
I was kind of waiting for Apple to ship something like this and using speechify in the meantime, so I was pleasantly surprised to stumble across Kokoro in a thread on HN a few days ago. The voices are better than the cloud provider IMO.
I'm using it in an open source tool I built for listening to coding agents instead of watching them work, and it's been great. Local, private, free to run, and enough voices that I can actually use a different one for each agent.
Kokoro voices were the non-human actors directed by Opus, featured in the sound performance "God Bless the United States of Aliens". A theatrical adaptation of a liturgical texts, a surveilled mass ceremony at a protesting Christian church, being exhibited at the 61st Venice Biennale until November 2026 (Solidarity Burundi Pavilion, inside of Bosnia-Herzegovina Pavilion).
The various models of Kokoro TTS were theatrically conducted by Claude during an Anthropic hackathon. AI Voices were generated locally on a low-spec laptop to save up on API tokens and stretch the hackathon budget. Kokoro has the added benefit of being open-source.
lostmsu | 23 hours ago
> AMD Ryzen 7 8745HS: 1.5 seconds
These two can probably do it much faster on their iGPUs.
dygd | 21 hours ago
teravor | 23 hours ago
the onnx version of pocket-tts does perform better. https://huggingface.co/KevinAHM/pocket-tts-onnx
mscdex | 23 hours ago
teravor | 23 hours ago
psanford | 19 hours ago
kn100 | 23 hours ago
0gs | 22 hours ago
elevation | 22 hours ago
SubiculumCode | 22 hours ago
dvt | 22 hours ago
dmayle | 22 hours ago
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 | 22 hours ago
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 | 22 hours ago
arikrahman | 14 hours ago
othmanosx | 22 hours ago
victorbjorklund | 22 hours ago
croes | 21 hours ago
mowmiatlas | 21 hours ago
tigerquoll | 19 hours ago
sudobash1 | 21 hours ago
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.
dr_dshiv | 19 hours ago
QuantumGood | 19 hours ago
QuantumGood | an hour ago
My snippet expansion entry in Wispr is "Chess Knight" = "Knight" ("Knight to f3" without customization was more reliable than "Chess Knight")
I also use "dot bullet" = "•", as I like to separate thoughts with • more than ;
cdr | 16 hours ago
Unfortunately it makes it unsuited for my use case, which is almost entirely single words, as I don't particularly want to deal with stitching/segmenting input/output.
Judson | 21 hours ago
fady0 | 21 hours ago
echelon | 20 hours ago
deivid | 21 hours ago
Quality is very close.
Will vary in your setup, but here is my script: https://github.com/DavidVentura/translator-rs/blob/master/sc...
thenextan | 20 hours ago
janpmz | 20 hours ago
SambhavGupta | 20 hours ago
https://chromewebstore.google.com/detail/local-reader-ai-on-...
zackify | 20 hours ago
I speak over sonos speakers when certain events happen. And use it as my voice assistant.
ethersteeds | 18 hours ago
https://www.home-assistant.io/integrations/wyoming/
zackify | 16 hours ago
raymond_goo | 20 hours ago
djmips | 20 hours ago
raymond_goo | 10 hours ago
behnamoh | 20 hours ago
david_draco | 20 hours ago
bronco21016 | 20 hours ago
At some point I’d like to play with separate voices and see if I could build something like NotebookLM for kind of like a radio morning show of news items I’ve gathered.
mstkllah | 18 hours ago
https://github.com/lfnovo/open-notebook
TurdF3rguson | 20 hours ago
cat_plus_plus | 19 hours ago
JoeDaDude | 17 hours ago
cat_plus_plus | 14 hours ago
usagisushi | 4 hours ago
[1]: https://github.com/aivis-project/AivisSpeech-Engine
miscandlanneous | 19 hours ago
Would I be able to use this voice I already have with Kokoro? If not, is there any way to convert it? I could always go looking if someone made this specific voice but in .pt format, but I barely mess with AI and don't know how I could search for this.
janalsncm | 18 hours ago
https://github.com/Ashish-Patnaik/kokoclone
Generate audio with the voice and your first tool and use this to clone it into kokoro.
The pth/pt extension bit isn’t the problem. Those are PyTorch extensions and they’re synonymous like jpeg/jpg.
miscandlanneous | 17 hours ago
With something like this I can even try to make a more accurate voice than the one I already have, and tailor it to my liking!
montenegrohugo | 19 hours ago
I've been using my own solution since January. I'm on Linux, and can't use Aqua, Whipsrflow etc... So i made my own.
Recently cleaned it up and made it install friendly.
If anyone is interested, you can check it out here: https://github.com/Hugo0/voiceio
It's self-improving over time, runs on your local machine, and is generally decent software. 60% of my interaction with my PC nowadays is pure voice input.
yjftsjthsd-h | 19 hours ago
montenegrohugo | 18 hours ago
However you're totally right that it's focused on STT. I probably use it 95% for STT and only occasionally for TTS (which also reflects itself in the amount of polish I put into each)
and thanks!
hdz | 19 hours ago
I am aware of the Option + Esc shortcut on osx for the onboard TTS but wow is it hard to listen to in 2026.
asteroidburger | 19 hours ago
Cyberdog | 19 hours ago
hdz | 19 hours ago
Barbing | 18 hours ago
You’d definitely get to pay for it, not what I consider cheap. (“$15 per 1M characters”) But IMO just about best-in-class (maybe ElevenLabs has a voice I’d like even better).
dmezzetti | 19 hours ago
If you're interested in an ONNX version and a permissively licensed TTS Tokenizer, I built a pipeline for that a while back: https://huggingface.co/NeuML/kokoro-base-onnx
mberg | 19 hours ago
rnxrx | 19 hours ago
I do wish there were better support for SSML, as well as deeper documentation of how to influence inflection in-line, but the default does well with standard emphasis (e.g. putting asterisks around text elements). Both asks are getting outside the zone of reasonable asks for this sort of distribution, though, and I remain incredibly grateful for the quality of what hexgrad and nazdridoy have put out in the world.
stogot | 19 hours ago
jsemrau | 19 hours ago
karimf | 19 hours ago
Kokoro is a really good model, considered it’s released 1.5 years ago. It’s punching above its weight https://5uck1ess.github.io/tts-bench/scores.html
namegulf | 18 hours ago
Now this on a CPU is next level. When algorithms perform well on commodity hardware, the scale tips.
This gives hope that CPULLM's are not far off that'll be just fine for majority of use cases.
namegulf | 18 hours ago
When given a large text, it nicely chunked them up (debug statements showed), generated the audio and played back nicely.
Well done!
cwmoore | 18 hours ago
Article refers to: https://huggingface.co/hexgrad/Kokoro-82M
Caught my eye for the related name to my book of Kakuro puzzles for sale at https://www.kakurokokoro.com
Kokoro comes from the Japanese word meaning something like heart or spirit, and not the literal ones.
Ono-Sendai | 11 hours ago
cwmoore | an hour ago
ilteris | 17 hours ago
ra | 17 hours ago
nickdichev | 17 hours ago
similar to openclaw
ra | 11 hours ago
nickdichev | 17 hours ago
ilteris | 16 hours ago
keyle | 17 hours ago
Hard pass.
Why do these half baked projects get all the attention and thousands of clicks when it just takes a simple thing to bring the whole castle down?
ibic | 17 hours ago
infiniteregrets | 15 hours ago
est | 12 hours ago
You can tweak the pitch as well.
thegarliccheese | 12 hours ago
lucumo | 9 hours ago
Kokoro supports a limited number of languages. I've had to resort to other models to support Dutch, and they just aren't as good. And usually a lot slower and bigger (too big for my 8GB VRAM). I've had to resort to the Windows built-in TTS. It doesn't sound natural at all, but at least it can pronounce most words and is very fast.
armcat | 8 hours ago
olq_plo | 6 hours ago
icevl | 8 hours ago
monkeydust | 7 hours ago
Rather than TTS I did STS (speech to speech) through Eleven Labs (you upload the video it alters the audio track to voice of choosing with some parameters you can control).
I showed it to a bunch of people and they could not believe it was non-human. The bit that got most was all the pausing, broken sentences ...essentially elements you don't put into text if your doing T2S.
An LLM over the original text could perhaps inject these elements though if prompted correctly.
mackross | 6 hours ago
amelius | 4 hours ago
OfflineSergio | 4 hours ago
https://desktop.with.audio/reader
jonmagic | 3 hours ago
I'm using it in an open source tool I built for listening to coding agents instead of watching them work, and it's been great. Local, private, free to run, and enough voices that I can actually use a different one for each agent.
Wrote a bit more about the project here: https://jonmagic.com/posts/i-stopped-watching-my-agents-work...
steezeburger | 3 hours ago
jonmagic | 2 hours ago
daqhris | an hour ago
The various models of Kokoro TTS were theatrically conducted by Claude during an Anthropic hackathon. AI Voices were generated locally on a low-spec laptop to save up on API tokens and stretch the hackathon budget. Kokoro has the added benefit of being open-source.
https://daqhris.com/venice-biennale
https://daqhris.com/god-bless-usa/submission.html