Configuration¶
Configuration¶
series.json¶
{
"manimvox": "0.4.0",
"series": "Vectors, Explained",
"tagline": "What a vector really is",
"voice": "kokoro:af_heart",
"speed": 1.0,
"loudness": -16,
"pron": [["\\bNumPy\\b", "num pie"]],
"theme": { "source": "..." },
"episodes": [{ "n": 1, "stem": "ep01_vectors", "cls": "Ep01", "title": "What is a vector?" }]
}
loudness is the level every narration line is brought to, in LUFS (−40 to −5; default −16, a common level for speech online). Voices return audio at very different levels, so without it, changing the voice changes the volume. Each line is measured as ITU-R BS.1770 integrated loudness, brought to the target, and kept under −1.5 dBTP. null keeps each voice's own level. The line as the voice returned it stays cached, so a new target never pays for synthesis again.
pron holds pairs of regex and spoken form, applied to what the voice says and never to the subtitles. Common terms such as API, JSON and SQL are already handled.
Themes¶
Choose a theme for each video from its subject: the product's brand, the paper's figures, or the house style of the channel being emulated. Roles left out fall back to a neutral dark theme, and check theme lists them. Here is an example in the spirit of 3Blue1Brown:
"theme": {
"source": "in the spirit of 3Blue1Brown: near-black stage, Manim's blue, yellow, green and red",
"bg": "#0E1113", "panel": "#1A1F24", "panel2": "#252B31", "line": "#3A434B",
"ink": "#ECECEC", "muted": "#A3ABB2", "accent": "#58C4DD",
"ok": "#83C167", "warn": "#FFFF00", "error": "#FC6255",
"blue": "#58C4DD", "orange": "#FF862F", "violet": "#9A72AC", "pink": "#D147BD", "teal": "#5CD0B3",
"named": { "vector_i": "#83C167", "vector_j": "#FC6255" }
}
What check theme requires:
- Contrast: text roles (ink muted accent ok warn error) have at least 4.5:1 contrast on bg and panel; hues and named colours have at least 3:1 on bg.
- Fonts: every font can be loaded.
- Source: source says where the theme came from.
Optional keys:
- font and mono (defaults per OS);
- font_files (bundled font files);
- mark_svg (a logo drawn on the title card).
Environment variables¶
| Variable | Purpose |
|---|---|
MANIMVOX_VOICE |
Voice used when neither --voice nor series.json sets one |
MANIMVOX_CACHE |
Where models and voices are stored. Default: %LOCALAPPDATA%\manimvox on Windows, $XDG_CACHE_HOME/manimvox or ~/.cache/manimvox elsewhere |
MANIMVOX_ASSUME_YES |
1 answers yes to download and licence prompts |
OPENAI_API_KEY, ELEVENLABS_API_KEY, SARVAM_API_KEY, GNANI_API_KEY |
Keys for the online engines |