关于 podcast-generation
将英文或中文文本转为双主持人播客的技能,可生成结构化对话脚本、合成音频并输出文字稿。
主要功能
- 01将文本改写为播客脚本
- 02生成双主持人轮流对话
- 03使用 TTS 合成语音
- 04导出混音 MP3 和文字稿
- 05支持英文和中文
适用场景
- 01将文章改编为音频
- 02把文档转成播客
- 03根据报告制作对话式节目
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bytedance/ deer-flow --skill podcast-generation安装后在 Claude Code 中输入/podcast-generation确认已加载。
附带文件scripts/generate.pytemplates/tech-explainer.md
详细介绍
播客生成技能
概述
此技能可根据文本内容生成高质量的播客音频。工作流包括创建结构化的 JSON 脚本(对话形式),并通过文本转语音合成生成音频。
核心能力
- 将任意文本内容(文章、报告、文档)转换为播客脚本
- 生成自然的双人主持对话(男主持人与女主持人)
- 使用文本转语音合成语音音频
- 将音频片段混合成最终的播客 MP3 文件
- 支持英语和中文内容
工作流
步骤 1:了解需求
用户请求生成播客时,请确认:
- 源内容:要转换为播客的文本、文章或报告
- 语言:英语或中文(根据内容判断)
- 输出位置:保存生成的播客的位置
- 无需检查
/mnt/user-data下的文件夹
步骤 2:创建结构化脚本 JSON
在 /mnt/user-data/workspace/ 中创建结构化 JSON 脚本文件,命名格式为:{descriptive-name}-script.json
JSON 结构:
{
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "dialogue text"},
{"speaker": "female", "paragraph": "dialogue text"}
]
}
步骤 3:执行生成
调用 Python 脚本:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/script-file.json \
--output-file /mnt/user-data/outputs/generated-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/generated-podcast-transcript.md
参数:
--script-file:JSON 脚本文件的绝对路径(必需)--output-file:输出 MP3 文件的绝对路径(必需)--transcript-file:输出的 Markdown 文稿文件的绝对路径(可选,但建议提供)
重要
- 在一次完整调用中执行脚本。不要将工作流拆分为多个步骤。
- 脚本会在内部处理所有 TTS API 调用和音频生成。
- 不要读取 Python 文件,只需使用参数调用它。
- 始终包含
--transcript-file,为用户生成易读的文稿。- TTS 提供方及其并发数会根据环境变量自动选择,无需手动选择或调整。
脚本 JSON 格式
脚本 JSON 文件必须采用以下结构:
{
"title": "The History of Artificial Intelligence",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer! Welcome back to another episode."},
{"speaker": "female", "paragraph": "Hey everyone! Today we have an exciting topic to discuss."},
{"speaker": "male", "paragraph": "That's right! We're going to talk about..."}
]
}
字段:
title:播客节目的标题(可选,用作文稿中的标题)locale:语言代码——英语为 "en",中文为 "zh"lines:对话行数组speaker:只能是 "male" 或 "female"paragraph:该主持人的对话文本
脚本撰写指南
创建脚本 JSON 时,请遵循以下指南:
格式要求
- 仅包含两位主持人:男主持人与女主持人,自然轮流发言
- 目标时长:约 10 分钟对话(约 40-60 行)
- 以男主持人的问候开场,并包含 "Hello Deer"
语气与风格
- 对话自然随意,就像两位朋友聊天
- 使用轻松的表达和自然的对话过渡
- 避免过于正式或学术的语气
- 加入回应、追问和自然的插话
内容指南
- 主持人之间频繁交谈
- 句子简短易懂,便于听众听清
- 仅使用纯文本,不要在输出中使用 Markdown 格式
- 将技术概念转化为通俗易懂的语言
- 不要使用数学公式、代码或复杂符号
- 让内容引人入胜,便于仅通过音频收听的听众理解
- 排除日期、作者姓名或文档结构等元信息
播客生成示例
用户请求:“生成一期关于人工智能历史的播客”
步骤 1:创建脚本文件 /mnt/user-data/workspace/ai-history-script.json:
{
"title": "The History of Artificial Intelligence",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer! Welcome back to another fascinating episode. Today we're diving into something that's literally shaping our future - the history of artificial intelligence."},
{"speaker": "female", "paragraph": "Oh, I love this topic! You know, AI feels so modern, but it actually has roots going back over seventy years."},
{"speaker": "male", "paragraph": "Exactly! It all started back in the 1950s. The term artificial intelligence was actually coined by John McCarthy in 1956 at a famous conference at Dartmouth."},
{"speaker": "female", "paragraph": "Wait, so they were already thinking about machines that could think back then? That's incredible!"},
{"speaker": "male", "paragraph": "Right? The early pioneers were so optimistic. They thought we'd have human-level AI within a generation."},
{"speaker": "female", "paragraph": "But things didn't quite work out that way, did they?"},
{"speaker": "male", "paragraph": "No, not at all. The 1970s brought what's called the first AI winter..."}
]
}
步骤 2:执行生成:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/ai-history-script.json \
--output-file /mnt/user-data/outputs/ai-history-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/ai-history-transcript.md
这将生成:
ai-history-podcast.mp3:播客音频文件ai-history-transcript.md:易读的播客 Markdown 文稿
特定模板
仅在用户请求符合以下模板时,才读取对应模板文件。
- 技术解读 - 用于将技术文档和教程转换为播客
输出格式
生成的播客遵循“Hello Deer”格式:
- 两位主持人:一男一女
- 自然的对话交流
- 以“Hello Deer”问候语开场
- 目标时长:约 10 分钟
- 主持人交替发言,让内容更生动
输出处理
如果生成失败,命令会以状态码 1 退出,并将诊断信息写入 stderr。只有在命令成功后才能提供 MP3;已有的音频文件或新写入的转录文本都不能证明音频生成成功。
生成完成后:
- 播客和转录文本保存在
/mnt/user-data/outputs/ - 使用
present_files工具向用户分享播客 MP3 和转录文本 MD - 简要说明生成结果(主题、时长、主持人)
- 提供重新生成的选项,以便按需调整
要求
必须设置以下环境变量:
- Volcengine:
VOLCENGINE_TTS_APPID和VOLCENGINE_TTS_ACCESS_TOKEN - MiniMax:
MINIMAX_API_KEY VOLCENGINE_TTS_CLUSTER:Volcengine TTS 集群(可选,默认值为"volcano_tts")VOLCENGINE_TTS_VOICE_TYPE_MALE:Volcengine 男声类型(可选,默认值为zh_male_yangguangqingnian_moon_bigtts)VOLCENGINE_TTS_VOICE_TYPE_FEMALE:Volcengine 女声类型(可选,默认值为zh_female_sajiaonvyou_moon_bigtts)
语音类型覆盖值会经过去除首尾空格处理;未设置或为空时,将使用所列默认值。
注意事项
- 始终在一次调用中执行完整流程——无需单独测试各步骤,也不必担心超时
- 脚本 JSON 应与内容语言一致(en 或 zh)
- 在脚本中应简化技术内容,以便听众理解
- 在脚本中应将复杂符号(公式、代码)转换成通俗语言
- 内容较长可能会生成更长的播客
提供商(Volcengine / MiniMax)
根据环境变量自动选择:
- 设置了
VOLCENGINE_TTS_APPID和VOLCENGINE_TTS_ACCESS_TOKEN→ 使用 Volcengine TTS(默认)。 - 仅设置了
MINIMAX_API_KEY→ 使用 MiniMax TTS(/v1/t2a_v2)。 - 使用
PODCAST_GENERATION_PROVIDER=volcengine|minimax强制指定。
MiniMax 覆盖项:MINIMAX_API_HOST(默认 https://api.minimaxi.com)、
MINIMAX_TTS_MODEL(默认 speech-2.6-hd)、MINIMAX_TTS_VOICE_MALE
(默认 male-qn-qingse)、MINIMAX_TTS_VOICE_FEMALE(默认 female-tianmei)。
并发由各提供商在内部管理——MiniMax 使用单线程以减少速率限制错误,Volcengine 使用 4 个工作线程。调用方无法设置并发参数;遇到暂时性的速率限制时,会通过自动重试和退避机制处理。