技術

Whisper AI 運作原理:完整指南

深入剖析 OpenAI 的開源語音辨識模型——從梅爾頻譜圖到 Transformer 解碼。

OpenWhispr

OpenWhispr

工程

2026 年 2 月 3 日
目錄

Whisper 是 OpenAI 開發的自動語音辨識(ASR)模型。它於 2022 年 9 月發布,是一套通用語音辨識系統,以從網際網路蒐集的 68 萬小時多語言音訊資料訓練而成。Whisper 採用編碼器—解碼器 Transformer 架構,將音訊轉換為對數梅爾頻譜圖,透過神經網路編碼器處理,再以自迴歸方式解碼出文字 token。它支援 99 種語言的轉錄、翻譯成英文、語言辨識,以及時間戳預測——全部整合在單一統一模型中。與大多數商用 ASR 服務不同,Whisper 的權重在 MIT 授權下完全開源,催生出蓬勃發展的移植版本、最佳化方案與應用生態——其中包括 whisper.cpp,這個 C/C++ 實作讓 Whisper 得以實現即時、裝置端的語音辨識。

最後更新:2026 年 2 月 17 日。本文中的量化陳述均經過至少兩個原始來源交叉查證。

事實查核快照(雙重來源)

  • Whisper 發布、訓練規模與授權: OpenAI 於 2022 年 9 月發布 Whisper,以 68 萬小時資料訓練,採用 MIT 授權。 arXiv 論文 · OpenAI Whisper 程式庫
  • 任務範圍與語言支援: Whisper 支援轉錄、翻譯成英文、語言辨識,以及橫跨 99 種語言的時間戳 token。 Whisper 模型卡 · Whisper README
  • 英文基準背景: 約 3% 的 WER 是在 LibriSpeech test-clean 上針對英文評估的基準數字,並非通用的真實世界錯誤率。 large-v2 模型卡 · 基準細節
  • 近期模型更新: large-v3 在多種語言上的錯誤率低於 large-v2,而 turbo 則著重於更低延遲與更小的解碼器運算量。 large-v3 模型卡 · turbo 發布討論
  • 與 OpenWhispr 的關聯: OpenWhispr 透過 whisper.cpp 使用 Whisper,在各桌面平台上提供本機、離線優先的口述聽寫。 whisper.cpp · OpenWhispr

Whisper 如何處理音訊

音訊輸入
Log-Mel 特性
編碼器
解碼器
文字

為什麼它對 OpenWhispr: 很重要

透過 whisper.cpp 在本地運作 — 原始音訊保留在裝置上。

模型大小控制速度/準確性的權衡。

相同的管線支援 macOS、Windows 和 Linux 之間的聽寫。

什麼是 Whisper?

Whisper 由 OpenAI 的 Alec Radford、Jong Wook Kim、Tao Xu、Greg Brockman、Christine McLeavey 與 Ilya Sutskever 在論文 《Robust Speech Recognition via Large-Scale Weak Supervision》中提出。程式碼與模型權重於 2022 年 9 月在 GitHub 上以 MIT 授權發布。

在 Whisper 之前,最先進的語音辨識系統通常以經過篩選、由人工標註的資料集訓練——往往侷限於特定語言、口音或領域。Whisper 打破了這種做法,改以一個龐大、多元的資料集進行訓練:68 萬小時的音訊,搭配從網際網路擷取的逐字稿。關鍵洞見在於,這種「弱監督」方法——使用不完美的、由機器生成或使用者上傳的逐字稿,而非人工標註的資料——能夠造就一個在語言、口音、背景噪音與專業術語上都具有卓越穩健性的模型。

成果是一個能處理多種語音任務的單一模型:轉錄(將語音轉成同一語言的文字)、翻譯(將任何語言的語音轉成英文)、語言辨識,以及帶時間戳的語音活動偵測。這種多任務能力透過一套指定要執行哪項任務的特殊 token,內建於模型架構之中。

Whisper 的開源發布意義重大。它讓高品質的 ASR 得以普及,使開發者、研究人員與企業都能使用一個足以與商用 API 匹敵的模型——不必按分鐘計費、不必把音訊送往雲端,也不必受制於特定廠商。這促成了 whisper.cppFaster Whisper 等工具,以及數十款以它們為基礎打造的應用——其中也包括 OpenWhispr

架構深度解析

Whisper 採用編碼器—解碼器 Transformer 架構——這與原始 Transformer(Vaswani 等人,2017)以及許多機器翻譯系統背後的根本設計相同。編碼器處理音訊,解碼器生成文字。以下說明每個階段的運作方式。

音訊前處理

在進行任何神經網路處理之前,原始音訊會先轉換成一種稱為對數梅爾頻譜圖的聲音視覺化表示。流程如下:

  1. 音訊重新取樣至 16,000 Hz(16 kHz 單聲道)。
  2. 25 毫秒視窗搭配 10 毫秒位移(hop length)計算短時傅立葉轉換(STFT)。
  3. 頻譜被投影到 80 個梅爾頻率濾波器組(large-v3 為 128 個),透過以對數方式排列頻帶來近似人類聽覺感知。
  4. 套用對數縮放,產生最終的對數梅爾頻譜圖。
  5. 頻譜圖被切分為 30 秒區塊。短於 30 秒的音訊會以零填補;較長的音訊則以連續區塊處理。

成果是一個形狀為 (80, 3000) 的 2D 表示——80 個梅爾通道乘上 3,000 個時間步(以 10 毫秒位移計的 30 秒)。這類似於一張影像,編碼器處理它的方式也很像視覺模型處理像素資料。

編碼器

編碼器將梅爾頻譜圖轉換為一連串學習得來的音訊表示。它由以下部分組成:

  1. 兩個 1D 卷積層——第一個卷積的 kernel 大小為 3、padding 為 1,後接 GELU 激活。第二個卷積的 kernel 大小為 3、stride 為 2、padding 為 1,會將時間維度減半。這會把 3,000 個時間步下採樣為 1,500 個位置。
  2. 正弦位置嵌入——與解碼器不同,編碼器使用固定的正弦嵌入(非學習得來),用以編碼每個時間步的位置。
  3. Transformer 區塊——一疊標準的 Transformer 編碼器層,每層包含多頭自注意力與一個帶 GELU 激活的前饋網路,並透過殘差連接與層正規化相連。

輸出是一連串 1,500 個帶上下文的音訊特徵向量——每 20 毫秒輸入音訊對應一個——解碼器會在生成文字時對其進行注意力運算。

解碼器

解碼器以自迴歸方式生成文字 token——一次一個 token,每個 token 都以編碼後的音訊與所有先前生成的 token 為條件。它由以下部分組成:

  1. Token 嵌入層——將 token ID 轉換為密集向量表示。
  2. 學習得來的位置嵌入——與編碼器的正弦嵌入不同,解碼器使用與模型一同訓練的學習式位置嵌入。
  3. 帶交叉注意力的 Transformer 區塊——每個解碼器層有三個子層:遮罩式自注意力(避免模型看到未來的 token)、對編碼器輸出的交叉注意力(讓模型得以「聆聽」音訊),以及一個前饋網路。

最終的解碼器輸出會被投影到詞彙表上,以產生 token 機率。解碼策略包括貪婪搜尋、束搜尋,以及基於溫度的取樣。

特殊 Token 與多任務訓練

Whisper 透過一套巧妙的、充當指令的特殊 token 系統,以單一模型執行多項任務。解碼器輸入遵循一種結構化格式:

<|startoftranscript|> <|en|> <|transcribe|> <|notimestamps|> Hello, how are you today? <|endoftext|>
  • <|startoftranscript|> ——標示輸出序列的開始。
  • <|en|> ——指定語言(99 個語言 token 之一)。可自動偵測或手動設定。
  • <|transcribe|> <|translate|> ——指定要以原始語言轉錄,還是翻譯成英文。
  • <|notimestamps|> ——控制是否產生時間戳 token。啟用時間戳時,模型會生成像這樣的時間偏移 token <|0.00|> <|2.40|> ,用以將文字對齊到音訊。

這種統一的 token 格式意味著單一模型就能執行轉錄、翻譯、語言偵測與帶時間戳的轉錄——全都不需要獨立的模型頭或微調。任務完全由提供給解碼器的 token 序列決定。

訓練資料

原始的 Whisper 模型(從 tiny 到 large-v2)以 68 萬小時的音訊搭配從網際網路蒐集的逐字稿訓練而成。這個資料集並未公開。其關鍵特性在於屬於弱監督——逐字稿標註並未經人工標註者逐一核實,而是來自字幕、隱藏式字幕以及其他與音訊配對的使用者生成文字等來源。

資料組成

根據官方模型卡,這 68 萬小時的訓練集細分如下:

類別小時數占比說明
英文 ASR438,00065%英文音訊搭配英文逐字稿
翻譯(X 轉英文)126,00018%非英文音訊搭配英文逐字稿
多語言 ASR117,00017%非英文音訊搭配母語逐字稿(涵蓋 98 種語言)

嚴重的英文偏重(占訓練資料 65%)解釋了為何 Whisper 在英文上的表現明顯優於資源較少的語言。至於 2023 年 11 月發布的 large-v3 模型,OpenAI 將訓練集擴充至 100 萬小時的弱標註音訊,外加額外 400 萬小時的偽標註音訊——後者是透過讓 Whisper large-v2 處理未標註資料所生成,屬於一種自我訓練或知識蒸餾。

為何「弱監督」很重要

大多數早期的 ASR 系統以 LibriSpeech(960 小時)或 Common Voice(每種語言數千小時)這類資料集訓練——都是經過細心篩選、人工核實的資料集。Whisper 的做法是以標註品質換取單純的規模:68 萬小時,相對於傳統系統使用的數百到數千小時。論文證明這種取捨是值得的。來自網際網路的資料多元性,賦予 Whisper 對真實世界條件的卓越穩健性:背景噪音、重疊語音、口音、特定領域詞彙,以及那些會難倒以錄音室品質朗讀語音訓練之模型的聲學環境。

然而,弱監督也帶來一個已知限制:幻覺。由於訓練逐字稿並不完美,模型有時會生成聽起來合理、但實際上根本沒人說過的文字——尤其是在靜默或非常安靜的段落。這是這種方法固有的取捨,至今仍是積極改進的領域。

模型尺寸

Whisper 提供多種尺寸,參數量從 3,900 萬到 15.5 億不等。較小的模型速度較快但準確度較低;較大的模型準確度較高,但需要更多運算與記憶體。.en 變體是純英文模型,對英文的表現往往較佳,尤其在較小的尺寸上更為明顯。large 模型沒有純英文變體。

模型參數量純英文VRAM相對速度
tiny39 Mtiny.en~1 GB~10x
base74 Mbase.en~1 GB~7x
small244 Msmall.en~2 GB~4x
medium769 Mmedium.en~5 GB~2x
large (v1, v2, v3)1,550 M--~10 GB1x
turbo (large-v3-turbo)809 M--~6 GB~8x

速度相對於 large 模型而言。VRAM 需求為透過原始 Python 實作、以 fp16 精度進行 GPU 推論時的數值。whisper.cpp 使用的記憶體大幅減少(例如 large 模型只需約 3.9 GB RAM,而非約 10 GB VRAM)。

turbo 模型(2024 年 10 月發布)是 large-v3 的蒸餾版本,搭配大幅縮小的解碼器。它保留了 large-v3 的大部分準確度,同時執行速度約快 8 倍——使其在重視速度時成為絕佳選擇。請注意,turbo 不支援翻譯任務。

large 模型歷經三次迭代:large-v1(2022 年 9 月)、large-v2(2022 年 12 月)與 large-v3(2023 年 11 月)。每個版本都提升了準確度,large-v3 將梅爾頻率分箱從 80 增至 128,並以大得多的資料集訓練。若想詳細了解各尺寸的差異與如何選擇,請參閱我們的Whisper 模型尺寸指南

Whisper 的準確度如何?

Whisper 的準確度通常以詞錯誤率(WER)衡量——即被錯誤轉錄的字詞百分比(插入、刪除與替換的總和)。WER 越低越好。

英文基準

LibriSpeech test-clean——最廣泛使用的英文 ASR 基準,由有聲書中乾淨的朗讀語音組成——上,Whisper large-v2 達到約 3.0% 的 WER[1][2]。這足以與商用 ASR 系統及專門訓練的模型匹敵,不過在 LibriSpeech 上微調過的特化模型,在該特定基準上可以達到更低的 WER。Whisper 的優勢不在於攻克狹隘的基準,而在於穩健性——在各種真實世界條件下都能維持穩定的優異表現。

large-v3 的改進

根據 OpenAI 的評估,在 Common Voice 15 與 Fleurs 評估資料集上錯誤率低於 60% 的語言中,Whisper large-v3 相較於 large-v2 展現出 10–20% 的錯誤率降幅[2][3]。這些改進在非英文語言上尤其顯著,擴充後的訓練資料(共 500 萬小時)在那裡帶來最大的差異。

Whisper 的比較定位(2026 年 2 月)

自 Whisper 發布以來,較新的開源 ASR 模型已在乾淨語音基準上超越它。NVIDIA 的 Parakeet TDT(0.6B 參數)在 LibriSpeech test-clean 上達到 1.69% 的 WER,其 Canary 模型則達到 1.6% 的 WER——兩者都明顯低於 Whisper large-v3 的約 2.7%。不過,由於生態成熟、語言涵蓋廣泛,以及像 whisper.cpp 這類最佳化執行環境的存在,Whisper 仍是部署最廣泛的開源 ASR 模型。

詞錯誤率:Whisper 與開源競爭對手

LibriSpeech test-clean(英文朗讀演講)-越低越好

NVIDIA
其他開源
OpenAI Whisper

來源:Hugging Face 模型卡、NVIDIA 模型卡、Open ASR Leaderboard (Feb 2026)。僅限純英語朗讀語音 - 現實世界的準確性因音訊品質、口音和領域而異。商業 API 被省略,因為它們不會發布 LibriSpeech 基準。

註:商用雲端 API(Deepgram Nova-3、Google Chirp、AssemblyAI Universal-2)並未公布 LibriSpeech 的 WER 數字,因此無法在本圖表中直接比較。它們的基準採用專有的真實世界測試集。OpenAI 也於 2025 年 3 月發布了 GPT-4o-transcribe,作為僅供 API 使用的模型(非開源、非以 Whisper 為基礎),據稱錯誤率更低——但它僅限雲端,無法用於本機推論。

Whisper 的強項

  • +對口音與方言的穩健性 ——以多元的網際網路音訊訓練,Whisper 在處理區域口音上勝過以朗讀語音訓練的系統。
  • +對背景噪音的容忍度 ——即使在有音樂、其他說話者或環境噪音的情況下,模型仍能維持合理的準確度。
  • +專業術語 ——得益於訓練資料的廣度,Whisper 在處理特定領域術語(醫療、法律、技術)上勝過許多通用 ASR 系統。
  • +多語言能力 ——單一模型即支援 99 種語言,無需逐語言微調。

Whisper 的弱項

  • -幻覺 ——最常被提及的問題。在靜默或非常安靜的段落,Whisper 可能生成從未被說出的文字。這是弱監督訓練方法的後果。
  • -低資源語言 ——訓練資料稀少的語言(68 萬小時中大部分是英文)錯誤率明顯較高。
  • -重複文字生成 ——自迴歸解碼器可能「卡」在迴圈中,反覆產生相同的短語。搭配特定參數的束搜尋可以緩解,但無法完全消除這個問題。
  • -預設不支援即時處理 ——Whisper 處理 30 秒區塊,因此存在固有延遲。串流解決方案(如 whisper.cpp 的即時模式)能繞過這點,但會增加複雜度。

whisper.cpp 與本機推論

原始的 Whisper 實作需要 Python、PyTorch 與一張支援 CUDA 的 GPU 才能有合理效能。這使它在桌面應用、行動裝置與邊緣部署上難以實用。由 Georgi Gerganov 打造的 whisper.cpp 解決了這個問題。

whisper.cpp 是以純 C/C++、零相依套件對 Whisper 推論的完整重新實作。它讀取相同的模型權重,但無需 Python、無需 PyTorch,也無需 GPU 即可執行(不過有 GPU 會大幅受益)。主要特色包括:

  • 零執行期記憶體配置 ——所有記憶體都預先配置,使效能可預測,並適合嵌入式系統。
  • Apple Silicon 最佳化 ——在搭載 M 系列晶片的 Mac 上,編碼器可透過 Core ML 在 Apple Neural Engine 上執行,相較於純 CPU 執行可帶來超過 3 倍的推論加速。同時也支援 Metal GPU 加速以進行完整的 GPU 推論。
  • 量化支援 ——模型可量化為 4-bit、5-bit 或 8-bit 整數精度,在準確度損失極小的情況下大幅降低記憶體用量並提升速度。
  • GPU 加速 ——支援 NVIDIA CUDA(透過 cuBLAS)、Vulkan(跨廠商)、OpenVINO(Intel),以及用於 CPU 加速的 OpenBLAS。
  • 語音活動偵測(VAD) ——內建 VAD 以跳過靜默片段,同時提升速度與逐字稿品質。

記憶體需求(whisper.cpp)

模型磁碟大小所需 RAM
tiny75 MB~273 MB
base142 MB~388 MB
small466 MB~852 MB
medium1.5 GB~2.1 GB
large2.9 GB~3.9 GB

whisper.cpp 可在 macOS(Intel 與 Apple Silicon)、Linux、Windows、iOS、Android、FreeBSD、Raspberry Pi 上執行,甚至能透過 WebAssembly 在瀏覽器中執行。它在一般消費級硬體上就能達到快於即時的轉錄——包括 Raspberry Pi 4 與 iPhone 13 這類小型裝置。

正是這種可攜性,讓本機、私密的語音辨識變得實用。像 OpenWhispr 這樣的應用,底層便採用 whisper.cpp 來提供完全在使用者裝置上執行的即時按鍵口述聽寫——音訊永遠不會離開這台機器。

Whisper 與其他 ASR 系統的比較

Whisper 存在於更廣闊的語音辨識系統版圖之中。以下是它與最常見替代方案的比較。

Google Cloud Speech-to-Text

Google 的雲端 ASR 服務。準確度極佳,尤其在英文上,並支援即時串流與說話者分離。主要差異在於:它是專有的、需要將音訊送往 Google 的伺服器,且按處理的音訊分鐘數計費。Whisper 在一般用途上提供相當的準確度、可在本機執行,且免費——但缺乏內建的串流與說話者分離。

僅限雲端專有按用量計費

Amazon Transcribe (AWS)

Amazon 的雲端 ASR,與 AWS 生態系緊密整合。提供醫療轉錄、通話分析與自訂詞彙。與 Google 有類似的取捨:依賴雲端、按分鐘計費,且為專有。對於需要離線運作、開源授權或不受廠商綁定的應用,Whisper 是更合適的選擇。

僅限雲端專有AWS 整合

Mozilla DeepSpeech

Mozilla 基於百度 Deep Speech 研究打造的開源 ASR 引擎。它曾是最早的高品質開源 ASR 模型之一,但 Mozilla 已於 2021 年停止積極開發。Whisper 在準確度、多語言支援與社群動能上已實質取代 DeepSpeech。DeepSpeech 作為輕量、易於理解的基準仍有用處,但已不再推薦用於新專案。

開源已停止開發以英文為主

Vosk

一套支援 20 多種語言、模型小巧而快速的開源離線語音辨識工具包。Vosk 非常適合資源受限的環境——其模型只有 Whisper 的一小部分大小,在低功耗硬體上也能順暢執行。代價在於準確度:Vosk 明顯不如 Whisper 準確,尤其是在帶口音的語音、嘈雜音訊與專業術語上。

開源輕量準確度較低

Faster Whisper (CTranslate2)

使用 SYSTRAN 的 CTranslate2 推論引擎對 Whisper 的重新實作。它以相同的準確度執行相同的 Whisper 模型,但速度最高可達原始 OpenAI 實作的 4 倍,且記憶體用量更低。Faster Whisper 以 Python 為基礎(不同於 whisper.cpp 的 C/C++),是伺服器端批次轉錄的絕佳選擇。它支援 CUDA GPU,以及搭配 INT8 量化的 CPU 推論。

開源Python / CTranslate2與 Whisper 相同的準確度

實際應用

Whisper 結合了準確度、多語言支援與開源可得性,使其成為各式各樣應用的支柱:

桌面口述聽寫

OpenWhispr 這樣的應用,運用 whisper.cpp 在 macOS、Windows 與 Linux 上提供系統層級的按鍵口述聽寫。音訊在本機處理——不會有任何內容送往雲端。

字幕生成

Whisper 的時間戳預測使其非常適合生成字幕與隱藏式字幕。stable-tsauto-subtitle 等工具可自動化這套工作流程。

Podcast 與會議轉錄

Whisper 能妥善處理長篇音訊轉錄,尤其搭配分塊處理的方法時。許多 Podcast 編輯器與會議筆記工具都使用 Whisper(或 Faster Whisper)來批次轉錄錄音。

翻譯與在地化

Whisper 內建的翻譯能力(任何語言轉成英文)被用於跨語言內容取用、媒體在地化,以及即時翻譯原型。

無障礙

為失聰與聽障使用者提供即時字幕、為肢體障礙使用者提供語音介面,以及音訊描述的轉錄——這些都是 Whisper 正積極投入的領域。

資料標註與研究

研究人員使用 Whisper 來建立偽標註資料集以訓練其他模型——這正是 OpenAI 用來建立 large-v3 訓練資料的方法。它也被廣泛用於語言學研究與語料庫建置。

資料來源與延伸閱讀

  1. [論文] Radford, A., Kim, J. W., Xu, T., Brockman, G., McLeavey, C., & Sutskever, I. (2022). Robust Speech Recognition via Large-Scale Weak Supervision. arXiv:2212.04356. arxiv.org/abs/2212.04356
  2. [程式碼] OpenAI Whisper GitHub 程式庫。 github.com/openai/whisper
  3. [程式碼] whisper.cpp——Georgi Gerganov 的 C/C++ 移植版。 github.com/ggml-org/whisper.cpp
  4. [模型卡] Hugging Face 上的 Whisper large-v2(WER 基準:LibriSpeech test-clean 約 3.0%)。 huggingface.co/openai/whisper-large-v2
  5. [模型卡] Hugging Face 上的 Whisper large-v3(相較 v2 錯誤率降低 10–20%)。 huggingface.co/openai/whisper-large-v3
  6. [模型卡] Hugging Face 上的 Whisper large-v3-turbo(著重延遲的蒸餾變體)。 huggingface.co/openai/whisper-large-v3-turbo
  7. [模型卡] OpenAI Whisper 模型卡(訓練資料組成細項)。 github.com/openai/whisper/blob/main/model-card.md
  8. [發布說明] OpenAI large-v3 發布公告與評估說明。 github.com/openai/whisper/discussions/1762
  9. [發布說明] OpenAI turbo 發布討論與著重速度的取捨。 github.com/openai/whisper/discussions/2363
  10. [程式碼] Faster Whisper——SYSTRAN 基於 CTranslate2 的重新實作。 github.com/SYSTRAN/faster-whisper
  11. [產品] OpenWhispr 透過 whisper.cpp 使用 Whisper 來進行本機口述聽寫工作流程。 openwhispr.com

用 OpenWhispr 在本機體驗 Whisper

OpenWhispr 透過 whisper.cpp 使用 Whisper,在 macOS、Windows 與 Linux 上提供本機、私密的口述聽寫。按鍵即說、99 種以上語言、無需雲端。免費試用。

無需帳號 · 可離線運作 · 永遠開源