I've been using Kokoro TTS with the CLI app, audiblez, mentioned in the "Similar Projects" section of the README. The model is fast and delivers impressive quality for its small size. Some issues I have faced, however, are:
a) It doesn't distinguish periods at the end of sentences from the dots in abbreviations such as "Mr." or "Mrs." The result is an awkward pause between "Mr." and the name.
b) It doesn't handle ellipses well.
c) Words are pronounced the same way regardless of context.
I fixed that here: https://github.com/cpttripzz/audiblez
The main problem with Kokoro is how flat and lifeless it sounds. But it is very fast. I prefer Chatterbox tts but it is around 20 times slower and will not work without a GPU
Does it turn it into spoken word or an audiobook?
Because good audiobooks often have voice actors that read the characters with different emphasis and dialects.
I imagine tools like chatgpt could do this for a few sentences but what about an 8-20 hour audiobook?
I think there are still basic hurdles to take before we can go epub to audiobook in a quality that can compete with current state of the art.
I tried Kokoro for voicing blog posts and articles and wasn't impressed to be honest. Right now Gemini 2.5 Flash TTS is a much more capable system with generous free limits (about 10 minutes per generation and about 90 minutes per day). Voices are not very consistent between generations, but for shorter pieces it's not a big deal (but will obviously be for books)
I think the quality of the voice is super important for audiobooks and I think we are just closing in on the required quality with TTS.
I played a bit with Eleven labs voices and while they aren't bad when I tried make them read fragment of a text that I wrote, it sounded chaotic, boring, quite terrible, for anything longer than a sentence or two. But when I tried their v3 voices which they are currently in the process of rolling out, the same text sounded consistent, emotional, engaging, simply amazing. I think we are just crossing vocal uncanny valley.
As an aside, while this tool can be used to create an audiobook from a book you have in text format, for your private consumption, having an author employ something like this to create files for distribution is extremely risky, even if they acknowledge its use and intend those files to only be available on their website.
Indie authors struggle a lot to promote their works, and the new normal is that potential readers, the polite ones[^1], use the slightest hint of AI usage to discard their title and move on...as they are entitled to, since there are so many books.
I in particular have started to hire voice actors that have good acting skills and good diction but for whom English is their second language, or it's their first language but they speak something else at home; sometimes I even ask them to go a notch up with their accents. It helps with the non-AI recognition, and it also increases the appeal of the book for people who would like to try out something new. Once, I did an audition for a project and was pleasantly surprised with how much life people from around the Mediterranean basin were able to inject into their renderings, compared with people from Britain and North America.
[^1] Impolite readers set the town on fire, and then go about and spread that fire to neighboring towns, for good measure.
perfect, I was looking for something like that ! is it gui only, or is there an api available ? I would like to be able to share a link or a text from my phone and get back the audio
I've been using this to try to make audiobooks out of various philosophy books I've been wanting to read, for accessibility reasons, and I ran into a critical problem: if the input text fed to Kokoro is too long, it'll start skipping words at the end or in the middle, or fade out at the end; and abogen chunks the text it feeds to Kokoro by sentence, so sentences of arbitrary length are fed to Kokoro without any guarding. This produces unusable audiobooks for me. I'm working on "vibe coding" my own Kokoro based tkinter personal gui app for the same purpise that uses nltk and some regex magic for better splitting.
You could try implementing a character count limit per chunk instead of sentence-based splitting. A hybrid approach that breaks at sentence boundaries but enforces a maximum chunk size of ~150-200 characters would likely solve the word-skipping issue while maintaining natural speech flow.
That's precisely what I'm doing. I'm splitting by sentences, and then for each sentence that's still too long, I split them by natural breakpoints like colons, semicolons, commas, dashes, and conjunctions, and if any of /those/ are still too long, I then break by greedy-filling words. Then I do some fun manipulation on the raw audio tensors to maintain flow.
Hey, can you share an example book or text so I can test it?
Regarding "abogen chunks the text it feeds to Kokoro by sentence", that's not quite correct, it actually splits subtitles by sentence, not the chunks sent to Kokoro.
This might be happening because the "Replace single newlines with spaces" option isn’t enabled. Some books require that setting to work correctly. Could you try enabling it and see if it fixes the issue?
> Regarding "abogen chunks the text it feeds to Kokoro by sentence", that's not quite correct, it actually splits subtitles by sentence, not the chunks sent to Kokoro.
> This might be happening because the "Replace single newlines with spaces" option isn’t enabled. Some books require that setting to work correctly. Could you try enabling it and see if it fixes the issue?
I tried that, as well as doing it myself, and it didn't seem to help.
This needs to be run from an environment where `pip` is available as that tool is used during the running of the abogen app. Using `uv tool run abogen` gets you started but then the app hangs at model install time. `uv venv && uv pip install pip && source .venv/bin/activate && abogen` lets it run properly.
Otherwise, it's a nicely packaged GUI. Well done!
I tried a PDF and the UI to select pages or sections is good and generation is fast on my laptop's GTX 1650.
The result is an .ogg audio and .ass subtitle file. Played with mpv allows listening and reading along in the terminal. Only issue I have with the result is that visual line breaks from the PDF are preserved resulting in long pauses "randomly" in the middle of sentences. This greatly interrupts understanding of the audio.
Edit: enabling the skipping of single newlines helps!
I love audiobooks, but I'm a stickler for good narration. I've stopped listening to plenty of audiobooks because I didn't like the narrator. I guess it will be a long time before I can use something like this.
I assume it doesn't work well for books that have non-text structured elements (code, diagrams, etc)or images (which is expected).
I wonder, is there some open source NN that can consume PDF pages and produce a "pure prose" version of it. Say, a page with mixed text and an image of a car engine would be output to the text and then a detailed description of the image, or what it is depicting.
You will want to reconsider the name if you plan to have a presence in Australia or New Zealand. "Abo" is an ethnic slur similar in offensiveness to the N-word.
Thank you for bringing this to my attention, I genuinely appreciate you taking the time to share this important feedback. As the repository owner, I want to clarify that "abogen" is simply a shortened form of "audiobook generator," which is what this project does.
I completely understand your concern, and I'm grateful that you pointed this out. It's clear that your comment comes from a place of wanting to help, and I really value community members like you who look out for potential issues.
The name was chosen purely based on the technical functionality (audiobook generation), and I had no awareness of the unfortunate similarity you've mentioned. As English is not my native language, I sometimes miss these cultural nuances that native speakers would naturally catch. I appreciate your understanding that this was entirely unintentional.
I imagine a pipeline between Calibre-Web[0] and audiobookshelf[1] going through Abogen, where Calibre-Web supplies the books, Abogen generates the audio version of it, and Audiobookshelf serves them. Great solution for the hearing impaired.
One should stop asuming everyone is versed in all slangs (or slurs for that matter) existing in all languages in the world. The author seems to have a Turkish name, thus I will assume he is Turkish and so I would guess he didnt think much about the name.
My biggest selling point for this would be, that the volume is probably the same throughout the whole text. I am listening to audiobooks to fall asleep, and many voice actors go from very quiet to loud in conversations. It may be good narration, but it's sometimes to quiet to understand, so I need to increase the volume only to be woken up by some loud lines later.
So I imagine generated audiobooks to be good in that regard. Another option would be to have a "normalize volume" setting at audible, or other services.
30 comments
[ 2.6 ms ] story [ 78.7 ms ] threadI think there are still basic hurdles to take before we can go epub to audiobook in a quality that can compete with current state of the art.
Or am I missing something?
I played a bit with Eleven labs voices and while they aren't bad when I tried make them read fragment of a text that I wrote, it sounded chaotic, boring, quite terrible, for anything longer than a sentence or two. But when I tried their v3 voices which they are currently in the process of rolling out, the same text sounded consistent, emotional, engaging, simply amazing. I think we are just crossing vocal uncanny valley.
As an aside, while this tool can be used to create an audiobook from a book you have in text format, for your private consumption, having an author employ something like this to create files for distribution is extremely risky, even if they acknowledge its use and intend those files to only be available on their website.
Indie authors struggle a lot to promote their works, and the new normal is that potential readers, the polite ones[^1], use the slightest hint of AI usage to discard their title and move on...as they are entitled to, since there are so many books.
I in particular have started to hire voice actors that have good acting skills and good diction but for whom English is their second language, or it's their first language but they speak something else at home; sometimes I even ask them to go a notch up with their accents. It helps with the non-AI recognition, and it also increases the appeal of the book for people who would like to try out something new. Once, I did an audition for a project and was pleasantly surprised with how much life people from around the Mediterranean basin were able to inject into their renderings, compared with people from Britain and North America.
[^1] Impolite readers set the town on fire, and then go about and spread that fire to neighboring towns, for good measure.
Regarding "abogen chunks the text it feeds to Kokoro by sentence", that's not quite correct, it actually splits subtitles by sentence, not the chunks sent to Kokoro.
This might be happening because the "Replace single newlines with spaces" option isn’t enabled. Some books require that setting to work correctly. Could you try enabling it and see if it fixes the issue?
I was running into issues with this one: https://theanarchistlibrary.org/library/kevin-carson-studies..., this one: https://files.libcom.org/files/Accelerate%20-%20Robin%20Mack... (converted to plain text using MinerU, double checked to make sure the text was clean).
> Regarding "abogen chunks the text it feeds to Kokoro by sentence", that's not quite correct, it actually splits subtitles by sentence, not the chunks sent to Kokoro.
Ah, that's odd. So I don't know why abogen'd be doing the weird fading out and skipping words thing then when my tool (https://github.com/alexispurslane/kokoro-audiobook-reliable/) isn't.
> This might be happening because the "Replace single newlines with spaces" option isn’t enabled. Some books require that setting to work correctly. Could you try enabling it and see if it fixes the issue?
I tried that, as well as doing it myself, and it didn't seem to help.
Otherwise, it's a nicely packaged GUI. Well done!
I tried a PDF and the UI to select pages or sections is good and generation is fast on my laptop's GTX 1650.
The result is an .ogg audio and .ass subtitle file. Played with mpv allows listening and reading along in the terminal. Only issue I have with the result is that visual line breaks from the PDF are preserved resulting in long pauses "randomly" in the middle of sentences. This greatly interrupts understanding of the audio.
Edit: enabling the skipping of single newlines helps!
I wonder, is there some open source NN that can consume PDF pages and produce a "pure prose" version of it. Say, a page with mixed text and an image of a car engine would be output to the text and then a detailed description of the image, or what it is depicting.
I completely understand your concern, and I'm grateful that you pointed this out. It's clear that your comment comes from a place of wanting to help, and I really value community members like you who look out for potential issues.
The name was chosen purely based on the technical functionality (audiobook generation), and I had no awareness of the unfortunate similarity you've mentioned. As English is not my native language, I sometimes miss these cultural nuances that native speakers would naturally catch. I appreciate your understanding that this was entirely unintentional.
Thank you again for the thoughtful heads-up
[0] https://github.com/janeczku/calibre-web
[1] https://github.com/advplyr/audiobookshelf
One should stop asuming everyone is versed in all slangs (or slurs for that matter) existing in all languages in the world. The author seems to have a Turkish name, thus I will assume he is Turkish and so I would guess he didnt think much about the name.
So I imagine generated audiobooks to be good in that regard. Another option would be to have a "normalize volume" setting at audible, or other services.