mcpField
A
add-voiceover

add-voiceover

github.com/dojocodinglabs创意与媒体16772 次安装2 周前更新
代码仓库

关于 add-voiceover

面向 Remotion 的配音技能,使用 ElevenLabs 生成逐场景旁白并将音频接入合成。还涵盖声音选择、场景时长调整、可选字幕和背景音乐闪避。

主要功能

  1. 01按场景拆分旁白脚本
  2. 02选择 ElevenLabs 声音并生成语音
  3. 03每个场景单独生成音频文件
  4. 04依据音频长度确定场景时长
  5. 05可选字幕与背景音乐闪避

适用场景

  1. 01为 Remotion 视频添加旁白
  2. 02重新生成某一场景的音频
  3. 03按旁白调整场景时长
  4. 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 配音指南也建议这样做:

  1. 如果项目尚未设置 ELEVENLABS_API_KEY,请在项目根目录运行 npx -y @elevenlabs/cli@latest onboard init,并按照其输出操作。切勿在聊天中索要密钥。
  2. 运行 npm i @elevenlabs/elevenlabs-js,然后根据 audio-integration 规则创建 scripts/generate-audio.ts,每个场景添加一个 voiceover 条目(vo-scene1、vo-scene2……),并使用所选的 VOICE_ID。模型为 eleven_v4。
  3. 在项目根目录运行 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,否则不要渲染。

评论

支持 Markdown