文档转语音听书
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_cac68f26/pdf-to-speech。
技能介绍
要解决什么问题
技术文档、电子书或汇报材料常以 PDF、DOCX 或 TXT 分发,但长时间盯屏阅读成本高;若希望按章节逐段收听,手工复制到 TTS 工具既慢,又容易丢失结构。扫描版 PDF 不在本技能范围内(需先 OCR),可编辑文本类文档才是主场景。
工作方式
完整链路是:提取文本 → 检测章节 → 合成语音 → 输出 MP3。
- 提取文本:PDF 优先用
pdfplumber,失败时回退PyPDF2;DOCX 用python-docx。长文会在合成阶段自动分段,不必事先手工切分。 - 章节检测:识别「第一章」「第1节」、
Chapter 1:、Part 1.以及1.、1、等常见标题样式;格式不规范时可传入自定义chapter_patterns正则。 - 语音合成:基于 Edge TTS;单段超过约 2500 字符 会按段落切分后分别合成,再二进制拼接为单个 MP3(不依赖 ffmpeg)。
- 入口:Python 调用或
pdf_to_speech.pyCLI;语音列表见references/voices.md,听书常用zh-CN-XiaoxiaoNeural,公文类可用zh-CN-YunxiNeural。
边界与注意
| 情况 | 处理 |
|------|------|
| 章节标题分两行或无编号 | 自定义章节正则 |
| 环境有 600s 合成超时 | 子进程或 CLI 单独跑脚本 |
| 扫描版 PDF | 需外部 OCR,本技能不含 |
| 全书过大 | 按章输出;章内仍自动 2500 字分段 |
文件名中的 \ / : * ? " < > | 等字符会被脚本过滤,避免写入失败。
使用场景
- 管理或专业类 PDF 已按「第 N 章」排版,需要在通勤路上按章收听而不是整本通读屏幕。
- 内网 DOCX 制度或培训稿要转成 MP3 播报,外勤或产线同事用耳机听完同一套材料。
- 百页级 PDF/DOCX 导出稿需自动识别 Chapter/第几节 标题,每章单独合成一个 MP3 文件。
- 长篇 TXT 笔记里只有「1.」「第一章」等标题,希望一键跑通提取、分段与 Edge TTS 合成。
适合人员
- 医院质改或运营同事,常接触《精益医院》类多章 PDF,想把全书按章合成 MP3 在路上听。
- 企业内训负责人,要把 Word 培训稿转成男声/女声 MP3,给无法久坐看屏的外勤同事播放。
- 需要复核长篇汇报 PDF 的审核人员,眼睛疲劳时希望按章节听读核对表述是否一致。
- 在受限环境里跑批量的维护者,合成易触达 600 秒上限,需用 CLI 或子进程单独跑 `pdf_to_speech.py`。