print("Hello, 多模態 AI!") import sys print("Python 版本:", sys.version)
Google Colab(Colaboratory)是一個雲端 Python 執行環境,用瀏覽器就能寫程式、跑模型,免安裝、免設定、還免費送 GPU。對人文社科學生來說,它解決了一個最棘手的問題:「我電腦沒有那麼好,跑得動 AI 嗎?」
Colab 像是「公共圖書館的研究室」:你不必擁有整套儀器、不必準備工作空間、不必自己買電腦。走進圖書館(瀏覽器),登入帳號,借一個研究室(Colab notebook),裡面已經備好你需要的一切——書桌(編輯器)、紙筆(cell)、甚至實驗器材(GPU)。離開時,你的研究筆記(notebook)自動存在 Google Drive 裡。
你會看到一個空白頁面,上方有「+ Code」「+ Text」兩個按鈕。每個方塊叫做一個 cell(單元格)。
點「執行階段 → 變更執行階段類型 → 硬體加速器」,選 T4 GPU。
檔名改成 week13_whisper_lab.ipynb。Colab 會自動存檔,但建議偶爾按 Ctrl/Cmd + S 強制儲存。
| 類型 | 用途 | 例子 |
|---|---|---|
| Code cell | 執行 Python 程式 | print("Hello, AI!") |
| Text cell | 寫筆記、文件、Markdown | # 標題、**粗體**、列表 |
執行 cell 的快捷鍵:Shift + Enter(執行並跳到下一格)、Ctrl/Cmd + Enter(執行但留在原格)。
在 Code cell 中輸入並執行:
print("Hello, 多模態 AI!") import sys print("Python 版本:", sys.version)
Colab 的另一個強大之處是可以直接執行命令列指令。只要在指令前加 !(驚嘆號)。這讓你能用上一週學的 CLI 知識。
!nvidia-smi # 看看 GPU 是什麼型號 !pwd # 看看現在在哪個目錄 !ls # 列出檔案
! 是一種「語碼轉換」標記——它告訴 Jupyter / Colab:「接下來這一行請用 shell 解讀,不要當 Python」。同一個 cell 中可以混合兩種語言,就像我們日常會在中文裡夾英文。
每個新的 Colab 環境都是空白的,你需要安裝套件。下一個 cell 安裝 Whisper:
!pip install -q openai-whisper
參數 -q 是 "quiet",讓安裝訊息精簡一點。安裝完成後就可以使用 Whisper 了。
Whisper 是 OpenAI 開源的語音辨識模型,支援 99 種語言。我們將完成兩件事:(1)轉錄一段網路上的示範音檔;(2)轉錄你自己上傳的素材。
import whisper # 載入 base 模型(容量小、速度快,初學適合) model = whisper.load_model("base") print("✓ 模型載入完成")
第一次執行會下載模型權重(約 140 MB),需要幾秒鐘。
| 名稱 | 參數量 | 相對速度 | 適用情境 |
|---|---|---|---|
tiny | 39 M | ~10× | 快速測試、即時轉錄 |
base | 74 M | ~7× | 本週課堂預設 |
small | 244 M | ~4× | 一般作業品質 |
medium | 769 M | ~2× | 論文等正式用途 |
large-v3 | 1550 M | 1× | 最高品質(要 GPU) |
# 範例:下載一段中文音檔(連結可改) !wget -q https://lopentu.github.io/genai4humanities2026/lab/session-6/shukai_talk.mp3 -O demo.mp3 !ls -lh demo.mp3
result = model.transcribe("demo.mp3", language="zh") print("=== 轉錄結果 ===") print(result["text"])
就這麼簡單。三行程式,把過去需要手動抄寫一小時的工作壓縮到幾十秒。
Whisper 不只能輸出純文字,還能標記每一段話的時間。這對「製作字幕」或「研究停頓與話輪轉換」非常有用。
for seg in result["segments"][:5]: # 看前 5 段 start = seg["start"] end = seg["end"] text = seg["text"] print(f"[{start:.1f}s → {end:.1f}s] {text}")
Colab 提供簡單的上傳介面:
from google.colab import files uploaded = files.upload() # 跳出檔案選擇視窗 # 取得檔名(假設你只上傳一個) filename = list(uploaded.keys())[0] print(f"已上傳:{filename}")
my_result = model.transcribe(filename) print(my_result["text"])
把 Cell 4 改成 load_model("small") 或 load_model("medium"),重新跑你自己的音檔。哪些地方變得更準?哪些原本就準?哪些怎麼換模型都錯?記下三個觀察,待會分享。
small 或重新 reset runtime。transcribe() 中加 language="zh" 參數。https://huggingface.co/NUTN-KWS/Whisper-Taiwanese-model-v0.5)。剛剛的正課提到,多模態 LLM 能整合文字、圖像、語音。這一節我們用 Google 的 Gemini API 體驗「看圖回答問題」。
從 Whisper 到 Gemini,就像從一位精通聽寫的史官,升級到一位能聽、能讀、能看的太史公。前者單一感官,後者全感整合。
用 Google 帳號登入。
把產生的 key 複製下來(一長串字母數字),別貼給別人。
左側面板有個 🔑 鑰匙圖示,點開後新增名為 GEMINI_API_KEY 的密鑰,貼入剛才的 key,並打開「Notebook access」。
!pip install -q google-generativeai
import google.generativeai as genai from google.colab import userdata genai.configure(api_key=userdata.get('GEMINI_API_KEY')) model_g = genai.GenerativeModel('gemini-2.0-flash')
from google.colab import files from PIL import Image uploaded = files.upload() img_path = list(uploaded.keys())[0] img = Image.open(img_path) response = model_g.generate_content([ "請用繁體中文描述這張圖,特別注意可能的文化背景線索。", img ]) print(response.text)
試試看用一張古地圖、書畫、廟宇照片、田野現場等具有人文意涵的素材,觀察 Gemini 的回答品質。
真正的多模態應用,是把多個模型「接力」使用。例如:把音檔轉錄後,請 Gemini 摘要。
transcript = my_result["text"] # 從 Part 3 來的轉錄 prompt = f"""以下是一段訪談逐字稿,請用三句話以繁體中文摘要核心觀點: {transcript}""" response = model_g.generate_content(prompt) print(response.text)
從 Whisper 的「把聲音變文字」,到 Gemini 的「從文字產生洞見」。這個 pipeline 可以當作當代 AI 應用的縮影。
選擇一段你感興趣的口語素材(3–5 分鐘為宜),用 Whisper 完成下列任務:
base 與 small 兩種模型各轉錄一次。下週我們會把本週的 API 串接技巧,與前幾週學過的 HTML/CSS/JS 結合,做出第一個「能讓別人使用的 AI 小應用」。開始醞釀期末的 Vibe Coding 專題。
你已經完成了第一個 AI 應用——它把聲音變成了文字,把圖像變成了描述。
接下來幾週,希望你會把這些零件組起來,變成你自己想做的東西。