mcpField
P
podcast-producer-agent

podcast-producer-agent

github.com/michaelboeding创意与媒体3041 次安装2 周前更新
代码仓库

关于 podcast-producer-agent

用于制作播客、访谈、脚本对话和广播剧的编排 Skill。它结合脚本撰写、多说话人语音生成、纯音乐片头片尾制作与音频组装,输出完整音频。

主要功能

  1. 01播客与访谈脚本创作
  2. 02多说话人语音合成
  3. 03纯音乐片头片尾生成
  4. 04音频混音与拼接
  5. 05交付完整音频节目

适用场景

  1. 01制作双主持人播客节目
  2. 02将访谈脚本转换为音频
  3. 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 步:交付结果

提供:

  1. 最终音频文件
  2. 创作内容摘要
  3. 询问是否需要调整

交付示例:

“✅ 你的播客节目已准备就绪!

文件: 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:今天我们要聊聊……”

评论

支持 Markdown