← Files 中文口播智能粗剪ARCHIVED FILE

skills/rough-cut/references/audio_mix.md

2.41 KB · Oct 5, 2026 · 18:30 UTC

↓ Download file

# 口播 BGM 与音效

只在用户要求配乐或音效时读取本页。先根据剪后逐字稿和成片时间轴产出
`output/audio_plan.json`,再调用 `scripts/mix_bgm_sfx.py`。不要即兴写 ffmpeg 命令。

## 计划格式

```json
{
  "voice_volume": 1.0,
  "bgm": {
    "file": "/绝对路径/bgm.mp3",
    "volume": 0.05,
    "start": 0,
    "fade_in": 0.8,
    "fade_out": 1.2
  },
  "sfx": [
    {
      "name": "开头标题",
      "file": "/绝对路径/唰.mp3",
      "at": 0.08,
      "volume": 0.16
    }
  ]
}
```

音量为线性倍率,不是百分贝:`0.05≈-26dB`、`0.1=-20dB`、`0.2≈-14dB`。

## 通用口播默认原则

- **先过语义适配门槛,再决定是否加 BGM**:判断议题情绪、表达力度、节奏和音乐风格是否
  同向。严肃、争议、警示、沉重或信息密度高的话题,不得因为“成片应该有音乐”而套轻快
  音乐;找不到明确匹配的音乐或拿不准时,默认不加 BGM。音效与 BGM 分开裁决,没有 BGM
  仍可保留少量结构提示音。
- 人声保持 `1.0`,BGM 从 `0.04–0.06` 起步,以“隐约听得见”为目标。
- 开头淡入 `0.6–1.0s`,结尾淡出 `1.0–1.5s`。
- 30–60 秒口播一般只放 3–5 个音效:开头主题、关键结果、产品首次出现、CTA。
- 音效从 `0.12–0.22` 起步;有冲击力的 hit/whoosh 更低,可爱提示音可略高。
- 不给每条字幕配音效;不连续堆同类“叮”;不让音效峰值遮住品牌名和关键动词。
- `at` 使用最终成片时间,不是原素材时间。根据 `render_offsets.json` 与逐字稿换算。
- 每次输出新文件,禁止覆盖无音效版成片。

### BGM 适配检查

写 `bgm` 字段前必须能回答:

1. 视频主要情绪是什么(轻快、温暖、理性、紧张、警示、沉重)?
2. 音乐的速度、配器和情绪是否与该情绪同向?
3. 音乐是否会削弱观点的严肃性或让态度显得轻佻?
4. 音乐是否只是为了盖底噪?若是,应改做人声降噪,不能用 BGM 遮盖。

任一关键项不确定,就不写 `bgm` 字段。

## 执行

```bash
python scripts/mix_bgm_sfx.py \
  output/preview_字幕包装.mp4 output/audio_plan.json --out output/
```

默认产出 `preview_字幕包装_音效版.mp4`。先用 `--dry-run` 验证所有素材、点位和参数,
再正式渲染。完成后用 ffprobe 核对时长、视频流和音频流。

SHA-256: c81f59ca347ffeaed5917767ed0141573a7fd6da702ea74544ab40425c2eeefa