Export a narrated video in several languages
OpenSlides is a deck studio that runs in your browser. Each slide’s notes are its narration script: you can record that script in your own voice or have a voice speak it, dub it into another language, and export the deck as a video. This post goes through the steps, what each one costs, and what leaves your device.
The short answer
Write what you want said in each slide’s notes. In the studio’s Voice tab, record the script or generate it. Dubbing translates each script with your own agent and speaks it in the new language. For the video, Record video in the File menu captures the deck in real time, and the openslides-render command renders frame-exact MP4s: one per language, or one with a track per language.
The notes are the script
Each slide’s notes become its script. They are the same notes the presenter view shows you while you talk.
If you built the deck from your own notes, the script is already there: each slide’s speaker notes are the text of the section it came from. Your first deck needs no AI key explains how notes become slides.
Three ways to voice it
- Your own voice. Record the script yourself. This works on a phone or a tablet as well as on a desktop.
- A voice that runs in your browser. Piper or Kokoro. The browser voices are free. The first time you use one, the model is downloaded from Hugging Face; after that it runs on your device, and your audio and your script never leave it.
- A cloud voice, on your own key. ElevenLabs, OpenAI speech or Higgs Audio, which can also clone your voice from a take you recorded. That provider bills you, and it receives your key and the script being spoken.
The Voice tab shows the script taken from the slide’s notes, with Record and Generate buttons, and lists every slide’s take below.
Dubbing into another language
Dubbing translates each slide’s script with your agent and speaks it in the new language. The agent is the model you connected: a key for Anthropic, OpenAI, OpenRouter or an OpenAI-compatible service, a local model in Ollama or LM Studio, or Account credits. A cloud model bills your own key and a local model costs nothing. On Account credits the translation step is charged in credits; the speaking, with a browser voice, stays free.
The dubbed speech is not hurried to fit: the slide holds longer instead of the speech speeding up.
Two ways to get the video
Record video, in the browser. Choose File → Record video…. The deck opens in a new tab. Click Start recording, and when the browser asks what to share, choose that tab. The deck plays through in real time and the video is saved to your downloads: an MP4 where the browser can record MP4 (Chrome, Safari), a WebM otherwise (Firefox). There is nothing to install. It is a recording of the tab, so make the window large before you start, and a 40-second deck takes 40 seconds to record.
The openslides-render command, for one video per language. It renders frame-exact MP4s from a deck folder: one video per language, or one video with a track for each. Subtitles come alongside as a separate file or burned into the picture. This renders a deck in English and Japanese:
openslides-render ./launch --lang en,ja --subtitles sidecar -o launch.mp4
The command is not a download yet. It builds from the public source at gitlab.com/open-slides/openslides.
Every moving thing on a slide draws from the slide’s clock, so the canvas, the presenter view and a video show the same frame for the same moment.
An example
The launch keynote on the product page was made this way. It has seventeen slides, with the notes as the script. Each slide’s notes were read aloud by a voice that runs in the browser, and the deck was rendered to video frame by frame. The result is a narrated MP4, 4 minutes 18 seconds long, 1920 × 1080 at 30 frames per second. The voice and the render both ran locally, with no uploads.
What it costs
Everything that does not use AI is free and needs no account. Narration in your own voice or a browser voice is free, and so is video export. The only bills are the ones you choose: a cloud voice or a cloud model on your own key, billed by that provider, or Account credits, which you buy from us. A dub’s translation is an AI step, so it is charged when credits are the provider.
What leaves your device
- Decks, recordings and narration are kept in your browser’s own storage on your device. They are not stored by us.
- A browser voice sends Hugging Face only the name of the model file, the first time you use it.
- A cloud voice sends your key and the script being spoken to the voice provider you chose.
- The agent sends your key and the parts of the deck the turn needs to the provider you chose. A local model never leaves your computer. On Account credits there is no key: the turn, or a dub’s translation, goes through gateway.openslides.dev to Claude.
A voice key is kept in your browser, and you can encrypt it with a passphrase. Voice requests go from your tab straight to the provider. The privacy policy has the full list.
FAQ
Do I need an AI key to narrate a deck?
No. Recording your own voice and using a browser voice need no key. Dubbing uses your agent, which can be a local model in Ollama or LM Studio, or Account credits.
Does narration or video export cost anything?
No. Narration in your own voice or a browser voice and video export are free. A cloud voice is billed by its provider on your own key. A dub’s translation on Account credits is charged in credits.
What format is the video?
openslides-render makes MP4. Record video saves an MP4 where the browser can record MP4 (Chrome, Safari) and a WebM otherwise (Firefox).
Can I get one video per language?
Yes, with openslides-render: one MP4 per language, or one with a track per language. It builds from the public source; there are no ready-made downloads yet.
Can I have subtitles?
Yes. openslides-render writes them alongside the video or burns them in.
Open the studio and add narration to a deck, or read how the rest of it works.