前言
為了方便製作影片或是音檔的字幕檔、逐字稿文字檔, 2023年2月底,我在 Google Colab 筆記本中,結合了 OpneAI Whisper 及 yt-dlp,搭配 Colab 簡單的網頁界面,可輸入像是影音網址(或是檔案路徑)、Whisper 的語音辨識模型大小、輸出格式......等自訂的參數;設定完參數,按個「執行」鈕,就可以不用管程式的安裝及享用 Colab 提供的 GPU 運算力,輕鬆坐等接收語音辨識的結果 (詳見「雄:使用 OpenAI Whisper 製作影音的字幕或逐字稿」)。
好一陣沒錄教學影片,前幾天為了幫新錄的影片加上字幕,才發現在 Colab 中安裝 OpenAI Whisper 似乎要多花很多倍的時間,以我片長不到五分鐘的影片來說,語音辨識只要幾秒鐘,等待安裝卻要幾分鐘,實在不成比例(註:2023.11.22 再次使用 OpenAI Whisper,安裝時間要很久的問題已不存在,看起來應該是相關套件的版本已跟上,不用樣樣都需要重新編譯,回復到可以順順地使用 OpenAI Whisper的狀態。)。於是開始找是否有更好的方案,找到了 guillaumekln (Guillaume Klein) 的 Faster Whisper 專案:
Faster Whisper 是使用 CTranslate2 的界面加上 OpenAI Whisper 開放出來的模型,可以大幅減少記憶體及其它資源的耗用,又能有與原 OpenAI Whisper 差不多的輸出結果,這樣是不是很讚!
經過這幾天的實測,至少安裝程序等候的時間是少很多、耗的資源小很多~~,輸出的內容和 OpenAI Whisper 的結果差不多,真的是小而美。要說缺點的話,大概是因為它目前沒有提供直接輸出成字幕格式的檔案,不過,這算是小事,只要用其它的套件,多寫幾行程式碼來補足功能,轉換一下輸出格式就好了,哈!相關程序我都在底下放在 Colab 中的工具處理好了。
工具網址
整合在 Colab 中的「Faster-Whisper-語音辨識-輸出文字檔」工具,放在這個短網址中,開啟後就能使用:
使用方法
先開啟工具的網址,進入頁面,往下捲,在說的的下方,應該會有如 [圖一] 的輸入區:
[圖1] Faster Whisper 的操作程序 |
1.上載檔案:如果想上載電腦中的影片或是音檔,就按 [圖1] 箭頭1所指的 [檔案] 圖示,就可以將要進行語音辨識的影音檔案上載。上載完的檔案或是使用 Google 雲端硬碟的檔案,如何複製檔案的路徑,請自行參考「操作示範影片」中的示範。
2.在「url」中填入影音的來源:
- 存放在網路的「公開」影音,就貼入網址,YouTube(影片或是播放清單)、FB、雲端硬碟、Vocaroo......等的「公開分享」網址。
- 在放在電腦中的檔案則需要先上載到 Colab 中,然後再「複製路徑」,將檔案的路徑貼到「url」的欄位中。
- 如果想批次進行語音辨識,則是將前述的網址,通通先貼到一個文字檔(檔名 xxx.txt),一行一個網址或是路徑,儲存後,再將文字檔上載到 Colab 中,最後再「複製路徑」,將檔案的路徑貼到「url」的欄位中;這樣子,程式會依照文字檔的內容,一行行的進行語音辨識。
詳細的過程請參考底下的操作示範影片。
操作示範影片
Q & A
- Q : 未付費版的 Colab,Fast Whisper / OpenAI Whisper 能執行多久?
- A : 因為 Whisper 使用到 GPU ,所以目前一個帳號每天只能使用大概 4小時 (以前是12小時)。
- Q : 給它播放清單或是清單檔案,為什麼執行到一半,中斷了?
- A : 如果輸出區有出現錯誤訊息,找一下最後幾行,有沒有類似「private video ...」的關鍵字,如果有,表示某一個影音並不是公開分享的,因為抓不到檔案而中斷程式了;將它從清單中移除再試試看。
讚!又有新的
回覆刪除Faster Whisper 不能用。它報錯
回覆刪除/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:72: UserWarning:
The secret `HF_TOKEN` does not exist in your Colab secrets.
To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.
You will be able to reuse this secret in all of your notebooks.
Please note that authentication is recommended but still optional to access public models or datasets.
warnings.warn(
您好,
刪除謝謝回報,應該是在下載模型檔案時出錯,下載的模組最新版的問題,先指定用舊版的暫時解決問題了。
可以用了,感謝!
刪除不曉得為什麼我的音檔有40分鐘,轉出來的只有20分鐘?是哪邊設定有誤嗎?
回覆刪除您好,
刪除能不能辨識得出來,跟環境是否夾雜了噪音,要辨識的人聲音是否清楚都有關係。使用 Faster Whisper 能設定的大概也就是否使用「VAD filter」及「vad_filter_min_silence_duration_ms」判斷靜音的時間長短,這個數字會影響辨識出的結果。
另外,建議使用另一篇中的 OpenWhisper 試試,或許結果會有不同。
沒有音檔測試,基本上,個人也只能亂猜一通囉!
想請問可以更改每次生成出來字幕的長度嗎?好像有時候字幕會過長,不方便閱讀,有辦法更改嗎?
回覆刪除有新的 faster-whisper 1.0.2,可以做新的字幕轉檔嗎?
回覆刪除您好,
刪除在 Colab 的程序中,一直都是安裝最新版的程式,而 modelType 那一個欄位其實是可以自己輸入支援的 model 名稱的哦~~
不知什麼原因Faster Whisper 近日不能用了,請問有沒解決方法,謝謝。
回覆刪除您好,
刪除應該是這兩、三天的事而已,上週我還正常用過好幾次。
有興趣可以參考官網的討論:
https://github.com/SYSTRAN/faster-whisper/pull/1082