Tool
WAudible
Any document, read aloud, entirely offline.
The problem
I do not really read physical books. I want the content, I just take it in better by ear. The obvious answer is an audiobook subscription, but that means paying rent on a library I do not own, and only for the books somebody decided to record.
Meanwhile the document I actually want read to me is usually a PDF that no publisher will ever narrate.
The approach
WAudible takes any text document and reads it aloud, using an offline text to speech model (Kokoro) that runs on my own hardware. No account, no upload, no connection required.
It behaves like the audio apps I already use. Books sit on genre shelves with cover art, a table of contents lets me jump straight to a chapter, playback speed is adjustable, pages convert in the background while the earlier ones are already playing, and it remembers exactly where I stopped.
Built with Flask, PyMuPDF for extraction, and Kokoro ONNX for the voice. It runs as a desktop app on Ubuntu.
Where it fits
WAudible is the first piece of something larger I have been calling Off the Grid, a set of tools that run locally and work when the connection does not. Partly that is a practical response to living somewhere the internet is not a given. Partly it is that I would rather not keep handing my data to a server just to read a book.
Gallery
Gallery coming soon
What I learned
Offline is a real constraint and it changes the design. Every decision that would normally be solved by calling an API had to be solved on the machine instead, and the pleasant surprise was how much of it was possible. The thing I underestimated was patience. Generating audio takes time, so the app had to be built to start playing before it has finished thinking.