凌晨一点到六点:用AI翻译一本320页的AV1视频编解码技术书籍

开篇:一次意外的"技痒"

12月26日,本来是我休假的日子。

下午开着大鼠标去公司充电,顺便和同事闲聊。聊着聊着,话题转到了我最近在Hackathon上开发的Master-Translator项目——一个专门用于长文档翻译的MCP Server。

"我老公那边有本书需要翻译,"同事突然说,"他是书的作者之一,出版社一直催着要英文版,但考虑到成本和复杂度,迟迟没动。"

我眼睛一亮:"什么书?"

"《AV1视频编解码标准:原理与算法实现》,320多页,全是技术内容,公式、表格、架构图一大堆。"

巧了。我刚刚重构升级了Master-Translator,正愁没有硬核场景测试。这不就是最好的试金石吗?

"发我看看?"

当天晚上,我拿到了PDF。凌晨一点,大多数人已经进入梦乡,而我盯着屏幕上这本320页的技术书籍,技痒难耐

一个疯狂的想法冒了出来:能不能用Master-Translator,在一个通宵内完成整本书的中译英?

答案是:可以。但过程远比想象中曲折精彩。

Part 1: 战前准备 - PDF解析的艰难抉择

从PDF到Markdown

拿到手的是一个PDF文件。第一个问题就来了:如何高质量地将PDF转换为可编辑的Markdown?

我测试了多种方案,最终选择了 MinerU——一个开源的高质量PDF解析工具。

为什么选择 MinerU?

工具优点缺点
Marker开源免费,公式识别好表格处理一般
Mathpix公式识别极佳收费,有配额限制
Doc2X综合效果好需要API Key
MinerU开源、表格/公式/图片都很好需要本地部署

MinerU 是由 OpenDataLab 开源的 PDF 解析工具,对技术文档的支持非常好——公式、表格、图片都能高质量提取。解析后的Markdown文件巨大——812KB,8122行,包含:

  • 📖 11个完整章节
  • 🖼️ 240张技术图片
  • 📊 85个HTML表格(带单元格合并)
  • 🔢 数百个LaTeX数学公式
  • 📚 48条参考文献

这不是一个普通的文档翻译任务,这是一场技术马拉松

为什么不能用Google翻译 / DeepL / ChatGPT?

在动手之前,我也考虑过现成的工具。但很快意识到它们无法胜任:

工具核心问题
Google TranslatePDF翻译会破坏所有格式——85张表格会变成乱码,240张图片位置丢失
DeepL免费版5MB限制(本书PDF 8.2MB直接超限),Pro版20MB限制,更致命的是无法维护术语一致性("帧内预测"在不同段落可能翻译不同)
ChatGPT长文档的"道德风险"——它会自作主张地总结而非忠实翻译,44万字需要150+次对话

这些工具都是为短文本设计的。面对320页的技术书籍,它们要么格式崩溃,要么上下文断裂,要么术语漂移。

这正是我开发 Master-Translator 的初衷:为长文档翻译而生

Part 2: 凌晨的翻译之旅

Master-Translator-MCP-Server登场

凌晨1点30分,我启动了自研的Master-Translator-MCP-Server。这是一个专门为长文档翻译设计的MCP工具集,核心特性包括:

  • 智能分块:基于章节边界的语义分割
  • 术语一致性:跨块术语表维护
  • 上下文编织:块间上下文传递
  • 增量翻译:支持断点续传
# 启动翻译任务
mcp_master-transl_translate_document(
    document_path="/path/to/full_chinese.md",
    target_language="english",
    model="deepseek-v3"
)

凌晨3点:第一次危机

翻译进行到约60%时,我发现了一个问题——Token消耗超出预期

320页的技术书籍,包含大量专业术语和公式,每个分块都需要:

  • 输入:原文 + 上下文 + 术语表
  • 输出:完整翻译

我快速切换到了更经济的模型配置,继续战斗。

凌晨5点:曙光初现

翻译主体完成。但还不能睡——我需要做质量验证

快速扫描发现几个问题:

  1. 一些图片引用路径有typo
  2. 部分公式的LaTeX格式需要调整
  3. 整体结构需要复核

记录下这些问题后,我终于在6点多躺下,眯了一会儿。

Part 3: 起床后的惊喜与挑战

图片引用差异排查

起床后的第一件事,是检查翻译质量。我写了一个脚本来统计中英文版本的差异:

# 中文版图片引用
grep -o '!\[.*\](images/[^)]*\.png)' full_chinese.md | wc -l
# 结果: 240

# 英文版图片引用  
grep -o '!\[.*\](images/[^)]*\.png)' full_english.md | wc -l
# 结果: 238

少了2张图片!

失踪的第10.2节

经过仔细排查,我发现了问题所在——整个10.2节(电影颗粒模型估计)在翻译过程中丢失了

这一节包含:

  • 约180行内容
  • 17,897个字符
  • 3个子章节(10.2.1、10.2.2、10.2.3)
  • 2张关键图片

原因分析:这一节恰好位于分块边界处,在某次处理中被遗漏。

补译修复

发现问题后,我立即使用Claude完成了这一节的补译:

# 10.2 Film Grain Model Estimation

The film grain algorithm in AV1 codec includes two parts: 
the encoder-side film grain model estimation and the 
decoder-side film grain synthesis...

## 10.2.1 Image Content Analysis
...

## 10.2.2 Image Denoising  
...

## 10.2.3 Piecewise Linear Function Estimation
...

修复后再次验证:240/240 图片引用完全匹配

Part 4: Word导出的意外挑战

翻译完成了,但故事还没结束。我需要将Markdown导出为Word文档,供进一步编辑和排版。

第一次尝试:Typora导出

用Typora打开Markdown,直接导出Word——失败

LaTeX公式解析错误,部分公式因为源PDF的OCR问题存在格式缺陷。

第二次尝试:MCP导出工具

使用mcp_master-transl_export_to_word——部分成功

生成了267KB的文档,但只有纯文本,图片、表格、公式全部丢失。原来这个工具使用的是基础的python-docx,不支持富格式。

第三次尝试:Pandoc直接转换

pandoc full_english.md -o full_english.docx --embed-resources --standalone

结果:图片和公式正常,但85个HTML表格全部变成纯文本!

问题根源:源文件中的HTML表格是单行压缩格式,并且使用了colspan合并单元格,Pandoc无法正确解析。

最终方案:Markdown → HTML → Word

经过反复尝试,我找到了完美的解决方案:

# 步骤1: Markdown → HTML(嵌入所有资源)
pandoc full_english.md -o full_english.html \
    --embed-resources --standalone --mathjax

# 步骤2: HTML → Word
pandoc full_english.html -o full_english_from_html.docx

成功! 最终生成了8.1MB的完整Word文档:

  • ✅ 240张图片完整嵌入
  • ✅ 85个表格正确渲染(包括合并单元格)
  • ✅ 数学公式通过MathJax完美呈现

Part 5: 最终成果

翻译统计

指标数值
原书页数320页
中文原文44万字符
英文译文13.5万词 / 93万字节
Markdown行数8,122行
章节数11章
图片数240张
表格数85个
公式数数百个
参考文献48条

时间线

时间工作内容
凌晨 1:00开始PDF解析和预处理
凌晨 1:30启动Master-Translator翻译
凌晨 3:00处理Token消耗问题
凌晨 5:00翻译主体完成,初步验证
凌晨 6:00+记录问题,小睡休息
上午起床,排查图片差异
上午发现并补译10.2节
下午解决Word导出问题
下午 1:10项目完成 🎉

技术反思

这次经历教会我什么?

1. 边界处理的重要性

长文档分块翻译时,块边界处最容易出问题。10.2节的丢失就是一个典型案例。未来需要加强边界检测和完整性验证。

2. 格式转换的复杂性

Markdown → Word 看似简单,实际上涉及:

  • HTML表格解析
  • LaTeX公式渲染
  • 图片嵌入
  • 合并单元格处理

最终的"两跳转换"方案(MD→HTML→DOCX)是一个有价值的经验。

3. AI工具的边界

即使是最强大的AI翻译工具,也需要人工复核。这次发现的问题——丢失章节、图片引用错误、公式格式问题——都是AI难以自我发现的。

Master-Translator的下一步

基于这次实战,我计划为Master-Translator添加以下功能:

  • 完整性校验:自动比对源文档和译文的结构
  • 图片引用审计:自动检测缺失或错误的图片引用
  • 增强型Word导出:内置两跳转换方案
  • 边界重叠检测:在分块时自动检测并处理边界内容

彩蛋:来自作者的反馈

下午,我把翻译样稿(前言 + 第一章 + 第三章)发给了同事。

几分钟后,微信消息开始刷屏:

同事:"这么快[惊讶][惊讶][惊讶]"

同事:"辛苦了 辛苦了"

同事:"太牛了[强][强][强][强]"

同事:"果然技术大佬"

同事:"我老公说效果很赞[强][强][强][强]"

那一刻,通宵的疲惫一扫而空。

"效果很赞"——这四个字,来自书的作者本人,是对这次翻译最好的认可。

也许,这不只是一次技术验证,而是一个新故事的开始。

结语:深夜的魔力

回顾这个通宵,从凌晨一点的疯狂想法,到下午一点的最终完成——12个小时,320页,44万中文字符翻译为13.5万英文词。

这不仅仅是一次翻译任务,更是一次AI能力边界的探索

在AI时代,我们能做的事情边界在不断扩展。一个人,一个通宵,一套自研工具,就能完成以前需要专业团队数周才能完成的工作。

但同时,这也提醒我:AI是放大器,不是替代者。真正的价值在于:

  • 理解问题的能力
  • 设计解决方案的能力
  • 发现和修复问题的能力
  • 持续优化工具的能力

凌晨的咖啡已经凉了,但完成一件Cool事的满足感,比任何咖啡因都提神。


本文使用的工具:

如果你对AI翻译或MCP开发感兴趣,欢迎在评论区交流!

留言与讨论