You are helping the user add a voiceover narration to their Remotion project.
Load the remotion-production skill for the voiceover-sync and audio-integration rules.
Workflow
1. Get the Script
If the user hasn't provided a script:
- Ask what the video is about
- Ask about tone (professional, casual, energetic, calm)
- Write the narration script
- Present for approval
2. Choose Voice
Available voices (via remotion-media generate_speech):
- Eric — Warm, professional male (default)
- Rachel — Clear, engaging female
- Aria — Energetic female
- Roger — Deep, authoritative male
- Sarah — Friendly, conversational female
- Laura — Calm, soothing female
- Charlie — Casual, youthful male
For voice cloning or custom voices, use the dedicated ElevenLabs MCP (requires ELEVENLABS_API_KEY).
3. Generate TTS
Use remotion-media generate_speech:
- text: [the approved script]
- output_name: narration-intro
- voice: [chosen voice]
Files land in public/ of the directory your agent was launched from, so start your agent (Claude Code, Codex, Gemini CLI…) from the Remotion project root.
Record the returned file path and duration.
4. Wire into Composition
Add the voiceover <Audio> component:
import { Audio, staticFile } from "remotion";
// In your composition:
<Audio src={staticFile("[returned-file-path]")} volume={1} />
5. Adjust Composition Duration
If the voiceover is longer than the current composition:
// Update durationInFrames in the Composition registration
durationInFrames: Math.ceil([voiceover_duration_seconds] * fps) + 60 // +2s padding
6. Generate Captions (optional)
Offer to generate subtitles:
Use remotion-media generate_subtitles:
- input_file: [voiceover filename inside public/, e.g. narration-intro.mp3]
7. Duck Background Music (if present)
If the project already has background music, lower its volume during voiceover. See audio-integration rule for the ducking pattern.