不會寫程式的小白,靠著 AI 發布了第一則實質意義的 Github 專案 Ollama-Subtitle-Toolkit
自己長期在海外串流平台觀看原文字幕的影片,有些親朋好友沒辦法原文觀看,常常難以與其分享內容,早期還尚未使用 Ollama 的時候,都是透過 Gemini CLI 以
"請幫我將字幕檔翻譯成為繁體中文 並且請輸出成為 srt 檔 ,這個檔案可能很大,請確保你讀取並且翻譯所有字幕文字內容,若超過單個檔案的處理限制請分段翻譯後進行統整,請勿忽略、修改或刪減時間戳與索引,最後請檢驗原字幕檔時間戳與索引是否與翻譯檔案時間戳、索引相符 感謝!"
的方式來翻譯字幕,即便透過線上 Gemini 2.5 CLI 仍需要 20-40 分鐘翻譯一部電影的字幕檔案(而且超過 800行就會開始掉字還亂跑時間戳),之後透過 python 腳本對接 Gemini API 翻譯字幕檔案改善超出行數與時間戳的問題,還有 AI 推薦 pysrt 等這類輔助工具就不會格式亂跑,缺點都是需要耗 token 來換資料,也是需要燒錢。
在查找後 Ollama 部屬離線端 AI 模型,取代未來手機贈送到期一年免費的 Gemini Pro 會員, 由於先前使用 AI 生成的 Python 腳本一直在自己的筆記本裡面,版本太多也不好管理,才突然發現 Github 可以拿來做發布也能讓其他人一同修訂,原方案目的很簡單就是透過小型 LLM 至少能翻譯出能理解大致上影片內容的字幕檔案,小型模型目前透過 qwen:4b、 qwen2.5:1.5b、gemma2:2b 這幾個模型,雖然後面b的等級代表參數越多,實際測下來 qwen:4b 與 qwen2.5:1.5b 並沒有太大的差距,反而 qwen2.5:1.5b反應速度更快速些,若電腦有 Nvidia 顯卡運算能力可以上到 llama3:latest 或是更高 8b 模型。
現階段個人都在挑戰最低算力達到最適目標最後 ThinkPad X220 透過 Ollama-Subtitle-Toolkit 的三個檔案做最佳化,首先先採 transrt_fast.py 直接翻譯成中文字幕(通常這樣就能直接觀看了,大多模型都ok),如果第一次翻譯就有部份行數沒翻譯到則採 retranslate_en.py 再次偵測漏掉的英文字幕再補強,基本上第二階段就能用了,而第三階段的簡體轉繁體其實也能透過 LibreOffice 工具轉換即可,若希望採用 AI 模型也能夠過 s2t_srt.py 做字體轉換。
其實變化還是可以很多,如果電腦算力夠也能使用 ultra 版本一次到位,發這則部落格也是分享一下自身的使用經歷,讓其他夥伴也能一起精進。
留言