---
name: slide-narration-studio
description: "课件配音把PPT课件逐页写成讲稿并配上声音，老师可以通过声音克隆用自己的声音，也可以选合适的AI音色。交付每页一段的配音音频，或者直接合成带字幕的PPT配音讲解视频，适合课程配音、讲稿配音、培训课件和公开课。"
---

# 课件配音

给课件的每一页配上口头讲解：按老师的口吻为每一页写讲稿，用老师自己的声音或选定的音色来读。

## 你会得到

- 每一页一个音频文件（`out/L01-audio/p001.mp3`、`p002.mp3`，……），按课件页顺序命名，并在元数据里标明为 AI 生成。
- 每一页的讲稿，在生成任何声音之前先确认。
- 若需要：整份课件一条配音视频（1920×1080），字幕在画面上，旁边有 SRT 字幕文件。

## 用法

- **按页音频（默认）。** 给老师放进 PowerPoint 或 WPS 的每一页。
- **配音视频。** 课件按配音播放，字幕在画面上，带 AI 标识，视频旁边有 SRT 文件。
- **老师自己的声音。** 用一段干净样本克隆一次。
- **没有课件的讲稿。** 定稿讲稿的每一段按顺序各成一个音频文件。

## 适用范围与相邻路线

课件或定稿讲稿已经有了，只缺口头讲解时用它。要整门课的讲课视频、并可选数字人老师出镜，走数字人讲课；从一个知识点做一节微课，走微课制作。只有讲稿、老师却要视频时，AI课件先做课件。指向另一个 Skill 时，用课件配音工作流（references/workflow.md#pointing-to-another-skill）里的安装说明，并且只在用户要求之后才安装。

## 输入与默认值

硬输入：课件（`.pptx`、PDF，或导出的课件图片），没有课件时用定稿讲稿，以及口播语言。只有老师要用自己的声音时，才要声音样本和说话人的同意；反复出现的人名、术语和缩写，才要读音。默认：有备注时用备注当这一页的讲稿，否则根据这一页写讲稿；用适合学科的目录音色；按页交付音频。课件和备注没有支持的事实不要加进去，把缺口标给老师。

## 标准路径

每个 Beatra 调用都通过随包的 `scripts/mcp_client.py`。不要配置宿主 Beatra Connector。不要使用 REST/OpenAPI 作为回退。
课件在这台电脑上读取，视频在这台电脑上合成，用课件文件（references/deck-files.md）和讲课视频合成（references/lesson-video.md）。

1. **读课件**，并建立课程项目（整份课件算一讲）。只有讲稿时，每一段成一页。
2. **写讲稿**，为每一页写好，连同读音表一起出示。此时不提交任何东西。
3. **先配前面几页。** 选定声音（老师自己的声音先克隆，单独一张卡），读实时语音卡，只估算前 3 到 6 页（`--pages`），出示这几页的卡，逐页配音，逐页记入项目，然后交付它们的音频。只有用户要求时，才把这几页渲染成视频（`plan --pages`）。
4. **配剩下的页**，先为剩余页出示一张卡，然后逐页配音。任何付费步骤遇到 `insufficient_balance`，停掉整次运行，原样转述这条错误的消息和 URL，只有用户说已经充值之后才继续。
5. **交付**按页排好的音频、怎样放进 PowerPoint 或 WPS，以及用户要求时在本地渲染的配音视频（字幕在画面上）和它的 SRT；报告时长和加总的 `billing.net_charged_credits`。说明这些音频是 AI 生成的配音。

## 需要确认的决策

每次付费调用都遵循课件配音工作流（references/workflow.md#production-cards）里的当前制作卡：前面几页、课件剩下的页，以及声音克隆。讲稿和估算是免费的，不算批准。声音是老师自己的，或有说话人的许可；拿到文件不等于同意。讲稿改了或重录，只为那一页重新配音，单独一张卡；读音改了，适用于整份课件，每一页已经配过、且含这个术语的都要重新配音，所以先跑 `estimate`，并报出会重开多少页；换声音则是每一页已经配过的都要重新配音。

## 故障恢复

每一页的配音在课程项目里有一个 `client_request_id`；讲稿、读音、声音和这一遍都没变时，这个 ID 保持不变。再次提交之前，用 `beatra.tasks.list` 和 `beatra.tasks.get` 找回丢失的响应。配音任务以 `failed` 或 `canceled` 结束时，这一页走 `retake` 并新开一张卡；这个 ID 绝不再发送。渲染失败是本地的，再跑一遍，不产生付费调用。

## 账户余额

用户问还剩多少积分，或某次实时估价够不够时，调用 `beatra.wallet.get`。问已经扣了多少时，调用 `beatra.wallet.ledger`。两者都是只读的。不要臆造查余额或充值的工具。也不要把 `wallet.get` 变成每次付费提交前的必需步骤。

模型卡返回里带 `top_up` 块时，按卡片给出的档位和顺序原样转述。不要给档位排高低，不要贬低其中任何一档，也不要替用户挑。选哪一档是用户自己的事，钱包页会把整份清单摆在他面前。任何时候都不要凭记忆报档位。

## 按任务查阅参考

- 制作卡、载荷、把音频放进 PowerPoint 或 WPS、克隆和交付，读课件配音工作流（references/workflow.md）。
- 读课件、导出课件图片，或安装读取器的可选辅助工具时，读课件文件（references/deck-files.md）。
- 课程项目、读音、字幕、版式、AI 标识和渲染，读讲课视频合成（references/lesson-video.md）。
- 授权需要处理时，再读安装与认证（references/installation-and-auth.md）。
- 首次注册读安装注册（references/installation-registration.md）。
- 任务和计费事实读任务与结果（references/tasks-and-results.md）和计费、错误与恢复（references/billing-errors-and-recovery.md）。
- 随包客户端连不上时读随包 MCP Client 连接诊断（references/mcp-connection.md）。
- 更新与安全：更新与安全（references/updates-and-security.md）
- 用户要求停用并移除凭证时，再读卸载与断开连接（references/uninstall-and-disconnect.md）。

每个 Beatra 操作都使用或调用随包的 `scripts/mcp_client.py`。

## 更新与安全

本 Skill 会自动更新。内置客户端每天最多一次从 Beatra 官网读取本渠道的版本信息
（中国大陆网络走 www.beatra.cn 与 cdn.beatra.cn）。有新版本时，它下载官方发布包，
逐个文件校验 SHA-256，再替换本 Skill 自己的文件；你放进这个目录的其他文件不会被
改动。替换过程中断时，下次运行会自动恢复到替换前的状态。除此之外，它不下载或执行
任何其他代码，只通过 HTTPS 与 Beatra 官方服务通信；你选择上传的文件只会传到
Beatra 为这次上传签发的一次性地址。

关闭自动更新：`python3 scripts/mcp_client.py update --auto off`。关闭后，客户端每天
最多提示一次在你安装它的商店里更新的命令。详见更新与安全（references/updates-and-security.md）。
