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.3
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.3.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| recito-0.8.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.2 MB
Release files / recito-0.8.3.tar.gz
| Download URL | recito-0.8.3.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
542bec645c8b644e821b964eeea2d25a4d6871547897ec7aa21c3e3ccde93409
|
|
BLAKE2b-256 checksum How to use checksums |
d4923ed5ae1b9e6f87f3f9b8cf0a9fa12cff6d5f70cbf80741030b416c92dac9
|
| 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.3-py3-none-any.whl
| Download URL | recito-0.8.3-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b33e52aee36e752049eec9811aba4a64eac7b76a57114023237972d7ef3d4ab
|
|
BLAKE2b-256 checksum How to use checksums |
6349f4075ea0702cbd2ebfda7ac4986f7ca66ff9ca732883e1bd8a30342b1db1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|