怎樣下載 YouTube 影片的字幕 (逐字稿)

有些 YouTube 影片沒有字幕,要怎樣產生與下載 YouTube 影片的字幕 (逐字稿)。可以使用 HuggingFace 的 Youtube Whisper 輸入 YouTube 影片連結,就可以轉換成字幕。

Photo by Isaac Benhesed on StockSnap

問題狀況

YouTube 影片的字幕,如果不是拍片者主動上載的字幕檔,通常是 YouTube 「自動產生字幕」的功能。而網路上提供 YouTube 下載字幕的服務或者是影片字幕下載工具 (YouTube Subtitle Downloader) 則是下載 YouTube 「自動產生字幕」產生的檔案。

如果遇到影片還沒有自動產生字幕 (逐字稿),要如何產生字幕?

解決方式

1. 點選連結輸入網址 Youtube Whisper - a Hugging Face Space by kazuk 


2. 輸入 YouTube 影片資訊

  • URL:輸入 YouTube 影片連結,例如 https://www.youtube.com/watch?v=t6op1MAb9nQ
  • Model 模型:越大型的 Model 可以讓語音轉成文字的效果更準確,但是相對也要花費更久時間。網頁上寫 1 分鐘的影片,如果選 Medium 的模型,大約需要花 5 分鐘的時間。不過實際測試,可能還要考量伺服器效能,建議要轉換之前,要在網路比較穩定的環境,否則一旦網路連線不穩,就會遇到錯誤,導致重新轉換。
  • Language 語言:可以不選,因為是以國語為主,所以選擇 Chinese。也可以不選擇語言,讓電腦自動判斷語言,支援的語言包含英文、法文、德文高達 99 種語言(支援的語言清單,詳見附件1)。
  • Timestamps 時間戳記:可以不選。建議要選有時間戳記,才會顯示這句話的開始與結束時間。

3. 實際測試

約兩分鐘的影片,選擇 Medium 的模型,大概花了十分鐘。

(1) 沒有選擇 Timestamps 時間戳記的結果:如下圖右邊區塊,全部字幕 (逐字稿) 會黏在一起。


講個秘訣:如果不想花時間人工潤稿,可以使用 ChatGPT 整理,提示文字 (prompt) 是:
請整理成分段且通順的文章,並在每個段落加上黑體的副標題:再接上逐字稿
如果逐字稿篇幅太長,會遇到 ChatGPT 的 token 長度限制,就要處理分段的問題。所以我才會建議要選擇 Timestamps 時間戳記的結果。

(2) 有選擇 Timestamps 時間戳記的結果:如下圖右邊區塊,字幕依照時間順序分段。

選擇 Large-v1 模型的話,字幕文字會更通順,但是轉換時間就需要一到兩小時。

相關資料

如果你熟悉 Python 而且有 GPU 電腦,可以嘗試自己架設 

附件1

  1. afrikaans (南非語)
  2. albanian (阿爾巴尼亞語)
  3. amharic (阿姆哈拉語)
  4. arabic (阿拉伯語)
  5. armenian (亞美尼亞語)
  6. assamese (阿薩姆語)
  7. azerbaijani (亞塞拜然語)
  8. bashkir (巴什基爾語)
  9. basque (巴斯克語)
  10. belarusian (白俄羅斯語)
  11. bengali (孟加拉語)
  12. bosnian (波士尼亞語)
  13. breton (布列塔尼語)
  14. bulgarian (保加利亞語)
  15. catalan (加泰隆尼亞語)
  16. chinese (中文)
  17. croatian (克羅埃西亞語)
  18. czech (捷克語)
  19. danish (丹麥語)
  20. dutch (荷蘭語)
  21. english (英語)
  22. estonian (愛沙尼亞語)
  23. faroese (法羅語)
  24. finnish (芬蘭語)
  25. french (法文)
  26. galician (加利西亞語)
  27. georgian (喬治亞語)
  28. german (德文)
  29. greek (希臘語)
  30. gujarati (古吉拉特語)
  31. haitian creole (海地克里奧爾語)
  32. hausa (豪薩語)
  33. hawaiian (夏威夷語)
  34. hebrew (希伯來語)
  35. hindi (印地語)
  36. hungarian (匈牙利語)
  37. icelandic (冰島語)
  38. indonesian (印度尼西亞語)
  39. italian (義大利語)
  40. japanese (日本語)
  41. javanese (爪哇語)
  42. kannada (卡納達語)
  43. kazakh (卡扎克語)
  44. khmer (khmer)
  45. korean (韓國語)
  46. lao (寮語)
  47. latin (拉脫維亞語)
  48. latvian (拉脫維亞語)
  49. lingala (lingala)
  50. lithuanian (立陶宛語)
  51. luxembourgish (盧森堡語)
  52. macedonian (馬其頓語)
  53. malagasy (馬達加斯加語)
  54. malay (馬來語)
  55. malayalam (馬來語)
  56. maltese (馬耳他語)
  57. maori (毛利語)
  58. marathi (馬拉地語)
  59. mongolian (蒙古語)
  60. myanmar (緬甸語)
  61. nepali (尼泊爾語)
  62. norwegian (挪威語)
  63. nynorsk (nynorsk)
  64. occitan (奧克西坦語)
  65. pashto (普什圖語)
  66. persian (波斯語)
  67. polish (波蘭語)
  68. portuguese (葡萄牙語)
  69. punjabi (旁遮普語)
  70. romanian (羅馬尼亞語)
  71. russian (孟加拉語)
  72. sanskrit (梵語)
  73. serbian (塞爾維亞語)
  74. shona (肖納語)
  75. sindhi (辛德語)
  76. sinhala (僧伽羅語)
  77. slovak (斯洛伐克語)
  78. slovenian (斯洛維尼亞語)
  79. somali (索馬利亞語)
  80. spanish (西班牙文)
  81. sundanese (巽他語)
  82. swahili (斯瓦希里語)
  83. swedish (瑞典語)
  84. tagalog (塔加路語)
  85. tajik (塔吉克語)
  86. tamil (泰米爾語)
  87. tatar (韃靼語)
  88. telugu (泰盧固語)
  89. thai (泰語)
  90. tibetan (藏語)
  91. turkish (突厥語)
  92. turkmen (土庫曼語)
  93. ukrainian (烏克蘭語)
  94. urdu (烏爾都語)
  95. uzbek (烏茲別克語)
  96. vietnamese (越南語)
  97. welsh (威爾斯語)
  98. yiddish (意第緒語)
  99. yoruba (約魯巴語)

附件2

測試用的 YouTube 影片:北車與轉運站間設天橋?景觀學會:將壓迫行車視線|20230324 公視晚間新聞 - YouTube

選擇 Medium 的模型的字幕結果:

1

00:00:00,000 --> 00:00:03,320

台北車站地下街過去有迷宮之稱


2

00:00:03,339 --> 00:00:05,879

民眾轉乘常常很困惑 北捷計畫


3

00:00:05,900 --> 00:00:08,099

配合市政府的西區門戶計畫


4

00:00:08,120 --> 00:00:10,380

在台北轉運站和台北車站之間


5

00:00:10,380 --> 00:00:12,800

建置天橋 方便行人穿越


6

00:00:12,820 --> 00:00:15,060

不過警官卻會認為天橋壓縮


7

00:00:15,060 --> 00:00:17,240

在市民大道下面會有壓迫感


8

00:00:17,260 --> 00:00:19,519

對行車視線和整體的景觀


9

00:00:19,519 --> 00:00:22,000

都需要再討論


10

00:00:22,019 --> 00:00:23,820

無視穿越開閥的紅色標誌


11

00:00:23,820 --> 00:00:26,480

有民眾就這麼穿越市民大道回轉車道


12

00:00:26,500 --> 00:00:27,359

沒過幾分鐘


13

00:00:27,359 --> 00:00:30,199

又出現拉著行李的旅客也違規穿越


14

00:00:30,219 --> 00:00:32,479

想要從台北車站到台北轉運站


15

00:00:32,500 --> 00:00:34,399

目前僅能走台北地下街


16

00:00:34,399 --> 00:00:36,840

不過地下街設置過去平價兩級


17

00:00:36,840 --> 00:00:38,920

曾被民眾形容像迷宮


18

00:00:49,920 --> 00:00:51,280

聽到臺北捷運公司計畫


19

00:00:51,280 --> 00:00:54,340

建置天橋 連接台北轉運站和台北車站


20

00:00:54,359 --> 00:00:55,840

民眾有不同的意見


21

00:00:55,840 --> 00:00:57,620

檢視北捷跨市民大道


22

00:00:57,640 --> 00:00:59,140

串聯線型公園立體


23

00:00:59,140 --> 00:01:01,100

連通天橋興建工程案


24

00:01:01,120 --> 00:01:02,740

預計耗資四億元


25

00:01:02,740 --> 00:01:05,740

將國光客運台北站旁的地下街M2出口


26

00:01:05,740 --> 00:01:07,780

與台北轉運站旁的R1出口


27

00:01:07,780 --> 00:01:09,420

由天橋連接起來


28

00:01:09,439 --> 00:01:11,700

位置將會在市民大道的下方


29

00:01:11,700 --> 00:01:13,020

警官設計師認為


30

00:01:13,020 --> 00:01:14,300

若只是為了穿越


31

00:01:14,300 --> 00:01:16,620

應該在平面建置人行空間


32

00:01:16,620 --> 00:01:40,500

這樣也不會壓縮到行車的視線與空間


33

00:01:40,500 --> 00:01:42,700

警官學會認為線型天橋建置


34

00:01:42,700 --> 00:01:44,140

都是有多功能考量


35

00:01:44,159 --> 00:01:46,500

例如間距商場間的串聯功能


36

00:01:46,500 --> 00:01:48,319

對此臺北監運公司回應


37

00:01:48,319 --> 00:01:50,540

此案是配合市府西區門戶


38

00:01:50,560 --> 00:01:52,760

以及臺北長廊東延段計畫


39

00:01:52,760 --> 00:01:54,960

建置周邊立體人行系統


40

00:01:54,960 --> 00:01:57,400

對於後續都審委員的審查意見


41

00:01:57,400 --> 00:01:59,040

監運公司將依都審主席


42

00:01:59,040 --> 00:02:01,680

才事的事項 修正後再送審


43

00:02:01,680 --> 00:02:20,640

記者 學家 林姊臺報導



參考資料


留言