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:

standardebooks.org · gutenberg.orgepubs de origem recito-catalog recito recito-web recito.org
áudio em domínio públicogravações · cinema · rádio recito-voices pacotes de vozes para o recito

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.

Documentação: Plano · Fases

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.