AI 新視界 AI Worldview
申請帳號 / 登入
地端效能實測地端實測4 個來源manual 撰寫

離線聽寫工具 Handy 與 Hex 實測:11 個中文語音模型在台灣口音的錯誤率,Qwen3-ASR 最準、Whisper 居中

兩個同源的本機語音輸入工具,用 617 句台灣口音中文逐一比較內建模型:Qwen3-ASR 1.7B 錯誤率 4.9%、Fun-ASR Nano 5.4%、Breeze-ASR-25 7.0%、Whisper turbo 9.1%;長段落會不會崩、有沒有簡繁轉換,才是挑工具的關鍵。

本文重點

  1. Handy 與 Hex 共用同一套 transcribe.cpp 引擎與模型檔,差別在模型選單、簡繁轉換與桌面整合。
  2. 617 句台灣口音中文:Qwen3-ASR 1.7B 4.9%、Fun-ASR Nano 5.4%、Breeze-ASR-25 7.0%、Whisper large-v3-turbo 9.1%、SenseVoice 13.5%。
  3. Fun-ASR 與 Cohere 在超過一分鐘的連續語音會整段崩掉;Hex 沒有簡繁轉換,Whisper 與 Qwen 輸出簡體。
本站上線
2026/11/02 下午02:39
本站實測|數據來自量測紀錄|分析由 AI 撰寫|未經人工審閱。表格與圖表的每個數字都由程式從本站量測紀錄填入; 分析段落由 manual 依這些數字撰寫,程式會逐一核對正文數字必須出現在量測紀錄中, 對不上就不會上線。實測方法;發現錯誤請用文末的「回報」。

結論先講

  • Handy 與 Hex 是同一類工具:按住快捷鍵說話、放開後文字直接貼進游標所在的欄位,全程在自己電腦上跑,不上雲端。兩者的辨識引擎同源(Hex 用的 transcribe.cpp 就是 Handy 作者寫的),模型檔也從同一個 Hugging Face 帳號下載,所以差別不在「哪個聽得準」,而在模型選單、繁體處理與桌面整合。
  • 同樣 617 句台灣口音中文,兩個工具裡能選的中文模型差距很大:Qwen3-ASR 1.7B 字元錯誤率 4.9%、Fun-ASR Nano 5.4%、Qwen3-ASR 0.6B 6.3%、聯發科 Breeze-ASR-25 7.0%,Whisper large-v3-turbo 9.1%,SenseVoice Small 13.5%。預設清單排最前面的幾個模型沒有一個支援中文。
  • 長段落另有陷阱:Fun-ASR 與 Cohere Transcribe 在 248 秒的連續旁白上整段崩掉(重複同一個字或同一句),Qwen3-ASR 也掉到 15% 到 23%;Whisper 系列、Breeze、Voxtral 則維持 10% 上下。想一口氣唸一整段,模型要另外挑。
  • Handy 內建簡繁轉換,預設就輸出台灣繁體;Hex 沒有這一層,Whisper 與 Qwen 在 Hex 裡吐出來的是簡體。對台灣使用者,這一點比錯誤率差 1 個百分點更關鍵。

這兩個工具解決什麼問題

想用講的代替打字,現成的選擇多半是把聲音送到雲端(作業系統內建聽寫、各家輸入法的語音功能),或是開一個獨立視窗辨識完再複製貼上。Handy 和 Hex 做的是第三條路:常駐在背景,任何應用程式裡按一組快捷鍵就開始錄音,放開(或再按一次)後文字直接出現在游標處,錄音與辨識都在本機完成。

兩個專案都是 Rust 寫的桌面程式,MIT 授權,支援 Windows、macOS、Linux。Handy(cjpais)2025 年 2 月開始,本站記錄時 36,022 顆星;Hex(anomalyco,也就是 OpenCode 的開發團隊)2026 年 11 月 1 日單日新增 1,329 顆星,累計 3,251 顆,Linux 版還標示 beta。

兩者的辨識核心是同一套:Handy 作者寫的 transcribe.cpp(在 whisper.cpp/ggml 之上支援多種語音模型架構),模型都是量化後的 GGUF 檔,下載來源都是 Hugging Face 上的 handy-computer 帳號。Hex 的程式碼裡直接引用這個函式庫,模型檔名與雜湊值也一致。所以本文把兩個工具放在同一篇:模型層的數字兩邊共用,工具層再分開看。

測試方法

  • 測試集:Common Voice 16.1 zh-TW 測試切分(Hugging Face 上 JiHungLin 整理的版本,Apache-2.0),617 段、共 4.8 小時,每段約 27 秒,由多句台灣人朗讀的句子接成,附正確文字。另加本站一段 248 秒的影片旁白(台灣口音 TTS,有逐字稿),看長音訊表現。與 10 月 30 日 Nemotron 對比 Whisper 那篇完全相同。
  • 機器:RTX 3090 24 GB 桌機(Ryzen 5 3600、Ubuntu 24.04),兩個工具都透過 Vulkan 用顯示卡運算。
  • Handy 0.9.8(2026 年 10 月 3 日的正式版):用它的無頭指令列(handy -f 檔案.wav --model 模型 --json)逐句餵 16 kHz 單聲道 wav,走的是與桌面版相同的批次辨識路徑,只少了麥克風與靜音裁切。語言設定選中文、簡繁轉換維持預設的台灣繁體、其餘設定全部預設;另跑一組語言維持預設「自動」的對照。模型用 Handy 選單裡的預設量化版本(小模型 Q8_0,較大的模型 Handy 自動選 Q5_K_M)。
  • Hex 3.2.0 Linux 版:用它的本機指令(hex model transcribe --model 模型 --language zh 檔案.wav)跑同一批 wav。Hex 的中文選項只有四個:Whisper large-v3-turbo、Qwen3-ASR 0.6B、SenseVoice Small、Cohere Transcribe。
  • 指標:字元錯誤率(CER),去掉標點與空白後計算。參考文字與輸出都先把「臺/台」「著/着」「瞭/了」視為同字,再把兩邊逐字轉成繁體算第二欄,分開「字型差異」與「聽錯」。數字寫法不做轉換:參考文字一律是中文數字(二段一百二十三之四號),輸出寫成 123 就算錯,這對會寫阿拉伯數字的模型不利,下文會標出來。
  • 速度:Handy 的 JSON 會分開回報「載入模型」與「辨識」時間,表中「每句辨識秒」是後者;桌面使用時模型常駐在記憶體,使用者感受到的延遲接近這個數字。
  • 兩個工具在長時間連續呼叫時都遇到同一種問題:617 句裡會有幾句程序卡住不回應(Handy 跑 Qwen3-ASR 1.7B 時卡在第 380 句超過 10 分鐘,Hex 跑 Whisper 時卡在第 180 句左右),以及程序收尾時 Vulkan 報 vkDestroyFence: Invalid device 後當掉但結果已經印出。測試腳本加了逾時與重跑,表中數字都是 617 句全數有結果的版本。

617 句的結果(Handy,模型層)

模型(Handy 預設量化)參數檔案原樣 CER轉繁後 CER中位數P90幻聽尾句每句辨識秒旁白 248 秒 CER
Qwen3-ASR 1.7B(Q5_K_M)2.0B1.5 GB5.0%4.9%3.6%11.4%10.3814.9%
Fun-ASR Nano(Q8_0)830M0.9 GB5.5%5.4%4.2%11.9%10.2799%(整段重複同一個字)
Qwen3-ASR 0.6B(Q8_0)782M0.9 GB6.4%6.3%5.0%14.0%10.2723.2%
Fun-ASR Nano 多語版(Q8_0)830M0.9 GB6.8%6.7%4.0%13.8%10.2899%(同上)
Breeze-ASR-25(Q5_K_M)1.5B1.2 GB7.1%7.0%5.7%15.7%10.4710.3%
Whisper large-v3(Q5_K_M)1.5B1.2 GB8.8%8.7%6.5%17.2%470.499.8%
Whisper large-v3-turbo(Q8_0)809M0.9 GB9.2%9.1%6.6%18.8%80.2410.9%
Whisper large-v3-turbo,語言維持「自動」809M0.9 GB9.7%9.5%6.6%18.4%80.2510.9%
模型(Handy 預設量化)參數檔案原樣 CER轉繁後 CER中位數P90幻聽尾句每句辨識秒旁白 248 秒 CER
Cohere Transcribe(Q5_K_M)2.0B1.8 GB9.7%9.6%7.8%19.6%10.2996%(反覆同一句)
Voxtral Mini 4B Realtime(Q5_K_M)4.4B3.3 GB10.7%10.6%6.7%23.4%11.6310.4%
Whisper medium(Q8_0)764M0.8 GB12.0%11.9%6.8%20.7%10.4311.7%
SenseVoice Small(Q8_0)234M0.25 GB13.5%13.5%8.0%30.2%10.2159.0%
對照:faster-whisper turbo,CPU,本站門檻設定(10/30)809M—12.6%12.3%9.4%25.9%1555.237.3%(中途轉簡體)
Handy 內建 12 組模型在 617 句台灣口音中文的字元錯誤率長條圖,Qwen3-ASR 1.7B 4.9% 最低,SenseVoice Small 13.5% 最高
Handy 內建 12 組模型在 617 句台灣口音中文的字元錯誤率長條圖,Qwen3-ASR 1.7B 4.9% 最低,SenseVoice Small 13.5% 最高

「幻聽尾句」是輸出結尾多出「請不吝點贊 訂閱」「字幕志願者」這類影片字幕用語的句數,是 Whisper 系列的老毛病。

可以直接讀出來的幾件事:

1. 中文專用或以中文為主要語言訓練的模型,整體贏過通用多語模型一截。前四名(Qwen3-ASR 兩個尺寸、Fun-ASR 兩個版本)都來自阿里系團隊,錯誤率 4.9% 到 6.7%;聯發科 Breeze-ASR-25 7.0%;Whisper 家族最好的 large-v3 是 8.7%。

2. Whisper 在這裡的表現比本站 10 月 30 日用 faster-whisper 跑的 12.3% 好了 3 個百分點,幻聽尾句從 155 句降到 8 句。Handy 餵給模型前會先用 Silero VAD 裁掉靜音,加上 whisper.cpp 與 faster-whisper 的解碼設定不同,看起來比有沒有繁體提示詞更有影響。語言設「自動」而不是中文,錯誤率只差 0.4 個百分點,但有 3 句寫成簡體、2 句整句變成外文。

3. Breeze-ASR-25 的 7.0% 有一部分是數字寫法造成的:它在 122 句裡把數字寫成阿拉伯數字(「二段 123 至 4 號」),參考文字是中文數字,每個數字都算錯;它也完全不加標點。地名是它的強項,「台中市海線中山路、高鐵橋下雲林段道路、南迴鐵路」這一句它與 Fun-ASR 幾乎全對,其他模型把雲林聽成「與寧」「與林」。

4. Qwen3-ASR 1.7B 是唯一每句都加完整標點的模型,中位數 3.6% 表示一半以上的句子幾乎全對;代價是它偶爾會切換到粵語用字,「常常拿著這份文件」被寫成「成日拎住你臺蠻緊」。

5. Whisper 有一種其他模型沒有的錯法:一段 27 秒的音訊只輸出第一個分句就停了(「你那句話什麼意思?」後面六個分句全部消失),617 句裡 P90 比中位數高出 12 個百分點主要來自這類句子。

6. 模型檔大小與準確度沒有對應:3.3 GB 的 Voxtral Mini 4B 是 10.6%,0.9 GB 的 Fun-ASR Nano 是 5.4%;SenseVoice Small 0.25 GB 最小也最差,但辨識一句只要 0.21 秒。

長段落:248 秒旁白與長度門檻

上表最後一欄是整段 248 秒旁白一次餵進去的結果。Handy 說明文件寫長音訊會「在停頓處切段」,但這段 TTS 旁白幾乎沒有長停頓,等於把整段交給模型:

  • Fun-ASR 兩個版本輸出變成同一個字重複三百次,Cohere Transcribe 反覆同一個片語,等於整段作廢。
  • Qwen3-ASR 0.6B 前半正確、後半漏掉,錯誤率 23%;1.7B 版 15%。
  • Whisper 三個版本、Breeze、Voxtral 都在 10% 到 12%,與短句差不多。

為了找出「一次最多能講多久」,把同一段旁白切成 30、60、90、120、180 秒再各跑一次:

模型30 秒60 秒90 秒120 秒180 秒248 秒整段
Breeze-ASR-25完整完整完整完整完整CER 10.3%
Qwen3-ASR 1.7B完整完整完整完整完整CER 14.9%
Qwen3-ASR 0.6B完整完整完整完整完整CER 23.2%(後段漏字)
SenseVoice Small完整完整完整完整(90%)只剩 69%CER 59.0%
Fun-ASR Nano完整完整85%只剩 69%崩(同一個字重複 670 次)CER 99%
Cohere Transcribe完整崩(只剩 55%)崩崩崩CER 96%

「完整」指輸出字數達到該長度預期字數的九成以上且沒有重複迴圈。換句話說:Cohere 一次只能講 30 秒以內;Fun-ASR 60 秒內沒問題,超過 90 秒開始掉字、三分鐘就崩;SenseVoice 撐到兩分鐘;Qwen3-ASR 與 Breeze 四分鐘都還完整,但 Qwen3-ASR 0.6B 到最後一段會漏字。日常聽寫一句話幾秒到幾十秒,六個模型都沒問題;要唸完整段備忘錄才需要挑。

Hex:同樣的模型,不同的結果

Hex 的 Linux 版能選的中文模型只有四個,用同一批 617 句跑,右邊放 Handy 跑同一個模型的數字對照(第四個 Cohere Transcribe 在 Hex 裡每句要重新載入 2.4 GB 模型,跑完後補上):

模型Hex 原樣 CERHex 轉繁後 CERHex 寫成簡體Handy 轉繁後 CERHex 旁白 248 秒(轉繁)Handy 旁白
Whisper large-v3-turbo23.3%9.1%310 句9.1%11.8%10.9%
Qwen3-ASR 0.6B20.3%6.7%329 句6.3%23.1%23.2%
SenseVoice Small40.5%14.0%610 句13.5%15.3%59.0%

三件事:

1. 把字型差異排除後,Hex 與 Handy 的數字幾乎一樣(9.1% 對 9.1%、6.7% 對 6.3%、14.0% 對 13.5%),證實兩個工具用的是同一個引擎與同樣的模型檔;差的那零點幾個百分點來自 Hex 沒有 Handy 的靜音裁切與後處理。

2. 「原樣」那一欄才是台灣使用者會看到的:Hex 沒有簡繁轉換,Whisper 與 Qwen 一半的句子、SenseVoice 幾乎每一句都寫成簡體,貼進文件要自己再轉一次。Hex 的設定裡找不到任何與中文字型相關的選項。

3. 長音訊的切段兩邊不同:同樣 248 秒旁白,SenseVoice 在 Handy 裡只剩不到一半內容(59%),在 Hex 裡是 15%,Hex 的切段對這類只能吃短音訊的模型比較友善;Whisper 與 Qwen 兩邊接近。

Hex 的每一句都是重新開程序、重新載入模型,所以表中沒有單獨的辨識時間;Whisper 一句約 1 秒、Qwen3-ASR 約 3 秒、SenseVoice 約 2.8 秒,含載入。桌面使用時模型常駐,不會有這段等待。

兩邊各自的錯法

  • Whisper(兩個工具都一樣):幻聽尾句、提早停止、把台灣地名寫成同音字。在 Hex 裡還多了一層:沒有簡繁轉換,輸出直接是簡體。
  • Qwen3-ASR:少數句子切到粵語;把「AI」聽成「I」(旁白裡「這八成也是 AI 寫的」變成「這八成也是 I 寫的」,0.6B 與 1.7B 都如此)。
  • Fun-ASR Nano:短句最穩的之一,但長音訊會崩;不加標點、不寫阿拉伯數字,拿來聽寫要自己補標點。
  • Breeze-ASR-25:地名與台灣用語最準,阿拉伯數字、無標點。
  • SenseVoice Small:速度最快,但長句會大段漏字,248 秒旁白只剩下不到一半的內容。
  • Cohere Transcribe、Voxtral:多語模型,中文不是強項;Voxtral 一句要 1.6 秒,是其他模型的四到六倍。

怎麼用

  • 安裝:Handy 從 GitHub Releases 下載對應平台的安裝檔(macOS 也能用 Homebrew、Windows 可用 winget,但這兩個套件不是作者維護)。Hex 從官網下載,Linux 另有一行安裝指令。
  • 選模型:兩個工具第一次啟動都會請你挑模型。Handy 的推薦清單前四個(Parakeet、Nemotron Streaming、Canary、Cohere)只有 Cohere 支援中文;要往下捲到 Qwen3-ASR、Fun-ASR、Breeze、Whisper 才是本文測到的那些。Hex 的中文選項只有 Whisper turbo、Qwen3-ASR 0.6B、SenseVoice、Cohere 四個。
  • 語言:Handy 的語言預設「自動」,改成中文可以避免偶發的簡體與外文輸出;簡繁轉換在設定裡預設就是台灣繁體(系統語言是繁體中文時)。Hex 用 --language zh 或在模型設定裡選語言,但沒有簡繁轉換,要繁體只能選本來就輸出繁體的模型(Breeze 不在它的清單裡)。
  • 短句聽寫選 Qwen3-ASR 1.7B 或 Fun-ASR Nano;要一次唸長段落選 Breeze-ASR-25 或 Whisper large-v3-turbo。
  • Linux:Handy 在 Wayland 上要另外裝輸入模擬工具(wtype 或 ydotool),Ubuntu 26.04 預設 Wayland 要照專案說明設定;Hex 的 Linux 版目前以 i3/X11 與 wlroots 系列為主,GNOME、KDE 走桌面入口協定貼上。
  • 批次用法:Handy 的 -f 指令可以在沒有桌面的機器上跑,但它啟動時會向使用者的 D-Bus 發呼叫,沒有桌面會等 25 秒逾時;把環境變數 DBUS_SESSION_BUS_ADDRESS 設成 disabled: 就只剩 0.3 秒。Hex 的 hex model transcribe 沒有這個問題。

用與不用的差別

  • 與作業系統內建聽寫比:聲音不出電腦,模型自己挑,台灣口音的錯誤率可以壓到 5% 上下,接近每 20 個字錯 1 個。
  • 與打開瀏覽器或獨立程式辨識再貼上比:省掉複製貼上的動作,按鍵、說話、放開,文字就在原本的欄位裡。
  • 代價:要有顯示卡或夠快的 CPU(本文每句 27 秒音訊在 RTX 3090 上辨識 0.2 到 0.5 秒),模型檔 0.25 到 3.3 GB;長段落要挑對模型;Linux 桌面環境的相容性仍在補。

限制

  • 測試集是朗讀句子接成的 27 秒片段,不是日常口語;真實聽寫有語助詞、停頓與自我修正,各模型的排名可能不同。
  • 只測了 Handy 與 Hex 各自預設的量化版本;同一個模型換成 Q8_0 或 F16 可能有差。
  • 兩個工具都只在 Linux 上用指令列測,沒有比較 Windows/macOS 的桌面整合與快捷鍵體驗。
  • 「每句辨識秒」是 RTX 3090 透過 Vulkan 的數字,內建顯示卡或純 CPU 會慢很多;Voxtral 之外的模型在 CPU 上是否能即時,本文沒有測。
  • 數字寫法不做正規化,對 Breeze 與 SenseVoice 不利;標點不計入錯誤。

資料來源

  • cjpais/Handy(GitHub)、anomalyco/hex(GitHub)、cjpais/transcribe.cpp(GitHub)
  • Hugging Face handy-computer 帳號的 GGUF 模型檔;各模型授權依模型卡:Qwen3-ASR、Breeze-ASR-25、Whisper、Cohere Transcribe、Voxtral 為 Apache-2.0,Fun-ASR 與 SenseVoice 為各自的模型授權
  • Common Voice 16.1 zh-TW 測試切分(JiHungLin/common_voice_16_1_zh_TW_pseudo_labelled,Apache-2.0)
  • 本站 10 月 30 日〈Nemotron 3.5 Transcribe 對比 Whisper〉的 faster-whisper 基準數據
  • 測試腳本與每一句的輸出保存在本站 ops/lab/asr-compare(handy_run.py、hex_run.py、compare_dict.py)

來源:佐證 4 筆

媒體轉述新聞媒體的報導

  1. github.com · cjpais/Handy(GitHub)
  2. github.com · anomalyco/hex(GitHub)
  3. github.com · cjpais/transcribe.cpp(GitHub)
  4. huggingface.co · Hugging Face handy-computer 模型檔

把本站的實測結果寄給你

每週一、四各一封電子報:這幾天本站自己跑出來的實測數據、踩到的坑、值得看的一兩篇專題,附免費活動與資源。不轉貼新聞,隨時可退訂。

填信箱後會收到一封確認信,點一下才算訂閱;信箱只用來寄電子報。

延伸閱讀

這篇對你有用嗎?

留言 0

會員可以登入,留言會用你的會員暱稱。

  • 還沒有留言,第一則就是你的。

留言不用登入;名字選填,沒填就顯示「匿名會員」。含連結或疑似廣告的留言會先經編輯確認;檢舉達 3 次的留言會自動隱藏。隱私政策

發現錯誤?

回報會進入待處理清單;核實後更正,並在文中註記更正紀錄。