今天搭火車出去玩,一邊滑手機,家裡的電腦正在幫我測試三個語音辨識模型。

這篇記錄整個測試過程,也記錄第一輪結論怎麼全部翻車。因為這件事最後提醒我的,不只是該換哪個模型,而是:AI 給的推論再有信心,還是要拿自己的資料跑過一次。

一條流水線的地基

三月開始用 LLM 協助讀書之後,我陸續把演講錄影丟給 Claude 整理。從一開始只截重點,慢慢規模化成一條流水線:逐字稿 → 對應投影片 → 總整理

這條線的地基是語音轉文字(ASR,automatic speech recognition)模型。它聽錯多少,後面每一層筆記就錯多少。

原本用的是 OpenAI 的 Whisper large-v3。今天滑手機才發現,聯發科(MediaTek Research)去年有出 Breeze-ASR-25:從 Whisper-large-v2 微調,特別針對台灣華語和中英夾雜的情境優化,Apache 2.0 開源。今年還接著出了針對台語的 Breeze-ASR-26。

醫學演講正好是中英夾雜的重災區,聽起來很像為我的使用情境做的。跟以前一樣,我先把問題丟給 Claude:這適合我嗎?

但這種問題查資料查不到答案。官方 benchmark 是官方的考卷,適不適合我的錄音,得自己測。

自己的資料自己測:評分方法

最理想的黃金標準,是人工精修過的逐字稿。但我沒有,也不想為了測試去精雕一份。替代方案是:

  • 從上百本復健科教科書抓出 18 萬多個中英文醫學名詞,建成評分字典
  • 每個模型的輸出跟字典程式化比對,算兩個數字:抓到多少真名詞(capture)、生出多少字典外的假名詞(garbage)
  • 另外用段落密度把關,確保逐字稿還能跟投影片對得起來

這其實跟判讀診斷性研究很像。先確立 reference standard,分數才有意義。

字典不是完美的黃金標準,但它直接對應我在乎的結果:關鍵的醫學資訊有沒有被聽出來。如果你在乎的是時間、錯誤率、廣度或深度,那就要換一把對應的尺。

第一輪結論,全部翻車

先拿一段 10 分鐘的演講試水溫,Claude 給了三個結論:

  1. Breeze 比 Whisper 慢兩倍
  2. 英文名詞 Breeze 9:1 大勝
  3. 台語版 Breeze-ASR-26 應該不會講華語

看起來很有道理,也很像可以直接下決定了。

但我請他多測幾堂課、每個模型分開跑之後,三個結論全部被推翻

  1. 慢兩倍是因為兩個模型載進同一個程序,在 8GB 顯卡上互搶記憶體。分開跑之後速度一樣。壞的是量測工具,不是模型。
  2. 9:1 是 Claude 自己挑爭議點來比的。讓 LLM 自己選證據,他注意到的點本來就偏向支持新模型,確認偏誤就這樣被帶進來。程式化全量統計後只有 2 到 3 比 1。
  3. 「台語版不會講華語」是從說明文件沒寫華語成績推論出來的,不是測試結果。實際測下去,跟 Breeze-ASR-25 打平。文件沒寫不等於不會。

只測量一次(n=1),三種偏誤同時中獎:儀器誤差、確認偏誤、缺席證據推論。這跟臨床上讀一篇診斷性研究要小心的坑一模一樣,只是這次踩坑的是我們自己。

也再次體會到一件事:Claude 有時候還沒完整了解,就會給出很有自信的回答。這種時候,實際跑一次測試,比任何推論都可靠。

這裡還有一個更根本的教訓:挑證據、數比例這種事,本來就該交給寫死的程式跑全量統計,不該讓模型憑印象挑幾個點來講。這正是我之前寫能用算盤,就別開超級電腦的意思,只是這次換我自己踩到。

擴大到 15 段之後的結果

6 堂課堂演講加 9 堂案例討論,每段 8 分鐘,結論穩定下來:

設定真實術語捕獲精確度GPU 時間/每小時音訊
Whisper large-v3(舊預設)43589.2%3.4 分鐘
Breeze-ASR-25(純換模型)58794.5%3.4 分鐘
Breeze-ASR-25+設定調校(新預設)64993.7%3.0 分鐘

真實醫學名詞捕獲多了 49%,速度還更快。

值得注意的是,增益有一部分來自設定。關掉 VAD(voice activity detection,語音活動偵測)和 condition_on_previous_text 之後,才從 587 進一步到 649。換模型不是唯一的變因,設定也值得一起掃過。

那些沒有用的招

負結果也是結果,寫出來省得大家再踩一次:

  • 兩個模型並用取聯集:輸給單用 Breeze-ASR-25,已刪除
  • hotwords/initial_prompt 餵術語提示:兩個都反而更糟,模型會拿提示詞發明新的錯字
  • 英文演講:Breeze 跟 large-v3 打平,精確度略好,所以乾脆全部統一用 Breeze

心得:先確立你的黃金標準

現在每個新模型發表都附一疊 benchmark,但那些考卷不一定考你在乎的東西。

之前測 graph RAG 也是同一套做法:拿自己的資料下去跑,產出一個分數,再決定要不要換。

「判斷交給模型,計算交給程式」也是同一件事的另一面。我在讀論文的 skill 裡就是這樣切的:證據等級不讓模型自己講,五個面向它評完,最後的分數由程式加總算出來。這次的評分字典,其實也是同一個邏輯。

流程說穿了很簡單:明確定義你要的成果 → 找一把能量它的尺 → 至少多個樣本、變因分開測 → 連負結果一起記下來

花一個下午,換來一個可以放心升級整條流水線的決定。對我來說,這比多看幾個官方分數更有用。

後記

寫這篇的當下,家裡的電腦還在重新轉錄過去 357 小時的舊課程音檔,升級用舊模型跑過的逐字稿。

我在外面搭火車玩,他在家加班;我睡覺時,他還在持續進步。真的很像家裡多了一個不休息的同事🤣

模型連結:Breeze-ASR-25Breeze-ASR-26