如果一小時中文會議錄音不能上傳雲端,你需要的是能在自己電腦執行、可批次處理、輸出格式固定的轉錄管線。whisper.cpp 適合這種情境,但安裝成功只代表程式能跑;模型選錯、音訊太差或沒有校稿規則,仍可能把人名、金額與否定句轉錯。
下列步驟會從零跑通本機中文逐字稿,並把結果輸出成 TXT 與 SRT。只想在 Mac 拖放檔案可看 MacWhisper 教學;工作重點是逐句校時間軸,改看 Subtitle Edit Whisper 字幕流程;需要會議 Bot、團隊分享與雲端整合,則比較 Notta。
whisper.cpp 是什麼,和 OpenAI Whisper 有何差別?
OpenAI Whisper 是通用語音辨識模型與 Python 參考實作,可做多語辨識、語言偵測與語音翻譯。whisper.cpp 是 ggml-org 維護的 C/C++ 推論實作,使用轉換成 GGML 格式的模型,支援 CPU、Apple Silicon、NVIDIA CUDA、AMD ROCm、Vulkan、OpenVINO、Docker 與多種平台整合。
兩個專案的程式與模型權重都採 MIT License;這表示可以使用、修改與散布,但仍要保留授權聲明,也要自行確認錄音內容、聲音權利、個資與所在地法律。whisper.cpp 官方 README 把限制寫為 inference only,它不是訓練新模型或完整會議管理平台。
本機轉錄的隱私優勢來自部署方式。模型、音訊與輸出都留在本機時,推論不必呼叫雲端;但模型第一次下載需要網路,你的同步硬碟、備份、暫存檔、日誌與後處理工具仍可能把資料帶離設備。正式處理機密錄音前,要驗證整條路徑,不只看 Whisper 本身。
安裝前要準備什麼?
你需要 Git、CMake、可用的 C/C++ 編譯環境,以及足夠的磁碟與記憶體。Windows 最省事的方式是安裝 Visual Studio Build Tools 的 Desktop development with C++;macOS 安裝 Xcode Command Line Tools;Linux 則準備 GCC 或 Clang。實際套件名稱會依系統更新,CMake 能在終端機執行後再開始。
音訊方面,whisper-cli 說明目前列出 FLAC、MP3、OGG 與 WAV。若檔案讀取失敗、來源是影片或編碼很複雜,先用 FFmpeg 轉成官方快速入門建議的 16-bit、16kHz、單聲道 WAV:
ffmpeg -i meeting.mp4 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav
轉單聲道方便一般轉錄,但會失去左右聲道原本分開的講者資訊。若你打算使用雙聲道 --diarize,請保留原始檔,另外產生測試副本。
macOS、Linux 怎麼安裝?
下面依官方 Quick start編譯。中文要下載多語模型 small,不要使用只辨識英文的 small.en。
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh small
cmake -B build
cmake --build build -j --config Release
先確認指令與模型可用,再轉自己的錄音:
./build/bin/whisper-cli \
-m models/ggml-small.bin \
-f meeting.wav \
-l zh \
-otxt -osrt \
-of meeting-transcript
完成後應看到 meeting-transcript.txt 與 meeting-transcript.srt。不同版本的參數可能新增或調整,部署前執行 ./build/bin/whisper-cli -h,不要把網路文章裡的舊參數直接寫死到正式腳本。
Windows 怎麼安裝?
請在已載入 C++ 編譯工具的 PowerShell 或 Developer PowerShell 執行。官方倉庫提供 Windows 模型下載腳本;Release 組態的執行檔通常會在 build\bin\Release。
git clone https://github.com/ggml-org/whisper.cpp.git
Set-Location whisper.cpp
.\models\download-ggml-model.cmd small
cmake -B build
cmake --build build --config Release
第一支中文錄音可以這樣跑:
.\build\bin\Release\whisper-cli.exe `
-m .\models\ggml-small.bin `
-f .\meeting.wav `
-l zh `
-otxt -osrt `
-of .\meeting-transcript
若編譯找不到 compiler,先修正 Visual Studio Build Tools 或 CMake 環境;若執行檔路徑不同,在 build\bin 下搜尋 whisper-cli.exe。不要從陌生網站下載包裝過的可執行檔或模型,優先使用 ggml-org 官方 Release 與倉庫。
中文模型該選 small、medium 還是 large?
先用同一段 10 至 20 分鐘的真實錄音建立基準。tiny 和 base 適合確認流程能否執行;中文會議可從 small 起跑;若口音、噪音或專有名詞很多,再測 medium 或 large 系列。.en 後綴是英文專用版,不適合繁中錄音。
模型越大通常需要更多磁碟、記憶體與處理時間,但「大就一定準」也不能當驗收。OpenAI 的模型表明確提醒,速度會受語言、說話速度與硬體影響。whisper.cpp README 目前列出的未量化模型大約從 tiny 75MiB 到 large 2.9GiB,執行記憶體也隨模型增加;正式數字應以當前模型頁為準。
量化模型會減少檔案與記憶體需求,部分硬體也可能更快,代價是辨識品質可能變動。判斷標準應是「整體交付時間」:轉錄 60 分鐘花多久,加上人工修正又花多久。快 20 分鐘卻多校一小時,沒有真的省時間。
如何輸出逐字稿、字幕與 JSON?
whisper-cli 目前支援 -otxt、-osrt、-ovtt、-ocsv、-oj 與完整 JSON 等輸出選項;-of 指定不含副檔名的輸出路徑。純逐字稿用 TXT,影片字幕用 SRT 或 VTT,自動化流程需要時間與分段資訊時可測 JSON 或 CSV。
字幕輸出仍是初稿。你要在 Subtitle Edit 或剪輯軟體裡檢查斷句、每行長度、重疊、畫面切點與閱讀速度。中文標點也可能不穩,後處理工具只能修標點與格式,不能擅自改變金額、否定詞或原意。
專有名詞可用 --prompt 提供初始提示,例如公司名、產品名與人名;它是提示,不是保證正確的強制詞庫。先拿自己的測試集量化錯誤,別只看一段乾淨示範音檔。
長錄音要不要開 VAD?
whisper.cpp 支援 Voice Activity Detection。搭配支援的 VAD 模型與 --vad 後,系統先找出有語音的片段,再把這些片段交給 Whisper,可減少長時間靜音的處理量。官方 README 目前示範 Silero VAD,模型下載與參數請以 VAD 章節為準。
VAD 門檻設太高可能切掉小聲、短促的話,太低又會把噪音當語音。正式啟用前,拿包含停頓、多人插話與遠距麥克風的錄音比較:是否漏句、時間戳是否位移、總速度改善多少。保留原始音訊,讓問題可重跑。
whisper.cpp 能自動分辨誰在說話嗎?
一般單聲道錄音不能期待它直接產出可靠的「王先生/陳小姐」姓名。CLI 的 --diarize 是 stereo audio diarization,利用左右聲道估計講者;只有錄音本來就把不同講者分到不同聲道時才有意義。--tinydiarize 還需要對應的 tdrz 模型,效果與用途也要另外測試。
真正的多人 speaker diarization 通常需要額外模型或服務,再把講者區段和 Whisper 文字對齊。醫療、訪談、法律或董事會紀錄若要求誰說了什麼,應把講者分離當獨立驗收項目,不能看到時間戳就算完成。
正式上線前怎麼測?
準備 30 至 60 分鐘、涵蓋實際場景的錄音:安靜與吵雜、單人與多人、台語或英文夾雜、遠近麥克風、常見人名與金額。人工做一小份正確稿,固定同一台機器,逐一比較模型、量化、VAD 和硬體加速設定。
至少記錄總處理時間、峰值記憶體、漏句、專有名詞、數字、否定句、時間戳與人工校稿分鐘數。升級 whisper.cpp、FFmpeg、模型或驅動後,用同一批資料重跑。沒有可重跑測試集的「感覺更準」,很難保護正式流程。
若需要批次服務,先從資料夾佇列與固定輸出命名開始,再評估官方的 whisper-server 或 Docker 映像。內網部署也要補權限、暫存檔清理、日誌遮罩、失敗重試與原始音訊保留期限;離線推論不會自動完成這些治理工作。
FAQ
whisper.cpp 是 OpenAI 官方工具嗎?
不是。它由 ggml-org 社群維護,實作 OpenAI 發布的 Whisper 模型推論。OpenAI Whisper 與 whisper.cpp 都採 MIT License,但版本、模型轉換、參數與硬體後端由各專案分別維護。
whisper.cpp 可以完全離線使用嗎?
程式、模型與依賴下載完成後,轉錄推論可以在本機離線執行。仍要檢查作業系統備份、雲端同步資料夾、暫存檔、日誌,以及後續摘要或校稿工具是否會把內容送出去。
中文錄音可以用 base.en 或 small.en 嗎?
不建議。.en 是英文專用模型;中文請選沒有 .en 後綴的多語模型,例如 small 或 medium。先用真實錄音測試,再依校稿量和硬體決定大小。
有 NVIDIA 或 Apple Silicon,會自動變快嗎?
要看編譯選項與執行輸出。官方提供 CUDA、Metal/Core ML、Vulkan、ROCm 與 OpenVINO 等後端說明;硬體存在不代表目前 binary 已啟用。查看啟動時的 system info,並用 whisper-bench 或固定錄音比較 CPU 與加速版本。
whisper.cpp 和 faster-whisper 怎麼選?
想要輕量 C/C++ 整合、廣泛裝置支援、單一 GGML 模型檔與原生應用嵌入,可先試 whisper.cpp。現有流程以 Python、CTranslate2 或 GPU 批次服務為主時,faster-whisper 可能較順。兩者都要用同一測試集比較辨識、速度、記憶體與維運成本。