关于 add-voiceover
面向 Remotion 的配音技能,使用 ElevenLabs 生成逐场景旁白并将音频接入合成。还涵盖声音选择、场景时长调整、可选字幕和背景音乐闪避。
主要功能
- 01按场景拆分旁白脚本
- 02选择 ElevenLabs 声音并生成语音
- 03每个场景单独生成音频文件
- 04依据音频长度确定场景时长
- 05可选字幕与背景音乐闪避
适用场景
- 01为 Remotion 视频添加旁白
- 02重新生成某一场景的音频
- 03按旁白调整场景时长
- 04在旁白期间降低背景音乐
MCP 相关
README 提到 ElevenLabs MCP 的 text_to_speech 工具已弃用,但仍可用于快速交互式单次生成。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dojocodinglabs/ remotion-superpowers --skill add-voiceover安装后在 Claude Code 中输入/add-voiceover确认已加载。
详细介绍
添加配音 — 生成并集成旁白
你正在帮助用户为其 Remotion 项目添加旁白配音。
加载 remotion-production 技能,以遵循 voiceover-sync 和 audio-integration 规则;并加载官方 ElevenLabs text-to-speech 技能(npx skills add elevenlabs/skills),了解 API 详情。
工作流
0. 先预览
如果 Studio 尚未运行,现在使用 npx remotion studio 启动(或者在应用内浏览器中使用 --no-open,然后打开它打印的网址),并保持其运行,同时遵循官方 remotion-best-practices 技能。
1. 获取脚本
如果用户尚未提供脚本:
- 询问视频的主题
- 询问语气(专业、随意、活力十足、平静)
- 撰写旁白脚本,按场景拆分,每个场景一行或一段
- 提交用户确认
2. 选择语音
预设语音(来自官方 text-to-speech 技能):
- George(
JBFqnCBsd6RMkjVDRZzb)— 男声,叙事风格(默认) - Sarah(
EXAVITQu4vr4xnSDxMaL)— 女声,柔和 - Daniel(
onwK4e9ZLuTAKqWW03F9)— 男声,权威 - Charlotte(
XB0fDUnXU5powFXDhCwa)— 女声,对话风格
如需特定情绪、口音或语言,请搜索语音库;如需克隆语音或使用多位说话者,请参阅 elevenlabs-advanced 规则。所有场景使用同一语音。
3. 生成 TTS,每个场景一个文件
通过 ElevenLabs 生成,官方 Remotion 配音指南也建议这样做:
- 如果项目尚未设置
ELEVENLABS_API_KEY,请在项目根目录运行npx -y @elevenlabs/cli@latest onboard init,并按照其输出操作。切勿在聊天中索要密钥。 - 运行
npm i @elevenlabs/elevenlabs-js,然后根据audio-integration规则创建scripts/generate-audio.ts,每个场景添加一个voiceover条目(vo-scene1、vo-scene2……),并使用所选的VOICE_ID。模型为eleven_v4。 - 在项目根目录运行
node scripts/generate-audio.ts。每个场景的文件都会生成在public/vo-sceneN.mp3。如需重新生成某一行,删除对应文件并再次运行脚本。
该脚本不会报告时长;第 4 步会测量文件时长。
替代方案:
- ElevenLabs MCP 的
text_to_speech工具已弃用(上游已归档),但仍会随附,用于快速的交互式临时生成。它会将文件写入public/;请将输出文件重命名为vo-sceneN.mp3。 - KIE
generate_speech(remotion-media)可用于低成本草稿:text、output_name: vo-scene1、voice: Eric(21 种命名语音,详见voiceover-sync规则)。Suno 及其他由 KIE 转售的模型未获其所有者授权通过 KIE 使用。请将 KIE 音频用于草稿和内部工作,最终商业音频则使用 ElevenLabs 生成。
4. 使用 calculateMetadata 调整场景长度
在 calculateMetadata 中使用 Mediabunny 测量每个 vo-sceneN.mp3,并按照 voiceover-sync 规则所示,将每个场景的帧数(Math.ceil(seconds * fps))作为 props 传入。这样合成时长就会跟随音频;在 Studio 中重新生成某一行后,时间也会相应更新。
5. 接入合成
按照官方 remotion-markup 技能(audio.md)的说明,在每个场景内使用来自 @remotion/media 的 <Audio> 放置对应文件(使用 npx remotion add @remotion/media 安装):
import { Audio } from "@remotion/media";
import { staticFile } from "remotion";
// Inside scene 1:
<Audio src={staticFile("vo-scene1.mp3")} volume={1} />
6. 字幕(可选)
提供字幕选项。字幕遵循官方 remotion-captions 技能(词级字幕,@remotion/whisper-webgpu);没有 GPU 时可使用 ElevenLabs Scribe 作为备用方案,并可使用 captions-workflow 规则中的 TikTok 风格预设。运行 /add-captions,如果用户只需要 .srt 文件,则运行 /transcribe。
7. 降低背景音乐音量(如有)
如果项目已有背景音乐,请在旁白播放期间降低其音量。降音量模式请参阅 audio-integration 规则。
8. 在 Studio 中审阅
请用户在已打开的 Studio 中播放视频。除非用户要求生成 MP4,否则不要渲染。