Skip to content

ZipZhu/PodcastMaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎙️ PodcastMaker

一个 本地运行 的多角色中文播客自动生成工具:把文字脚本 一键转成自然、清晰、可回听的对话播客音频

让“记录思考”这件事,比写字还轻松。


✨ 亮点功能

  • 🎭 双角色对话播客

    • A:女生 | B:男生
    • 支持同一角色连续发言,不强制轮流
  • 🗣️ 高质量中文语音

    • 基于 Microsoft Edge TTS
    • 无需 GPU / 无需模型下载,开箱即用
  • 📂 自动化输出管理

    • 每次运行自动创建时间戳目录

    • 自动保存:

      • 完整播客音频(合并后)
      • 分段音频(逐行生成)
      • 本次使用的脚本文本(便于复盘与归档)
  • 一键运行

    • 双击 run.bat
    • 任务结束后自动关闭并发送系统通知(如脚本中已启用)

📁 项目结构

PodcastMaker/
├── run.bat               # 一键启动(推荐)
├── run.ps1               # 主执行脚本(PowerShell)
├── make_podcast_edge.py  # 核心逻辑(TTS + 分段 + 合并)
├── script.txt            # 播客脚本(你主要编辑的文件)
├── outputs/
│   └── YYYYMMDD_HHMMSS/
│       ├── podcast_*.mp3
│       ├── script_*.txt
│       └── segments/
└── README.md

✅ 环境要求

  • Windows 10 / 11

  • Python 3.10+

  • 依赖:

    • edge-tts
    • ffmpeg(用于音频合并)

🚀 快速开始(3 步)

1) 安装依赖

安装 Python 包:

pip install edge-tts

安装 ffmpeg:

  • 确保 ffmpeg 已安装,并且能在命令行直接运行:
ffmpeg -version

如果提示找不到命令,请把 ffmpeg 的 bin 目录加入系统环境变量 PATH


2) 编写脚本(script.txt)

脚本规则非常简单:每行以角色标识开头

  • A: 女声
  • B: 男声

✅ 支持同角色连续多行;✅ 每行可包含多句;❌ 不要求轮流。

示例:

A:今天我们聊聊最近让我反复思考的一件事。
A:这篇文章我读了三遍,每一遍感受都不同。

B:是哪一段触动你最深?

A:作者说“选择本身就是一种放弃”。
B:这句话听起来很轻,但其实很重。

建议:每行控制在“适合朗读的一口气”长度,效果更像真实播客。


3) 一键生成播客

双击运行:

run.bat

生成结果会出现在:

outputs/YYYYMMDD_HHMMSS/

📦 输出说明

每次运行会生成一个独立目录,便于归档:

  • podcast_*.mp3:合并后的完整播客
  • script_*.txt:本次使用的脚本备份
  • segments/:逐行分段音频(方便剪辑 / 替换 / 重配某句)

🧠 推荐的 AI 写稿提示词(可直接复制)

目标:生成可直接保存为 script.txt 的内容(只输出台词,不输出解释)。

你是一名专业播客脚本策划与口播编辑。

我将提供一段【原始文本或文档内容】,请你完成以下任务:

【核心目标】
将原始内容改写为【可以直接用于 AI 播客合成的对话式脚本】,输出格式必须严格符合以下要求,且无需我再进行任何修改即可直接使用。

【播客形式要求】
1. 播客为「双人对话制」
2. 角色设定:
   - A:女生(主要讲述者 / 引导者,偏理性、清晰、有结构)
   - B:男生(辅助讲述者 / 提问与回应者,偏自然、互动、补充说明)
3. 允许不严格轮流:A 或 B 可以连续多行讲述;不要求每行之后必须换另一位说话。
4. 整体语气:自然、口语化、适合“自己听的私人播客”,不要像论文朗读或新闻播报。

【脚本格式(必须严格遵守)】
- 每一行行首必须标明角色,只允许使用:
  - `A:`
  - `B:`
- 一行可以包含多句话(建议 1–3 句),但不要太长:每行尽量不超过 60 个中文字符(含标点)
- 如果同一位讲述者要讲很多内容,可以拆成多行,但仍然用同一个角色前缀继续:
  - A:……
  - A:……
  - A:……
- 【停顿与转场规则(新增)】
  - 遇到需要明显停顿、强调或转场的地方,请用“单独一行”来承载那句话(仍然带角色前缀)。
  - 典型场景:总结句、结论句、话题切换句、抛出关键问题、进入“第一/第二/第三点”之前的引导句。
  - 示例:
    A:先说结论。
    A:这件事的关键,不在方法多复杂,而在你能不能坚持一周。
    B:那我们从第一点开始。
- 不要输出任何解释、标题、备注、分析说明
- 不要使用 Markdown
- 不要输出与播客无关的内容

【语言与表达规则】
1. 使用中文
2. 适合口播:句子偏短,逻辑清楚,多用停顿(,。!?)
3. 将“书面表达”改写为“口播表达”,允许出现“我觉得 / 你可以理解成 / 我们先说结论”这类自然口头衔接
4. 数字、符号、英文:
   - 优先使用中文读法(如“三点五”“二〇二五年”)
   - 必要时可在首次出现时用括号标注读法

【结构要求】
请将内容自然组织为以下结构(可灵活调整,但逻辑要清楚):
1. 简短开场(说明主题与价值)
2. 内容拆解(分点讲清核心信息,可用“第一、第二、第三”)
3. 适当互动(B 可在关键处追问、复述、总结;不必每段都互动)
4. 简短结尾(总结或给出下一步行动/思考)

【重要约束】
- 不要照抄原文
- 不要遗漏关键信息
- 不要引入原文之外的事实性内容
- 不要“说教”,而是“像在和自己对话或复盘思考”
- 输出内容必须可以直接保存为 script.txt 使用

【输出示例格式(仅示例,不要照抄)】
A:今天我想聊一个我最近反复遇到的困扰。其实它不复杂,但很容易拖着不解决。
A:先说结论。
A:你只要把它拆成三步,就会轻松很多。
B:那你说的三步分别是什么?我想先听一个框架。
A:第一步是……第二步是……第三步是……
A:这里我补充一个小细节,它会明显影响效果。
B:明白了。你这个点其实是在提醒我们,要把“动作”做小一点。

【现在开始处理以下原始内容】
--------------------------------
(在这里粘贴你的文本或文档内容)
--------------------------------


🛠️ 常见问题(FAQ)

Q:运行后没有合并成功 / 找不到 ffmpeg? A:确认 ffmpeg -version 能在命令行正常输出;否则需要配置环境变量 PATH

Q:中文标点或“冒号”格式会影响识别吗? A:请使用全角冒号:A: B:(与示例一致),并确保每行开头就是角色标识。

Q:怎么让对话更像真人? A:把一行拆短一些,多用“接话式表达”,比如“嗯”“我懂”“但我不确定”等;少写长书面句。


📝 License

  • 个人使用 / 学习 / 研究:可免费使用
  • 商业用途:请遵循 Microsoft Edge TTS 相关条款与许可

About

把文字脚本,一键生成双人对话播客音频的本地自动化工具。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors