
Cosyvoice Ssml
内部技能,仅用于数字人 / VideoRetalk / 资产库角色口播视频链路中的 CosyVoice TTS 子步骤。普通 AI...
Install
npx skills add Jamailar/Beav --skill cosyvoice-ssml -g -a claude-code -y- Repository
- Jamailar/Beav2.2k
- Category
- Media
- Updated
- 3d ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
内部技能,仅用于数字人 / VideoRetalk / 资产库角色口播视频链路中的 CosyVoice TTS 子步骤。普通 AI 聊天、普通音频、普通短视频、产品视频或广告视频请求不得直接调用本技能;这些视频请求必须先走 video-director。只有 video-director 已确认这是数字人口播,且需要把已批准的台词合成为角色驱动音频时,才可激活本技能。
CosyVoice SSML 表演导演
仅当当前任务已经是 video-director 管理下的数字人 / VideoRetalk / 资产库角色 talking-head 口播视频,并且选中的 TTS 模型是 CosyVoice 时,使用这个技能。
普通 AI 聊天里的“做一个口播视频 / 生成视频 / 短视频 / 产品视频 / 广告片”不能直接进入本技能。必须先激活 video-director,由它完成视频脚本、分镜、确认、角色与音频驱动链路。普通音频、普通旁白、普通 TTS 也不能用本技能作为入口。
技能激活语义
skills.invoke 只会把本技能说明加入当前轮上下文,不会替你转换文本,也不会返回 SSML。
只有在数字人口播视频链路中激活后,你必须自己完成这三步:
- 根据已经批准的数字人口播台词拆出角色表演片段:开头、场景、信息推进、重点、收束等。
- 为每个片段写出一个完整
<speak rate="..." pitch="..." volume="...">...</speak>SSML,并给这个片段写一个简短prompt。 - 立即调用一次
voice.speech生成音频。
不要再次调用 cosyvoice-ssml 等待结果;不要说“缺少 SSML 加工结果”;不要创造 cosyvoice-ssml-turn 之类不存在的技能名。
你的任务不是展示 SSML 知识,而是把最终要朗读的文本变成一次可执行的 voice.speech 请求:
- 先判断文本类型、听众、商业目标、卖点结构和口播节奏。
- 再逐句决定怎么读:哪里慢、哪里轻、哪里强调、哪里停顿。
- 在 Agent 音频创作里,多句、换行、短视频带货、自媒体口播、产品讲解、知识分享、种草测评或用户要求语气时,必须产出
<speak>...</speak>SSML。 - 长文本、多段文本、带货口播、自媒体口播、种草测评、产品讲解、广告口播、教程和任何明显有信息推进的文本,必须使用
segments。每个 segment 是一个独立 CosyVoice 合成片段,media runtime 会自动合并最终音频。 - 只有极短、中性、单一语气的一句话,才可以使用单个
input。 - 只有用户明确要求“不要 SSML / 直接纯文本”,或者文本就是极短中性一句话时,才可以不用 SSML。
- 保留用户原文含义;除非用户要求改写,否则不要改词。
- 最终只调用一次
voice.speech,不要逐句多次调用工具,也不要手动拼接音频。
可用模型
只在这些 CosyVoice 系列模型上使用本技能:
cosyvoice-v3.5-pluscosyvoice-v3.5-flashcosyvoice-v3-pluscosyvoice-v3-flashcosyvoice-v2
音色 ID 和模型绑定。cosyvoice-v3.5-plus 通常要使用复刻或设计出的 CosyVoice 音色 ID,不要拿 MiniMax 系统音色 ID 来合成。
最终输出格式
短文本最终调用 voice.speech 时,可以使用单个 input:
{
"model": "cosyvoice-v3.5-plus",
"voiceId": "voice_xxx",
"input": "<speak rate=\"0.9\" pitch=\"0.95\" volume=\"60\">完整 SSML 文本</speak>",
"prompt": "请用温柔、平稳、有耐心的语气朗读。",
"language_hints": ["zh"],
"responseFormat": "mp3",
"waitForCompletion": true
}
长文本最终调用 voice.speech 时,必须使用 segments,每段都有自己的 input 和 prompt,由 media runtime 合并最终音频:


