2023年11月9日 星期四

以 Faster Whisper 將影音辨識為文字檔案(字幕或逐字稿)

2023年11月9日 星期四

前言

為了方便製作影片或是音檔的字幕檔、逐字稿文字檔, 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」的欄位中;這樣子,程式會依照文字檔的內容,一行行的進行語音辨識。
3.執行程式:填完「url」的欄位後,可以再看看底下的一些選項有沒有要更改的,確定沒問題,要開始執行語音辨了,就按 [圖1] 綠色箭頭所指的執行圖示。接著就等程式自動安裝及執行語音辨識的程序完成。

詳細的過程請參考底下的操作示範影片。

操作示範影片

底下的影片中介紹如何將影音檔案上載到 Colab 或是利用雲端硬碟中的影片來辨識為文字檔:

相關連結


    7 則留言:

    1. 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(

      回覆刪除
      回覆
      1. 您好,
        謝謝回報,應該是在下載模型檔案時出錯,下載的模組最新版的問題,先指定用舊版的暫時解決問題了。

        刪除
      2. 可以用了,感謝!

        刪除
    2. 不曉得為什麼我的音檔有40分鐘,轉出來的只有20分鐘?是哪邊設定有誤嗎?

      回覆刪除
      回覆
      1. 您好,
        能不能辨識得出來,跟環境是否夾雜了噪音,要辨識的人聲音是否清楚都有關係。使用 Faster Whisper 能設定的大概也就是否使用「VAD filter」及「vad_filter_min_silence_duration_ms」判斷靜音的時間長短,這個數字會影響辨識出的結果。
        另外,建議使用另一篇中的 OpenWhisper 試試,或許結果會有不同。
        沒有音檔測試,基本上,個人也只能亂猜一通囉!

        刪除
    3. 想請問可以更改每次生成出來字幕的長度嗎?好像有時候字幕會過長,不方便閱讀,有辦法更改嗎?

      回覆刪除

     
    雄::gsyan © 2009. Design by Pocket