最近在看一套日文轻小说,找不到中文版,试了一圈市面上的方案:
- 沉浸式翻译逐段翻,角色名字一会儿一变,前后完全不统一
- 直接把一章丢给 AI ,上下文一长就开始漂移,设定记不住
- 传统机翻就不说了,纸鹤给你翻成起重机
问题的根源在于:长篇小说的翻译本质上是一个有状态的任务,但大多数工具把它当成一个无状态的文本转换在处理。
所以就自己写了一个:ePubTsuyaku
核心设计
整体是一条四阶段流水线,模拟人类读书→翻译的过程:
0. Reference Phase (可选) 如果有系列前作的精翻版,可以先喂进去。程序会提取惯用译名、人名对照和文风特征,作为后续阶段的软参考。翻系列作品的话这个功能很有用。
1. Summary Phase 按 EPUB spine 顺序串行读取每一章,让 LLM 生成章节摘要和上下文状态(人物关系、当前设定等)。这一步是串行的,目的是建立稳定的全书上下文链。
2. Translation Phase 每章切成多个批次,在冻结的章节上下文上并发翻译。关键点是"冻结"——翻译过程中不更新上下文,避免批次间互相污染。
3. Review Phase 对每个批次做结构化校对,LLM 对照原文打分。低于阈值的批次会带着校对反馈自动重翻,最多重试 N 次。
4. Rebuild 把译文回写进原始 EPUB 的 XHTML 结构,保留目录、资源、大部分元数据,生成新书。不是把原书拆了重建,是在原结构上做替换。
工程上的一些细节
断点续跑:进度写进 progress.json,任务中断后直接续,不用从头跑。
Provider 支持:兼容任意 OpenAI-compatible 接口。三个阶段(摘要/翻译/校对)可以分别指定不同模型,比如摘要用便宜的小模型,翻译用效果好的大模型。
Web UI:用 Flask 写了个本地界面,选书、上传、调参、看实时日志、下载结果都在一个页面里。不想敲命令行的话直接用这个。

翻译质量
用《玩乐关系》第三卷做了个横向对比测试,三个译本:本项目( DeepSeek-v4-flash )、沉浸式翻译( Qwen3.6-plus 逐段)、谷歌机翻。
评测用的是配套写的另一个开源工具 translation-quality-evaluator,跑 LLM judge 对准确性、术语一致性、流畅度等六个维度打分。
结果大概是:本项目综合分 57.4 ,LLM 逐段 35.1 ,机翻 15.2 。术语一致性这项差距最明显,这也是流水线设计的主要目标。
翻译结果对比:

LLM judge 的翻译分数:

详细的评测数据和文本对比在这篇文章里: https://www.tritium.work/2026/05/24/ePubTsuyaku:基于 LLM 的长篇 EPUB 电子书翻译工具/
适合的场景
- 翻轻小说、网文、长篇小说这类上下文强依赖的 EPUB
- 系列作品,希望继承前作译名和语气
项目地址
GitHub: https://github.com/Tritium0041/ePubTsuyaku
官网: https://epub.tsuyaku.cyou/
MIT 协议,Python 3.9+,依赖用 uv 或 pip 装都行。欢迎试用,有问题或者想法直接开 Issue 。