When to Use
Use this skill in Stage 03 (voice). It takes a finished script (Stage 02 output) and produces an mp3.
What You Need Before Calling
- A
.envfile withELEVEN_API_KEYandELEVEN_VOICE_IDpopulated locally. See../../shared/env-template.md. - Python with
elevenlabsandpython-dotenvinstalled. - A script file in the workspace that contains a
## ► PASTE THIS into ElevenLabsheading followed by two---rules. The narration sits between those rules.
The skill never writes the API key or voice id into a committed file. Credentials stay in .env.
How It Works
- Read the script file.
- Find the
PASTE THIS into ElevenLabsheading. The case-insensitive match handles►,▶, or>prefixes. - Extract everything between the next two
---rules. Strip any lines starting with>(markdown blockquote callouts to the human). - Load
.envviapython-dotenv. - Call
client.text_to_speech.convert(text=..., voice_id=..., model_id=..., output_format=..., voice_settings=VoiceSettings(...)). - Save the returned audio to
audio/{videoN}.mp3(master). - Copy that file to
remotion/public/audio/{videoN}.mp3(runtime, sostaticFile()finds it).
The reference implementation is in scripts/generate-audio.py. Copy it into the project root and adjust the SCRIPTS mapping for your file layout.
Voice Settings
This workspace is configured for:
- Voice label:
{{ELEVEN_VOICE_LABEL}}(the real id lives in.env) - Model:
{{ELEVEN_MODEL_ID}} - Stability:
{{ELEVEN_STABILITY}} - Similarity boost:
{{ELEVEN_SIMILARITY_BOOST}} - Speed:
{{ELEVEN_SPEED}} - Output:
{{ELEVEN_OUTPUT_FORMAT}}
Override any of these by setting the matching ELEVEN_* variable in .env before the call.
Rules
rules/paste-block.md-- exact format the script must use so extraction worksrules/tone-tags.md--[brackets]tags ElevenLabs honors and the ones it does not
After the Call
Stage 03 hands off to the Whisper skill. The voice file is the timeline truth from here on.