模型 / 資料集
ggml-org/whisper.cpp avatar
ggml-org/whisper.cpp

whisper.cpp:OpenAI Whisper 的 C/C++ 移植版

whisper.cpp 是 OpenAI Whisper 語音辨識模型的零依賴 C/C++ 移植版,針對 Apple Silicon 最佳化,可在眾多平台上僅以 CPU 推論。

53,683 個 Star6,156 個 ForkC++MIT
GitHub

秒懂

它是什麼?
此儲存庫將 OpenAI 的 Whisper 語音辨識模型封裝為 C/C++ 函式庫,並附帶多種硬體後端與範例工具。
適合誰用?
ggml-org/whisper.cpp適合需要依 README 指定入口整合或部署的開發者,並不適合把倉庫描述直接當成完整產品保證的團隊。採用前先用專案明列的命令與檔案驗證:例如檢查 ggml-org/whisper.cpp 的 README、相關設定路徑與指定版本輸出,再根據實際硬體、資料流和權限邊界決定是否納入正式流程。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 C++(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

ggml-org/whisper.cpp:OpenAI Whisper 的 C/C++ 移植版

whisper.cpp 是以 C/C++ 撰寫的 OpenAI Whisper 自動語音辨識模型移植版。README 將其描述為無依賴的純 C/C++ 實作,並列出執行時期零記憶體配置這項特性。模型的高層實作位於 whisper.h 與 whisper.cpp 中,其餘程式碼屬於 ggml 機器學習函式庫。README 也將 v1.9.2 標記為穩定版本,並說明此專案僅支援推論,不包含訓練或微調路徑。

針對 ggml-org/whisper.cpp 的「OpenAI Whisper 的 C/C++ 移植版」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:建置與執行命令列工具

README 的快速開始步驟是:複製儲存庫,用 sh ./models/download-ggml-model.sh base.en 下載轉換後的模型,然後用 cmake -B build 與 cmake --build build -j --config Release 建置 whisper-cli 範例,最後用 ./build/bin/whisper-cli -f samples/jfk.wav 轉錄範例音訊。README 提醒 whisper-cli 目前只能處理 16 位元 WAV 檔案,並提供 ffmpeg 轉換命令,將輸入轉為 16 kHz 單聲道 pcm_s16le。另外,make base.en 目標會下載 base.en 模型並對 samples 資料夾中所有 .wav 檔案執行推論。

針對 ggml-org/whisper.cpp 的「建置與執行命令列工具」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:模型檔案與記憶體使用

Whisper 模型會轉換成名為 ggml 格式的自訂二進位格式,將模型參數、mel 濾波器、詞彙表與權重打包到單一檔案中。下載腳本 models/download-ggml-model.sh 用於取得這些檔案,轉換腳本 models/convert-pt-to-ggml.py 說明轉換路徑。README 提供 tiny、base、small、medium 與 large 模型的記憶體使用表。例如,tiny 模型磁碟佔用 75 MiB,執行時期約需 273 MB;large 模型磁碟佔用 2.9 GiB,執行時期約需 3.9 GB。這些數字僅針對所列模型,不涵蓋量化變體。

針對 ggml-org/whisper.cpp 的「模型檔案與記憶體使用」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:硬體後端與建置選項

README 列出對 macOS(Intel 與 Arm)、iOS、Android、Java、Linux、FreeBSD、WebAssembly、Windows(MSVC 與 MinGW)、Raspberry Pi 與 Docker 的支援。在 Apple Silicon 上,推論可透過 Metal 在 GPU 上執行,編碼器也可透過 Core ML 使用 Apple 神經網路引擎。x86 支援 AVX 指令,POWER 支援 VSX 指令。專案也記錄了 NVIDIA(cuBLAS 與自訂 CUDA 核心)、AMD(HIP/ROCm)、Vulkan、Intel(OpenVINO)、Ascend NPU(CANN)與 Moore Threads GPU(MUSA)的 GPU 後端。同時支援純 CPU 建置,並可透過 OpenBLAS 加速編碼器處理。每種後端都有對應的 cmake 開關,例如 GGML_CUDA、GGML_VULKAN、GGML_HIP、GGML_OPENVINO、GGML_CANN 與 GGML_MUSA。

針對 ggml-org/whisper.cpp 的「硬體後端與建置選項」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:量化與數值格式

實作使用混合 F16/F32 精度,並支援對 ggml 模型進行整數量化。README 表示,量化模型佔用較少記憶體與磁碟空間,在某些硬體上處理效率可能更高。quantize 工具會隨專案一起建置,可以用 q5_0 等方法轉換模型,例如 ./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0。產生的模型檔案透過 -m 參數傳給 whisper-cli。README 沒有提供量化模型的基準數據,也沒有列出除 q5_0 範例之外可用的量化方法。

針對 ggml-org/whisper.cpp 的「量化與數值格式」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:範例工具與實驗性輸出選項

examples 資料夾包含多個工具。whisper-cli 是主要的轉錄與翻譯工具,whisper-bench 測量編碼器執行時間,whisper-stream 從麥克風進行即時轉錄,whisper-command 是基本語音助手,whisper-server 提供與 OpenAI 介面類似的 HTTP 轉錄服務,whisper-talk-llama 將語音輸入連接到 LLaMA 機器人。部分範例有 WebAssembly 版本。README 也記錄了實驗性輸出選項:--print-colors 信心度著色、-ml 限制行長度、-ml 1 產生詞級時間戳、-owts 產生卡拉 OK 風格影片,以及 -tdrz 透過 tinydiarize 進行說話者分段。語音活動偵測透過 --vad 參數啟用,需要單獨的 VAD 模型,例如 Silero-VAD。

針對 ggml-org/whisper.cpp 的「範例工具與實驗性輸出選項」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

ggml-org/whisper.cpp:綁定、打包與授權

README 列出 Rust、JavaScript、Go、Java、Ruby、Objective-C/Swift、.NET、Python、R 與 Unity 的綁定,並附有外部儲存庫連結。專案也提供預編譯的 XCFramework(用於 Apple 平台)以及包含 CUDA、MUSA 與 Vulkan 變體的 Docker 映像。Conan 套件可透過 conan install --requires="whisper-cpp/[*]" --build=missing 安裝。儲存庫使用 MIT 授權,允許使用、複製、修改、合併、發布、散佈、再授權與銷售副本。授權同時聲明軟體以現況提供,不附帶任何形式的擔保。README 沒有描述支援模式,列出的唯一限制是專案僅支援推論。

針對 ggml-org/whisper.cpp 的「綁定、打包與授權」內容,實際採用時要把文件中的名詞對回程式庫位置,而不是只看功能清單。先確認本段提到的入口、命令或檔案是否存在,再觀察命令的退出狀態、產物位置與錯誤訊息。若 README 沒有交代作業系統、版本相容性或資源上限,這些就屬於尚未證實的條件,不能從描述推導成保證。對維運人員而言,應把 whisper.cpp 的版本、輸入資料、設定值和輸出紀錄放在同一次測試中,才能分辨是環境差異還是專案本身的行為。這項檢查也能提前暴露權限、網路、硬體或依賴缺失,讓是否採用有可追溯的依據。

編輯結論

ggml-org/whisper.cpp適合需要依 README 指定入口整合或部署的開發者,並不適合把倉庫描述直接當成完整產品保證的團隊。採用前先用專案明列的命令與檔案驗證:例如檢查 ggml-org/whisper.cpp 的 README、相關設定路徑與指定版本輸出,再根據實際硬體、資料流和權限邊界決定是否納入正式流程。這個判斷也應包含授權條款對散布、修改與第三方依賴的具體要求。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記