语音读书+互动领读
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1793b15c/voice-reader
技能介绍
被动听书的三个死结
读完一本书最难的不是"没时间",而是三种典型困境:纯听书没有互动,走神了不知道哪里没听懂;让 LLM 直接读整本书,token 成本随章节长度线性膨胀;多人约读时,进度散落在各自设备上无法对齐。更现实的隐患是——edge-tts 走的是微软 Edge 浏览器的非官方接口,没有任何 SLA,接口一旦变更或封禁,整条免费朗读链路直接断掉。
把重活留在本地,LLM 只在该出现时出现
这个技能的核心思路是:解析、切章、摘要、TTS 合成、阅读记忆全部由本地脚本完成,LLM 只在出题和答疑时被调用一次。送进模型的 prompt 恒定在约 1200 token,无论章节是 3000 字还是 6 万字——代价是 token 成本封顶,而不是跟着书的厚度涨。
章节切分采用三级 fallback:PDF 依次尝试书签目录→字号聚类→标题正则→等长切分;EPUB 用 nav/ncx 目录;MD/TXT 按标题层级自动选择。解析结果缓存在本地,重读同一本书不会重复解析。
出题不是固定套路。技能会离线扫描章节前 8k 字,按线索词判定理论/案例/操作/叙事/综合五种类型,再按章节长度自动调题数——短章 3 题、中章 5 题、长章 7 题,叙事章各档减一题以保留情节流。理论章侧重"是什么/为什么/常见误解",操作章侧重"步骤顺序/踩坑",避免用一套模板套所有内容。
情感朗读用三层模拟。因为 edge-tts 已不支持 SSML 情感标签,技能改用角色分工(标题/正文/对话/强调各用不同音色)、独立韵律偏移、以及按标点和段落边界插入 120–900ms 的静音——第三点对"像人在读"的贡献最大。
离线保命机制。piper 作为备用 TTS,主引擎连续失败两段后永久切换,单段参数错误不误触发降级,备胎输出写入独立缓存槽位避免"串味"。播放支持暂停、跳句、重听、变速、书签,每章播到哪记到哪。
适用边界
piper 官方中文模型目前只有 huayan 一个女声,edge 那套 8 角色音色分工无法原样复现,只能靠音高和语速偏移造出可分辨的角色差异。交互式播放器依赖 ffplay 和真实终端,拿不到 tty 时自动退化为整段播放。扫描版 PDF 提取为空,需要先做 OCR。多人共读需要把同一个目录用网盘同步,没有自建服务器也能做到,但首次必须指定 --shared。
使用场景
- 通勤路上用语音听完一本 PDF 技术书,走神时按 r 重听当前句,回家后用 --resume 从断点续播。
- 读长篇理论书时,本地脚本按章节类型自动出 3-7 道题,先问后答检验是否真的读懂。
- 几位工程师约读同一本书,用网盘同步共享目录,各自朗读后互查进度和思考记录。
- 读完的书和薄弱点写入本地记忆,之后回答相关问题时先查 L3 画像再作答。
适合人员
- 每天通勤路上想听完一本专业书、但容易走神的上班族工程师。
- 需要精读大量文献、希望每章自动检测理解程度的学生或研究者。
- 组织团队共读、需要对齐进度并互看读书笔记的技术负责人。
- 把读过的书沉淀为可检索记忆、方便后续引用的知识工作者。