I did something very similar to this, for myself, but which takes a web page for an article, cleans up the text to preserve the article only, and converts it using TTS, then adds it to a cloud bucket with an RSS stream, and I use that RSS link as a podcast in Apple Podcast.
Oh man. I did something similar but didn’t do the last mile with the cloud bucket and RSS stream and that seems key. I never have the energy to manually copy the mp3s over to the phone.
Thanks! Currently, I'm using Gemini TTS and Kokoro TTS as a free option. Kokoro is fast and I can run it on my own server, but I'm not using it as a standard yet because Gemini supports more languages and has more voices available. But text-to-speech processing is the biggest bottleneck at the moment.
At home this is super easy, use one of the multiple TTS models out there and provide a clean clip of Morgan Freeman's voice. Typically around 10 seconds will do. I just run a python script to daily scan my FreshRSS sources, compile my news and generate a 'podcast' that's about 10 minutes for a morning listen. Currently using F5-TTS, but there are lot's of other models out there as well.
Claude has gotten pretty sensitive to copyright. In addition to the no song lyrics that was posted in another article, I also find it will not generally transcribe podcasts (you have to play with model versions and even effort inside that).
I thought this would mean I could use my subscription, as OpenAI/Codex supports this kind of authentication flow, and it's very easy to integrate with that as a service, and users login with the OpenAI authentication flow, or via device codes.
Instead this asks for an API key, which is very different from "Use your OpenAI subscription" and to be honest, I'm not sure how anyone who has a OpenAI subscription could mistake this for such. Has this even been tested once?
Maybe I missed something obvious, I had a five second look and closed it when it seemed to be outright intentionally misleading.
There are two parts to the processing. The processing of the document itself is done on your OpenAI/Codex subscription. Additionally, you have to submit an API key for the text-to-speech processing. There you can use a Gemini key or an OpenAI key.
I did something very similar to this, for myself, but which takes a web page for an article, cleans up the text to preserve the article only, and converts it using TTS, then adds it to a cloud bucket with an RSS stream, and I use that RSS link as a podcast in Apple Podcast.
Same here. 75% of my podcast listening time come from content generated by claude and voxtral these days (tts from mistral).
Oh man. I did something similar but didn’t do the last mile with the cloud bucket and RSS stream and that seems key. I never have the energy to manually copy the mp3s over to the phone.
I did both of that too! At the end I made my own app to listen to the episodes.
Sounds great! Any interest in open sourcing your approach?
Is "paste your OpenAI API key" the new form of "paste your credit card number with exp/code" for example, to check if its been compromised?
Cool! Curious to hear a sample. As any regular audiobook listener knows, having a great narrator is really key.
Here you can listen to examples: https://pdftomp3.com/examples/
Via MCP more voices are available (all OpenAI and Gemini voices, depending on which api key you use).
Great work, op. I have also had good experiences with Qwen3-TTS. Might be worthwhile to explore for everyone who wants to do longform locally.
Thanks! Currently, I'm using Gemini TTS and Kokoro TTS as a free option. Kokoro is fast and I can run it on my own server, but I'm not using it as a standard yet because Gemini supports more languages and has more voices available. But text-to-speech processing is the biggest bottleneck at the moment.
How well does it handle larger files? And other book formats, like epub or mobi?
I'd love to see an actual result what it can do
how does it handle weird formatting in pdfs like tables or image captions? i always get trash output when doing pdf text extraction.
What prevents someone submitting an epub or a pdf and ask claude or another llm to narrate a novel in morgan freeman's voice?
At home this is super easy, use one of the multiple TTS models out there and provide a clean clip of Morgan Freeman's voice. Typically around 10 seconds will do. I just run a python script to daily scan my FreshRSS sources, compile my news and generate a 'podcast' that's about 10 minutes for a morning listen. Currently using F5-TTS, but there are lot's of other models out there as well.
Claude has gotten pretty sensitive to copyright. In addition to the no song lyrics that was posted in another article, I also find it will not generally transcribe podcasts (you have to play with model versions and even effort inside that).
Couple of weeks ago it refused to cite one of the public available EU-text from their gov site to me
Looks cool but how on earth does your demo video not show a sample of the result?! It ends right before the exciting part. Madness!
> Use the AI you already pay for
I thought this would mean I could use my subscription, as OpenAI/Codex supports this kind of authentication flow, and it's very easy to integrate with that as a service, and users login with the OpenAI authentication flow, or via device codes.
Instead this asks for an API key, which is very different from "Use your OpenAI subscription" and to be honest, I'm not sure how anyone who has a OpenAI subscription could mistake this for such. Has this even been tested once?
Maybe I missed something obvious, I had a five second look and closed it when it seemed to be outright intentionally misleading.
There are two parts to the processing. The processing of the document itself is done on your OpenAI/Codex subscription. Additionally, you have to submit an API key for the text-to-speech processing. There you can use a Gemini key or an OpenAI key.
title literally says "Use your OpenAI subscription to create audiobooks" so im also confused lol
edit: i guess this explains it, its sorta half half
Your subscription will be used for:
Your API key will be used for: