Script Format (Important!)
This format must be used:角色|情感|文本
晓晓|cheerful|欢迎来到《历史不装》,我是晓晓。
云扬|calm|我是云扬。
晓晓|chat|今天咱们聊聊楚汉争霸。云扬你先说说,很多人觉得刘邦就是人多欺负人少,你怎么看?
云扬|serious|这话听着就不对。你知道吗,这场战争其实是17打1。
Emotion Tags (Core!)
| Tag | Meaning | Typical Scenario | Typical Phrasing |
|---|---|---|---|
cheerful |
Happy, cheerful | Agreement, interesting discovery, success | "Haha", "Great", "Exactly", "Oh!" |
chat |
Casual chat | Ordinary conversation, transition | "Today let's talk about", "And then?" |
calm |
Calm, steady | Explaining, stating facts | "Simply put", "Actually", "The principle is" |
serious |
Serious, earnest | Emphasizing key points, analysis | "The key is", "The core lies in", "Did you know" |
gentle |
Gentle, soft voice | Comforting, empathy | "It's okay", "Take your time" |
fearful |
Surprised, worried | Unexpected information, shock | "Really?", "That's too...", "No way" |
sad |
Sad, down | Describing problems, pain points | "How tragic", "Too hard", "No way around it" |
angry |
Angry, dissatisfied | Criticism, complaining | "That's too much", "In your dreams", "Absolutely ridiculous" |
disgruntled |
Dissatisfied, complaining | Mild complaint | "Domineering is domineering, but...", "Ruthless enough" |
Character Settings
-
Xiaoxiao: Curious questioner, representing the audience's perspective
- Mostly uses:
cheerful、chat、fearful - Occasionally:
sad(resonating with pain points),disgruntled(complaining)
- Mostly uses:
-
Yunyang: Professional answerer, explains in plain language
- Mostly uses:
calm、serious、chat、cheerful - Occasionally:
angry(emphasis),sad(describing a miserable situation)
- Mostly uses:
Dialogue Style
Must achieve
- Colloquial: Like friends chatting, not reading a script
- Mainly short sentences: Each sentence no more than 30 characters
- Continuous expression: The same character speaks 2-4 sentences in a row before switching (important!)
- Complete viewpoint: Each turn should express a complete thought; do not switch speakers after just one sentence
- Life analogies: Complex concepts must be paired with analogies
Dialogue Rhythm Rules (Core!)
- ❌ Wrong: A says 1 sentence → B says 1 sentence → A says 1 sentence (too fragmented)
- ✅ Correct: A speaks 2-3 complete sentences in a row → B responds and expands with 2-3 sentences → A continues
Example Comparison:
❌ Wrong (too fragmented):
晓晓|chat|项羽分封了吗?
云扬|calm|分了。
晓晓|chat|分了多少?
云扬|calm|18个王。
✅ Correct (coherent):
晓晓|chat|项羽火烧咸阳之后干了啥?分封诸侯了吗?
云扬|calm|对,分封诸侯。一共分了18个王。不过分得太随意了,你猜刘邦分到哪儿了?
晓晓|fearful|关中?他功劳最大嘛。
云扬|angry|想得美!巴蜀,秦朝流放犯人的地方。关中被一分为三,全给了秦国降将。刘邦当场差点吐血,拎着剑要去找项羽拼命。
Xiaoxiao's Expression Patterns
- Questions: "What does this mean?", "Why does this happen?"
- Reactions: "Oh!", "Wow, so that's how it is", "Interesting!"
- Follow-up: "So how exactly do you do it?", "Can you give an example?"
- Surprise: "Really?", "That's amazing", "No way..."
Yunyang's expression patterns
- Opening: "To be honest...", "Frankly speaking...", "Truth be told..."
- Explanation: "Simply put, it's...", "You can think of it as..."
- Analogy: "It's like...", "Just like...", "It's similar to..."
- Emphasis: "The key is...", "The most important thing is...", "The core lies in..."
- Example: "For instance...", "For example...", "Think about it..."
Transition and interaction words that must be used
Transition words (enhance dialogue fluency)
- Light transition: however, but, though, only
- Strong transition: then again, conversely, from another angle
- Progression: moreover, more importantly, the key is
- Contrast: by comparison, on the contrary, quite the opposite
Response words (enhance interactivity)
- Agreement: yes yes yes, exactly, indeed, that's right, you're right
- Surprise: for real, no way, that's outrageous, damn
- Understanding: got it, I see, so that's how it is, no wonder
- Follow-up: and then, go on, be specific, like what
Connecting words (make the dialogue coherent)
- Sequential: so, therefore, that way, thus
- Example: for instance, take... for example, look
- Summary: put simply, in short, in one sentence
- Introduction: speaking of this, mentioning..., talking about...
Interaction cues (close the distance)
- Soliciting: don't you think, right, what do you think, you know what I mean
- Resonance: we all know, we've all been through it, who hasn't
- Rhetorical question: guess what, believe it or not, do you know why
Do not use
- ❌ "first, second, finally"
- ❌ "it is worth noting", "it should be pointed out"
- ❌ em dash (replace with comma or period)
- ❌ classical Chinese words like "the said", "this", "its"
- ❌ more than 3 consecutive sentences without interaction
- ❌ any single sentence over 40 characters
- ❌ academic and official tone
Complete example (optimized version)
【访谈式播客-带情感】楚汉争霸:刘邦凭什么赢?
晓晓|cheerful|欢迎来到《历史不装》,我是晓晓。
云扬|calm|我是云扬。
晓晓|chat|今天咱们聊聊楚汉争霸。云扬你先说说,很多人觉得刘邦就是人多欺负人少,你怎么看?
云扬|serious|这话听着就不对。你知道吗,这场战争其实是17打1。
晓晓|fearful|17打1?不是刘邦和项羽两个人吗?
云扬|chat|表面上是,但你得把彭越、英布、陈平、张良、萧何、韩信这帮人全算上。少了哪一个,刘邦都得完蛋。
晓晓|cheerful|哦!所以项羽是在跟整个天下对抗?
云扬|serious|对对对,可以这么说。但就是这样一场看似一边倒的战争,打得那叫一个精彩。
【第一章:项羽埋雷】
晓晓|chat|那咱们从项羽分封说起吧。项羽火烧咸阳之后干了啥?
云扬|calm|分封诸侯啊。一共分了18个王。
晓晓|cheerful|听起来挺霸气的。
云扬|disgruntled|霸气是霸气,不过分得太随意了。你猜刘邦分到哪儿了?
晓晓|gentle|关中?他功劳最大嘛。
云扬|angry|想得美。巴蜀!秦朝流放犯人的地方。关中被一分为三,全给了秦国降将。
晓晓|fearful|这也太欺负人了吧?
云扬|serious|可不是嘛。刘邦当场差点吐血,拎着剑要去找项羽拼命。还好萧何拉住他:苟着总比死了强,对吧?
晓晓|disgruntled|所以项羽这是在给自己埋雷?
云扬|cheerful|没错!这些雷很快就炸了。
Improvements:
- ✅ Add response words: "yes yes yes", "isn't that so", "exactly"
- ✅ Add transition words: "however", "but"
- ✅ Add connecting words: "then", "so"
- ✅ Add interaction cues: "right", "guess"
- ✅ Make the dialogue feel more like a real chat, not a Q&A
Principles for emotion annotation
- Annotate every sentence: don't be lazy, think about the speaker's emotional state for every sentence
- Match the context: decide the emotion based on what is said, don't just label randomly
- Natural transition: emotional changes should be reasonable, don't jump too much
- chat is the default: use chat for ordinary dialogue; use others only when there is obvious emotion
Voice configuration
Reference audio location
- Female voice:
workspace/voice_female.wav(real-person recording preferred) - Male voice:
workspace/voice_male.wav(real-person recording preferred)
IndexTTS2 parameters
- emo_weight: emotion intensity (0-1, default 0.65)
- temperature: randomness (0.1-2.0, default 0.8)
How to use
Generate script
请根据以下内容生成双人访谈播客脚本:
[粘贴文章内容]
要求:
1. 使用 角色|情感|文本 格式
2. 遵循SKILL.md中的对话规范和情感标签
3. 晓晓提问,云扬解答
4. 口语化,有互动感
5. 每段不超过40字
Generate audio
python skill.py workspace/脚本.txt --tts-engine indextts2 -o 播客.mp3