> podcast-generator

生成自然真实的双人访谈播客,使用共享TTS模块支持3种引擎(Edge TTS / IndexTTS2 / MiniMax)和情感控制

fetch
$curl "https://skillshub.wtf/huangserva/servasyy_skills/podcast-generator?format=md"
SKILL.mdpodcast-generator

播客脚本生成规范

脚本格式(重要!)

必须使用此格式角色|情感|文本

晓晓|cheerful|欢迎来到《历史不装》,我是晓晓。
云扬|calm|我是云扬。
晓晓|chat|今天咱们聊聊楚汉争霸。云扬你先说说,很多人觉得刘邦就是人多欺负人少,你怎么看?
云扬|serious|这话听着就不对。你知道吗,这场战争其实是17打1。

情感标签(核心!)

标签含义典型场景典型句式
cheerful开心、愉快赞同、有趣发现、成功"哈哈"、"太好了"、"没错"、"哦!"
chat日常聊天普通对话、过渡"今天咱们聊聊"、"然后呢"
calm平静、沉稳解释、陈述事实"简单来说"、"其实"、"原理是"
serious严肃、认真强调重点、分析"关键是"、"核心在于"、"你知道吗"
gentle温柔、轻声安慰、共情"没关系"、"慢慢来"
fearful惊讶、担忧意外信息、震惊"真的吗?"、"这也太..."、"不会吧"
sad悲伤、低落描述问题、痛点"惨啊"、"太难了"、"没办法"
angry愤怒、不满批评、吐槽"太过分了"、"想得美"、"简直离谱"
disgruntled不满、吐槽轻度抱怨"霸气是霸气,但..."、"够狠"

角色设定

  • 晓晓:好奇的提问者,代表听众视角

    • 多用:cheerfulchatfearful
    • 偶尔:sad(共鸣痛点)、disgruntled(吐槽)
  • 云扬:专业的解答者,用通俗语言讲解

    • 多用:calmseriouschatcheerful
    • 偶尔:angry(强调)、sad(描述惨状)

对话风格

必须做到

  1. 口语化:像朋友聊天,不像念稿
  2. 短句为主:每句不超过30字
  3. 连续表达:同一角色连续说2-4句再换人(重要!)
  4. 完整观点:每次发言要表达完整的想法,不要一句话就换人
  5. 生活类比:复杂概念必须配类比

对话节奏规则(核心!)

  • 错误:A说1句 → B说1句 → A说1句(太碎片)
  • 正确:A连续说2-3句完整表达 → B回应并展开2-3句 → A再接着说

示例对比

❌ 错误(太碎):

晓晓|chat|项羽分封了吗?
云扬|calm|分了。
晓晓|chat|分了多少?
云扬|calm|18个王。

✅ 正确(连贯):

晓晓|chat|项羽火烧咸阳之后干了啥?分封诸侯了吗?
云扬|calm|对,分封诸侯。一共分了18个王。不过分得太随意了,你猜刘邦分到哪儿了?
晓晓|fearful|关中?他功劳最大嘛。
云扬|angry|想得美!巴蜀,秦朝流放犯人的地方。关中被一分为三,全给了秦国降将。刘邦当场差点吐血,拎着剑要去找项羽拼命。

晓晓的表达模式

  • 提问:"这是什么意思?"、"为什么会这样?"
  • 反应:"哦!"、"哇,原来是这样"、"有意思!"
  • 追问:"那具体怎么做呢?"、"能举个例子吗?"
  • 惊讶:"真的吗?"、"这也太厉害了吧"、"不会吧..."

云扬的表达模式

  • 开场:"说实话..."、"坦白讲..."、"不瞒你说..."
  • 解释:"简单来说就是..."、"你可以理解成..."
  • 类比:"就像...一样"、"好比..."、"这就跟...差不多"
  • 强调:"关键是..."、"最重要的是..."、"核心在于..."
  • 举例:"比如说..."、"举个例子..."、"你想啊..."

必须使用的转折和互动词

转折词(增强对话流畅度)

  • 轻转折:不过、但是、可是、只是
  • 强转折:话说回来、反过来说、换个角度看
  • 递进:而且、更重要的是、关键是
  • 对比:相比之下、反而、恰恰相反

回应词(增强互动感)

  • 认同:对对对、没错、确实、就是这样、你说得对
  • 惊讶:真的假的、不会吧、这么夸张、我去
  • 理解:懂了、明白了、原来如此、怪不得
  • 追问:然后呢、接着说、具体点、比如呢

承接词(让对话连贯)

  • 顺承:那么、所以、这样一来、因此
  • 举例:比如说、就拿...来说、你看啊
  • 总结:说白了、简单讲、一句话
  • 引入:说到这个、提到...、讲起...

互动提示(拉近距离)

  • 征询:你说是不是、对吧、你觉得呢、你懂我意思吧
  • 共鸣:咱们都知道、大家都经历过、谁没遇到过
  • 反问:你猜怎么着、你信不信、知道为什么吗

禁止使用

  • ❌ "首先、其次、最后"
  • ❌ "值得注意的是"、"需要指出的是"
  • ❌ 破折号(用逗号或句号代替)
  • ❌ "该"、"此"、"其"等文言词
  • ❌ 连续超过3句没有互动
  • ❌ 单句超过40字
  • ❌ 学术腔和官方腔

完整示例(优化版)

【访谈式播客-带情感】楚汉争霸:刘邦凭什么赢?

晓晓|cheerful|欢迎来到《历史不装》,我是晓晓。
云扬|calm|我是云扬。
晓晓|chat|今天咱们聊聊楚汉争霸。云扬你先说说,很多人觉得刘邦就是人多欺负人少,你怎么看?
云扬|serious|这话听着就不对。你知道吗,这场战争其实是17打1。
晓晓|fearful|17打1?不是刘邦和项羽两个人吗?
云扬|chat|表面上是,但你得把彭越、英布、陈平、张良、萧何、韩信这帮人全算上。少了哪一个,刘邦都得完蛋。
晓晓|cheerful|哦!所以项羽是在跟整个天下对抗?
云扬|serious|对对对,可以这么说。但就是这样一场看似一边倒的战争,打得那叫一个精彩。

【第一章:项羽埋雷】
晓晓|chat|那咱们从项羽分封说起吧。项羽火烧咸阳之后干了啥?
云扬|calm|分封诸侯啊。一共分了18个王。
晓晓|cheerful|听起来挺霸气的。
云扬|disgruntled|霸气是霸气,不过分得太随意了。你猜刘邦分到哪儿了?
晓晓|gentle|关中?他功劳最大嘛。
云扬|angry|想得美。巴蜀!秦朝流放犯人的地方。关中被一分为三,全给了秦国降将。
晓晓|fearful|这也太欺负人了吧?
云扬|serious|可不是嘛。刘邦当场差点吐血,拎着剑要去找项羽拼命。还好萧何拉住他:苟着总比死了强,对吧?
晓晓|disgruntled|所以项羽这是在给自己埋雷?
云扬|cheerful|没错!这些雷很快就炸了。

改进点

  • ✅ 增加回应词:"对对对"、"可不是嘛"、"没错"
  • ✅ 增加转折词:"不过"、"但"
  • ✅ 增加承接词:"那"、"所以"
  • ✅ 增加互动提示:"对吧"、"你猜"
  • ✅ 让对话更像真实聊天,而不是一问一答

情感标注原则

  1. 每句必标:不要偷懒,每句话都要思考说话人的情感状态
  2. 符合语境:根据说的内容决定情感,不是随便标
  3. 自然过渡:情感变化要合理,不要跳跃太大
  4. chat是默认:普通对话用chat,有明显情感才用其他

声音配置

参考音频位置

  • 女声:workspace/voice_female.wav(真人录音优先)
  • 男声:workspace/voice_male.wav(真人录音优先)

IndexTTS2参数

  • emo_weight: 情感强度(0-1,默认0.65)
  • temperature: 随机性(0.1-2.0,默认0.8)

使用方式

生成脚本

请根据以下内容生成双人访谈播客脚本:
[粘贴文章内容]

要求:
1. 使用 角色|情感|文本 格式
2. 遵循SKILL.md中的对话规范和情感标签
3. 晓晓提问,云扬解答
4. 口语化,有互动感
5. 每段不超过40字

生成音频

python skill.py workspace/脚本.txt --tts-engine indextts2 -o 播客.mp3

┌ stats

installs/wk0
░░░░░░░░░░
github stars34
███████░░░
first seenMar 17, 2026
└────────────

┌ repo

huangserva/servasyy_skills
by huangserva
└────────────