Kindle 网页版的字体加密是怎么回事?我用 OCR 绕过了它

查看 15|回复 1
作者:vinxu   
最近在做一个浏览器 TTS 扩展( CastReader ),碰到一个有意思的技术问题。                           Kindle Cloud Reader ( read.amazon.com )用了一套自定义加密字体做 DRM 。打开任意一本书,右键检查元素,DOM 里的字符全是乱的——"chapter" 在源码里可能显示为 "∆♦⊗∑≈∂"。浏览器能正常渲染是因为加载了亚马逊的自定义字体文件做映射,但 DOM 里的 textContent 是废的。                                   这导致所有 TTS 扩展在 Kindle 上全军覆没。Read Aloud 、NaturalReader 、Speechify ,全部读出来是乱码。我测了 15 个扩展,没有一个能用。                                                       我的解决方案:不读 DOM ,读像素。用 tesseract-wasm 在浏览器里跑 OCR ,直接识别渲染后的页面图像。整个流程:                                                                               1. 截取当前页面渲染结果                                                                 2. tesseract-wasm 本地 OCR (不上传任何数据)
3. 拿到文字 + 每个词的 bounding box 坐标                                                 4. 送进 Kokoro TTS 生成语音                                                           5. 用 bounding box 做段落级高亮跟随                                                     首页 OCR 2-3 秒,之后自动翻页 + 预处理下一页,听的时候感觉不到延迟。                                                                                                               还做了个「发送到手机」功能,点一下通过 Telegram 把音频推到手机,自动翻页持续朗读。相当于把 Kindle 书库变成免费有声书。                                                                     技术细节写了一篇博客: https://castreader.ai/blog/how-castreader-cracks-kindle-font-encryption                                                                           扩展免费,不要账号:                                                                     - Chrome: https://chromewebstore.google.com/detail/castreader-tts-reader/foammmkhpbeladledijkdljlechlclpb
  • Edge: https://microsoftedge.microsoft.com/addons/detail/niidajfbelfcgnkmnpcmdlioclhljaaj   - Firefox: https://addons.mozilla.org/en-US/firefox/addon/castreader-tts-reader/

    有什么技术问题欢迎讨论

    OCR, TTS, Kindle

  • vinxu
    OP
      
    对了,做微信读书页面版本的 tts 适配也花了不少时间,不过现在已经可以 tts+高亮跟随了,也可以一键下到手机。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部