wenyi 是开源长篇小说 AI 翻译工具,支持 EPUB/FB2/TXT/Markdown/HTML/PDF 等多种格式。自带全书上下文分析、滚动上下文窗口保证术语一致,AI 校对阶段确保翻译质量。Python 3.10+ 驱动,uv 包管理,AGPL-3.0 开源免费,无需注册即装即用。
🎤 引言
你有没有过这种经历:
想读一本外文书,结果发现没有中文译本,或者译本糟糕得像机翻——人名乱飞、术语不统一、上下文断裂、读起来像两个人写的。
传统的机翻工具,逐句翻译,没有上下文概念。遇到长篇连载小说,前后人名对不上、同一术语出现三四种译法,是家常便饭。
wenyi(/wɛnjiː/,意为「翻译」)就是来解决这个问题的:一个专攻长篇文学 AI 翻译的开源工具,核心理念是「全书视角翻译」——不是逐句翻,而是一次性喂给 AI 一整本书,让它看到前因后果再下笔。
GitHub 上 1.8k Stars,AGPL-3.0 开源,目前是个人早期项目,但在 Reddit 机器翻译区已经有人主动安利。
⭐ 核心功能
📖 全书上下文翻译
传统机翻:一句一句来,AI 只看当前句子。
wenyi:滚动上下文窗口,把前文已翻译内容也喂给 LLM,让它在术语、风格、逻辑上保持一致。
这对于长篇连载小说特别重要——主角名字可能出现几百次,同一个法术名称可能跨越几十章,统一翻译全靠这个滚动窗口。
🔄 四阶段翻译流程
wenyi 的翻译管线分四个阶段:
| 阶段 | 作用 |
|---|---|
| 1. 全书分析 | 扫描全书结构、提取关键术语、建立人物/地点/事件清单 |
| 2. 滚动翻译 | 按章节顺序翻译,同时保持上下文窗口 |
| 3. 术语表构建 | 从全文中提取关键词汇,建立 Glossary |
| 4. 校对阶段 | AI Review,修正术语不一致、格式问题、漏译 |
📁 多格式支持
| 格式 | 支持情况 |
|---|---|
| EPUB | ✅ 完整支持(输入/输出) |
| FB2 | ✅ FictionBook 格式 |
| TXT | ✅ 纯文本 |
| Markdown | ✅ 含格式标签 |
| HTML | ✅ 含样式 |
| ✅ 需外部解析库 |
🛠️ 术语表管理
支持手动维护 Glossary,也支持 AI 自动从全文提取。遇到「Harry」自动翻译成「哈利」而不是「哈瑞」,遇到「Avada Kedavra」自动保持一致——这就是术语表的作用。
🤖 多 LLM 后端支持
不绑定具体模型,通过配置切换:
# config.yaml
llm:
provider: openai # 或 anthropic / ollama / deepseek / ...
model: gpt-4o
api_key: ${OPENAI_API_KEY}支持 Ollama 本地部署,完全离线翻译,数据不出本机。
📥 安装与使用
环境要求
- Python 3.10+
- uv(新一代 Python 包管理,比 pip 快 10-100 倍)
安装
# 推荐用 uv 安装
uv tool install wenyi
# 或直接 pip
pip install wenyi快速上手
# 设置 API Key
export OPENAI_API_KEY="***"
# 直接翻译一本 EPUB(输出同目录 .zh.epub)
wenyi translate book.epub --target-lang Chinese
# 指定输出格式
wenyi translate book.epub --target-lang Chinese --output-format txt
# 使用本地模型(Ollama)
export OLLAMA_HOST="http://localhost:11434"
wenyi translate book.epub --target-lang Chinese --llm-provider ollama --model llama3.1配置文件
# 生成默认配置
wenyi init
# 编辑 config.yaml
wenyi config edit配置里可以预设:
- LLM provider + model
- 输出语言
- 术语表路径
- 上下文窗口大小
🎯 适用场景
特别适合:
- 📚 轻小说/网络小说爱好者:追更日本/韩国/英文网文,等不及官方译本
- 🔍 学术研究者:翻译外文专著、论文集,无需等待正式出版
- 🌍 出海网文作者:把自己写的中文网文翻译成英/日/韩文发布
- 🛠️ 技术文档翻译:MD/HTML 格式的技术书籍快速中文化
- 🎮 GalGame 文本提取:FB2/EPUB 格式游戏文本翻译
不太适合:
- 📰 实时新闻翻译(wenyi 定位是长篇,慢工出细活)
- 🧑💻 技术代码注释翻译(代码+文本混杂场景,目前支持不完善)
- 📱 移动端使用(纯 CLI 工具,需要命令行环境)
🔍 对比/替代方案
| 工具 | 类型 | 长篇质量 | 上下文 | 格式支持 | 部署 |
|---|---|---|---|---|---|
| wenyi | 开源长篇翻译 | ⭐⭐⭐⭐ | 滚动窗口 | EPUB/FB2/TXT/MD/HTML/PDF | 本地/云端 |
| DeepL | 商业翻译 API | ⭐⭐⭐⭐ | 无(逐句) | 通用文本 | 云端 |
| Google Translate | 商业翻译 API | ⭐⭐⭐ | 无(逐句) | 通用文本 | 云端 |
| LLM+Prompt DIY | 手动提示词 | ⭐⭐⭐⭐ | 依赖 Prompt | 通用文本 | 任意 LLM |
| EPUBTranslator | 开源 EPUB | ⭐⭐⭐ | 有限 | 仅 EPUB | 本地 |
关键差异:wenyi 是目前唯一一个专门为长篇电子书设计上下文感知翻译的开源工具。DeepL/Google 逐句翻译无上下文,LLM+Prompt DIY 需要自己写管线,EPUBTranslator 功能单一。
⚠️ 注意事项
依赖 LLM API 成本
- 翻译一本 30 万字的小说,Token 消耗相当可观
- 建议使用价格低的模型(如 GPT-4o-mini、Claude 3.5 Haiku)
- 本地部署 Ollama 可零成本,但速度慢
早期项目,偶有 bug
- Issues 页面有 2 个 open,PR 有 12 个(社区活跃)
- PDF 解析依赖外部库,部分 PDF 可能提取失败
- 遇到问题建议先看 GitHub Discussions
上下文窗口有上限
- LLM 的 context window 限制了单次喂入的翻译量
- 长篇小说需要分批次翻译,再拼接
- 批次衔接处可能存在轻微不一致(wenyi 会尽量通过术语表缓解)
版权提醒
- 翻译他人受版权保护的作品涉及法律风险
- wenyi 定位是个人学习用途,商用请谨慎
✅ 总结
wenyi 解决的是一个很垂直的需求:长篇电子书的多语言翻译,且保持术语和风格的一致性。
在它之前,这个需求要么靠 DeepL 逐句翻(质量差),要么靠昂贵的专业翻译服务,要么靠自己写一堆 Prompt 搭管线。wenyi 把这套流程封装成了一个开箱即用的 CLI 工具,AGPL-3.0 开源,Python 3.10+ 就能跑。
适合人群:有外文阅读习惯、被机翻质量折磨过、愿意折腾命令行的技术用户。
不适合人群:完全不懂命令行的普通用户、急需出版级翻译质量的用户。
如果你有想读但没有中文版的书,搭一个 Ollama,跑几章试试——也许它就是你在等的那把钥匙。
推荐指数:⭐⭐⭐⭐(4/5,技术向阅读爱好者必试)
📦 项目地址:https://github.com/BigDawnGhost/wenyi
🌐 官方网站:https://blog.wenyi.org
📜 许可证:AGPL-3.0(开源免费)
💬 社区:Discord | QQ群:1055065098