00 OpenAI Whisper 讓新手輕鬆且免費為影片加上中英文字幕 cover 1024x512

OpenAI Whisper 讓新手在 5 分鐘內生成影片字幕

如何快速、輕鬆且免費把影片的字幕轉錄出來呢?如何生成 SRT( Subripper)的文字字幕格式呢?這篇文章就是教你如何使用免費的 OpenAI Whisper 搭配低成本影片編輯軟體與轉檔軟體,一條龍的流程將帶有字幕的影片上傳到 YouTube 頻道。

不需要寫程式碼,也不需要花 3000 或 5000 元訂閱昂貴的套裝軟體,新手也能製作出帶字幕的高品質影片檔。只需要準備一台家用電腦、安裝 Python 軟體、執行不到 10 行的現成程式碼、匯入 SRT 字幕格式檔案到轉檔軟體、上傳影片到 YouTube 或透過雲端硬碟分享。除了影片編輯花費的時間之外,轉錄字幕與匯入字幕並完成影片,整個過程僅僅花費數分鐘即可完成!

OpenAI Whisper 是什麼?

OpenAI 是一家研究人工智慧( Artificial Intelligence )的公司,總部位於美國加州,主要目的是提供對於人類社會無害的各種先進模型。

Whisper 是 OpenAI 提供的一種最先進自動語音辨識( Automatic Speech Recognition,ASR )模型,用來執行語音辨識與翻譯的功能。能夠將各種語言的語音轉錄成文字,甚至可以處理較差的音頻品質或過多的背景雜訊。

基本介紹
– 公司網站:OpenAI
– Whisper 介紹:Whisper語音模型

Whisper 語音模型特色
– 100% 免費使用
– 是款開源 ( open-source ) 的人工智慧模型
– 支援超過 99 種語言並轉錄成英文或原始語言的文字
– Whisper 模型絕對不會追蹤或儲存用戶資料

如何使用 OpenAI Whisper 產生字幕檔

步驟 2 – 步驟 8 屬於一次性設定,安裝完成後,未來不需要每次都執行。整個過程很簡單,照著範例做都能成功,不要被不熟悉的軟體、指令嚇到就打退堂鼓了。

01 OpenAI Whisper create subtitle zh
OpenAI Whisper 語音轉文字的成果

準備工具:

步驟 1. 家用電腦

本文使用 AMD Ryzen 5 3600 + X570 平台

步驟 2. Windows 作業系統

本文使用:如何安裝 Windows 10 Pro
也可以嘗試:如何安裝 Windows 11 Pro

步驟 3. 下載 Anaconda 並安裝到電腦上

Anaconda Individual Edition (個人編輯版):https://www.anaconda.com/products/distribution

程式說明:
Anaconda 是目前最受歡迎的 Python 編輯平台,適用於 Windows、Linux 和 MacOS 不同作業系統環境下的 conda 套件( package )和虛擬環境管理器。

注意事項:
本文使用的軟體版本:Anaconda3-2023.09-0-Windows-x86_64.exe

02 Anaconda software installer
Anaconda 官網

步驟 4. 下載 Git 程式

Standalone Installer:https://git-scm.com/download/win
程式說明:
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

注意事項:
先安裝好 Git 程式,這樣子才能安裝 Github Whisper 模型。當然也可以使用另一個方法,就是在電腦上自行設定 Git 環境變數,不過這是一個很複雜的流程。

03 Git syandalone installer
Git 程式下載

步驟 5. 安裝 Whisper 語音模型

Github 程式碼:https://github.com/openai/whisper

注意事項:
在上述 Github 程式碼的網頁中間部分找到下列程式碼,將它貼到 Anaconda Powershell Prompt ( anaconda3 ) 視窗中,並以管理員身分執行即可安裝 Whisper model。

pip install git+https://github.com/openai/whisper.git

想要安裝 Whisper 語音模型的特定版本,可以輸入以下程式碼來實現。
1. 先移除現有 Whisper 語音模型程式版本
2. 將紅是版本數字改成你想要安裝的特定版本
Github 網頁列出正式發行版本:https://github.com/openai/whisper/releases

pip uninstall whisper
pip install openai-whisper==20230308

04 Github openai whisper model
Github 程式碼 – Whisper 語音模型

步驟 6. 安裝 Chocolatey 程式

Windows Powershell (工作管理員)設定步驟:https://chocolatey.org/install

程式說明:
Chocolatey is a software management solution unlike anything else you’ve ever experienced on Windows. Chocolatey brings the concepts of true package management to allow you to version things, manage dependencies and installation order, better inventory management, and other features.

注意事項:
工作管理員身分開啟 Anaconda Powershell Prompt ( anaconda3 )
確認執行權限,輸入以下指令:

Get-ExecutionPolicy

如果顯示 Ristricted,則再執行以下指令。若是 Bypass,則直接跳過。

Set-ExecutionPolicy AllSigned

將以下指令貼到 Anaconda Powershell Prompt ( anaconda3 )

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))

確認是否安裝完成,輸入下列指令,假使有看到版本數字的話,就表示安裝成功。

choco

05 install chocolatey
安裝 Chocolatey 程式

步驟 7. 安裝 ffmpeg

根據 Github 網頁提供的程式碼,安裝在電腦上。

注意事項:
開啟 Anaconda Powershell Prompt ( anaconda3 ) 視窗中執行,輸入下列指令:

choco install ffmpeg

06 install ffmpeg for openai whisper
安裝 ffmpeg

步驟 8. 安裝 Pytorch 與 Nvidia 顯示卡驅動程式

注意事項:
顯示卡驅動程式支援哪個版本的 cuda 程式,版本務必要與 Pytorch 一致。在 Pytorch 官網找到 INSTALL PYTORCH 的章節,指定好你的電腦環境後,會自動更新安裝指令,複製到電腦執行即可。開啟 Anaconda Powershell Prompt ( anaconda3 ) 視窗,執行下列指令。

pip3 install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118

09-1 install pytorch
安裝 Pytorch

CUDA Toolkit 11.8 Downloads:https://developer.nvidia.com/cuda-11-8-0-download-archive

OpenAI Whisper 語音轉字幕程式碼

語音轉字幕( Speech-to-Text )的程式碼,在 Github 網站有提供兩個範例。根據需求做了一些小修改並提供在下方,方便有需要的人使用。

程式碼說明:
Model_Type:輸入其中一個模式進行語音辨識 – tiny, base, small, medium, large
Data_File:將要生成字幕檔的影音檔案放在 Anaconda 專案的資料夾下,並把檔名與副檔名貼在程式碼當中
TextFileName:產生的 srt / txt 字幕檔案檔名與輸入的影音檔案使用相同的檔名
DEVICE :使用 CPU 或 GPU 執行程式
# save TXT:假使不需要 txt 檔案格式,可以把這幾行刪除
# save SRT:必須產生 SRT 檔案,才能使用影片轉檔軟體將字幕匯入

新版本 – openai-whisper-20230308

import whisper
import torch
from pathlib import Path
from whisper.utils import get_writer

# GlobalVariable
Model_Type = "small"
Data_File = "01.mp4"
TextFileName = Path(Data_File).stem
file_name = f"{TextFileName}"
output_directory = "."

# check if you have a GPU available
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

#load Whipser model
model = whisper.load_model(Model_Type, device=DEVICE)
result = model.transcribe(Data_File)

# save TXT
txt_writer = get_writer("txt", output_directory)
txt_writer(result, file_name)

# save SRT
srt_writer = get_writer("srt", output_directory)
srt_writer(result, file_name)

舊版本 – openai-whisper-20230117

程式更新或新安裝後,有些指令可能會被修改,導致原本使用的 write_srt 與 write_txt 無法執行。所以請改用新版本的程式碼,就可以正常把文字寫入檔案內。

import whisper
import torch
from pathlib import Path
from whisper.utils import write_srt, write_txt

# Global Variable
Model_Type = "large"
Data_File = "02.mp4"
TextFileName = Path(Data_File).stem

#check if you have a GPU available
torch.cuda.is_available()
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

#load Whipser model
model = whisper.load_model(Model_Type, device=DEVICE)
result = model.transcribe(Data_File)

# save TXT
sub_name_txt = f"{TextFileName}.txt"
with open(sub_name_txt, "w", encoding="utf-8") as txt:
    write_txt(result["segments"], file=txt)

# save SRT
sub_name_srt = f"{TextFileName}.srt"
with open(sub_name_srt, "w", encoding="utf-8") as srt:
    write_srt(result["segments"], file=srt)

如何在影片中加字幕

當 SRT 字幕檔產生之後,可以稍微檢查一下文字是否需要修改。假使是使用 Large 模式生成的字幕檔,幾乎完全正確不需要做任何修改。

而上一個章節如何使用 OpenAI Whisper 產生字幕檔的步驟,只有在第一次使用 Whisper 語音模型時,才需要安裝那些軟體。未來在使用字幕生成時,就直接更改 OpenAI Whisper 語音轉字幕程式碼 中提到的

  • Model_Type
  • Data_File

接著就是把影片加入字幕,對於新手而言,會推薦使用 Movavi Video Suite 這款多合一套裝軟體,原因:

  1. 軟體廠商提供買斷式方案,長期使用下來,會比訂閱式便宜
  2. 軟體操作介面非常直覺,進入門檻低,相當適合新手
  3. Movavi Video Suite 多合一套裝軟體包含

Movavi Video Suite

Video Suite 2024 1200h 1

開啟 Movavi Video Suite >> 轉換影片,當你匯入影片時,軟體會自動偵測有無字幕檔案(如下圖)。假使沒有字幕檔的話(下圖 1 ),按箭頭(下圖 2 )會出現下拉式選單,點擊加入(下圖 3 )後,將剛剛生成的 SRT 字幕檔匯入,最後按下轉換按鍵就能成功為影片加字幕了!

細節可以參考下一個章節 YouTube 影片【7:06 匯入 SRT 字幕檔】。

07 OpenAI - import srt subtitle into Movavi video converter
Movavi Video Converter 匯入 SRT 字幕

有字幕與無字幕的影片對比

在影片中,
– 4 分 12 秒之前,屬於一次性軟體安裝
– 4 分 12 秒到 7 分 06 秒,程式碼更新檔案名稱與使用哪一種 Whisper 語音模型;
– 7 分 06 秒到 8 分 22 秒,使用 Movavi Video Suite 的 Video Converter 匯入 SRT 字幕到影片
– 8 分 22 秒之後,把原始無字幕影片添加字幕影片用並排方式來做比對。不論是語氣斷點、語助詞、繁體中文字…等,都是完美呈現。有興趣的朋友,可以仔細觀察影片,不難發現 AI 語音辨識模型 Whisper 的能力是多麼的恐怖。

影片 Chapters 章節
0:15 安裝 Anaconda Distribution Individual Edition ( Python 懶人包)
0:52 安裝 Git 程式 (用途是安裝 Github 程式)
1:36 安裝 Whisper 語音模型
2:31 安裝 Chocolatey 程式
3:49 安裝 ffmpeg
4:12 Anaconda Distribution Individual Edition 新增專案、編輯程式
7:06 匯入 SRT 字幕檔
8:22 添加字幕與無字幕的影片對比

常見問題

Github Whisper 程式碼安全嗎?

是的。Whisper 程式碼公開透明,不需要額外的系統檔案或程式即可在 Python 底下執行。

Automatic Speech Recognition (自動語音辨識)只能選Whisper嗎?

否。自動語音辨識軟體有很多選擇,不過根據我的試用心得,Whisper 是唯一一款 AI 語音辨識模型,幾乎不需要在生成字幕檔後,還需要花時間做修改。

OpenAI Whisper 語音模型真的免費嗎?

是的,完全免費。

中英文可以互相轉譯嗎?

可以。Whisper speech to text model,可以將中文影片轉譯成英文字幕,反之亦然。

如何確認是 GPU 或 CPU 在執行程式呢?

打開 Anaconda Powershell Prompt ( anaconda3 ) 視窗,執行 whisper –help | findstr -i pytorch,輸出結果如下:
範例 1 –
–device DEVICE device to use for PyTorch inference (default: cpu)
這個範例就是用 CPU 在執行 AI 語音辨識程式碼。

範例 2 –
–device DEVICE device to use for PyTorch inference (default: cuda)
這個範例就是用 GPU 在執行 AI 語音辨識程式碼。

如何確認顯示卡 cuda 驅動程式有安裝成功呢?

08 nvidia-smi - check cuda version and gpu driver for openai whisper pytorch

基本上,大部分的 Nvidia 顯示卡都支援 cuda 功能。從官網驅動程式下載頁面,找到 Driver Release Notes,打開後檢查這版的驅動程式支援哪個版本的 cuda 程式,版本務必要一致。
– NVIDIA 驅動程式下載: https://www.nvidia.com.tw/Download/index.aspx?lang=tw
– GeForce Game Ready 驅動程式 >> 附加訊息 >> … Driver Release Notes (v…)

打開 Anaconda Powershell Prompt ( anaconda3 ) 視窗,執行 nvidia-smi,在輸出結果檢查驅動程式版本別。

為什麽 torch.cuda.is_available() 是 False?

1. 使用 nvidia-smi 指令,檢查 cuda 版本與顯示卡驅動程式版本是否都在支援清單中。
2. Pytorch / cuda / 顯示卡驅動程式最好都是安裝相同版本。
範例:
在 Pytorch 官網,指定好你的環境後,會自動更新安裝指令,複製到電腦執行即可。
pip3:
pip3 install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118

conda:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

檢查方法:
打開 Anaconda Powershell Prompt ( anaconda3 ) 視窗,執行 python 後,輸入藍色字體那兩行,輸出結果是 True 的話,就是有支援 cuda。
>> (base) C:\Users\ae>python
>> import torch
>> torch.cuda.is_available()
True

CUDA out of memory 怎麼辦?

跟顯示卡內建的 VRAM 容量大小有絕對關係,如何解決?
1. 換顯示卡
2. 變更 Whisper Model_Type
– tiny 需要 ~1 GB VRAM
– base 需要 ~1 GB VRAM
– small 需要 ~2 GB VRAM
– medium 需要 ~5 GB VRAM
– large 需要 ~10 GB VRAM

新手真的能用 OpenAI Whisper 生成影片字幕

沒有豐富的影片剪輯背景,也沒有太多空閒時間打逐字稿,卻想要嘗試自媒體或 YouTuber 的話,Whisper 語音模型 + Movavi Video Suite 的組合,對新手而言,確實是一個【低成本】、【高效率】、【輕鬆上手】的選擇!

如果手邊沒有太多現成的影片、音樂、圖片素材的話,可以考慮 FlexClip 線上影片編輯工具。當 FlexClip AI 搭配 OpenAI Whisper,一樣能製作出高質感且帶有字幕的影片。