Desenvolvimento
Tudo o que está por trás do recito é software livre. Quatro repositórios transformam ebooks de domínio público e copyleft no catálogo de audiolivros deste site:
recito — o narrador
Uma aplicação de linha de comandos em Python que transforma um PDF ou EPUB num
audiolivro acabado — um único .m4b com marcadores de capítulos,
metadados e capa — narrado inteiramente na tua própria máquina. pip install recito, depois recito speak meulivro.pdf.
Sem contas, sem uploads, nada sai do computador.
- Extração de texto sensível ao layout: a análise de PDF ao nível do span com PyMuPDF lida com colunas duplas, cabeçalhos correntes, marcas de água e números de página; os EPUBs são lidos capítulo a capítulo por um analisador próprio que segue o índice do livro.
- A narração corre em Qwen3-TTS, um modelo de pesos abertos (Apache-2.0), atrás de um protocolo de motor plugável — em processo numa GPU NVIDIA local por omissão, ou contra um servidor vLLM-Omni autoalojado para produção em lote.
- Nove vozes predefinidas, clonagem zero-shot a partir de poucos segundos de áudio de referência e vozes desenhadas a partir de descrições em prosa. Números e abreviaturas são falados como uma pessoa os leria — «$3.5mn» sai como «três milhões e meio de dólares».
- A qualidade é verificada de ouvido: cada passagem é ouvida de volta, e o que sair mal é re-narrado automaticamente. Produções interrompidas retomam onde pararam.
Documentação: Utilização · Instalação · Internals · Motores TTS
recito-voices — as vozes
Produz os pacotes de vozes com que o ecossistema narra, para que o catálogo não fique limitado às vozes predefinidas de um modelo TTS. Cada pacote é validado, versionado e publicado a partir deste repositório, e os dois caminhos de produção terminam no mesmo artefacto.
- Clonar: excertos de referência cortados de áudio em domínio público — gravações de autores da era dos cilindros de cera e dos primeiros discos (Browning 1889, Tennyson 1890, Joyce 1924), ou vozes de época de cinema e rádio antigos — empacotados para clonagem de voz zero-shot. Uma ferramenta de descoberta pesquisa o archive.org e a web em geral por gravações candidatas, para que um livro possa ser narrado pelo próprio autor.
- Desenhar: uma descrição em prosa de uma voz é renderizada num excerto de referência com Qwen3-TTS VoiceDesign e depois empacotada exatamente como um clone. Multilingue por desenho: desenha a voz em francês, clona-a para inglês, e Os Três Mosqueteiros é narrado em inglês com sotaque francês.
- Uma ferramenta de correspondência lê todo o catálogo, enriquece os autores com factos do Wikidata (género, nacionalidade, línguas, datas de vida), deriva a voz que cada livro pede, ordena as vozes disponíveis e reporta as lacunas — para que qual voz criar a seguir seja uma decisão, não um palpite.
recito-catalog — a pipeline do catálogo
Constrói o catálogo de audiolivros: ingere títulos do Standard Ebooks e do Project Gutenberg, produz cada um com o recito e emite os artefactos — registos JSON, áudio e capas — que este site publica.
- Fontes: a organização Standard Ebooks no GitHub, onde cada ebook vive como repositório de fontes completo — os repositórios não publicam releases, por isso os epubs são construídos a partir das fontes com o conjunto de ferramentas fixado do SE — e o Project Gutenberg, cujos epubs são obtidos dos mirrors oficiais e normalizados (o texto-padrão e as páginas de licença do PG são removidos) antes da produção.
- Nomes: cada livro recebe um slug com espaço de nomes da fonte, copiado
literalmente do URL original —
se/jane-austen/pride-and-prejudice— globalmente único por construção e estável o suficiente para servir também de caminho público do ficheiro de áudio. - As capas vêm literalmente do epub construído, e o crédito de capa do próprio Standard Ebooks — copiado literalmente do colofão — é mostrado sob a capa na página de cada livro. Nenhuma capa é gerada nem encomendada.
- Narrações de textos em domínio público são dedicadas ao domínio público, à semelhança da dedicação do próprio Standard Ebooks; narrações de textos copyleft trazem a licença do texto, mostrada na página de cada livro. O código da pipeline é AGPL.
Documentação: Plano · Utilização · Alternativas rejeitadas
recito-web — este site
O site que estás a ler: um front-end totalmente estático e pré-renderizado para o catálogo, sem aplicação do lado do servidor.
- SvelteKit 2 e Svelte 5 (runes) com TypeScript, pré-renderizado com adapter-static — qualquer alojamento estático serve o resultado, sem servidor de runtime nem regras de reescrita.
- Fluxo de dados: as páginas de lista e de detalhe são todas pré-renderizadas
a partir dos registos do catálogo em tempo de build; o navegador descarrega
um único índice de pesquisa leve (
/catalog/search.json), uma vez, na primeira utilização da pesquisa. Áudio e capas são simples ficheiros estáticos. - Um livro nunca é publicado sem a sua capa — o build falha se faltar uma. Se uma imagem de capa mesmo assim falhar ao carregar em runtime, a página recorre a um desenho tipográfico gerado, associado ao livro.
- O deploy é um build mais rsync para um alojamento Apache. Os comentários são tratados por um pequeno script CGI em Python que escreve um ficheiro por comentário — sem base de dados, sem correio, sem PHP.
Documentação: Instalação · Utilização
Espelhar o arquivo de áudio
Cada narração publicada é um .m4b autossuficiente — áudio,
marcadores de capítulos e capa num só ficheiro — e toda a árvore está
disponível para download em massa por rsync anónimo e só de leitura:
rsync -av --progress rsync://recito.org/recito-audio/ recito-audio/ Isso espelha a biblioteca completa— atualmente 1.237,6 GB para um diretório local recito-audio/; voltar a correr o comando
apanha livros novos e narrações refeitas, e acrescentar --delete remove os retirados. Padrões de inclusão fatiam a árvore — uma voz em toda a
biblioteca: --include='*.qwen3-tts.aiden.m4b' --exclude='*.m4b' — ou uma
única fonte, sincronizando apenas recito-audio/se/. A configuração
do anfitrião está na documentação de instalação do recito-web.
Licenciamento
Os quatro projetos são software livre AGPL-3.0-or-later. Os pesos de modelos de IA têm de trazer uma licença aprovada pela OSI ou estar em domínio público — modelos não comerciais ou de uso restrito são rejeitados por política. Os textos de origem trazem as suas próprias licenças — hoje, edições em domínio público do Standard Ebooks e do Project Gutenberg, com textos copyleft (CC BY-SA) aceites como fontes. As narrações do recito seguem o texto: narrações de textos em domínio público são dedicadas ao domínio público; narrações de textos copyleft trazem a licença do texto, mostrada na página de cada livro. As capas mantêm a licença que a fonte registou, com o crédito preservado literalmente e exibido junto a cada capa.
Perguntas, patches e relatórios de erros: moe@recito.org, ou deixa uma nota na página de comentários.