> ## Documentation Index
> Fetch the complete documentation index at: https://docs.decktalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Answers about cost, lock-in, the voice, other tools, output files, and the lesson example.

This page answers common questions about DeckTalk. For a message that DeckTalk prints, see [Troubleshooting](/help/troubleshooting).

## What does it cost?

A build without voice costs nothing. A voiced build spends ElevenLabs credits for each section whose text changed.

* Every ElevenLabs plan can call the API, including the free plan. The free plan has limits for a video you publish.
* `decktalk soundscape` also spends credits, because it generates music, an ambience bed, and sound effects.
* A build without voice stops when the project has voiced takes, because it would empty the narration cache. [Rebuild one section](/guides/rebuild-one-section#a-build-without-voice-and-a-voiced-build) explains the cache.

[What spends credits](/requirements#what-spends-credits) lists the plan limits and every command that spends credits.

## Is there lock-in to ElevenLabs?

No. ElevenLabs is the built-in speech provider, because it returns word times.

* The speech provider is one module behind a two-method protocol. Any service that returns audio and word times can replace it.
* A local speech provider with word timings is one such replacement.
* A build without voice needs no speech provider, so the project files do not depend on any service.

[Python API](/reference/python-api) documents the protocol.

## How does the voice sound?

It sounds like the ElevenLabs voice you pick. Any voice id works, including a clone of your own voice.

* `[voice]` in `decktalk.toml` sets stability, similarity, style, and speed.
* DeckTalk sends the text before and after each section with the request. The rhythm and tone of the voice then stay even across cuts.

## Why not record the screen?

A screen recording needs a new take after every edit. You would also time every reveal again by hand. DeckTalk times each reveal from the spoken words, so a reveal moves with its word. [Rebuild one section](/guides/rebuild-one-section) shows what a change runs again.

## How is this different from the other tools?

DeckTalk takes its timing from the spoken words, and the slides are your own HTML.

| Tool                                  | Timing comes from                                                   | Slides are              | After you edit one sentence                                                                      |
| ------------------------------------- | ------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------ |
| **DeckTalk**                          | the spoken words, one time per word                                 | your HTML               | DeckTalk voices one section again. `build --only N` records only that section.                   |
| Remotion, Motion Canvas               | frame numbers or seconds in code, by default                        | code                    | You time the change again by hand and render again.                                              |
| Manim                                 | seconds in code, or bookmarks in the narration with manim-voiceover | code                    | With manim-voiceover, bookmarks follow the new text. You still render the scene again in Python. |
| reveal.js plus a text-to-speech track | a fixed delay per slide, or a timing track you make by hand         | your HTML               | You time every slide again after the change.                                                     |
| Descript                              | a recording you made                                                | your screen             | Overdub voices the new words. The screen recording does not move with them.                      |
| Synthesia, HeyGen                     | the avatar's speech                                                 | their avatar and scenes | You generate the video again.                                                                    |

Choose DeckTalk when the timing must come from the words and the slides are yours. Other tools fit other jobs:

* For frame-by-frame animation, use Remotion, Motion Canvas, or Manim.
* To edit a recording you already made, use Descript.
* For an avatar on screen, use Synthesia or HeyGen.

## Is generated music required?

No. Each part of the soundscape is off until `[mix]` in `decktalk.toml` names its file.

* You can bring your own audio files.
* `decktalk soundscape` generates the parts from a prompt, and it spends credits.
* If a named file is missing, the build prints a warning and continues without that part.

[Sound](/concepts/sound) explains both ways.

## What comes out besides the video?

Every build writes captions and chapters beside the video.

* The `.srt` and `.vtt` captions come from the word times, with the script's punctuation.
* An ffmetadata chapters file has one chapter per section. Consecutive sections with the same title share one chapter.
* The mp4 holds the same chapters, so video players show the section titles.

`decktalk status` lists all three files. [Build artifacts](/reference/artifacts) gives their formats.

## Does another HTML framework work?

Yes. A page can be any HTML that follows the [page contract](/concepts/page-contract).

* [Write a page by hand](/guides/page-by-hand) shows the minimum page.
* The runtime is one file with no dependencies. It adds only the stage element to your markup.
* KaTeX is optional. `decktalk init` copies the packaged KaTeX into `deck/katex/`, and a page that needs no equations can drop its two tags.

## Does it run on Windows?

Yes. DeckTalk runs on Linux, macOS, and Windows.

* Paths in `decktalk.toml` use forward slashes on every platform.
* `decktalk install` puts Chromium in `%LOCALAPPDATA%\ms-playwright`. If a corporate proxy blocks the download, set `PLAYWRIGHT_DOWNLOAD_HOST` as Playwright documents.
* CI runs the full build on Windows for a `v*` tag that a person pushes, and on request. [What CI runs](https://github.com/jacobcbeaudin/decktalk/blob/main/CONTRIBUTING.md#what-ci-runs) lists every platform and trigger.

## What does the lesson example mean by error?

The "error" in `decktalk init --example lesson` is what machine learning calls the loss. The lesson uses "error" because the everyday word already says that lower is better.

* **One guess.** A loss function scores one guess. For a category guess, such as seal or otter, the usual loss is cross-entropy. It is large when the model gives the right answer a low probability.
* **The height of the bowl.** Training lowers the average loss over many examples. Gradient descent moves the knobs down the slope of that average.
* **Not the error rate.** The error rate is the share of wrong guesses. It changes in jumps, so it has no useful slope to follow.

[The examples](/quickstart#the-examples) says what each packaged project is.

## Where does the name come from?

A deck is the slides, and the talk is the narration. DeckTalk times the deck to the talk.

## Related

* **Fix a message that DeckTalk prints:** [Troubleshooting](/help/troubleshooting)
* **Check what a build needs and costs:** [Requirements and costs](/requirements)
* **Look up a term:** [Glossary](/reference/glossary)
