本週流程

  1. 為什麼用 Colab?10 min
  2. 第一個 Notebook:認識 cell15 min
  3. Whisper 實作:把聲音變成文字30 min
  4. 多模態體驗:讓 AI 看圖說話25 min
PART 1

為什麼用 Colab?

10 min

Google Colab(Colaboratory)是一個雲端 Python 執行環境,用瀏覽器就能寫程式、跑模型,免安裝、免設定、還免費送 GPU。對人文社科學生來說,它解決了一個最棘手的問題:「我電腦沒有那麼好,跑得動 AI 嗎?」

Colab 像是「公共圖書館的研究室」:你不必擁有整套儀器、不必準備工作空間、不必自己買電腦。走進圖書館(瀏覽器),登入帳號,借一個研究室(Colab notebook),裡面已經備好你需要的一切——書桌(編輯器)、紙筆(cell)、甚至實驗器材(GPU)。離開時,你的研究筆記(notebook)自動存在 Google Drive 裡。

Colab vs. 本機安裝 Python

✓ Colab

  • 免安裝任何軟體
  • 免費 GPU / TPU(每天有額度)
  • 檔案存 Google Drive
  • 可分享連結與他人協作
  • 環境固定、不會壞

✗ 本機安裝

  • 要裝 Python、要管理套件
  • GPU 要自備(很貴)
  • 跨作業系統時常出狀況
  • 分享要打包環境
  • 適合長期開發,不適合課堂初學

簡言之,選用 Colab 的三個理由

  1. 零門檻:只要有 Google 帳號就能開始,省下安裝環境的兩小時挫敗感。
  2. 免費 GPU:Whisper、Stable Diffusion 等模型對 GPU 有需求,Colab 的免費 T4 GPU 已足夠課堂實作。
  3. 可重現:notebook 是一個檔案,包含程式碼、輸出、文字說明。非常適合「論文式的程式作業」。
回顧 之前提到的 Ollama 是「把 AI 跑在自己電腦上」,重視隱私與離線;本週的 Colab 是「把 AI 跑在 Google 的伺服器上」,重視便利與算力。兩者並非互斥,而是不同任務的不同選擇。
PART 2

第一個 Notebook:認識 cell

15 min

step-by-step:開啟你的第一個 Colab

登入 Google 帳號,前往 colab.research.google.com

點選「檔案 → 新增筆記本」

你會看到一個空白頁面,上方有「+ Code」「+ Text」兩個按鈕。每個方塊叫做一個 cell(單元格)。

檢查執行環境是否有 GPU

點「執行階段 → 變更執行階段類型 → 硬體加速器」,選 T4 GPU。

把筆記本存到 Google Drive

檔名改成 week13_whisper_lab.ipynb。Colab 會自動存檔,但建議偶爾按 Ctrl/Cmd + S 強制儲存。

Notebook 的兩種 cell

類型用途例子
Code cell執行 Python 程式print("Hello, AI!")
Text cell寫筆記、文件、Markdown# 標題、**粗體**、列表

執行 cell 的快捷鍵:Shift + Enter(執行並跳到下一格)、Ctrl/Cmd + Enter(執行但留在原格)。

練習 1:第一段程式

在 Code cell 中輸入並執行:

PYTHON Cell 1
print("Hello, 多模態 AI!")
import sys
print("Python 版本:", sys.version)

練習 2:執行 shell 指令

Colab 的另一個強大之處是可以直接執行命令列指令。只要在指令前加 !(驚嘆號)。這讓你能用上一週學的 CLI 知識。

SHELL Cell 2 ── 確認系統環境
!nvidia-smi      # 看看 GPU 是什麼型號
!pwd             # 看看現在在哪個目錄
!ls              # 列出檔案
語言學家視角 這個 ! 是一種「語碼轉換」標記——它告訴 Jupyter / Colab:「接下來這一行請用 shell 解讀,不要當 Python」。同一個 cell 中可以混合兩種語言,就像我們日常會在中文裡夾英文。

練習 3:安裝套件

每個新的 Colab 環境都是空白的,你需要安裝套件。下一個 cell 安裝 Whisper:

SHELL Cell 3 ── 安裝 Whisper
!pip install -q openai-whisper

參數 -q 是 "quiet",讓安裝訊息精簡一點。安裝完成後就可以使用 Whisper 了。

PART 3

Whisper 實作:把聲音變成文字

30 min

Whisper 是 OpenAI 開源的語音辨識模型,支援 99 種語言。我們將完成兩件事:(1)轉錄一段網路上的示範音檔;(2)轉錄你自己上傳的素材。

Step 1:載入 Whisper 模型

PYTHON Cell 4
import whisper

# 載入 base 模型(容量小、速度快,初學適合)
model = whisper.load_model("base")
print("✓ 模型載入完成")

第一次執行會下載模型權重(約 140 MB),需要幾秒鐘。

Whisper 模型大小對照

名稱參數量相對速度適用情境
tiny39 M~10×快速測試、即時轉錄
base74 M~7×本週課堂預設
small244 M~4×一般作業品質
medium769 M~2×論文等正式用途
large-v31550 M1×最高品質(要 GPU)

Step 2:下載示範音檔

SHELL Cell 5
# 範例:下載一段中文音檔(連結可改)
!wget -q https://lopentu.github.io/genai4humanities2026/lab/session-6/shukai_talk.mp3 -O demo.mp3
!ls -lh demo.mp3
課堂示範 上面連結是一段演講錄音,讓大家用同一份素材比較。

Step 3:執行轉錄

PYTHON Cell 6
result = model.transcribe("demo.mp3", language="zh")

print("=== 轉錄結果 ===")
print(result["text"])

就這麼簡單。三行程式,把過去需要手動抄寫一小時的工作壓縮到幾十秒。

Step 4:查看時間戳(segments)

Whisper 不只能輸出純文字,還能標記每一段話的時間。這對「製作字幕」或「研究停頓與話輪轉換」非常有用。

PYTHON Cell 7
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}")

Step 5:上傳你自己的音檔

Colab 提供簡單的上傳介面:

PYTHON Cell 8
from google.colab import files
uploaded = files.upload()     # 跳出檔案選擇視窗

# 取得檔名(假設你只上傳一個)
filename = list(uploaded.keys())[0]
print(f"已上傳:{filename}")
PYTHON Cell 9
my_result = model.transcribe(filename)
print(my_result["text"])
課堂活動 · 比較不同模型

把 Cell 4 改成 load_model("small") 或 load_model("medium"),重新跑你自己的音檔。哪些地方變得更準?哪些原本就準?哪些怎麼換模型都錯?記下三個觀察,待會分享。

常見錯誤
  • "out of memory":模型太大,換成 small 或重新 reset runtime。
  • 轉錄是英文不是中文:在 transcribe() 中加 language="zh" 參數。
  • 臺語、客語效果差:Whisper 主要訓練於華語,臺語要靠社群微調版本(如 https://huggingface.co/NUTN-KWS/Whisper-Taiwanese-model-v0.5)。
PART 4

多模態體驗:讓 AI 看圖說話

25 min

剛剛的正課提到,多模態 LLM 能整合文字、圖像、語音。這一節我們用 Google 的 Gemini API 體驗「看圖回答問題」。

從 Whisper 到 Gemini,就像從一位精通聽寫的史官,升級到一位能聽、能讀、能看的太史公。前者單一感官,後者全感整合。

Step 1:取得 Gemini API Key

前往 aistudio.google.com

用 Google 帳號登入。

左側選單點「Get API key」→「Create API key」

把產生的 key 複製下來(一長串字母數字),別貼給別人。

在 Colab 加入 secret

左側面板有個 🔑 鑰匙圖示,點開後新增名為 GEMINI_API_KEY 的密鑰,貼入剛才的 key,並打開「Notebook access」。

資安提醒 不要把 API key 直接寫在 cell 裡——你的 notebook 一旦分享出去,別人就能用你的額度。一律用 Colab 的 secret 機制存取。

Step 2:安裝與設定

SHELL Cell 10
!pip install -q google-generativeai
PYTHON Cell 11
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')

Step 3:上傳一張圖,問 Gemini

PYTHON Cell 12
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 的回答品質。

課堂思考
  1. Gemini 能辨識台灣本土的視覺符號(媽祖像、布袋戲、台式早餐)嗎?
  2. 它對圖中文字(特別是繁體中文、古文)的處理如何?
  3. 如果它「描述錯了」,錯在哪裡?是視覺辨識錯,還是文化脈絡缺失問題?

進階:把 Whisper + Gemini 串起來

真正的多模態應用,是把多個模型「接力」使用。例如:把音檔轉錄後,請 Gemini 摘要。

PYTHON Cell 13 ── 把上面結果接起來
transcript = my_result["text"]     # 從 Part 3 來的轉錄

prompt = f"""以下是一段訪談逐字稿,請用三句話以繁體中文摘要核心觀點:

{transcript}"""

response = model_g.generate_content(prompt)
print(response.text)
從 Whisper 的「把聲音變文字」,到 Gemini 的「從文字產生洞見」。這個 pipeline 可以當作當代 AI 應用的縮影。
PART 5

練習與下週預告

10 min

本週練習:Whisper 觀察筆記

選擇一段你感興趣的口語素材(3–5 分鐘為宜),用 Whisper 完成下列任務:

  1. 素材來源:YouTube 訪談、Podcast 片段、長輩錄音、新聞、戲劇對白——擇一。請註明出處與授權狀況。
  2. 實作步驟:用 base 與 small 兩種模型各轉錄一次。
  3. 觀察筆記(約 400 字):
    • 哪些段落兩個模型結果一致?哪些有差異?
    • 失準的地方有何規律?(人名、術語、方言、語碼轉換、語速?)
    • 從你的人文背景看,這些失準有什麼意涵?

下週預告:Session 7 · 從 API 到 Vibe Coding 應用

下週我們會把本週的 API 串接技巧,與前幾週學過的 HTML/CSS/JS 結合,做出第一個「能讓別人使用的 AI 小應用」。開始醞釀期末的 Vibe Coding 專題。

離開 Colab 前的好習慣

你已經完成了第一個 AI 應用——它把聲音變成了文字,把圖像變成了描述。
接下來幾週,希望你會把這些零件組起來,變成你自己想做的東西。