Developers
Everything behind recito is free software. Four repositories turn public-domain and copyleft ebooks into the audiobook catalog on this site:
recito — the narrator
A Python command-line application that turns a PDF or EPUB into a finished audiobook —
a single .m4b with chapter markers, metadata, and cover art — narrated
entirely on your own machine. pip install recito, then recito speak mybook.pdf. No accounts, no uploads, nothing leaves the
computer.
- Layout-aware text extraction: span-level PDF parsing with PyMuPDF handles two-column layouts, running headers, watermarks, and page numbers; EPUBs are read chapter by chapter by a custom parser that follows the book's own table of contents.
- Narration runs on Qwen3-TTS, an open-weight model (Apache-2.0), behind a pluggable engine protocol — in-process on a local NVIDIA GPU by default, or against a self-hosted vLLM-Omni server for batch-scale throughput.
- Nine preset voices, zero-shot cloning from a few seconds of reference audio, and voices designed from prose descriptions. Numbers and abbreviations are spoken as a person would read them — “$3.5mn” comes out as “three point five million dollars”.
- Quality is checked by ear: every passage is listened back to, and anything that comes out wrong is re-narrated automatically. Interrupted renders resume where they left off.
Docs: Usage · Install · Internals · TTS engines
recito-voices — the voices
Produces the voice packages the ecosystem narrates with, so the catalog is not limited to a TTS model's built-in speaker presets. Every package is validated, versioned, and published from this repo, and both production paths end in the same artifact.
- Clone: reference clips cut from public-domain audio — author recordings from the wax-cylinder and early-disc era (Browning 1889, Tennyson 1890, Joyce 1924), or era voices from old film and radio — packaged for zero-shot voice cloning. A discovery tool searches archive.org and the wider web for candidate recordings, so a book can be narrated by its own author.
- Design: a prose description of a voice is rendered into a reference clip with Qwen3-TTS VoiceDesign, then packaged exactly like a clone. Cross-lingual by design: design the voice in French, clone it into English, and The Three Musketeers is narrated in French-accented English.
- A matching tool reads the whole catalog, enriches authors with Wikidata facts (gender, nationality, languages, lifespan), derives the voice each book wants, ranks the available voices, and reports the gaps — so which voice to create next is a decision, not a guess.
recito-catalog — the catalog pipeline
Builds the audiobook catalog: it ingests Standard Ebooks titles, renders each one with recito, and emits the artifacts — JSON records, audio, and covers — that this site publishes.
- Source: the Standard Ebooks GitHub organization, where every ebook lives as a full source repository. The repos ship no releases, so epubs are built from source with the pinned SE toolset.
- Naming: every book gets a source-namespaced slug taken verbatim from its upstream
URL —
se/jane-austen/pride-and-prejudice— globally unique by construction, and stable enough to double as the audio file's public path. - Covers ship verbatim from the built epub, and Standard Ebooks' own cover credit — copied verbatim from the colophon — is shown under the cover on each book page. No cover art is generated or commissioned.
- Narrations of public-domain texts are dedicated to the public domain, matching Standard Ebooks' own dedication; narrations of copyleft texts carry the text's license, shown on each book's page. The pipeline code is AGPL.
Docs: Plan · Usage · Rejected alternatives
recito-web — this site
The site you are reading: a fully static, prerendered front-end for the catalog, with no server-side application.
- SvelteKit 2 and Svelte 5 (runes) with TypeScript, prerendered with adapter-static — any static host can serve the result, with no runtime server or rewrite rules.
- Data flow: a slim
browse.jsonis fetched by the browser for the grid; each book's full record is read at build time to prerender its detail page. Audio and covers are plain static assets. - When a synced cover is absent, the site falls back to a generated typographic cover keyed to the book.
- Deployment is a build plus rsync to an Apache host. Feedback submissions are handled by one small Python CGI script that writes a file per comment — no database, no mail, no PHP.
Mirroring the audio archive
Every published narration is a self-contained .m4b — audio,
chapter markers, and cover art in one file — and the whole tree is available
for bulk download over anonymous, read-only rsync:
rsync -av --progress rsync://recito.org/recito-audio/ recito-audio/ That mirrors the full library— currently 1084.3 GB into a local recito-audio/ directory; re-running the command picks up new
books and re-rendered narrations, and adding --delete drops
withdrawn ones. Include patterns slice the tree — one voice across the
library: --include='*.qwen3-tts.aiden.m4b' --exclude='*.m4b' — or a
single source by syncing just recito-audio/se/. Host setup is
in recito-web's Install doc.
Licensing
All four projects are AGPL-3.0-or-later free software. AI model weights must carry an OSI-approved license or be public domain — non-commercial or restricted-use models are rejected by policy. Source texts carry their own licenses — today Standard Ebooks' public-domain editions, with copyleft texts (CC BY-SA) accepted as sources. recito's narrations follow the text: narrations of public-domain texts are dedicated to the public domain; narrations of copyleft texts carry the text's license, shown on each book's page. Cover artwork keeps whatever license the source recorded, with its credit preserved verbatim and displayed beside each cover.
Questions, patches, and bug reports: moe@recito.org, or leave a note on the feedback page.