Remotion 旁白生成 是做什么的?
为 Remotion 合成编写驱动其旁白所需的所有内容:每个场景的音频、精确时长、起始帧和字幕。场景长度来自真实音频,因此不会出现任何漂移。
使用时机
- 用户有一个脚本(Markdown、文本或 JSON)和一个 Remotion 项目,并希望添加旁白。
- 场景的时长应与旁白完全一致;字幕应逐词跟随语音。
步骤
-
确保已设置
MIRAGEA_API_KEY(切勿打印)。选择声音:--voice VOICE_ID- 用户 Miragea 账户中保存的声音,或--ref-url https://...- 要克隆的声音的公开剪辑(需用户同意),以及--ref-text "剪辑中的确切词语"以获得更便宜的 1 倍费率。
-
编写脚本。每个
## 标题(或空行段落)成为一个场景:## 介绍 欢迎使用 Retake,修复旁白错误的最快方式。 ## 演示 输入正确的词。Retake 会重新录制该句子并将其拼接进去。 -
生成到 Remotion 的
public/文件夹:python3 scripts/narrate.py script.md --voice VOICE_ID --out public/narration --fps 30 -
在合成中使用
public/narration/narration.json(参见examples/Narrated.tsx):totalFrames用于durationInFrames,每个场景的startFrame/durationInFrames用于<Sequence>,staticFile('narration/' + scene.file)用于<Audio>,以及scene.captions(RemotionCaption[]:text、startMs、endMs、timestampMs、confidence)配合@remotion/captions的createTikTokStyleCaptions()实现动画字幕。 -
自由编辑脚本并重新运行:未更改的场景会从清单中复用,不产生额外费用;如果运行中途停止,已完成的场景会保留,下次运行将从中断处继续。
选项
| 标志 | 默认值 | 含义 |
|---|---|---|
--fps | 30 | 用于帧计算的帧率 |
--pad | 0.4 | 每个场景后的呼吸时间(秒) |
--captions miragea | 是 | 从生成的音频中获取字幕时间(准确;+3 积分/秒) |
--captions estimate | 免费:按长度均匀分布词语 | |
--model | expressive | standard 更紧密地跟随参考声音 |
--speed | 1.0 | 0.25-4 |
超过 2,000 字符的场景会在句子末尾自动分割并合并。
故障排除
choose a voice-> 传递--voice或--ref-url。参考 URL 必须公开、长度不超过 1,024 个字符并且直接提供服务(GitHub raw、S3/R2 公开对象可以;签名重定向可能不行)。401/402/429-> 密钥、余额、速率限制。重新运行始终安全。