Scriptorium / README.md
UnlimitedDreamCo's picture
Update README.md
be0f0f5 verified
|
Raw
History Blame Contribute Delete
3.01 kB
---
title: Scriptorium
emoji: ๐Ÿ†
colorFrom: pink
colorTo: blue
sdk: gradio
sdk_version: 6.18.0
python_version: '3.12'
app_file: app.py
pinned: false
short_description: Convert your books to the spoken word
tags:
- track:backyard-ai
- sponsor:openai
- sponsor:nvidia
- sponsor:modal
- badge:off-brand
---
# Scriptorium
Scriptorium is a Gradio-based app for turning EPUB books into audiobooks. It provides a custom front-end for uploading and configuring a book, previewing voices, running long-form synthesis, and exporting the finished audiobook once generation completes.
## Demo video
<video controls width="100%" src="https://huggingface.co/spaces/build-small-hackathon/Scriptorium/resolve/main/Video.mp4">
Your browser does not support the video tag.
</video>
[Open video directly](https://huggingface.co/spaces/build-small-hackathon/Scriptorium/resolve/main/Video.mp4)
## Social media post
https://bsky.app/profile/unlimiteddreamco.xyz/post/3moe744qpos2m
## What it does
- Parses EPUB uploads into chapter text and metadata.
- Lets users select which chapters to include.
- Supports preview generation before committing to a full render.
- Runs full-book synthesis with progress updates and an export flow after completion.
- Exports finished renders from session-scoped storage.
## Project structure
- `app.py`
- Main Gradio server entrypoint and API registration.
- `frontend/`
- Custom HTML/CSS/JS interface for the three-step app flow.
- `backend/epub.py`
- EPUB validation, parsing, metadata extraction, and chapter shaping.
- `backend/synthesis_service.py`
- Main orchestration layer that routes preview/render work to local or Modal-backed synthesis.
- `backend/modal_client.py`
- Client for the optional remote Modal synthesis service.
- `modal_app.py`
- Modal FastAPI worker app for remote preview and render jobs.
- `backend/export.py`
- Audiobook packaging and export helpers.
- `tests/`
- Backend and integration-oriented test coverage for parsing, synthesis routing, Modal client behavior, and API wiring.
## Models and synthesis backends
Scriptorium currently supports these speech models:
- `OmniVoice`
- Main model for presets, design-prompt voices, and voice cloning.
- `Magpie TTS`
- Multilingual synthesis with speaker presets and optional text normalization.
It can run them through two execution backends:
- `HF/local`
- Runs synthesis inside the Hugging Face Space runtime.
- `Modal`
- Offloads synthesis to a separately deployed Modal worker.
The in-app voice presets such as `The Archivist`, `The Novice`, `The Warden`, and `The Illuminator` are themed preset layers on top of the underlying synthesis configuration.
## Modal backend configuration
Set these as Hugging Face Space secrets if you want to use the optional Modal backend:
- `SCRIPTORIUM_MODAL_BASE_URL`
- `SCRIPTORIUM_MODAL_AUTH_TOKEN`
`SCRIPTORIUM_MODAL_BASE_URL` must be the deployed `modal.run` web endpoint, not the Modal dashboard URL under `modal.com/apps/...`.