ANTO 字幕翻譯工具:把整季 SRT 字幕交給自選引擎批次翻成中文

ANTO 是 MIT 開源的 Windows 字幕翻譯工具,一個視窗整合十七個翻譯引擎。實測發現免金鑰引擎在測試當下全部連不上,所有引擎的目標中文都是簡體,台灣使用者翻完還要自己轉繁體,適合有長期大量字幕需求、願意自備 API 金鑰的字幕工作者。

用 AI 摘要這篇文章:

手上有一整季教學影片的英文字幕,來源是語音辨識匯出的 SRT 檔,斷句亂、一行接一行。把這些字幕翻成中文,最土法煉鋼的做法是開翻譯網站逐段貼上,貼完再自己對回時間軸;一百多集的量,這條路等於把整個週末賠進去。ANTO 這款開源的 Windows 桌面工具,承諾的就是把這件事變成「選引擎、選檔案、按翻譯」三個動作。

實際把它拆開來看,這個承諾兌現了一半:批次翻譯的流程是真的,但「開箱即用」只到下載那一刻為止。ANTO 註冊了十七個翻譯引擎,其中十五個要你自備雲端服務的金鑰;剩下兩個免金鑰的引擎,用 ANTO 自己的程式碼直接呼叫,一個拿到流量限制、一個拿到 404。而所有引擎翻出來的中文,目標都是簡體。

一個視窗裝十七個引擎,帳單寄到你家

ANTO 用 Go 寫成,MIT 授權,680 顆星(2026 年 10 月查詢),2023 年 3 月開張,作者是長期搬運國外程式教學影片的字幕組成員,README 裡自述當年翻 TheCherno 的 OpenGL 教學翻到手軟,乾脆自己寫工具,「初版幾天就搞定了」。它的介面極簡:選翻譯引擎、選語言方向、選 SRT 檔或整個資料夾,按下去就跑。

ANTO 主介面,翻譯引擎、語言方向、翻譯模式與導出軌道設定Pin
主介面一頁完成所有設定:翻譯引擎、來源與目標語種、翻譯模式與導出軌道,視窗標題列直接標明作者與聯絡信箱。

有意思的地方在引擎清單:一般介紹數得出十來家,但原始碼 bootstrap/boot.go 的註冊表實際登錄了十七個:阿里雲、百度翻譯、百度智能雲、騰訊雲、華為雲、火山引擎、有道智雲、彩雲小譯、小牛翻譯、科大訊飛、谷歌雲、DeepL、DeepL PRO、OpenAI、SweetApi、微軟翻譯,加上一個 GDeeplX。另外還寫了 Lingva 和有道免費網頁版兩個介面卡,但從未註冊進介面,屬於留在倉庫裡的死碼。

這十七個引擎用金鑰有無來分,形狀就清楚了。十五個需要你先去雲端服務申請帳號、拿 Access Key,填進設定頁:

ANTO 設定頁的服務應用與服務密鑰欄位Pin
設定頁每個引擎都要填服務應用與服務密鑰,填好的金鑰以明文存在執行檔同目錄的 cfg.yml。

金鑰填完存在哪?原始碼 cfg/opts.go 寫得很明白:執行檔同目錄下一個 cfg.yml,明文保存。這不是什麼缺陷,單機工具大多如此,但如果你打算把字幕外包給工讀生、或把資料夾整個丟上雲端同步,記得這個檔案等於你的 API 金鑰本體。

真正免金鑰的只有兩個:GDeeplX(包 DeepL 網頁端的第三方函式庫)和微軟翻譯(借 Edge 瀏覽器的免費翻譯端點)。換句話說,ANTO 的「免費」指的是這個殼;翻譯本身是一分錢一分貨的雲端服務,作者自己在 README 裡也講得很白:看上的是各家「每月的免費額度」,額度內免費、超過就照計價。這是一個字幕組成員的額度拼盤邏輯,不是一般使用者打開就用的邏輯。

順著額度邏輯看程式碼,能看到它是認真替你省額度的。翻譯請求不是一行字幕發一次,而是把多行字幕用分隔符串起來、塞到單次請求的字元上限再發(srt_translator.go 的分塊邏輯),每個引擎還各自設了每秒請求數上限去配合服務方的限流。字幕動輒上千行,打包與否直接決定你的免費額度能翻幾支影片。

輸出格式也照字幕工作者的需求做了:譯文可以只留譯文軌、原文譯文雙軌並列,或反過來譯文在上原文在下(block.go 的導出軌道設定)。做雙語學習字幕或對照校稿,這幾種排列剛好夠用。

免鑰匙的兩個引擎,拿出來跑都連不上

那兩個免金鑰引擎今天還活著嗎?ANTO 的翻譯核心是跨平台的 Go 套件,不依賴 Windows 介面就能呼叫,我把它編譯起來直接跑了引擎層。

結果不樂觀。GDeeplX 引擎送出 “Hello world. How are you today?” 之後,拿到的是 Too Many Requests,DeepL 網頁端對這個來源的流量限制。微軟翻譯引擎更直接:第一步取權杖就收到 404,連翻譯請求都沒發出去(附帶一提,這個介面卡的授權表頭把 Bearer 字樣寫了兩次,程式碼的粗糙程度可見一斑)。對照工具自己的 HTTP 層(request.go 只帶 content-type 和 accept 兩個表頭,沒有瀏覽器偽裝),這兩個走「借端點」路線的引擎,本來就活在服務方睜一隻眼閉一隻眼的灰色地帶,端點收緊或擋掉非瀏覽器流量,工具端無能為力。

其實翻 issue 紀錄,這條借端點的路作者自己走過一輪。2023 年 10 月有人問為什麼 DeepL 被拿掉,作者回得很坦白:之前接的是「扒拉得來的」DeepL 介面,限制太嚴重完全沒法用,官方方案要國外信用卡他沒有;後來一位使用者直接把兩組金鑰寄到作者信箱,官方 DeepL 免費版才被接回來。從借端點到接受使用者捐贈金鑰,這個專案的引擎史就是一部小眾工具的資源求生記。

這裡要把測試條件說清楚:時間點是 2026 年 10 月,網路環境從台灣這端出發,單一環境的失敗不等於全球都連不上;這類借來的端點時通時斷也是常態。但至少在這個當下,開箱後零金鑰可用的引擎數量是零。想真正用起來,就得選一家雲端服務辦帳號拿金鑰,而這十五家裡有十一家是中國大陸的雲服務,台灣使用者申請時會遇到實名認證與付款方式的門檻;國際選項裡,谷歌雲和 DeepL 有免費額度可撐小量使用,OpenAI 則是計費制(而且有自己的坑,後面講)。

翻出來的中文,繁體使用者的最後一哩

對台灣讀者更關鍵的問題:翻出來的是繁體還是簡體?答案在每個引擎介面卡的語言表裡,我把十九份 lang.go 全數翻過:中文目標一律是 zh-cn、zh 或 ZH 這類代碼,沒有任何一個引擎提供繁體選項。微軟翻譯介面卡送出的目標代碼就是字面上的 zh-cn。

更可惜的是 DeepL。DeepL 官方文件列有 ZH-HANT(繁體中文)這個目標代碼,也就是說引擎端有繁體能力,但 ANTO 介面卡的語言表只定了 ZH 一項,繁體選項從未被接進來。谷歌雲介面卡更絕:原始碼裡 TraditionalChinese 的定義整行被註解掉,實際映射用的是泛用的 language.Chinese。

所以台灣使用者的實際工作流程是兩段式:讓 ANTO 翻成簡體中文,再自己過一層簡轉繁。轉換本身不難,OpenCC 之類的工具或 自架的 DeepL 服務 都能處理,但簡轉繁只解決字形,不解決用詞,對岸慣用詞不會自動換成台灣的說法,讀起來就是會差那麼一口氣。字幕這種一次幾千行的量,事後統一校詞的成本比想像中高,這是繁體使用者評估任何簡體輸出工具時都要先算進去的一筆帳。

第二行字幕去哪了

讀 SRT 檔的解析器藏著一個結構性死角。ANTO 把每個字幕塊的結構定義成一行原文加一行譯文:第一行文字進主軌、第二行自動被當成已存在的譯文軌。問題是,現實世界的字幕經常一個時間點有兩行文字,比方說兩人對話各佔一行。

我拿工具自己的解析器實測:餵進「-How are you?」加「-Fine.」兩行,輸出是主軌只留第一行、第二行被判成譯文軌。後果在增量模式下最明顯:這個模式的設計是跳過已有譯文的字幕塊、只翻還沒翻的行,藉此省 API 額度,於是兩行字幕整塊被跳過,第二行永遠不會被翻譯。

這不是我的獨家發現,GitHub issue #16 早在 2024 年 5 月就有使用者回報同樣的現象,作者的回覆也承認了機制:換行的第二行會被忽略。對話密集的影集、雙語歌詞的 MV,都會撞上這個牆。要避開它,得先把字幕預處理成每塊單行,等於把一部分工作又搬回自己手上。

批次掛資料夾的模式也值得講清楚細節:你指定一個目錄,它持續監看,丟進去的 SRT 檔自動排隊翻譯,輸出檔名會跳過自己產生的檔案避免無限循環。設計是合理的,只是輸出命名在不同版本間換過規則,這正是接下來要講的版本問題。

下載新版永遠拿到同一個檔案

專案的版本狀態值得單獨講。最後一個打包發布的版本是 v3.7.0,時間停在 2024 年 8 月。之後作者在 2025 年 5 月 20 日回來過一次:一次關掉五個 issue、推了最後一個 commit,內容是把輸出檔名改好(譯文收進 anto 子資料夾、沿用原始檔名)。這個修正直接回應了 issue #15 裡使用者的抱怨:舊版輸出的檔名會加上引擎與語言代碼的長尾巴,例如 ep1.srt 會變成 ep1.anto.me.en2zh-cn.srt,有使用者翻了一百多集英語學習影片,最後得自己寫批次指令檔把檔名一個個清乾淨。然後,這個修正從未打包。下載頁能拿到的,永遠是 2024 年 8 月那個會產生長檔名的版本。

更新通道則是另一種活著的死人。工具選單裡的「下載新版」指向作者自己的儲存空間 kodo.app.speauty.cn,純 HTTP、無加密。我把那個檔案抓下來和 GitHub 上的 v3.7.0 比對雜湊,兩者逐位元組相同。伺服器還在服務、下載還會成功、拿到的是同一個兩年前的檔案。對使用者來說,這代表「檢查更新永遠不會有新版」的錯覺,實際上是最後的修正躺在 master 分支裡沒出貨。

順帶一提安裝檔本身:exe 沒有程式碼簽章(靜態檢查憑證區塊為空),Windows 第一次執行時 SmartScreen 會跳警告,這在個人開源專案很常見,下載時認明 GitHub 發布頁就好。

想用 OpenAI 引擎的人,先檢查你有沒有開代理

十七個引擎裡最曲折的是 OpenAI。它的請求在建構時被寫死經過 127.0.0.1:7890 這個本機代理位址,也就是大陸網路環境慣用的 Clash 預設埠。作者在 commit 訊息裡自己承認是先強行綁定代理埠、之後再調整配置,而這個「之後」隨著專案凍結永遠沒來。你的機器上沒有跑本機代理的話,OpenAI 引擎的請求會直接失敗;有跑代理但埠不是 7890,一樣失敗,而且設定頁沒有任何欄位可以改。

另外兩個細節:OpenAI 引擎的對話端點寫死在官方位址,不能換成 OpenAI 相容的第三方服務,issue #12 和 #22 都有人問過,至今沒有結論;預設模型停在 gpt-3.5-turbo,2026 年的今天看是相當老的預設值。字幕翻譯這種量大有格式感的任務,引擎選擇本來就會明顯影響譯文品質,這條路對大多數人不值得折騰。

第一組金鑰怎麼選

真的要把它跑起來,金鑰的選擇比工具本身重要。排序給你參考:DeepL 是譯文品質面最穩的起點,長句對白的流暢度口碑好,缺點是免費額度有限、超過要升級,而且註冊的門檻因人而異,作者本人當年就是卡在沒有國外信用卡這關,才先去借非官方端點;谷歌雲翻譯有免費額度,但要先走完 GCP 開通與憑證建立,對沒碰過的人多一道檻;翻簡體內容接受度高、或本來就有中國大陸雲端帳號的,百度與騰訊都是現成選項,額度與認證要求以各家當期定價頁為準,台灣門號能不能過實名認證我沒有實測,不替你打包票。

操作順序上,建議先拿一支短片試全流程:填金鑰、選增量模式、翻一個檔案,確認輸出軌道排列符合你的播放器,再丟整季進資料夾。增量模式在這裡的價值是試錯便宜:第一次翻壞了,換引擎重跑時已翻好的行不會重複計費,重來只補差額。金鑰填好後記得回頭看一眼 cfg.yml 的檔案權限,尤其共用電腦的環境。

誰該裝,誰可以繞路

把這些線索放在一起,ANTO 的輪廓是:一個寫給自己的字幕組工具,流程能力扎實(資料夾掛著批次跑、增量模式省額度、雙語或純譯文軌道輸出),代價是你要懂一點雲端服務、接受簡體輸出、避開雙行字幕,並且理解它已經一年多沒有實質更新。

適合裝的人:手上有長期、大量的字幕翻譯需求,願意申請一到兩家翻譯服務的帳號(有免費額度的谷歌雲或 DeepL 是國際路線裡最順的起點),也能接受翻完再批次轉繁體的工作流。它省下的是重複貼上與對時間軸的工,量越大省得越多。一整季的字幕動輒數千行原文,手工逐段貼翻譯網站的做法在這個量級面前完全不成立,這也是這類工具存在的理由。

可以繞路的人:偶爾翻一兩支影片、不想碰任何 API 金鑰的,線上服務反而省事,SubEasy AI 這類字幕工具 連轉錄帶翻譯一條龍;要抓 YouTube 字幕來翻的,AI YouTube Transcript 或 Youtube-Whisper 自架方案 各有各的路數。翻譯需求集中在文件而非字幕的,先看文件翻譯類工具再決定。

還有一種人適合關注這個專案:會 Go 的開發者。MIT 授權、結構乾淨、單人維護凍結中,接手或是抽它的 SRT 解析與增量翻譯邏輯自己拼一套,成本都不高。它更像一組整理得很好的零件,而不是一個持續演進的產品。

授權、作者與這個專案的狀態

授權是 MIT,商用修改皆可,倉庫附授權條款全文。作者是個人開發者,GitHub 帳號 speauty,網域 speauty.cn 的公開註冊資料登記在中國,工具介面與文件都是簡體中文,沒有英文版。星數 680、十九個發布版、全部下載量約七千次(其中最新版 v3.7.0 佔近三千次),量級是一個小眾自用工具,不是明星專案。安裝檔從初版的不到 5MB 一路長到 26.6MB,多出來的體積大致就是引擎一個個接進去的痕跡。

維護面的事實攤開:發布停在 2024 年 8 月,最後活動 2025 年 5 月,四個 issue 開著未有結論(最早的一個是 2024 年 2 月問第三方 OpenAI 端點的),issue #20 回報「翻譯完成但看不到結果」也沒有下文。Windows 圖形介面的行為與各雲端引擎的譯文品質,這篇的判斷以原始碼與 issue 使用者回報為準。

一句話收束:ANTO 證明了「批次字幕翻譯」這件事單人開源就做得到,也證明了翻譯的成本與語言的細節,不會因為工具免費就消失。它值得裝在字幕工作者的工具箱裡,前提是你知道自己在簽收什麼。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1853

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...