Skills DirectorySearch all skills ↗

AI agent skill · by @SpaceZephyr

Space Video Audio

视频配音与配乐。三件事——(1) 配音:把口播稿用 TTS 生成旁白音频;(2) 配乐:根据视频内容/节奏匹配合适的 BGM,从免版权曲库找到并下载;(3) 混音:把 BGM + 旁白 + 视频用 ffmpeg 合成,自动压音(BGM 在人声下自动变小)、响度归一、淡入淡出、对齐视频长度。当用户说「配音」「配乐」「加 BGM」「背景音乐」「找音乐」「给视频配旁白」「TTS 口播」「混音」「audio」时触发。

Archived 2026-10-23 · Source updated 2026-08-26. Check the original repository for the latest version.

SKILL.md instructions

# space-video-audio · 配音与配乐

给视频补上声音:**旁白(TTS) + 背景音乐(BGM) + 混音**。三块可单用,也能一次做完。

## 一、配音(TTS 旁白)

把口播稿变成旁白音频。按可用后端分档,**优先质量高的**:

| 档 | 后端 | 说明 |
|---|---|---|
| 高 | IndexTTS2 / 克隆音色 | 有本地模型/配置时用,最像真人、可定制音色 |
| **中(默认)** | `edge-tts` | 免费、自然,中文音色好。`uvx edge-tts` 直接跑 |
| 兜底 | macOS `say` | 无网络/无依赖时用,机械感强 |

edge-tts 生成(推荐中文音色 `zh-CN-XiaoxiaoNeural` / `zh-CN-YunxiNeural`):

```bash
uvx edge-tts --voice zh-CN-YunxiNeural --rate=+8% \
  --text "$(cat 02_脚本/口播.txt)" --write-media 05_音频/voice.mp3
```

- 长稿按句/段分段生成再拼接,避免一句错整条重来
- 生成后走 `space-video-subtitle` 用**旁白音频**重转写做字幕对齐(TTS 段时长只是规划元数据,不能当字幕时间轴)
- 语速:口播偏快更精神,中文 `+8%~+15%` 常用

## 二、配乐(找 BGM 并下载)

### 选曲:先定情绪,再找曲

根据视频内容和节奏定 BGM 的情绪与 BPM:

| 视频类型 | BGM 方向 |
|---|---|
| 干货/教程 | 轻快 lo-fi / 简约电子,低存在感,不抢话 |
| 产品/科技 | 干净的合成器 pad / 节奏感电子 |
| 生活/小红书 | 明亮 ukulele / 轻流行 / 暖钢琴 |
| 观点/严肃 | 极简钢琴 / 环境氛围 |
| 快节奏盘点 | 有鼓点的 upbeat,卡点用 |

### 免版权来源(务必看授权)

见 `references/music-sources.md`。核心几个:
- **Pixabay Music**:免费、多数免署名(需网页/API)
- **YouTube Audio Library**:免费,部分需署名(需登录)
- **Free Music Archive / ccMixter**:CC 授权,多数需署名
- **Incompetech**(Kevin MacLeod):CC-BY,需署名

### 下载

- 有直链的 → `curl -L -o 05_音频/bgm.mp3 "<直链>"`
- YouTube/B站 的免版权曲目 → `yt-dlp -x --audio-format mp3 -o 05_音频/bgm.mp3 "<URL>"`

**红线**:只用有权使用的曲目;需署名的记下来放视频简介;不搬运受版权保护的流行音乐;不确定授权就不用。选曲/授权是用户的决定,拿不准先问。

## 三、混音(合成到视频)

用 `scripts/mix.sh`,一条命令把 BGM(+旁白) 压进视频:

```bash
bash scripts/mix.sh --video in.mp4 --bgm bgm.mp3 [--voice voice.mp3] \
  --out out.mp4 [--bgm-db -20] [--fade 1.0] [--duck]
```

管线做的事(见 `references/mixing-recipes.md` 全套 ffmpeg):
1. **对齐长度**:BGM 太短自动循环,太长裁切到视频时长
2. **响度归一**:`loudnorm` 把整体拉到 -14 LUFS 左右(平台友好)
3. **压音 ducking**:有旁白时用 `sidechaincompress`,人声一响 BGM 自动下沉,人声停 BGM 回来
4. **淡入淡出**:首尾 `afade`,别硬切
5. **BGM 音量**:无旁白约 -12~-16dB,有旁白垫底约 -20~-26dB
6. **封装**:`-c:v copy` 不重编码画面,只替换/混合音轨

## 交接

- 上游:`space-video-script` 的口播稿(→旁白)、`space-video-edit` 的成片、`space-video-broll` 的 B-roll
- 下游:带声音的成片 → 发布,或回 `space-video-edit` 做最终封装

## 依赖

`ffmpeg`(需带 loudnorm/sidechaincompress,本机已支持)、`yt-dlp`、`uvx`(跑 edge-tts);克隆音色档需 IndexTTS2 环境。

## 核心原则

- **BGM 垫底不抢话**:有旁白必开 ducking,BGM 只做氛围
- **响度归一**:别让视频忽大忽小,统一到 -14 LUFS
- **授权优先**:只用免版权/有权曲目,需署名的记下来
- **不重编码画面**:混音只动音轨,`-c:v copy` 保画质

Related skills