recito
recito turns a PDF or EPUB ebook into an audiobook you can listen to anywhere — narrated entirely on your own machine (an unpacked-epub directory, such as an ebook source tree, works too). It exists so that listening to a book you own doesn't mean renting a cloud narrator: no accounts, no uploads, no per-hour fees, nothing leaves your computer. The voice is an open-weight AI model and recito itself is free software.
Project page: recito.org Source: spacecruft.org/books/recito
recito reads PDFs the way a person does — two-column layouts, running
headers, watermarks and page numbers are all handled — and epubs are
read chapter by chapter, following the book's own table of contents.
Numbers and abbreviations are spoken properly ("$3.5mn" is read as
"three point five million dollars"). And every passage is checked by
listening back to it: anything that comes out wrong is re-narrated
automatically. The result is a single .m4b file with chapters, title,
author and cover art, ready for any audiobook player.
What you need
- A computer with an NVIDIA graphics card (about 8 GB of video memory)
- Python 3.12 and ffmpeg
- About 5 GB of disk space for the voice model, downloaded once on first use
Install
pip install recito
Best in a virtualenv. Detailed setup and other ways to install: the install guide.
Quick start
recito speak mybook.pdf
A while later, mybook-ryan.m4b sits next to the book. If anything
interrupts the render, run the same command again — finished parts are
never redone.
ryan is the default voice; recito voices lists all nine and
--voice serena picks another. To check the narration before
committing to a whole book, skim the text it will read (fast, no GPU
needed), or render a single page:
recito extract mybook.pdf --dump-text mybook.txt
recito speak mybook.pdf --voice serena --pages 10 -o preview.m4b
You can also narrate in your own voice from a few seconds of clean audio
(--voice clone:ref.wav), and books in German, French, Spanish,
Italian, Russian, Chinese and Japanese work with --language.
Learn more
- Usage guide — voices and cloning, other languages, reading part of a book, other output formats, per-book settings, covers and titles, troubleshooting
- Install guide
- For developers: DEVELOP.md (internals), ISSUES.md (known bugs), FUTURE.md (planned features), TTS.md (voice engines)
License
AGPL-3.0-or-later. See LICENSE.txt.
Copyright © 2026 Jeff Moe — Loveland, Colorado, USA
Metadata
Release files for recito 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| recito-0.8.0.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| recito-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.1 MB
Release files / recito-0.8.0.tar.gz
| Download URL | recito-0.8.0.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb37d9c4c945544e94fd480fee7ba7b781b6e21ae06a26c0f58a1502c8b0adf3
|
|
BLAKE2b-256 checksum How to use checksums |
e982aa5dbf1eecba84ed6ea9d05a946c936a9fc85eaf7edb90d3929bcfc3ccce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / recito-0.8.0-py3-none-any.whl
| Download URL | recito-0.8.0-py3-none-any.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94c98d73d55e7dcb7def2f5bb148e639611555836cd083648c1c2d1624f95fb7
|
|
BLAKE2b-256 checksum How to use checksums |
d7e213dbe1eca60c6c42bdae7a8ff38d7a713955c426cf16599a3ce75d4eaab7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|