Decentralization? We're still early!

OpenReader WebUI:让你的文档或电子书能听又能看

  • OpenReader WebUI:让你的文档或电子书能听又能看

    發布人 Brave 2025-04-21 05:46

    你是不是经常需要在电脑或手机上看各种文档?比如 PDF 报告、EPUB 电子书或者 Word 文档(DOCX)?有时眼睛累了,或者想边做别的事边“听”内容?那么,这款名叫 OpenReader WebUI 的工具可能正是你一直在找的!

    它是一个开源(意味着代码是公开的,你可以免费使用甚至修改)的网页工具,专门用来在浏览器里阅读 PDF、EPUB 和 DOCX 文件。它的核心目标,就是给你一个反应快、用着舒服的高质量阅读体验。

    一、OpenReader有哪些功能

    • 解放双眼,听文档 (文本转语音 - TTS):这绝对是它的核心亮点!它可以连接好几种流行的语音合成服务 (比如 OpenAI 的,或者可以自己搭建的 Kokoro-FastAPI、Orpheus-FastAPI 等),然后把文字清晰、流畅地读给你听。无论你是视力有些不方便,还是想在做饭、开车、运动时“听”文档,这个功能都超级实用。你可以选择不同的声音和语速,找到最适合你的听书感觉。
    • 通吃主流格式:不用担心格式不兼容。你常用的 PDF 文件、标准的 EPUB 电子书格式它都能顺利打开阅读,省去了你转换格式的麻烦。
    • 朗读到哪,高亮到哪:在听语音朗读的时候,屏幕上对应的文字会实时高亮显示。这样你就很清楚当前读到哪里了,视觉上跟着也舒服,不容易走神,对于学习语言或者需要集中注意力的场景特别有帮助。
    • 没网也能看(离线阅读):担心出门没网看不了文档?没关系!它可以把文档安全地存在你自己的浏览器缓存里。这样就算你突然断网,或者在没 Wi-Fi 的地方,之前上传或打开过的文档照样能接着看,非常方便。
    • 自制有声书:觉得一篇长文或者一本书听起来不过瘾?你可以直接用它把整个文档(比如一本 EPUB 电子书)转换成一个完整的 .m4b 有声书文件。这种格式特别适合导入到手机的音乐播放器或者专门的有声书 App 里,包含了章节信息,让你随时暂停、继续,管理起来很方便。特别适合通勤路上、长途旅行或者睡前放松时听。
    • 手机平板体验棒 (PWA 支持):它用的是很新的网页技术 (SvelteKit),做成了一个渐进式网页应用 (PWA)。你可以在手机或平板的浏览器里,把它像安装普通 App 一样“添加到主屏幕”。这样以后点一下图标就能直接打开,速度快,界面用起来很流畅,感觉就像个原生 App,完美适配你的移动设备。
    • 部署方式灵活:技术大佬和普通用户都能找到适合自己的方式。你可以只在自己的电脑上跑起来,完全本地化使用,数据都存在你本地;如果你懂一点技术,也可以把它部署到服务器上(比如自己的 NAS 或者云服务器),这样就能在任何设备上通过网址访问,甚至可以分享给团队成员或者朋友们一起用。官方提供了 Docker Compose 的配置文件,让部署过程变得相对简单不少。

    二、想试试?这是部署和使用指南

    如果你想在自己的电脑或者服务器上拥有一个 OpenReader WebUI 实例,用 Docker 是最推荐的方式,比较省心。

    你需要准备:

    1. 确保你的电脑或服务器安装了 DockerDocker Compose。(这是两个流行的容器化工具,网上有很多安装教程)
    2. 你需要一个能用的 TTS API 服务。这可以是:
      • 自己部署的:比如按照官方推荐部署 Kokoro-FastAPI 或 Orpheus-FastAPI(需要一些技术操作)。
      • 第三方商业服务:比如 OpenAI 的 TTS API(效果好,但可能需要付费,并且要获取 API Key)。
      • 其他的兼容 API
        你需要知道这个 TTS 服务的访问地址 (URL)

    Docker Compose 配置 (docker-compose.yml) 文件内容:

    # docker-compose.yml
    
    volumes:
      # 定义一个数据卷,名字叫 docstore
      # 它会帮你把上传的文档持久化保存,即使容器重启了,文档也不会丢
      docstore:
    
    services:
      # 定义一个服务,就叫 openreader-webui
      openreader-webui:
        container_name: openreader-webui # 给运行的容器起个名字,方便管理
        image: ghcr.io/richardr1126/openreader-webui:latest # 指定使用哪个 Docker 镜像,这里用官方最新的
        environment:
          # 设置环境变量,最关键的是这个 API_BASE
          # 它告诉 OpenReader WebUI 去哪里找 TTS 服务
          # 示例值 http://host.docker.internal:8880/v1 指向的是运行 Docker 的本机(宿主机)的 8880 端口
          # !!! 你需要根据你的实际 TTS 服务地址修改这里 !!!
          # 例如,如果用 OpenAI API,可能是: https://api.openai.com/v1 (并且你可能需要在 WebUI 设置里填入 API Key)
          - API_BASE=http://host.docker.internal:8880/v1
          # - OPENAI_API_KEY=你的OpenAI密钥 # 如果使用OpenAI,可能需要这样或在UI中设置
        ports:
          # 把你电脑的 3003 端口,映射到 Docker 容器内部的 3003 端口
          # 这样你就能通过访问你电脑的 3003 端口来使用 WebUI 了
          - "3003:3003"
        volumes:
          # 把上面定义的 docstore 数据卷,挂载到容器内部的 /app/docstore 目录
          # 这样容器里保存的文档,实际上是存在了 Docker 管理的 docstore 卷里
          - docstore:/app/docstore
        restart: unless-stopped # 设置容器总是在退出后自动重启,除非是你手动停止的

    运行步骤:

    1. 保存文件:把上面的代码复制下来,粘贴到一个纯文本文件里,然后把这个文件命名为 docker-compose.yml,保存在你电脑上一个方便找到的文件夹里(比如 ~/openreader)。
    2. 启动服务:打开你的终端(命令行工具),cd 到你保存 docker-compose.yml 文件的那个文件夹。然后运行命令:docker-compose up -d
      • -d 参数表示在后台运行,这样你关掉终端窗口,服务还能继续跑。
      • 第一次运行时,Docker 会自动去下载需要的镜像文件,可能会花几分钟时间,取决于你的网速。
    3. 访问应用:等命令执行完毕,没有报错信息后,打开你的网页浏览器(推荐 Chrome、Edge、Firefox 等现代浏览器),在地址栏输入 http://localhost:3003,然后回车。如果一切顺利,你应该就能看到 OpenReader WebUI 的界面了!

    三、使用时的注意事项

    • “朗读”按钮点了没反应或报错
      1. 检查 API_BASE:再三确认 docker-compose.yml 里或者 WebUI 设置里的 TTS API 地址是不是完全正确。
      2. 检查 TTS 服务状态:你配置的那个 TTS 服务(不管是自己搭的还是第三方的)是不是真的在运行,并且网络能访问到?
      3. 检查网络/防火墙:有时网络问题或防火墙设置会阻止 WebUI 连接到 TTS 服务,特别是 WebSocket 连接,需要检查一下。
    • 启动时提示端口 3003 被占用
      说明你电脑上已经有其他程序在用 3003 这个端口了。编辑 docker-compose.yml 文件,找到 ports: 下面的 - "3003:3003",把冒号前面的 3003 改成一个别的没被占用的端口号,比如 3004,变成 - "3004:3003"。保存后重新运行 docker-compose up -d,然后通过 http://localhost:3004 访问。
    • 处理很大的文档感觉有点卡顿或慢
      1. 检查服务器/电脑性能:确保运行 Docker 的机器有足够的内存 (RAM) 和 CPU 资源。可以看看 Docker 的资源限制设置。
      2. TTS API 性能:不同的 TTS 服务处理速度也不同。免费或自建的轻量级服务可能对大文件处理较慢,商业级 API (如 OpenAI) 通常更快。
      3. 网络速度:如果 TTS 服务在远程,网络延迟和带宽也会影响生成语音的速度。

    四、想了解更多?看看这些资源

    五、小结

    总的来说,OpenReader WebUI 是一个有潜力、功能实用的开源网页阅读器。它最大的魅力在于强大的文本转语音能力和跨平台适应性。通过 Docker,即使你不是顶尖的技术高手,也能相对轻松地把它部署起来供自己使用。

    Brave 回复 2 months, 2 weeks ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在