关于 podcast-producer-agent
用于制作播客、访谈、脚本对话和广播剧的编排 Skill。它结合脚本撰写、多说话人语音生成、纯音乐片头片尾制作与音频组装,输出完整音频。
主要功能
- 01播客与访谈脚本创作
- 02多说话人语音合成
- 03纯音乐片头片尾生成
- 04音频混音与拼接
- 05交付完整音频节目
适用场景
- 01制作双主持人播客节目
- 02将访谈脚本转换为音频
- 03组装多角色广播剧
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ michaelboeding/ skills --skill podcast-producer-agent安装后在 Claude Code 中输入/podcast-producer-agent确认已加载。
详细介绍
播客制作
创作完整的播客节目、访谈和对话式音频内容。
这是一项编排技能,结合了:
- 脚本/对话生成(Claude)
- 多说话人语音合成(Gemini TTS)
- 片头/片尾音乐(Lyria)
- 音频组装(通过 media-utils 使用 FFmpeg)
可以创作的内容
| 类型 | 示例 |
|---|---|
| 播客节目 | 两位主持人讨论某个主题 |
| 访谈 | 主持人与嘉宾的问答形式 |
| 对话 | 角色之间的剧本式对话 |
| 音频剧 | 多个角色参与的故事 |
| 广播节目 | 包含多个环节的编排式音频节目 |
前提条件
GOOGLE_API_KEY- 用于 Gemini TTS(语音)和 Lyria(音乐)- 已安装 FFmpeg:
brew install ffmpeg(macOS)或apt install ffmpeg(Linux)
工作流
第 1 步:收集需求(必需)
⚠️ 不要跳过此步骤。请通过交互式提问逐个提问——每次只问一个问题。
问题流程
⚠️ 请对以下每个问题使用 AskUserQuestion 工具。 不要只在回复中列出问题——请使用该工具创建带有所示选项的交互式提示。
Q1:主题
“我来为你制作这期播客!首先——主题是什么?
(主持人应该讨论什么?)”
等待回复。
Q2:主持人
“谁是主持人/说话人?
(姓名和简短的性格描述——例如‘Sarah,热情的科技专家’——TTS 最多支持 2 人)”
等待回复。
Q3:时长
“节目应该多长?
- 5 分钟
- 10 分钟
- 15 分钟
- 或指定时长”
等待回复。
Q4:语气
“希望采用什么语气?
- 专业
- 轻松/对话式
- 幽默/娱乐性
- 严肃/教育性
- 或自行描述”
等待回复。
Q5:音乐
“片头/片尾希望采用什么音乐风格?
- 轻快流行
- 轻松 lo-fi
- 企业/专业
- 电子
- 或自行描述”
等待回复。
快速参考
| 问题 | 决定内容 |
|---|---|
| 主题 | 脚本内容和讨论要点 |
| 主持人 | 语音选择和脚本风格 |
| 时长 | 脚本长度 |
| 语气 | 写作风格和活力 |
| 音乐 | 片头/片尾的 Lyria 提示词 |
第 2 步:生成脚本
使用 Claude 创建带有说话人标签的对话脚本:
[INTRO MUSIC: 10 seconds, upbeat tech podcast vibe]
Sarah: Welcome back to Tech Talk! I'm Sarah, and today we have something exciting.
Mike: Hey everyone! I'm Mike, and yes - we're diving into AI in healthcare.
Sarah: So Mike, what's the biggest change you've seen this year?
Mike: Great question! The use of AI for diagnostic imaging has exploded...
[Continue dialogue...]
[OUTRO MUSIC: Fade under last lines, 5 seconds after]
Sarah: Thanks for listening! Follow us for more episodes.
Mike: See you next time!
脚本指南:
- 说话人姓名必须与 TTS 配置中的姓名完全一致
- 用方括号标注音乐提示:
[INTRO MUSIC: description] - 对话自然流畅,包含来回交流
- 音频时长按每分钟约 150 个词计算
第 3 步:规划素材生成
创建所需生成内容的清单:
{
"project": "tech_talk_ai_healthcare",
"duration_target": "5 minutes",
"speakers": [
{"name": "Sarah", "voice": "Kore", "style": "Enthusiastic, upbeat"},
{"name": "Mike", "voice": "Puck", "style": "Friendly, knowledgeable"}
],
"assets": [
{
"type": "music",
"name": "intro_music",
"prompt": "upbeat tech podcast, electronic, modern",
"duration": 15,
"script": "lyria"
},
{
"type": "dialogue",
"name": "main_content",
"speakers": ["Sarah", "Mike"],
"text": "[the dialogue script]",
"script": "gemini_tts"
},
{
"type": "music",
"name": "outro_music",
"prompt": "same as intro, fade out",
"duration": 10,
"script": "lyria"
}
],
"assembly": [
{"action": "mix", "voice": "intro_with_music", "music": "intro_music", "music_volume": 0.8},
{"action": "concat", "files": ["intro_with_music", "main_content"]},
{"action": "mix", "voice": "main_content_end", "music": "outro_music", "fade_out": 5}
]
}
第 4 步:生成素材
执行每个生成步骤:
生成片头音乐(Lyria):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "upbeat tech podcast, electronic, modern, positive energy" \
--duration 15 \
--bpm 120
生成对话(Gemini TTS 多说话人):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
--multi \
--speaker "Sarah:Kore" \
--speaker "Mike:Puck" \
--text "[dialogue script from Step 2]" \
--style "Make Sarah sound enthusiastic and upbeat. Mike sounds friendly and knowledgeable."
生成片尾音乐(与片头相同或使用变体):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "upbeat tech podcast, electronic, fade out feel" \
--duration 10 \
--bpm 120
第 5 步:组装播客
使用 media-utils 拼接所有内容:
将片头音乐与对话开头混音:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
--voice dialogue.wav \
--music intro_music.wav \
--music-volume 0.4 \
--fade-out 3 \
-o intro_mixed.wav
连接所有片段:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_concat.py \
-i intro_mixed.wav main_dialogue.wav outro_mixed.wav \
--crossfade 1.0 \
-o final_podcast.mp3
第 6 步:交付结果
提供:
- 最终音频文件
- 创作内容摘要
- 询问是否需要调整
交付示例:
“✅ 你的播客节目已准备就绪!
文件: tech_talk_ai_healthcare.mp3(5:23)
创作内容:
- Sarah(Kore 音色)和 Mike(Puck 音色)的对话
- 15 秒轻快的电子风格片头音乐
- 10 秒渐弱的片尾音乐
需要我:
- 调整语音或语气吗?
- 更换音乐风格吗?
- 延长或缩短某个部分吗?
- 在讨论中加入更多主题吗?”
配音搭配建议
| 主持人类型 | 建议音色 | 描述 |
|---|---|---|
| 主持人(活力十足) | Kore、Puck、Laomedeia | 坚定、积极 |
| 联合主持人(沉稳) | Charon、Algieba | 信息丰富、流畅 |
| 嘉宾(专家) | Rasalgethi、Gacrux | 知识渊博、成熟 |
| 采访者 | Achird | 友好 |
| 旁白 | Charon、Orus | 信息丰富、清晰 |
音乐风格建议
| 播客类型 | 音乐提示词 |
|---|---|
| 科技/商业 | "upbeat electronic, modern, corporate, positive" |
| 轻松/喜剧 | "fun, playful, acoustic guitar, lighthearted" |
| 新闻/严肃 | "subtle, professional, ambient, understated" |
| 讲故事 | "cinematic, emotional, orchestral, atmospheric" |
| 健康/身心 wellness | "calm, peaceful, ambient, gentle piano" |
| 真实犯罪 | "dark, suspenseful, minimal, tension" |
限制
- Gemini TTS 每次调用最多支持 2 位说话者(超过此数量时,请生成单独的文件并拼接)
- Lyria 仅支持器乐——音乐中没有人声
- 时长估算可能有所不同——对话长度取决于语速
- 如果音乐短于对话,音乐会循环播放
错误处理
| 错误 | 解决方案 |
|---|---|
| "GOOGLE_API_KEY not set" | 按照 README 设置 API 密钥 |
| "FFmpeg not found" | 安装:brew install ffmpeg |
| "google-genai not installed" | 运行:pip install google-genai |
| TTS 太长 | 将脚本拆分成多个片段,分别生成后再拼接 |
示例提示词
简单:
“制作一期 3 分钟的播客,主题是远程工作技巧,由两位主持人主持”
详细:
“制作一期 5 分钟的科技播客。主持人:Alex(热情、精通科技)和 Jordan(持怀疑态度、善于提问)。主题:AI 助手的未来。加入积极的电子风格片头/片尾音乐。基调轻松但信息丰富。”
提供脚本:
“将这段对话制作成一集带有片头/片尾音乐的播客: Alex:大家好,欢迎回来! Jordan:今天我们要聊聊……”