在阅读外文长篇小说或网文时,我们经常会遇到只有原版 EPUB 而没有翻译版的情况。传统的机器翻译往往是提取文本单独翻译,忽略了长篇作品中至关重要的上下文连贯性;而简单的 LLM 翻译脚本通常也是 "一次把整章丢给模型",容易导致设定漂移、角色关系错乱。
为了解决这一痛点,我将之前探索的基于 LLM 对电子书进行翻译的思路完善成了一个完整的开源项目:ePubTsuyaku。
项目地址:https://github.com/Tritium0041/ePubTsuyaku
# 核心设计思路:像人类一样翻译
Puyku 一本书的内容是由大量人物、时间、地点、动作等要素组成的。传统的机器翻译之所以生硬,是因为它缺乏对这些要素的记忆和理解。epubTranslatorWithLLM 的核心思路是模拟人类读书的步骤,建立一条完整的翻译流水线:
- 定调与摘要 (Summary Phase):按 EPUB spine 顺序读取正文,先做全书上下文整理。LLM 读取一章的内容后,总结其中的主要内容,提取关键要素作为翻译时的线索。
- 冻结上下文翻译 (Translation Phase):每章被切成多个片段批次。每个批次都在 "当前章节冻结上下文" 上并发翻译,确保上下文稳定,避免翻译过程中角色关系或设定漂移。
- 校对与重试 (Review Phase):对每个批次进行结构化校对。LLM 会对翻译前后的要素进行对比,产生置信度评分。如果分数低于阈值,则会自动触发重翻。
- 结构重建 (Rebuild):在保留原书 XHTML 结构、目录、资源和大部分元数据的前提下,将译文回写进原 EPUB,生成新书。
# 翻译质量对比评测
为了验证本项目的翻译效果,我从 Z-Library 下载了《玩乐关系》第三卷的日语原版 EPUB 作为测试素材,对三种翻译方案进行了横向对比评测。
参与评测的三个译本分别为:
- 本项目译本:使用 ePubTsuyaku 翻译流水线,搭配 DeepSeek-v4-flash 模型完成翻译。
- LLM 译本:使用 Qwen3.6-plus 模型,通过沉浸式翻译插件进行逐段翻译。
- 机器翻译译本:使用谷歌翻译引擎,通过沉浸式翻译插件完成翻译。
评测工具来自配套的开源评测代码库 translation-quality-evaluator。该工具支持对多个已翻译 EPUB 进行自动化质量对比,核心流程如下:首先从各译本 EPUB 中提取对齐的文本样本,随后调用 LLM judge 对每个样本在准确性、完整性、术语一致性、流畅度、文风和编辑就绪度六个维度进行打分,最终汇总生成结构化的评测报告。评测支持启发式(无需 API Key)和 LLM judge 两种模式,可通过 compare_existing.py 脚本直接对比多个现有译本,无需重新运行翻译流程。
# 直观文本对比
下图展示了第一章开头相同段落在四个版本(原文、本项目译本、LLM 译本、机器翻译)下的对比,可以直观看出差异:

- 机器翻译:语言生硬,充满了 "起重机"(纸鹤的误翻)、"谋杀解谜游戏" 等机翻味极重的词汇,角色名译名混乱("常磐幸太郎"、"高梨美芙露"),角色语气也极不自然。
- LLM 逐段翻译:虽然比传统机翻流畅,但依然存在 "小赤"(应为阿卡琳)等译名不统一的问题,且部分专有名词未处理(Madamiss、Akarin、Mifuru),语气表达仍显僵硬。
- 本项目新方法:不仅准确翻译了 "纸鹤"、"谋杀推理体验剧本",还完美还原了轻小说中角色间的对话语气,保留了原文的行文风格,译名前后一致。
# 量化评测数据
我们使用 LLM judge 对三个译本进行了多维度的严格量化评测,结果如下:

| 翻译系统 | 综合评分 | 准确性 | 完整性 | 术语一致性 | 流畅度 | 文风 | 编辑就绪度 |
|---|---|---|---|---|---|---|---|
| 本项目新方法 | 57.43 | 68.3 | 55.0 | 67.7 | 77.7 | 71.3 | 58.7 |
| LLM 逐段翻译 | 35.11 | 40.0 | 28.3 | 51.7 | 65.0 | 55.0 | 33.3 |
| 机器翻译 | 15.23 | 23.3 | 43.3 | 28.3 | 46.7 | 33.3 | 20.0 |
与传统机器翻译相比,新方法将综合质量评分提升了 42.20 分,术语 / 人名一致性提升了 14.1%,严重错误率大幅降低(每样本减少 3.67 个严重错误),极大减少了人工二次编辑的成本。
# 强大的工程化特性
除了核心翻译逻辑的升级,ePubTsuyaku 在工程实现上也做了大量完善,使其真正成为一个可用的生产力工具:
- 前作参考 (Reference Phase):支持传入前作的精翻 EPUB 作为软参考,自动提取系列译名和文风,非常适合系列轻小说的翻译。
- 断点续跑:支持 progress.json 记录进度,任务失败或中断后可以自动续跑,不用担心长篇翻译中途崩溃前功尽弃。
- 多模型后端:原生支持 DeepSeek、阿里云、以及通用的 OpenAI-compatible 接口,并提供 mock 模式方便本地联调。
- 本地 Web UI:内置了直观的本地 Web 界面,支持选书、上传、调参、实时查看日志进度和下载结果,无需死磕命令行。
# Web UI 界面展示
下图为本地 Web UI 的实际运行截图,在一个页面内完成选书、填模型、启动翻译、查看进度和下载结果的全流程:


# 快速上手
安装:
uv venv .venv | |
uv pip install --python .venv/bin/python -r requirements.txt |
启动 Web UI:
uv run --python .venv/bin/python webui.py |
命令行翻译:
uv run --python .venv/bin/python main.py --input testBook/yourbook.epub --source-lang 日语 --target-lang 中文 |
如果你也经常啃生肉 EPUB,或者有系列小说的翻译需求,欢迎来试试这个工具!
项目地址:https://github.com/Tritium0041/ePubTsuyaku