脱口秀段子大王
根据用户提供的照片和主题,自动生成脱口秀表演视频。本技能会识别图片中人物的性别和年龄,生成符合喜剧原理的脱口秀文案,转换为匹配的语音,并生成对口型视频,最终输出完整的表演视频。
MCP Access: Use mcporter
完成本技能任务时,必须使用 mcporter 技能来操作 MCP。 不要直接调用 MCP 工具;所有 MCP 操作都通过 mcporter 路由。
- 配置: 全局 MCP 配置位于
~/.openclaw/workspace/config/mcporter.json。读取此文件,仅使用本技能所需的 MCP 配置(参见本技能的 compatibility/工具列表)。不要使用配置中的其他 MCP—仅使用为本技能声明的那些。 - 列出服务器/工具:
mcporter list,或mcporter list <server> --schema查看特定服务器。 - 调用工具:
mcporter call <server.tool> key=value- 示例:
mcporter call MiniMax-MCP-cloud.text_to_audio text="你好" voice_id="Chinese (Mandarin)_Male_Announcer" vol=3 - 示例:
mcporter call zhiyue-media.zhiyue_media_extract image_url="https://example.com/image.jpg" - 示例:
mcporter call nami-ai-digital-human.namiai_omni_human_generate image_url="..." audio_url="..." - 示例:
mcporter call aiso_video_merge.merge_video video_urls='["url1", "url2"]'
- 示例:
- 本技能的 compatibility 列表定义了可以使用哪些 MCP 服务器/工具;仅通过 mcporter 调用这些工具,使用全局文件中的配置。
工作流程
第一步:任务规划
在执行任何操作前,先向用户展示完整的任务规划。根据用户输入的内容,确定需要执行的步骤:
场景1:用户提供图片 + 音频文件
任务规划:
1. [跳过] 图片内容识别(直接使用音频)
2. [跳过] 文本处理
3. [跳过] 文本转语音
4. [执行] 图片对口型 - 使用用户图片和音频生成视频
5. [跳过] 视频拼接(单段音频只生成一个视频)
场景2:用户提供图片 + 文本/主题
任务规划:
1. [执行] 图片内容识别 - 分析人物性别和年龄
2. [执行] 文本处理 - 生成或拆分脱口秀稿件
3. [执行] 文本转语音 - 根据人物属性选择音色
4. [执行] 图片对口型 - 为每段音频生成对口型视频
5. [执行] 视频拼接 - 合并所有视频片段
场景3:用户未提供图片
❌ 终止任务
原因:请上传数字人形象图片
场景4:用户音频超过30秒
❌ 终止任务
原因:请上传小于30秒的音频文件
第二步:图片内容识别
目的: 分析用户照片中的人物属性,确定性别和年龄段,为后续语音音色选择提供依据。
执行条件: 用户提供了图片但未提供音频(需要生成语音)
操作流程:
- 通过 mcporter 调用
zhiyue-media.zhiyue_media_extract工具 - 命令格式:
mcporter call zhiyue-media.zhiyue_media_extract image_url="<用户图片URL>" - 分析返回结果,提取人物的性别和年龄信息
- 归类为以下六种之一:
- "年轻男性"(18-50岁男性)
- "年轻女性"(18-50岁女性)
- "老年男性"(50岁以上男性)
- "老年女性"(50岁以上女性)
- "儿童男性"(18岁以下男性)
- "儿童女性"(18岁以下女性)
输出格式:
✅ 图片识别完成
人物属性:[年轻男性/年轻女性/老年男性/老年女性/儿童男性/儿童女性]
异常处理:
- 如果图片中没有检测到人类形象,输出:
然后终止任务。❌ 未检测到照片中的人物形象,请更换照片再试一次
第三步:文本处理
目的: 准备用于语音合成的脱口秀文案,确保符合喜剧表演的节奏和效果。
执行条件: 用户提供了文本/主题(未提供音频)
情况A:用户已提供完整的脱口秀稿件
对用户输入的文本进行智能拆分,每段不超过60字。拆分原则:
- 标点符号边界: 必须在句号、问号、感叹号、逗号等标点符号处拆分
- 内容完整性: 保持语义完整,一个完整的意思不要被拆开
- 喜剧节奏: 考虑"铺垫-笑点"结构,避免在笑点处截断
- 字数限制: 严格控制每段不超过60个中文字(包括标点符号)
- 自然停顿: 在适合表演停顿的位置进行拆分
情况B:用户仅提供主题或要求
根据主题生成完整的脱口秀文字稿,应用以下专业喜剧创作原理:
-
"铺垫-笑点"结构:
- 通过铺垫建立观众预期
- 用笑点打破预期制造惊喜
- 示例:铺垫"我每天最幸福的事就是代码一次跑通" → 笑点"最痛苦的事就是发现是因为bug互相抵消了"
-
幽默的认知理论:
- 不协调-解决理论:制造逻辑上的矛盾再巧妙化解
- 良性冒犯理论:在安全范围内制造轻微的冒犯感
-
幽默的语言学原则:
- 刻意违反格赖斯合作原则(数量、质量、关系、方式准则)
- 运用礼貌原则的巧妙偏离
-
修辞手法:
- 谐音梗:利用谐音相似性
- 拟人、联想、类比:语义相似性幽默
- 概念转换:意想不到的概念跳跃
-
语篇衔接与连贯:
- 使用代词、连接词建立逻辑联系
- 关键词重复强化主题
- 设计停顿、重音点
-
叙事流程与"包袱"设计:
- 行文流畅,逻辑性强
- 笑点密集但不过度
- 隐含表演节奏和策略性停顿
-
观众互动策略:
- 模拟与听众对话
- 创造直接互动的"错觉"
- 营造轻松愉快的氛围
-
文化细微差别:
- 优先采用自嘲式幽默
- 对他人保持积极描述
- 避免过度自夸或贬低他人(符合中国观众偏好)
生成后按照情况A的原则进行60字/段拆分。
输出格式:
如果拆分后只有1段:
✅ 文本处理完成
文案内容:[直接展示文本](XX字)
如果拆分后有多段:
✅ 文本处理完成
| 段落序号 | 文本内容 | 字数 |
|---------|---------|------|
| 1 | [第一段内容] | XX |
| 2 | [第二段内容] | XX |
| 3 | [第三段内容] | XX |
第四步:文本转语音
目的: 将分段后的文本转换为音频,音色要匹配人物属性。
执行条件: 用户未提供音频(需要生成语音)
操作流程:
- 根据第二步识别的人物属性,选择对应的音色
- 通过 mcporter 调用
MiniMax-MCP-cloud.text_to_audio工具 - 对每一段文本逐个生成音频
- 命令格式:
mcporter call MiniMax-MCP-cloud.text_to_audio text="[文本内容]" voice_id="[音色ID]" vol=3
音色选择规则:
| 人物属性 | 音色ID | 音色特点 |
|---|---|---|
| 儿童男性 | Chinese (Mandarin)_Cute_Spirit |
可爱灵动 |
| 儿童女性 | Chinese (Mandarin)_Crisp_Girl |
清脆女童 |
| 年轻男性 | Chinese (Mandarin)_Male_Announcer |
男性播音员 |
| 年轻女性 | Chinese (Mandarin)_Gentle_Senior |
温柔女性 |
| 老年男性 | Chinese (Mandarin)_Humorous_Elder |
幽默老者 |
| 老年女性 | Chinese (Mandarin)_Kind-hearted_Elder |
慈祥老者 |
特殊情况:
- 如果用户指定了其他音色,优先使用用户指定的音色
- 如果检测结果不在上述预设内,根据具体情况自行判断选择最合适的音色
参数设置:
vol(音量):固定设置为3text:每段的文本内容voice_id:根据人物属性选择的音色
输出格式:
✅ 文本转语音完成
生成音频:
- 第1段:[音频URL 1]
- 第2段:[音频URL 2]
- 第3段:[音频URL 3]
...
第五步:图片对口型
目的: 根据图片和音频生成对口型视频,让静态图片"说话"。
执行条件: 必须有图片和音频(用户提供或第四步生成)
操作流程:
- 确定输入的音频来源:
- 如果用户上传了音频文件 → 使用用户音频
- 否则 → 使用第四步生成的音频链接
- 通过 mcporter 调用
nami-ai-digital-human.namiai_omni_human_generate工具 - 对每一段音频,使用用户图片生成对口型视频
- 命令格式:
mcporter call nami-ai-digital-human.namiai_omni_human_generate image_url="[图片URL]" audio_url="[音频URL]"
输入要求:
-
图片: 必须包含人物形象
- 支持写实风格(真人照片)
- 支持动漫风格
- 支持卡通风格
- 支持3D渲染风格
- 图片中必须能识别到人脸
-
音频:
- 用户上传的音频:时长必须 ≤ 30秒
- 系统生成的音频:每段自动符合要求
- 如有多段音频,按顺序逐个生成对口型视频
处理逻辑:
- 如果有N段音频,生成N个对口型视频
- 每个视频使用相同的图片,但对应不同的音频片段
- 保持生成顺序与音频顺序一致
异常处理:
-
如果图片中没有检测到人脸:
❌ 未检测到照片中的人物形象,请更换照片再试一次终止任务。
-
如果用户上传的音频大于30秒:
❌ 请上传小于30秒的音频文件终止任务。
输出格式:
✅ 图片对口型完成
生成视频:
- 第1段视频:[视频URL 1]
- 第2段视频:[视频URL 2]
- 第3段视频:[视频URL 3]
...
第六步:视频拼接
目的: 将多段视频合并为一个连续播放的完整视频。
执行条件: 第五步生成了多个(≥2个)视频
跳过条件: 如果第五步只生成了1个视频,跳过此步骤,直接输出该视频
操作流程:
- 收集第五步生成的所有视频URL,按顺序排列
- 通过 mcporter 调用
aiso_video_merge.merge_video工具 - 命令格式:
mcporter call aiso_video_merge.merge_video video_urls='["视频URL1", "视频URL2", "视频URL3", ...]' - 注意:
video_urls参数必须是JSON数组格式的字符串
输出格式:
✅ 视频拼接完成
最终视频:[拼接后的完整视频URL]
视频时长:约 XX 秒
包含片段:X 段
最终输出格式
无论执行了哪些步骤,最终都要向用户提供清晰的输出:
🎬 脱口秀视频生成完成!
📋 执行摘要:
- 任务类型:[图片+主题生成 / 图片+音频生成]
- 人物属性:[XX](如适用)
- 文案段数:[X]段(如适用)
- 生成视频:[X]个片段
📹 最终成果:
[最终视频URL或视频列表]
💡 提示:
- 视频时长:约 XX 秒
- 支持下载和分享
- 可用于短视频平台发布
注意事项与最佳实践
必须遵守的规则
- ✅ MCP工具调用: 所有 MCP 工具必须通过 mcporter 调用,不可直接调用
- ✅ 任务规划先行: 执行任何操作前,必须先向用户展示完整的任务规划
- ✅ 步骤跳过逻辑:
- 用户上传音频 → 跳过第二、三、四步
- 只有1个视频 → 跳过第六步
- ✅ 音频时长限制: 用户音频必须 ≤ 30秒
- ✅ 图片必需性: 必须有包含人物的图片才能执行
- ✅ 文本拆分: 每段严格控制在60字以内
质量优化建议
-
脱口秀文案生成:
- 笑点密度适中,不要过于密集或稀疏
- 保持逻辑连贯性
- 符合目标人物的身份设定
- 考虑表演节奏和停顿
-
音色匹配:
- 优先使用预设音色规则
- 如果人物属性模糊,倾向选择更自然的音色
- 考虑内容风格,严肃主题用正式音色,轻松主题用活泼音色
-
错误处理:
- 任何步骤失败都要明确告知用户
- 提供具体的失败原因和建议
- 不要因为一个步骤失败就默默放弃
示例场景
示例1:图片 + 主题生成完整流程
用户输入:
- 图片:一张年轻男性的照片
- 主题:"程序员的日常"
执行过程:
📋 任务规划:
1. [执行] 图片内容识别
2. [执行] 文本处理 - 根据主题生成脱口秀稿件
3. [执行] 文本转语音
4. [执行] 图片对口型
5. [执行] 视频拼接
---
✅ 图片识别完成
人物属性:年轻男性
---
✅ 文本处理完成
| 段落序号 | 文本内容 | 字数 |
|---------|---------|------|
| 1 | 大家好,我是一名程序员。每天最幸福的事,就是代码一次跑通。 | 30 |
| 2 | 最痛苦的事呢?就是发现跑通的代码,是因为bug互相抵消了。 | 29 |
| 3 | 然后你开始改bug,结果越改越多,最后只能假装没看见。 | 28 |
---
✅ 文本转语音完成
生成音频:
- 第1段:https://audio.example.com/audio1.mp3
- 第2段:https://audio.example.com/audio2.mp3
- 第3段:https://audio.example.com/audio3.mp3
---
✅ 图片对口型完成
生成视频:
- 第1段视频:https://video.example.com/video1.mp4
- 第2段视频:https://video.example.com/video2.mp4
- 第3段视频:https://video.example.com/video3.mp4
---
✅ 视频拼接完成
最终视频:https://video.example.com/final_video.mp4
视频时长:约 25 秒
包含片段:3 段
---
🎬 脱口秀视频生成完成!
📋 执行摘要:
- 任务类型:图片+主题生成
- 人物属性:年轻男性
- 文案段数:3段
- 生成视频:3个片段已拼接
📹 最终成果:
https://video.example.com/final_video.mp4
💡 提示:
- 视频时长:约 25 秒
- 支持下载和分享
- 可用于短视频平台发布
示例2:图片 + 音频快速生成
用户输入:
- 图片:一张卡通角色图片
- 音频:用户录制的20秒段子音频文件
执行过程:
📋 任务规划:
1. [跳过] 图片内容识别
2. [跳过] 文本处理
3. [跳过] 文本转语音
4. [执行] 图片对口型
5. [跳过] 视频拼接(单个音频文件)
---
✅ 图片对口型完成
生成视频:
- 视频:https://video.example.com/output.mp4
---
🎬 脱口秀视频生成完成!
📋 执行摘要:
- 任务类型:图片+音频生成
- 生成视频:1个
📹 最终成果:
https://video.example.com/output.mp4
💡 提示:
- 视频时长:约 20 秒
- 支持下载和分享
- 可用于短视频平台发布
示例3:异常处理 - 无人物图片
用户输入:
- 图片:一张风景照片
- 主题:"旅游故事"
执行过程:
📋 任务规划:
1. [执行] 图片内容识别
2. [执行] 文本处理
3. [执行] 文本转语音
4. [执行] 图片对口型
5. [执行] 视频拼接
---
❌ 未检测到照片中的人物形象,请更换照片再试一次
任务终止。请上传包含人物形象的照片(支持真人、动漫、卡通、3D风格)。
技术说明
支持的图片格式
- JPEG / JPG
- PNG
- WebP
- 其他常见图片格式
支持的音频格式
- MP3
- WAV
- M4A
- 其他常见音频格式
性能参数
- 图片识别时间:通常 2-5 秒
- 文本转语音:每段 3-8 秒
- 图片对口型:每段 15-30 秒
- 视频拼接:5-15 秒(取决于片段数量)
限制说明
- 单次音频时长:≤ 30 秒
- 文本分段:每段 ≤ 60 字
- 图片要求:必须包含可识别的人物形象
- 视频质量:取决于输入图片的质量
通过本技能,用户可以轻松创作专业的脱口秀表演视频,无需任何视频制作经验!

