Skip to content

Latest commit

 

History

117 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dramatis

Turn fiction into an editable, multi-voice performance.

Dramatis is an experimental audiobook workshop for short fiction. It uses an LLM to identify narration, dialogue, and speakers, then lets you cast each role, shape individual passages, and generate a synchronized narration with ElevenLabs.

Try the limited public demo

Note

The hosted demo is intentionally limited. It is best used to explore the prepared stories, reading experience, and voice-over editor.

Dramatis reading view playing The Count of Monte Cristo

What it does

  • Analyses prose into narration, dialogue, and attributed speakers.
  • Builds a cast with a distinct ElevenLabs voice for every role.
  • Lets you edit passages and tune pace, expressiveness, and timing.
  • Generates or regenerates audio one passage at a time.
  • Plays the finished performance in a focused, synchronized reading view.
  • Stores stories, cast decisions, and generation state in SQLite.

From manuscript to performance

  1. Paste a short story and optionally add its title and author.
  2. Dramatis detects its structure, dialogue, and cast.
  3. Review the cast, assign voices, and refine individual passages.
  4. Generate the narration and listen alongside the original text.

Dramatis voice-over editor with manuscript and cast controls

Run locally

Prerequisites

  • Node.js 24 and npm
  • An OpenAI API key, or an Anthropic API key with a matching model configured in app.config.js
  • An ElevenLabs API key

Install the dependencies and create your local environment file:

npm install
cp .env.example .env

Add the provider keys to .env, then start the API and Vite development server:

npm run dev

Open http://localhost:5173. The API runs on http://localhost:3001, and local SQLite data is written to data/dramatis.db by default.

Run with Docker

Copy .env.example to .env and add the provider API keys, then build and run the container:

docker build --file docker/Dockerfile --tag dramatis:local .

docker run --rm \
  --name dramatis \
  --env-file .env \
  --env DATABASE_PATH=/app/data/dramatis.db \
  --env NODE_OPTIONS=--max-old-space-size=384 \
  --env SERVER_PORT=3001 \
  --publish 127.0.0.1:3001:3001 \
  --volume dramatis-data:/app/data \
  dramatis:local

Open http://localhost:3001. The dramatis-data volume keeps the SQLite database between container replacements.

Configuration

The parsing model is configured in app.config.js. Runtime secrets and deployment settings belong in .env; see .env.example for the available variables.

Technology

Dramatis is built with React, TypeScript, Vite, Express, SQLite, the AI SDK, StyleX, and ElevenLabs.

Project status

Dramatis is a desktop-first experiment, not a production audiobook platform. It is designed for short extracts rather than complete books, and the editor is still evolving alongside the model and speech APIs it uses.

About

Prototype AI-powered audiobook narrator editor

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages