BabelDOC:PDF 科学论文翻译与双语对比库
BabelDOC 是一个面向 PDF 科学论文的翻译与双语对比开源库,提供命令行界面和 Python API,支持将英文 PDF 翻译为中文并生成双语对照或纯译文 PDF。项目目前处于早期阶段,主要聚焦英译中,可在线使用沉浸式翻译的 Beta 服务,也可通过 PDFMathTranslate-next 自部署,并支持 OpenAI 兼容的 LLM 翻译接口。
适用大模型
社区作者 · zZz
它解决什么问题
BabelDOC(Yet Another Document Translator)是一个 PDF 科学论文翻译和双语对比库。其目标是通过标准化的解析和渲染流水线,解决 PDF 翻译中布局保留、段落合并等问题。
主要特性包括:支持命令行界面和 Python API;提供双语对照 PDF(默认原页在前)和单语 PDF 两种输出;支持按页翻译、拆分翻译、扫描件检测与 OCR 兜底;支持自动术语提取和自定义术语表(CSV);支持 OpenAI 兼容接口(如 gpt-4o-mini、glm-4-flash、deepseek-chat 等)作为翻译引擎;提供离线资源打包/恢复功能,便于离线或内网部署。
项目与沉浸式翻译(Immersive Translate)和 Zotero 插件集成,用户可通过沉浸式翻译的 Beta 在线服务获得每月免费额度,或使用 PDFMathTranslate 2.0 自部署。BabelDOC 的核心设计是将 PDF 解析为中间表示,再渲染为新 PDF 或其他格式,流水线采用插件化架构,便于扩展新模型、OCR 和渲染器。当前已知问题包括:作者和参考文献部分解析错误、不支持线条和首字下沉、大页面会被跳过。
项目遵循 Maintainer-led 开发模式,欢迎提交 bug 报告、可复现 PDF、文档修复和小规模兼容性修复。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
BabelDOC 推荐使用 uv 工具进行安装。
从 PyPI 安装
- 参考 uv 安装文档安装 uv,并按提示配置 PATH 环境变量。
- 使用以下命令安装 BabelDOC:
uv tool install --python 3.12 BabelDOC- 验证安装:
babeldoc --help
- 使用 babeldoc 命令进行翻译,例如(建议使用绝对路径):
babeldoc --openai --openai-model " gpt-4o-mini " --openai-base-url " https://api.openai.com/v1 " --openai-api-key " your-api-key-here " --files example.pdf
多文件翻译:
babeldoc --openai --openai-model " gpt-4o-mini " --openai-base-url " https://api.openai.com/v1 " --openai-api-key " your-api-key-here " --files example1.pdf --files example2.pdf
从源码安装
- 安装 uv 并配置 PATH。
- 克隆项目:
git clone https://github.com/funstory-ai/BabelDOC- 进入项目目录:
cd BabelDOC- 安装依赖并运行:
uv run babeldoc --help- 翻译示例:
uv run babeldoc --files example.pdf --openai --openai-model " gpt-4o-mini " --openai-base-url " https://api.openai.com/v1 " --openai-api-key " your-api-key-here "多文件:
uv run babeldoc --files example.pdf --files example2.pdf --openai --openai-model " gpt-4o-mini " --openai-base-url " https://api.openai.com/v1 " --openai-api-key " your-api-key-here "首次运行与常见问题
- 首次运行可能需要下载模型和字体,可使用
--warmup仅下载并验证所需资源。 - 翻译语言默认源语言为 en(英文),目标语言为 zh(中文),可通过
--lang-in和--lang-out调整。当前主要支持英译中,英语目标语言支持为实验性。 - 如遇 PDF 兼容问题,推荐先尝试
--enhance-compatibility(等价于--skip-clean --dual-translate-first --disable-rich-text-translate)。 - 大文档可使用
--max-pages-per-part拆分翻译后自动合并。 - 明确知道文档不是扫描件时,可用
--skip-scanned-detection加快处理;对扫描件可使用--ocr-workaround处理白底黑字文档。 - 翻译服务目前只支持 OpenAI 兼容的 LLM,使用本地 Ollama 时可将 API key 设为任意值(如
--openai-api-key a)。 - 术语表 CSV 需包含 source 和 target 列,可选的 tgt_lng 列指定目标语言,文件名作为术语表名称参与 LLM 提示。
- Zotero 用户:沉浸式翻译 Pro 会员可使用 immersive-translate/zotero-immersivetranslate 插件;PDFMathTranslate 自部署用户可使用 guaguastandup/zotero-pdf2zh 插件。
- 配置文件使用 TOML 格式,可通过
--config指定。示例配置见项目 README 中的[babeldoc]部分。 - 所有 CLI 参数主要用于调试,终端用户建议直接使用在线服务或 PDFMathTranslate 2.0。
配图 1(BabelDOC 标识)。配图 2(BabelDOC 预览效果)。
适用场景
Skill 讨论与实践反馈
0还没有讨论
分享一条可复现的补充、问题或使用经验。
