【輕鬆工作家】一行指令自動產生 YouTube 繁體中文字幕:yt-whisper-srt 免費開源工具



只要貼上 YouTube 網址、執行一行指令,就能自動產生繁體中文 .srt 字幕檔,而且完全免費、在自己電腦上執行。

為什麼要自己產生字幕?

拍影片的人都知道,上字幕是最花時間的工作。YouTube 雖然有自動字幕,但用起來常遇到幾個問題:

  • 中文辨識錯字多,專有名詞幾乎都會聽錯
  • 自動字幕常常是簡體字,或根本沒有產生
  • 別人的影片無法直接下載字幕檔
  • 想把字幕拿去剪輯軟體或做成文字稿,沒有方便的方法

為了解決這些問題,我寫了一個小工具 yt-whisper-srt,用 OpenAI 的 Whisper 語音辨識模型自動聽打,並轉成台灣慣用的繁體中文,已經在 GitHub 免費公開。

yt-whisper-srt 能做什麼

它把「下載音訊 → 語音辨識 → 簡轉繁 → 輸出字幕」全部自動完成。

  • 貼網址就好:支援單支影片、多支影片,也支援整個播放清單
  • 本機影片也能用:還沒上傳的 .mp4、錄音檔都可以直接辨識
  • 自動轉繁體:簡體轉繁體,並換成台灣用語(例如「視頻」→「影片」)
  • 只下載音訊:不下載整支影片,辨識完自動刪除,不佔硬碟空間
  • 不用裝 ffmpeg:省去 Windows 上最麻煩的一步
  • 自動選模型:有 NVIDIA 顯示卡就用 GPU 跑最準的 large-v3,沒有就用 CPU 跑 medium
  • 多語言:英文、日文影片也能辨識,還可以直接翻成英文字幕

所有辨識都在你自己的電腦上完成,影片內容不會上傳到任何伺服器,也沒有使用次數限制。

安裝步驟(Windows)

只需要安裝 Python 和三個套件,大約 5 分鐘就能完成。

  1. 安裝 Python:到 python.org 下載 3.10 以上版本,安裝時勾選「Add Python to PATH」。
  2. 下載程式:打開 GitHub 儲存庫,按綠色的 Code → Download ZIP,解壓縮到任一資料夾,例如 C:\Projects\youtube 字幕。
  3. 開啟命令列:在檔案總管打開該資料夾,點上方網址列輸入 cmd 按 Enter,就會在這個資料夾開啟命令列。
  4. 安裝套件:
pip install -r requirements.txt

第一次執行時會自動下載辨識模型(medium 約 1.5 GB),請耐心等候,之後就不用再下載。

使用方式

最基本的用法只有一行,字幕會存到 subtitles 資料夾,檔名就是影片標題:

python yt_whisper_srt.py "https://youtu.be/影片ID"

其他常用情境:

# 多支影片一次處理
python yt_whisper_srt.py 網址1 網址2 網址3

# 整個播放清單
python yt_whisper_srt.py "https://www.youtube.com/playlist?list=xxxx"

# 本機影片
python yt_whisper_srt.py 影片.mp4

# 英文影片
python yt_whisper_srt.py 網址 --lang en

# 外語影片直接產生英文字幕
python yt_whisper_srt.py 網址 --translate

# 另外輸出純文字稿
python yt_whisper_srt.py 網址 --txt
參數用途預設值
--model模型大小:tiny / base / small / medium / large-v3,越大越準也越慢有 GPU:large-v3;無:medium
--lang語言代碼:zh、en、ja,或 auto 自動偵測zh
--out輸出資料夾subtitles
--translate翻譯成英文字幕關閉
--txt另存純文字 .txt關閉
--keep-audio保留下載的音訊檔關閉

速度參考:用 CPU 跑 medium 模型,大約需要接近影片長度的時間;覺得太慢可以加 --model small,快 2–3 倍但準確度稍低。

實際示範:青鱂魚採卵影片

以我自己的影片「【輕鬆工作家】青鱂魚採卵 甲基藍 防黴菌」為例,執行:

python yt_whisper_srt.py "https://youtu.be/mkEqgQYrJ-g"

程式會依序顯示這些訊息:

載入模型 medium(cpu)…
下載音訊:https://youtu.be/mkEqgQYrJ-g
[download] 100% of 5.20MiB in 00:00:03
辨識中:【輕鬆工作家】 青鱂魚採卵 甲基藍 防 黴菌 [mkEqgQYrJ-g].webm
  偵測語言:zh
  進度  100.0%
  ✔ 字幕:subtitles\【輕鬆工作家】 青鱂魚採卵 甲基藍 防 黴菌 [mkEqgQYrJ-g].srt

音訊只有 5 MB,幾秒就下載完。產生的 .srt 是標準字幕格式,用記事本就能打開修改:

1
00:00:01,200 --> 00:00:04,560
(第一句字幕內容)

2
00:00:04,560 --> 00:00:08,100
(第二句字幕內容)


把字幕上傳回 YouTube

字幕產生後,建議先用記事本掃過一遍修正專有名詞,再上傳:

  1. 進入 YouTube Studio,點左側「字幕」
  2. 選擇要加字幕的影片,按「新增語言」選「中文(台灣)」
  3. 在字幕欄點「新增」→「上傳檔案」
  4. 選「含時間碼」,挑選剛剛產生的 .srt
  5. 按「發布」

影片有了正確的字幕,聽障觀眾、在外面靜音觀看的人都能看懂,字幕文字也有助於 YouTube 理解影片內容。同一份 .srt 也能匯入剪映、Premiere 等剪輯軟體使用。

常見問題

下面是我實際使用時遇到的狀況和解法。

訊息或狀況原因解法
can't open file ... No such file or directory命令列不在程式所在資料夾先 cd 到程式資料夾,或在資料夾網址列輸入 cmd
huggingface_hub ... symlinks 警告Windows 預設不支援符號連結只是警告,可忽略;新版程式已隱藏
No supported JavaScript runtime 警告yt-dlp 新版需要 JS 執行環境不影響就先不理;下載失敗時執行 winget install DenoLand.Deno
unexpected keyword argument 'metadata_errors'PyAV 15 版與 faster-whisper 不相容更新到 GitHub 上的最新版程式,已內建修正
辨識太慢CPU 跑大模型加 --model small
專有名詞聽錯模型不認識該詞改用 --model large-v3,或直接編輯 .srt

結語

以前一支 10 分鐘的影片,手打字幕要花上一兩個小時;現在讓電腦先聽打,我只要做校對就好。如果你也有在經營 YouTube 頻道,歡迎拿去用。

使用上有問題或建議,歡迎在下方留言,或到 GitHub 提 Issue。

參考資料:OpenAI Whisper、faster-whisper、yt-dlp

留言

這個網誌中的熱門文章

Arduino IDE 1.6.5 + BH1750 + CD74HC4067 多工器

Arduino 模擬 Modbus Slave

鹵素燈泡 軌道燈 改用 LED 燈 完整轉換