docs: add Traditional Chinese README translation
This commit is contained in:
parent
77c955bfae
commit
93315ed351
1 changed files with 240 additions and 0 deletions
240
README.zh-TW.md
Normal file
240
README.zh-TW.md
Normal file
|
|
@ -0,0 +1,240 @@
|
||||||
|
# 📘 OpenReader-WebUI(繁體中文說明)
|
||||||
|
|
||||||
|
> 本文件為 [README.md](./README.md) 的繁體中文翻譯,僅供參考。若有版本差異,請以原始英文文件為準。
|
||||||
|
|
||||||
|
[](../../stargazers)
|
||||||
|
[](../../network/members)
|
||||||
|
[](../../watchers)
|
||||||
|
[](../../issues)
|
||||||
|
[](../../commits)
|
||||||
|
[](../../releases)
|
||||||
|
|
||||||
|
[](../../discussions)
|
||||||
|
|
||||||
|
# OpenReader WebUI 📄🔊
|
||||||
|
|
||||||
|
OpenReader WebUI 是一個可以靈活運用搭配 TTS 的閱讀器,目前OpenReader WebUI 能夠讀取的文件格式包括 EPUB, PDF, TXT, MD, 以及 DOCX,並且支援多種TTS供應端,包含了: OpenAI, Deepinfra, 以及 OpenAI相容的 [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) 和 [Orpheus-FastAPI](https://github.com/Lex-au/Orpheus-FastAPI)
|
||||||
|
|
||||||
|
- 🎯 **支援眾多的TTS供應端**:
|
||||||
|
|
||||||
|
- **OpenAI**: tts-1, tts-1-hd, gpt-4o-mini-tts models with voices (alloy, echo, fable, onyx, nova, shimmer)
|
||||||
|
- **Deepinfra**: Kokoro-82M, Orpheus-3B, Sesame-1B models with extensive voice libraries
|
||||||
|
- **Custom OpenAI-Compatible**: Any OpenAI-compatible endpoint with custom voice sets
|
||||||
|
- 💾 **Local-First Architecture**: Uses IndexedDB browser storage for documents
|
||||||
|
- 🛜 **Optional Server-side documents**: Manually upload documents to the next backend for all users to download
|
||||||
|
- 📖 **Read Along Experience**: Follow along with highlighted text as the TTS narrates
|
||||||
|
- 📄 **Document formats**: EPUB, PDF, TXT, MD, DOCX (with libreoffice installed)
|
||||||
|
- 🎧 **Audiobook Creation**: Create and export audiobooks from PDF and ePub files **(in m4b format with ffmpeg and aac TTS output)**
|
||||||
|
- 🎨 **Customizable Experience**:
|
||||||
|
- 🔑 Select TTS provider (OpenAI, Deepinfra, or Custom OpenAI-compatible)
|
||||||
|
- 🔐 Set TTS API base URL and optional API key
|
||||||
|
- 🎨 Multiple app theme options
|
||||||
|
- And more...
|
||||||
|
|
||||||
|
### 🛠️ 目前持續努力中的功能
|
||||||
|
- [ ] **能夠支援原生 .docx ** (目前至少需要安裝 libreoffice)
|
||||||
|
- [ ] **改善無障礙操作
|
||||||
|
|
||||||
|
## 🐳 Docker 快速安裝
|
||||||
|
|
||||||
|
|
||||||
|
### 運作需求
|
||||||
|
- 安裝最新版本的Docker
|
||||||
|
- 至少需要有一個 TTS API server (Kokoro-FastAPI, Orpheus-FastAPI, Deepinfra, OpenAI, 等) 在運作中,而且讀的到。
|
||||||
|
|
||||||
|
### 1. 🐳 新增 Docker 容器:
|
||||||
|
```bash
|
||||||
|
docker run --name openreader-webui \
|
||||||
|
-p 3003:3003 \
|
||||||
|
-v openreader_docstore:/app/docstore \
|
||||||
|
ghcr.io/richardr1126/openreader-webui:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
(選擇性設定屬性): 設定 TTS `API_BASE` 調用網址 或是 `API_KEY` 作為整體預設值
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --name openreader-webui \
|
||||||
|
-e API_KEY=none \
|
||||||
|
-e API_BASE=http://host.docker.internal:8880/v1 \
|
||||||
|
-p 3003:3003 \
|
||||||
|
-v openreader_docstore:/app/docstore \
|
||||||
|
ghcr.io/richardr1126/openreader-webui:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Note:** 因為從 TTS API 調用音訊的操作會在 Next.js 伺服器端,而不是在客戶端。所以,TTS API 的網址應該要可以訪問,並且相依於 Next.js 伺服器。另外,如果 Next.js 伺服器位於 Docker 容器中,建議您使用 `host.docker.internal` 來存取主機,而不是 `localhost`。.
|
||||||
|
|
||||||
|
開啟 [http://localhost:3003](http://localhost:3003) 來運作程式以及完成後續的設定.
|
||||||
|
|
||||||
|
> **Note:** `openreader_docstore` 是用來儲存伺服器端文件的。您可以掛載本機目錄來代替。如果您不需要伺服器端文檔,也可以將其刪除。
|
||||||
|
|
||||||
|
### 2. ⚙️ 在網頁界面中設定各項屬性:
|
||||||
|
- 在Settings modal中設定TTS 供應端
|
||||||
|
- 如果需要的話,設定 TTS API 網址 和 API Key (當然,如果是在環境設定時就進行會比較安全)
|
||||||
|
- 從下拉式選單選取要使用的聲音模型 (會顯示從 TTS 供應端 API獲取的聲音列表)
|
||||||
|
|
||||||
|
### 3. ⬆️ 更新 Docker 的映像檔
|
||||||
|
```bash
|
||||||
|
docker stop openreader-webui && \
|
||||||
|
docker rm openreader-webui && \
|
||||||
|
docker pull ghcr.io/richardr1126/openreader-webui:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### (選擇性) 🐳 設定 Docker Compose 和 Kokoro-FastAPI
|
||||||
|
|
||||||
|
提供使用 Kokoro-FastAPI 搭配 OpenReader WebUI的docker-compose 範例檔案,放在 [`examples/docker-compose.yml`](examples/docker-compose.yml):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p openreader-compose
|
||||||
|
cd openreader-compose
|
||||||
|
curl -O https://raw.githubusercontent.com/richardr1126/OpenReader-WebUI/main/examples/docker-compose.yml
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
或是把 OpenReader WebUI 加入你的 `docker-compose.yml`:
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
openreader-webui:
|
||||||
|
container_name: openreader-webui
|
||||||
|
image: ghcr.io/richardr1126/openreader-webui:latest
|
||||||
|
environment:
|
||||||
|
- API_BASE=http://host.docker.internal:8880/v1
|
||||||
|
ports:
|
||||||
|
- "3003:3003"
|
||||||
|
volumes:
|
||||||
|
- docstore:/app/docstore
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
docstore:
|
||||||
|
```
|
||||||
|
## 開發中版本安裝
|
||||||
|
|
||||||
|
### 運作需求
|
||||||
|
- Node.js & npm
|
||||||
|
|
||||||
|
### 運作需求
|
||||||
|
- Node.js & npm or pnpm (recommended: use [nvm](https://github.com/nvm-sh/nvm) for Node.js)
|
||||||
|
Optionally required for different features:
|
||||||
|
- [FFmpeg](https://ffmpeg.org) (required for audiobook m4b creation only)
|
||||||
|
- On Linux: `sudo apt install ffmpeg`
|
||||||
|
- On MacOS: `brew install ffmpeg`
|
||||||
|
- [libreoffice](https://www.libreoffice.org) (required for DOCX files)
|
||||||
|
- On Linux: `sudo apt install libreoffice`
|
||||||
|
- On MacOS: `brew install libreoffice`
|
||||||
|
|
||||||
|
### 步驟
|
||||||
|
|
||||||
|
1. 複製程式碼庫:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/richardr1126/OpenReader-WebUI.git
|
||||||
|
cd OpenReader-WebUI
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 安裝套件:
|
||||||
|
|
||||||
|
With pnpm (recommended):
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
Or with npm:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 環境設定:
|
||||||
|
```bash
|
||||||
|
cp template.env .env
|
||||||
|
# Edit .env with your configuration settings
|
||||||
|
```
|
||||||
|
> Note: The base URL for the TTS API should be accessible and relative to the Next.js server
|
||||||
|
|
||||||
|
4. 啟動開發伺服器:
|
||||||
|
|
||||||
|
With pnpm (recommended):
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Or with npm:
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
or build and run the production server:
|
||||||
|
|
||||||
|
With pnpm:
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
pnpm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Or with npm:
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
訪問 [http://localhost:3003](http://localhost:3003) 來運作程式.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 💡 新功能請求
|
||||||
|
|
||||||
|
|
||||||
|
如果你有新功能的需求或是新點子,可以經由討論區提出 [討論區](https://github.com/richardr1126/OpenReader-WebUI/discussions) tab.
|
||||||
|
|
||||||
|
## 🙋♂️ 支持與問題
|
||||||
|
|
||||||
|
如果你遇到問題,請使用GitHub的格式提出問題(非常簡單的格式)。
|
||||||
|
|
||||||
|
|
||||||
|
## 👥 協力
|
||||||
|
|
||||||
|
非常歡迎各方人仕協助! 提交您的修改吧!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## ❤️ 感謝
|
||||||
|
|
||||||
|
沒有站在這些巨人的肩膀上,這個專案是不可能完成的!:
|
||||||
|
|
||||||
|
- [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) model
|
||||||
|
- [Orpheus-TTS](https://huggingface.co/collections/canopylabs/orpheus-tts-67d9ea3f6c05a941c06ad9d2) model
|
||||||
|
- [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI)
|
||||||
|
- [Orpheus-FastAPI](https://github.com/Lex-au/Orpheus-FastAPI)
|
||||||
|
- [react-pdf](https://github.com/wojtekmaj/react-pdf) npm package
|
||||||
|
- [react-reader](https://github.com/happyr/react-reader) npm package
|
||||||
|
|
||||||
|
## Docker 支援架構
|
||||||
|
- linux/amd64 (x86_64)
|
||||||
|
- linux/arm64 (Apple Silicon, Raspberry Pi, SBCs, etc.)
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- **架構:** Next.js (React)
|
||||||
|
- **容器化:** Docker
|
||||||
|
- **資料庫:** IndexedDB (in browser db store)
|
||||||
|
- **PDF:**
|
||||||
|
- [react-pdf](https://github.com/wojtekmaj/react-pdf)
|
||||||
|
- [pdf.js](https://mozilla.github.io/pdf.js/)
|
||||||
|
- **EPUB:**
|
||||||
|
- [react-reader](https://github.com/gerhardsletten/react-reader)
|
||||||
|
- [epubjs](https://github.com/futurepress/epub.js/)
|
||||||
|
- **Markdown/Text:**
|
||||||
|
- [react-markdown](https://github.com/remarkjs/react-markdown)
|
||||||
|
- [remark-gfm](https://github.com/remarkjs/remark-gfm)
|
||||||
|
- **UI:**
|
||||||
|
- [Tailwind CSS](https://tailwindcss.com)
|
||||||
|
- [Headless UI](https://headlessui.com)
|
||||||
|
- [@tailwindcss/typography](https://tailwindcss.com/docs/typography-plugin)
|
||||||
|
- **TTS:** (tested on)
|
||||||
|
- [Deepinfra API](https://deepinfra.com) (Kokoro-82M, Orpheus-3B, Sesame-1B)
|
||||||
|
- [Kokoro FastAPI TTS](https://github.com/remsky/Kokoro-FastAPI/tree/v0.0.5post1-stable)
|
||||||
|
- [Orpheus FastAPI TTS](https://github.com/Lex-au/Orpheus-FastAPI)
|
||||||
|
- **NLP:** [compromise](https://github.com/spencermountain/compromise) NLP library for sentence splitting
|
||||||
|
|
||||||
|
## 授權方式
|
||||||
|
|
||||||
|
本專案採用 MIT 授權方式。
|
||||||
Loading…
Reference in a new issue