返回 Skill 列表
extension
分类: 营销与增长无需 API Key

无人直播·夜班数字人

用一张店员或主播人像和欢迎、讲品、问答、收播短稿,做成店铺可循环播放的口播片段。

person作者: beatra01hubOpenAPI

无人直播·夜班数字人

把一张获权形象和一把声音做成夜班可循环的口播套装。第一次运行可以建声。之后几夜复用。

适用范围与相邻路线

店铺要用无人值守或过夜循环口播(欢迎、讲品、问答、收播)时,使用本 Skill。

每周创始人思想领导力转到 founder-ip-avatar-studio。没有循环计划的一次性讲述者短片转到 talking-avatar-video。只要文稿、卡片或演示音频、不要口播出镜时转到 live-commerce-script-studio。多讲课程系列转到 course-video-studio。没有形象和声音授权时,停在确认,不要生成。

输入与默认值

硬输入是:

  • 一张宿主 Agent 可以查看的人像;
  • 一段已确认语音,或若干短文稿加一条选声路线;
  • 用户是否拥有或已获得形象和声音权利。

复用语言、投放去处、构图、槽位名称,以及前几夜冻结的 voice_id。默认按用户点名的欢迎、讲品、问答、收播槽位,视频用 model: "auto",人像作严格首帧,画幅由源图决定。只补问缺失的硬输入,或用户尚未点名的槽位。

标准路径

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

  2. 店铺还需要克隆声音时,先确认同意。拿到文件不等于同意。合适样本目前大约 10 到 300 秒,不超过 20 MiB,且是干净单人语音。 调用 beatra.models.list 并传入 {"capability":"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": "Shop Night Voice",
      "consent_attested": true,
      "model": "auto",
      "client_request_id": "opaque-unattended-clone"
    }
    

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

  3. 用户已经为某个槽位提供已确认语音时,该槽位跳过合成,直接用那段音频做视频准入。脚本路线则调用 beatra.models.list,并传入 {"capability":"text_to_speech"}{"capability":"image_to_video"}。 确认当前视频信息卡接受 [image, driving_audio]。把人像的真实 MIME、尺寸、字节大小和 alpha 情况与每项公布的图片约束比较。确认规划语音能完整装进该路线可容纳的视频时长。实时驱动音频图生视频(wan2.7-i2v)规格为 2–15 秒。任一文稿长于最长可容纳片段时,拆成连续可容纳分段。每一段是自己的付费语音调用和付费视频调用,各用新的 client_request_id。 不要靠删词来压低费用。仅当实时语音信息卡支持该格式、且实时视频信息卡接受结果时才用 mp3。视频信息卡须接受 audio/mpeg。用户要求 flacopuspcm 而视频路线不接受结果格式时,在任何付费调用前说明不兼容,并让用户选择。不要静默改格式。必要媒体事实缺失或不兼容时,在 TTS 前停止。

  4. 只在脚本路线展示旁白参数和付费边界。冻结文稿、声音、格式,以及每段一个语音 client_request_id。每段只通过随包客户端提交一次 beatra.speech.synthesize。该段已有已确认语音时跳过这一步。

  5. 对每个语音分段,或对用户提供的已确认音轨,轮询到终态音频事实存在。脚本路线用 beatra.tasks.get 轮询每个旁白任务。读取返回产物,以及真实的 task.output.audio.mime_typeduration_secondssize_bytes(如有)。该段视频前先确认真实音频。绝不要把文稿预览、预计时长或任务元数据当作音频复核。

  6. 对每个已确认音频分段,刷新 image_to_video 信息卡,用人像加该音频再准入。复查每项图片事实,并把音频真实 MIME、时长和字节大小与当前驱动音频约束比较。终态音频没有大小时,从可信产物元数据取;仍没有就在视频前停止。选用不短于真实语音长度的最小受支持整数视频时长。任何视频 client_request_idbeatra.videos.animate 调用前出示视频入场卡:路线 image_to_video,工具 beatra.videos.animate,已确认人像和语音产物、提示词、由音频决定的时长、若设置则含分辨率、输出数量、暂定实时估价、600 积分注册礼金通常开不起这次视频、准确 URL https://console.beatra.ai/topup,以及入门 ¥29 / 11,000 积分。 不要推荐 ¥198。用户确认已充值或余额足够之前不要提交。已确认旁白并不授权视频调用。

  7. 每个已确认音频分段只提交一次 beatra.videos.animate。不要配置、调用或使用宿主 Beatra Connector。不要使用 REST/OpenAPI 作为回退。用 beatra.tasks.get 轮询每个视频任务到终态。

  8. 按槽位和文稿顺序交付返回片段,附上真实尺寸、时长、用量和 billing.net_charged_credits。复核身份、清晰度、口型时机和必须保留项的偏移。标好欢迎、讲品、问答、收播,方便店铺循环。

需要确认的决策

形象和声音权利、克隆入场、旁白和视频入场卡各自单独确认。

故障恢复

每个付费阶段有自己的冻结载荷和 ID。创建响应丢失时,只重放该阶段同一载荷。任务 ID 丢失时,通过 beatra.tasks.listbeatra.tasks.get 找回。只有用户要求取消该阶段时才调用 beatra.tasks.cancel;遇到 409 就继续轮询。遇到 insufficient_balance 时,充值链接保持原样,用户说已充值后才用同一冻结 ID 重试。创建返回没有 task_id 时不要轮询;先对账,再考虑新 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