Long-form EPUB Translation Workspace

把长篇 EPUB 的翻译,做成一条能续跑的流水线。

ePubTsuyaku 面向真正会中断、会换模型、会参考前作的长篇翻译任务。它把摘要、并行翻译、批次校对、EPUB 重建和本地 Web UI 放进同一条工作流里, 再用独立的质量评估工具做结果对比。

  • Resumable
  • Reference-aware
  • Review-scored
  • Web UI
  • EPUB-preserving

What Changes

它解决的是长篇翻译里的工程问题,不只是“能翻出来”。

01

续跑而不是重来

`progress.json` 记录阶段和进度。任务中断、模型波动、参数回调之后,工作区能继续往前跑,而不是整本书从头开始。

02

前作作为软参考

通过 `--reference-epub` 读取上一册精翻结果,把系列术语、角色称呼和文风提示提炼出来,减轻每一册重新校名词的负担。

03

翻译和校对分离

批次翻译后进入结构化校对,低于阈值的结果带反馈重翻。质量控制是流水线的一部分,而不是最后手工补锅。

04

尽量保留 EPUB 结构

输出不是单纯把正文拼回纯文本。原书 XHTML、目录和资源会尽量延续,减少格式层面的返工。

Pipeline

从前作参考到回写成书,整条链路是连着的。

先稳上下文,再放并发;先过质量门槛,再回写 EPUB。这个顺序决定了它更像一个翻译工作区,而不是一条临时脚本。

01

Reference phase

可选读取前作 EPUB,整理系列译名、常用表达和风格提示。

02

Summary phase

按 spine 顺序为章节建立上下文摘要,锁住人物关系和设定。

03

Translation phase

每章切分成批次,在冻结上下文上并发翻译,提高吞吐而不乱序。

04

Review loop

批次级校对、打分、重试,低分结果带着反馈再次进入翻译。

05

Rebuild EPUB

保留原始结构并回写译文,最终产出可分发的 EPUB 文件。

Toolbox

一个翻译器,一个评估器,分别回答“怎么做”和“做得怎么样”。

Core translator

ePubTsuyaku Studio

本地 Web UI 和 CLI 共享同一套流水线。选书、上传、填模型、看日志、下载结果都在一个页面里完成,适合日常翻书和参数试跑。

  • 支持 `DeepSeek / 阿里云 / OpenAI-compatible / Mock`
  • Web UI 上传和项目内现有 EPUB 发现并存
  • 上传文件和 Web UI 状态单独保存在 `.webui/`
  • 任务失败后可以复用已有进度再续跑

Companion evaluator

Translation Quality Evaluator

对已有译本做对比,也能串起“跑翻译 -> 抽样 -> 聚合指标 -> 出报告”的完整流程。它关注术语一致性、遗漏、结构保留和人工修订成本。

  • 可直接比较多个已有 EPUB 译本
  • 支持启发式评估和 LLM judge
  • 生成 `summary.json`、`evaluation_dataset.json` 和 `report.md`
  • 适合验证新模型、新参数或新工作流是否真的更稳

Start Here

日常使用走 Web UI,精确控制走 CLI,结果复盘交给评估器。

项目运行时仍然留在你自己的本地 Python 环境里。Web UI、CLI 和评估器各自覆盖不同的日常使用场景。

Run the studio

uv venv .venv
uv pip install --python .venv/bin/python -r requirements.txt
uv run --python .venv/bin/python webui.py

默认地址是 `http://127.0.0.1:7860`。更适合“反复选书、改参数、看日志、下载结果”的日常流程。

Run the pipeline

uv run --python .venv/bin/python main.py \
  --input testBook/yourbook.epub \
  --reference-epub /path/to/previous-volume.zh.epub \
  --source-lang 日语 \
  --target-lang 中文 \
  --provider openai-compatible \
  --model qwen-max

需要精确控制 `workers`、分阶段模型或输出路径时,CLI 更直接。

Measure the result

python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/python compare_existing.py \
  --source-epub /path/to/source.epub \
  --translation ours:"Our translator":/path/to/our.epub \
  --translation baseline:"Baseline":/path/to/baseline.epub

当你需要回答“新模型更好吗”而不是“感觉还行吗”时,评估器是后半段的证据层。