Skip to content

vincentchiou/srt-correction

Repository files navigation

✏️ 長文本 SRT 字幕校正工具

雲端免費 AI 做不到的事——完整校正超長課程字幕。

自動分段處理、合併輸出,支援 PDF / TXT / DOCX 參考資料校正專有名詞。 不綁定任何 AI 廠商——本地免費或付費 API 皆可,資料完全由你控制。


功能特色

  • 長文本支援:自動切段送 AI,完成後合併,無字幕數量上限
  • 五種算力來源:LM Studio、Ollama(本地免費)或 OpenAI、Google AI Studio、自訂相容端點(付費)
  • 模型自動偵測:從 API 自動抓取可用模型,下拉選擇不用手動輸入
  • 思考型模型警告:偵測到 DeepSeek-R1、QwQ 等時自動提示
  • 參考資料校正:讀入 PDF 講義或自訂關鍵字,確保專有名詞正確
  • 格式嚴格保護:字幕編號與時間軸一律不動,只改文字內容
  • 進度透明:顯示「第 X/N 段」精確進度,並提示如何確認模型正在運作

算力來源

本地(免費、資料不離開電腦)

來源 說明 預設端點
LM Studio 圖形介面,適合新手 http://localhost:1234/v1
Ollama 指令列工具,輕量快速 http://localhost:11434/v1

前置步驟:

  • LM Studio下載 → 載入模型 → 左側 Local Server → Start Server
  • Ollama下載 → 終端機執行 ollama run llama3.2

推薦繁體中文能力強的模型:gemma3qwen2.5llama3.2


付費 API(效果更穩定,需 API Key)

⚠️ 不建議使用免費額度:免費方案配額有限,容易在校正中途因配額耗盡而失敗。請使用付費計畫。

來源 建議模型 API Key 申請
OpenAI ChatGPT gpt-4ogpt-4o-mini platform.openai.com
Google AI Studio gemini-2.0-flashgemini-1.5-pro aistudio.google.com
自訂 OpenAI 相容 依服務商而定 Azure OpenAI、Groq、OpenRouter 等

安裝方式

方法一:使用 Pinokio(最簡單,一鍵安裝)

在 Pinokio 搜尋框貼上此 repo 的 GitHub URL,或執行:

pterm download https://github.com/vincentchiou/srt-correction

然後點擊 InstallStart開啟 Web UI

Pinokio 會自動分配可用 Port,點擊按鈕即可開啟,不需手動輸入網址。


方法二:不使用 Pinokio(自動安裝腳本)

需先安裝 Python 3.10+

Windows:雙擊 run.bat,腳本自動偵測環境、安裝套件、啟動服務。

Mac / Linux

git clone https://github.com/vincentchiou/srt-correction.git
cd srt-correction
chmod +x run.sh && ./run.sh

第一次執行自動建環境並安裝套件(約 1~3 分鐘),之後直接啟動。

瀏覽器前往 http://127.0.0.1:7860(Port 預設 7860,若被佔用會自動使用 7861 等)


使用方式

⚙️ 設定頁

  1. 選擇算力來源,URL 與端點自動填入
  2. 🔄 取得模型清單 從服務自動抓取,下拉選擇模型
  3. 付費來源填入 API Key
  4. 🔌 測試連線 確認可正常回應
  5. 📁 選取資料夾 選擇放 SRT 與參考資料的資料夾
  6. 調整每段字幕數(預設 150,模型 context 小時請調低)
  7. 💾 儲存設定,自動跳至校正頁

✏️ 開始校正頁

  1. 🔄 重新整理 載入資料夾檔案
  2. 選擇 .srt 檔案
  3. (選用)勾選參考資料 PDF/TXT/DOCX
  4. (選用)在右側補充關鍵字欄位輸入額外術語,每行一個
  5. 🚀 開始校正
  6. 頁面頂端出現警告「校正進行中,請勿關閉頁面」
  7. 完成後輸出 原檔名-已修正.SRT 存於同一資料夾

📌 長文本校正需要時間,每段等待 AI 回應後才更新進度。 可開啟工作管理員確認 Python 正在使用 CPU,或查看 LM Studio / Ollama 的 Log 確認模型有在回應。


工作資料夾結構

工作資料夾/
├── 課程字幕.srt          ← 原始 SRT(可多個)
├── 課程講義.pdf          ← 參考資料(可多個)
├── 術語表.txt            ← 自訂詞彙(可選)
└── 課程字幕-已修正.SRT   ← 校正輸出(自動生成)

校正規則

會修正:

  • ASR 語音辨識錯誤(同音異字、近音誤識)
  • 明顯錯別字
  • 口語贅詞(就是、然後、那個、這樣子等填充詞)
  • 連續重複三次以上的詞語(保留一次)
  • 英文專有名詞大小寫(依參考資料為準)

不會修正:

  • 字幕編號與時間軸
  • 說話者刻意重複的強調語句
  • 語氣詞(呢、啦、喔)

⚠️ 常見錯誤與排除

Error code: 400 — n_keep >= n_ctx(context 超限)

原因:模型的 context 視窗太小,無法容納系統提示 + 參考資料 + 字幕內容。

解法(依序嘗試):

  1. 縮小每段字幕數(最直接) 設定頁 → 每段字幕數 → 調低至 10080(預設 150)

  2. 減少參考資料 參考資料愈多,每段送出的 token 數愈高。 可只勾選最相關的一份 PDF,或僅使用補充關鍵字欄位。

  3. 換用 context 較大的模型 在 LM Studio 載入時,於 Context Length 欄位填入更大的數值(如 1638432768)。 推薦優先使用 context ≥ 16K 的模型。

  4. 使用付費 API OpenAI gpt-4o、Google gemini-2.0-flash 的 context 遠大於本地模型,不會有此問題。


校正結果偏差超過 5%(字幕數量異常)

原因:模型未確實遵守 SRT 格式,合併或刪除了部分字幕。

解法:

  • 縮小每段字幕數(降至 80 或 50)
  • 改用指令遵從能力更強的模型(如 gemma3qwen2.5
  • 避免使用思考型模型(DeepSeek-R1、QwQ 等)

進度條卡在 0% 不動

說明:每段 AI 校正期間,進度條在等待模型回應,這是正常現象,不是當機。

確認方法:

  • 開啟 Windows 工作管理員 → 確認 Python 有 CPU 使用率
  • 查看 LM Studio 右下角 Log → 確認有 token 正在生成

相依套件

套件 用途
openai>=1.30.0 所有算力來源(OpenAI 相容格式)
gradio>=5.0.0 Web UI
pymupdf>=1.24.0 PDF 文字擷取
python-dotenv>=1.0.0 設定檔管理

Pinokio 使用者

  • 重置:移除虛擬環境重新安裝,解決套件衝突
  • 更新套件:升級所有套件至最新版本

About

長文本 SRT 字幕校正工具,支援 LM Studio/Ollama 本地免費校正,自動分段合併,保護字幕格式

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors