DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在進行自動化視頻處理或多語言內容分發時,字幕的解析、翻譯與合併是常見但繁瑣的環節。subtitle-studio 是一個針對 DSH 的多語言字幕翻譯工作流插件。它由 JohnXu22786 維護,基於 MIT 協議開源。該插件從零實現了字幕解析器,不依賴重型庫,提供 SRT/VTT 解析、句子級 LLM 翻譯、雙語字幕合併、對齊校驗以及批量處理能力。
核心功能¶
- 解析與寫入:支持 SRT 和 WebVTT 格式。解析器採用容錯狀態機,能處理缺失序號、空白分隔符、CRLF 以及 UTF BOM(UTF-8/UTF-16LE/UTF-16BE)。輸出強制爲 UTF-8,毫秒級時間戳可無損迴環。
- 句子級翻譯:基於 LLM 的批處理請求,支持字符預算控制、JSON 模式、重試機制和術語表注入。默認對接 DeepSeek(OpenAI 兼容接口),也可通過配置接入其他 OpenAI 兼容端點。
- 雙語合併:支持堆疊(原文在下)和交錯(原文與譯文交替)兩種佈局,可自定義分隔符和標籤。
- 對齊校驗:檢查譯文數量、缺失/多餘條目、空譯文以及時間軸重疊。
- 批量處理:支持目錄級處理,包含併發控制、文件級重試、回退機制以及原子檢查點文件,支持暫停/恢復。
- 雙入口:提供 5 個 DSH 工具(
sub_parse,sub_translate,sub_merge,sub_export,sub_glossary)以及一個無依賴的 CLI 工具。
安裝與配置¶
前置要求:Node.js >= 18.18。插件本身零運行時依賴。
安裝:在 DSH profile 中添加插件:
dsh plugin --profile <name> add subtitle-studio
安裝後,插件會在 profile 中註冊配置行,並注入相應的工具和服務。
關鍵配置項:插件通過 cordis.patch.yml 注入配置。以下是部分核心配置項說明:
- LLM 配置:
llm.provider:HTTP 後端或 harnessctx.llmseam,默認爲openai。llm.baseUrl:OpenAI 兼容接口地址,默認爲https://api.deepseek.com/v1。llm.apiKey:API 密鑰,支持環境變量展開。llm.model:模型名稱,默認爲deepseek-chat。llm.chunkChars:單次請求的字符預算,默認 3500。
- 語言配置:
sourceLanguage:源語言標籤,默認爲空(自動)。targetLanguages:目標語言列表,默認爲空。
- 輸出配置:
output.layout:雙語合併佈局,可選stacked(堆疊)或interleaved(交錯),默認stacked。output.format:輸出格式,可選srt或vtt,默認保留源格式。
- 批量與校驗:
batch.concurrency:批量處理時的併發數,默認 2。validation.maxChars:CJK 超長字幕閾值,默認 160。validation.maxWords:拉丁語超長字幕閾值,默認 40。
使用方法¶
插件提供了兩種使用方式:CLI 工具和 DSH 工具集。
CLI 使用:安裝後可直接運行全局命令:
subtitle-studio --help
DSH 工具使用:插件註冊了 5 個工具,可通過 DSH 的 ctx.tools 調用:
sub_parse:解析字幕文件爲 JSON 結構。sub_translate:調用 LLM 進行翻譯。sub_merge:合併源字幕與譯文。sub_export:導出爲 SRT 或 VTT。sub_glossary:管理 JSON 術語表。
示例命令(需在 DSH 環境中執行):
# 調用翻譯工具
dsh tools sub_translate --file input.srt --lang zh
適用場景與注意¶
適用場景:需要自動化處理多語言字幕的視頻項目,或需要將字幕翻譯集成到更大的 DSH 工作流中的開發者。
注意:插件以當前 DSH 進程的權限運行,涉及 API 調用和文件讀寫,請確保配置的 API Key 安全。安裝前建議查看源碼以確認許可證和依賴情況。
總結¶
subtitle-studio 提供了一套從解析到翻譯、合併、校驗的完整字幕處理鏈路。對於需要在 DSH 生態中集成字幕功能的開發者,這是一個直接可用的解決方案。插件源碼與目錄頁見下方鏈接。