# 有声书 **Repository Path**: gitmc/audiobook ## Basic Information - **Project Name**: 有声书 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-04 - **Last Updated**: 2026-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 有声书文本生产工作区 本仓库负责有声书生产中的文本处理、TTS 初制与发布素材整理:源文件归档、文本提取、清洗、分集、单集正文提取、TTS 生成、专辑元数据、封面/海报与发布清单整理。书籍选题、版权与平台运营不在本仓库范围内。 ## 目录结构 - `docs/books/`:用户投放书籍源文件(`pdf`、`epub`、`mobi`、`txt`、`docx`)。 - `prompts/`:固定 00 到 07 阶段提示词。 - `docs/workflow.md`:业务流程说明。 - `docs/codex-workflow.md`:Codex 执行规范与口令。 - `books//source/`:`original/`、`raw.txt`、`extraction-report.md`、`toc.md`、`cleaned.md`、`cleaning-report.md`。 - `books//episodes/`:`episode-plan.md`、`episode-XXX.md`。 - `book-packages//`:`audio/`、`copy/`、`assets/`、`tts-report.json`、`review-checklist.md`、`release-manifest.json`、`release-checklist.md`。 - `tmp/`:运行时临时文件。 ## 流程与子流 完整流程已按额度隔离为三条可独立运行子流程: - 非TTS流程:阶段 0 → 1 → 2 → 3 → 5 → 7-draft,不消耗 Minimax。 - 视觉资产流程:阶段 6,独立运行。 - TTS流程:阶段 4 → 7-ready,受 Minimax 配额限制。 三条子流程通过 `books//episodes/episode-*.md` 对接。 ## 工作流总览 ```text docs/books/ 或 books// ↓ 0 源文件提取(raw.txt) 1 源文清洗(cleaned.md) 2 分集拆分(episode-plan.md) 3 单集正文提取(episode-XXX.md) 5 专辑元数据(copy/) 6 封面与海报(assets/) 4 TTS 合成(audio/) 7 资源包整理(release-manifest.json) ``` ## 常用命令 - 文件查询:`find . -maxdepth 2 -type f | sort` - 内容检索:`rg "关键词" docs/books books prompts book-packages` - 测试:`python3 -m unittest discover tests` - 批量 TTS:`python3 scripts/generate_tts.py --book-dir books/` - 指定模型和音色:`python3 scripts/generate_tts.py --book-dir books/ --model speech-2.8-hd --voice Chinese_deep_voiced_male_nv1` - 重跑单集 TTS:`python3 scripts/generate_tts.py --book-dir books/ --episode 001 --force` - 资源包整理:`python3 scripts/package_release_assets.py --package-dir book-packages/` `ffmpeg` 为 TTS 分块合并依赖,需提前安装。 ## 口径约束(重要) - 片头片尾必须完整写入 `episode-XXX.md` 的 `## 正文`。 - 第 001 集/推荐序使用完整片头:`"{{钩子内容}}。我是十三,今天为你播讲《[书名]》。"` - 第 002 集起普通正文集使用短片头:`"我是十三,继续为你播讲《[书名]》。这一集,我们进入「[本集标题]」。"` - 同一章节连续拆分时可使用承接式片头:`"我是十三,我们接着上一集,继续读《[书名]》。这一集的主题是「[本集标题]」。"` - 章节开头、重要转折或精彩节点可使用弱钩子片头,但不要每集强行制造钩子。 - 普通集默认片尾:`本集播讲完毕,我们下集继续。` - 章节结束或每 5-8 集的阶段性节点可使用轻互动片尾:`本集播讲完毕,感谢你的收听。如果你喜欢这本书,欢迎订阅,我们下集继续。` - 最后一集/书评集使用完整收束片尾:`本书播讲到这里就结束了。感谢你的收听。如果这本书给你带来一点启发,欢迎订阅、点赞并分享给朋友。我们下一本书再见。` - 播讲者统一称为“主播”。 - 推荐序与书评标记为 `generated:recommendation`、`generated:book-review`,不计入原书正文覆盖范围。 ## 推荐命令 - `按有声书工作流处理 docs/books/aaa.pdf。`(默认非TTS流程) - `按有声书工作流非TTS流程处理 books//。` - `按有声书工作流TTS流程处理 books//。` - `按有声书工作流视觉资产流程处理 books//。` ## 覆盖规则(默认不覆盖) - `raw.txt`、`cleaned.md`、`toc.md`、`episode-plan.md`、`episode-XXX.md`、`episode-XXX.mp3`、`album-meta.json`、`cover`/`poster` 提示词。 - `release-manifest.json`、`tts-report.json` 可覆盖。