保留排版的 PDF 雙語翻譯怎么做)
BabelDOC 快速上手免費(fèi)保留排版的 PDF 雙語翻譯怎么做【免費(fèi)下載鏈接】BabelDOCYet Another Document Translator項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOCBabelDOC 是一款免費(fèi)的開源 PDF 翻譯工具它能把英文論文、技術(shù)文檔翻成中文同時(shí)把公式、表格、雙欄排版原樣保留最后輸出一份原文和譯文并排對(duì)照的雙語 PDF。這篇文章不堆概念我用自己跑它的經(jīng)驗(yàn)帶你從裝好它到第一次翻譯再到怎么省錢提速一步步走通。裝好它其實(shí)只要兩行命令我習(xí)慣用 uv 來裝隔離干凈也不污染系統(tǒng)環(huán)境。先裝好 uv再執(zhí)行uv tool install --python 3.12 BabelDOC babeldoc --help看到幫助信息就說明工具鏈通了。如果你更想改源碼、調(diào)試也可以直接 clone 下來跑git clone https://gitcode.com/GitHub_Trending/ba/BabelDOC cd BabelDOC uv run babeldoc --help裝完不用急著翻譯建議先跑一次--warmup它會(huì)提前把字體、模型這些離線資源下載并校驗(yàn)好后面正式翻的時(shí)候就不用等下載了。第一次跑通一條命令產(chǎn)出雙語 PDFBabelDOC 翻譯得調(diào)一個(gè) LLM 接口它支持任何 OpenAI 兼容的服務(wù)。最簡(jiǎn)的一條命令長(zhǎng)這樣babeldoc --files paper.pdf \ --lang-in en --lang-out zh \ --openai --openai-model gpt-4o-mini \ --openai-base-url https://api.openai.com/v1 \ --openai-api-key 你的key跑完會(huì)在當(dāng)前目錄或用--output指定目錄生成兩份文件一份是原文譯文并排的雙語版一份是純譯文版。想只留其中一種用--no-dual或--no-mono關(guān)掉另一個(gè)就行。我第一次翻完最直觀的感受是原來英文里的公式和圖還在原來的位置中文譯文緊挨著而不是被拆到別處。這正是它和普通截圖翻譯最大的區(qū)別。公式、表格這些硬骨頭怎么保很多人擔(dān)心翻譯會(huì)把公式攪亂。BabelDOC 的思路是先把 PDF 拆成結(jié)構(gòu)化的中間表示文本歸文本、公式和圖形歸圖形翻譯只動(dòng)文本塊公式區(qū)域原封不動(dòng)。整個(gè)過程在 docs/ImplementationDetails/ 里有分章節(jié)的實(shí)現(xiàn)說明PDF 解析對(duì)應(yīng)PDFParsing/公式與樣式處理對(duì)應(yīng)StylesAndFormulas/排版對(duì)應(yīng)Typesetting/。這里要誠(chéng)實(shí)說幾句它的邊界來自官方 README 的已知問題目前不支持線這類獨(dú)立圖形也不支持首字下沉作者欄和參考文獻(xiàn)區(qū)偶爾會(huì)被并成一段。所以翻完最好還是翻一遍關(guān)鍵頁別全盲信。掃描版和低配電腦照樣能翻掃描版 PDF它會(huì)自動(dòng)檢測(cè)文檔是不是掃描件DetectScannedFile階段。如果你確認(rèn)文檔是掃描的可以加--skip-scanned-detection跳過檢測(cè)提速對(duì)白底黑字的掃描件還能開--ocr-workaround在譯文下墊白塊、文字強(qiáng)制轉(zhuǎn)黑讓覆蓋更干凈。低配機(jī)器默認(rèn)并發(fā)不算低內(nèi)存吃緊時(shí)把并發(fā)調(diào)小即可比如--qps 2 --pool-max-workers 2讓翻譯線程數(shù)降下來機(jī)器就能喘口氣。大文檔還能用--max-pages-per-part 50自動(dòng)切塊翻譯、翻完再拼回去避免一次性撐爆內(nèi)存。術(shù)語老是不一致術(shù)語表 自動(dòng)抽取系列文檔翻著翻著同一個(gè)詞一會(huì)兒一個(gè)譯名很頭疼。BabelDOC 有兩招自定義術(shù)語表準(zhǔn)備一個(gè) CSV列是source、target可選tgt_lng指定目標(biāo)語言用--glossary-files 術(shù)語.csv掛上。翻的時(shí)候它會(huì)檢查當(dāng)前文本段里有沒有術(shù)語命中就塞進(jìn)提示詞里強(qiáng)制遵守。倉(cāng)庫(kù)里有個(gè)現(xiàn)成樣例可以參考docs/example/demo_glossary.csv。自動(dòng)術(shù)語抽取默認(rèn)是開著的它會(huì)自己從文檔里抽高頻術(shù)語并保持一致如果某次想用純術(shù)語表、不想它自作主張加--no-auto-extract-glossary關(guān)掉即可。我的經(jīng)驗(yàn)是核心術(shù)語自己寫進(jìn) CSV 鎖死剩下的交給自動(dòng)抽取兜底效果最穩(wěn)。翻得慢、翻得貴用緩存和分塊省翻譯接口是按量計(jì)費(fèi)的重復(fù)翻譯同一段純屬浪費(fèi)錢。BabelDOC 內(nèi)置了一個(gè)基于 SQLite 的翻譯緩存實(shí)現(xiàn)在 babeldoc/translator/ 的cache.py相同文本第二次遇到直接命中緩存、不再發(fā)請(qǐng)求緩存還會(huì)自動(dòng)清理只保留最近約 5 萬條。想強(qiáng)制全部重翻加--ignore-cache即可。想把常用的參數(shù)固定下來、不每次敲一串可以寫成 TOML 配置文件用--config babel.toml加載里面可以一次性寫死模型、語言、并發(fā)、水印模式這些改配置比改命令行舒服多了。幾個(gè)容易踩的坑輸出帶水印默認(rèn)會(huì)給譯文 PDF 加水印。想要干凈版本用--watermark-output-mode no_watermark想兩個(gè)都留就選both。個(gè)別 PDF 讀著不兼容先試--enhance-compatibility它等價(jià)于一次性打開幾個(gè)兼容性增強(qiáng)開關(guān)。語言支持以中英互譯打磨最充分其他語言可用但官方標(biāo)注尚未充分測(cè)試完整清單見 docs/supported_languages.md。無網(wǎng)環(huán)境部署先在聯(lián)網(wǎng)機(jī)器--generate-offline-assets 目錄生成離線資源包再在目標(biāo)機(jī)--restore-offline-assets 包.zip恢復(fù)適合機(jī)房、內(nèi)網(wǎng)這類場(chǎng)景。去哪看更多想深入原理官方文檔在 docs/里面有 PDF 解析、段落切分、樣式與公式、排版等分模塊的實(shí)現(xiàn)細(xì)節(jié)文檔想看各種排版結(jié)構(gòu)的示例基礎(chǔ)、公式、表格、圖文混排、復(fù)雜版面examples/ 下有一份份對(duì)照 XML。BabelDOC 定位是可以被別的程序嵌入的翻譯引擎所以命令行和 API 更多是面向集成場(chǎng)景日常用命令行翻譯也完全夠。先把第一份雙語 PDF 跑出來比讀十篇文檔都管用?!久赓M(fèi)下載鏈接】BabelDOCYet Another Document Translator項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考