爱意满满的作品展示区。
Tritium0041

做了个基于 LLM 的小说 EPUB 翻译工具,效果能打过市面上大部分机器翻译

  •  
  •   Tritium0041 · 6h 49m ago · 271 views

    最近在看一套日文轻小说,找不到中文版,试了一圈市面上的方案:

    • 沉浸式翻译逐段翻,角色名字一会儿一变,前后完全不统一
    • 直接把一章丢给 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 写了个本地界面,选书、上传、调参、看实时日志、下载结果都在一个页面里。不想敲命令行的话直接用这个。

    Web UI 界面


    翻译质量

    用《玩乐关系》第三卷做了个横向对比测试,三个译本:本项目( 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 。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1072 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    ♥ Do have faith in what you're doing.