这个项目能做什么
# podgenai
podgenai 是一个 Python 应用,使用 OpenAI LLM 针对给定主题生成信息性的单说话人或双说话人有声书/播客 MP3 文件。内容来自模型的内部知识或提供的 markdown 源文档;不使用网络搜索。
## 工作原理
对于给定主题,该工具:
1. 使用 LLM 列出适用的子主题(如果主题未知或不支持则中止)
2. 通过 LLM 选择声音(独白使用单一声音;对话使用男声和女声)
3. 为每个子主题并发生成独白文本
4. 使用红黑奇偶方法对相邻子主题的文本进行去重,将总长度减少 6-40%
5. 对于对话,生成对话文本和语气指令
6. 使用 OpenAI TTS 模型并发将文本转换为语音
7. 使用 `ffmpeg` 拼接音频片段,在部分和子主题之间添加停顿
## 使用的模型
- **知识模型**(`gpt-6-sol`):子主题列出、声音选择、独白文本生成(来自内部知识)、对话文本生成
- **文本模型**(`gpt-6-sol`):从源文档生成独白文本、去重
- **TTS 模型**(`gpt-4o-mini-tts-2025-12-15`):语音生成
## 用法
- 需要 [OpenAI API 密钥](https://platform.openai.com/api-keys)
- 默认输出时长目标约为 1 小时;全面覆盖通常会产生数小时的文件
- 可以使用 `--max-sections`(最少 3)限制章节数以控制时长
- 支持单说话人(`--speakers 1`)和双说话人模式
- 通过 `--document` 接受 markdown 源文档
- 输出可以在章节边界包含音频标记
- 本地缓存在 `./work/<topic>` 目录中
## 配置
- 在 `.env` 文件或环境中设置 `OPENAI_API_KEY`
- 可选设置 `PODGENAI_OPENAI_MAX_WORKERS`(默认:16,最大:32)
- 需要 `ffmpeg` 和 `ffprobe` 进行音频拼接
## 成本估算
10 小时播客的近似成本为 10 美元,其中大部分成本来自 TTS 生成。较短的时长成本按比例降低。
## 输出格式
- 生成用于有声书/播客消费的 MP3 文件
- 推荐播放速度:非技术主题 1.05 倍,技术主题 1.0 倍,外语内容 0.95 倍
## 安装
可通过 PyPI 获取:`pip install podgenai` 或 `uv add podgenai`
也可以作为 Python 库使用,通过 `generate_media()` 函数。
## 许可证
GNU 宽通用公共许可证(LGPL)
评论
0 评分人数达到10人后显示
登录后参与讨论。