Back to skills
extension
Category: Content & MediaNo API key required

课程视频·数字人讲师

用讲稿和一张授权讲师人像,做成每一讲的数字人口播课程视频。

personAuthor: beatra01hubOpenAPI

课程视频·数字人讲师

把写好的讲稿和一张获权讲师人像做成课程视频。每一讲先配音,再做成能完整装下语音的口播片段。

适用范围与相邻路线

课程或培训团队要用一张稳定人像加讲稿做口播课视频时,使用本 Skill。

只要音频课包转到 course-narration-studio。单条讲述者短片转到 talking-avatar-video。创始人周更转到 founder-ip-avatar-studio。没有形象和声音授权时,停在确认。

输入与默认值

硬输入是:

  • 一张可访问的讲师人像;
  • 至少试点讲的最终讲稿;
  • 课次顺序;
  • 形象和声音权利;
  • 讲稿里有反复出现的人名、术语或缩写时,必须有读音表。

这些术语存在而读音表为空时,停下来收集读法。不要猜。最终讲稿才是口播来源。课件只有在用户抽出可说文本后才有用;本 Skill 不解析幻灯片。

复用冻结的 voice_id、语言和构图。视频默认 model: "auto",画幅由源图决定。规划语音长于最长可容纳视频时长时,把一讲拆成连续可容纳片段。

标准路径

  1. 查看人像。记录 MIME 类型、宽、高、画幅、字节大小和是否有 alpha 通道。建立课次台账。本地人像或样本检查后,只通过随包客户端上传。绝不要把本地路径传给远程工具。

  2. 选择或克隆老师声音。克隆先确认同意;拿到文件不等于同意。合适样本目前大约 10 到 300 秒,不超过 20 MiB,且是干净单人语音。 使用实时 voice_clone 入场卡,在任何克隆 client_request_idbeatra.voices.clone 调用前出示:路线 voice_clone,工具 beatra.voices.clone,一次成功激活声音的实时价格、暂定估价、600 积分注册礼金通常开不起这次克隆、https://console.beatra.ai/topup,以及入门 ¥29 / 11,000 积分。不要推荐 ¥198。用户确认已充值或余额足够之前,不要创建 client_request_id 或提交。 不要提供免费克隆。只提交一次 beatra.voices.clone

    {
      "sample": {"type": "artifact", "artifact_id": "artifact_..."},
      "display_name": "Course Teacher",
      "consent_attested": true,
      "model": "auto",
      "client_request_id": "opaque-course-video-clone"
    }
    

    beatra.tasks.get 轮询到终态,然后冻结返回的 voice_id。不克隆时,仍需选目录声音就调用 beatra.voices.list。 绝不要把显示名放进 voice

  3. 调用 beatra.models.list,查询 text_to_speechimage_to_video。 确认视频路线接受 [image, driving_audio]。把人像的真实 MIME、尺寸、字节大小和 alpha 情况与每项公布的图片约束比较。读取能完整装下语音的最长视频时长。在句或节边界把试点讲拆成连续可容纳分段。不要靠删讲稿压低费用。不要把截断后的课当完成品。仅当实时语音信息卡支持该格式、且实时视频信息卡接受结果时才用 mp3。视频信息卡须接受 audio/mpeg。用户要求 flacopuspcm 而视频路线不接受结果格式时,在任何付费调用前说明不兼容,并让用户选择。不要静默改格式。必要媒体事实缺失或不兼容时,在 TTS 前停止。每次语音 input 不超过 50,000 字。

  4. 确认试点语音卡:文稿分段、声音、格式、实时估价,以及每个 client_request_id 对应一次 beatra.speech.synthesize。每段只通过随包客户端提交一次。用 beatra.tasks.get 轮询每个旁白任务到终态。读取返回产物以及真实的 task.output.audio.mime_typeduration_secondssize_bytes。该段视频前先确认真实音频。绝不要把文稿预览当作音频复核。

  5. 刷新 image_to_video 信息卡,用人像加该段已确认语音再准入。复查每项图片和驱动音频事实。终态音频大小仍拿不到时,在视频前停止。 选用不短于真实语音长度的最小受支持整数视频时长。beatra.videos.animate 前出示视频入场卡:路线 image_to_video,工具 beatra.videos.animate,已确认人像和语音产物、提示词、由音频决定的时长、若设置则含分辨率、输出数量、暂定实时估价、600 积分礼金通常开不起这次视频、https://console.beatra.ai/topup、入门 ¥29 / 11,000 积分。不要推荐 ¥198。用户确认已充值或余额足够之前不要提交。已确认旁白并不授权视频调用。每段视频有自己的 client_request_id

  6. 试点讲的片段被接受后,对其余课次重复分段旁白再视频。每个付费阶段有自己的 client_request_id。只通过随包的 scripts/mcp_client.py 提交。不要配置、调用或使用宿主 Beatra Connector。不要使用 REST/OpenAPI 作为回退。用 beatra.tasks.get 轮询每个视频任务到终态。

  7. 按教学顺序交付带标签的课视频,课内按分段顺序,附上真实尺寸、时长、用量和 billing.net_charged_credits。复核身份、术语读音和口型时机。

需要确认的决策

确认权利、声音、试点讲和每张视频入场卡。讲稿一变就是新的旁白;音频变了还要新的视频。

故障恢复

每个阶段只重放冻结后的同一载荷和 ID。任务 ID 丢失时,通过 beatra.tasks.listbeatra.tasks.get 找回。遇到 insufficient_balance 时,保持 https://console.beatra.ai/topup 一字不改,用户说已充值后才用同一冻结 client_request_id 重试。

按任务查阅参考

  • 台账、入场卡、载荷和复核,读课程视频工作流(references/workflow.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/automatic-updates-and-safety.md)。
  • 用户要求移除本包时,再读卸载与断开连接(references/uninstall-and-disconnect.md)。

运行时与安全的自动更新

每个 Beatra 操作都使用或调用随包的 scripts/mcp_client.py。随包客户端会在每个安装中静默检查更新,最多每 24 小时一次。发现更高版本时,不另行确认地自动安装。

它只使用针对本包、渠道和语言环境固定的 Beatra 官方发现地址和不可变 CDN 路径,在替换前校验发现信息、压缩包、清单和每个随包文件,并且只替换本包拥有的文件。它拒绝重定向、降级、错误的包/渠道/语言/版本数据、意外 URL、不安全压缩包,以及目标目录外的文件。

更新检查、下载、校验、替换、回滚和恢复失败时会 fail open:当前安装仍可使用,原本请求的命令会继续执行。更新失败绝不构成重试付费生成的理由。这个设置会在后续命令中持续生效:

python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check