【Google Colab Python系列】OpenAI Whisper: 語音辨識產生字幕檔

【Google Colab Python系列】OpenAI Whisper: 語音辨識產生字幕檔

更新於 發佈於 閱讀時間約 4 分鐘

上一篇「【Google Colab Python系列】 初探Whisper: 來對一段Youtube影片進行辨識吧!」我們介紹了Whisper的基本用法及功能,這次我們除了語音辨識之外,還要下載辨識後的字幕檔,我想這對於我們常常看到沒有字幕的影片,若想要進行辨識與翻譯時非常有幫助。

圖片來源

這次的篇章主要做些什麼?

  • 前置作業。
  • 上傳影音檔。
  • 自動語音辨識文字。
  • 下載字幕檔(.srt)。

前置作業

安裝相關套件

  • openai-whisper

檢查是否開啟GPU

# 安裝whisper語音辨識工具
!pip install -U openai-whisper
# 檢查是否開啟GPU
!nvidia-smi

上傳影音檔

在Google Colab環境中如果要上傳音檔是沒問題的,貼心的Colab提供了API讓我們可以設計上傳音檔的功能,那就讓我們來實際玩玩吧。

P.S 上傳的時間會比下載的時間久很多,可以喝杯咖啡後再回來。

from google.colab import files
uploaded = files.upload()
todo = []
for fn in uploaded.keys():
print('{name} with length {length} bytes'.format(name=fn, length=len(uploaded[fn])))
todo.append(fn)todo

載入辨識模型

要載入什麼樣的模型呢?可以看看官方網站的「Available models and languages

import whisper
model = whisper.load_model('large')

對上傳檔案進行辨識

import os
from whisper.utils import get_writer
# 輸出格式為srt
# 輸出路徑為目前位置
w = get_writer('srt', '.')for f in todo:
name = os.path.basename(f) result = model.transcribe(name) srt_file_name = '{name}.srt'.format(name=name)
w(result, srt_file_name) files.download(srt_file_name)

圖片來源

結語

有了Whisper之後,我們就能夠本地開發一隻Python小程式來對影片進行辨識自動產生字幕了,如此一來就不用每次都上傳到雲端才開始進行,甚至人工產生字幕,基本上Whisper的辨識就目前使用上來說已經算是不錯了,句子的切點都還算精確,標點符號也都幫我們自動標上,真是貼心啊。

今天的範例都在這裡「📦 whisper_1_srt.ipynb」歡迎自行取用。

如何使用請參閱「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」。

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識,累積財富!

avatar-img
阿Han的沙龍
127會員
281內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言
avatar-img
留言分享你的想法!
阿Han的沙龍 的其他內容
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期