podcast-generator

star 115

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

huangserva By huangserva schedule Updated 2/5/2026

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

播客脚本生成规范

脚本格式(重要!)

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

晓晓|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
Install via CLI
npx skills add https://github.com/huangserva/servasyy_skills --skill podcast-generator
Repository Details
star Stars 115
call_split Forks 19
navigation Branch main
article Path SKILL.md
More from Creator