faster-whisper 是 SYSTRAN 維護的 Whisper 推理實作。它使用 CTranslate2 作為後端,在保持 Whisper 使用方式接近的同時,讓推理速度、顯存占用和部署彈性更適合工程場景。
如果你已經用過 openai/whisper,可以把 faster-whisper 理解成一個更偏生產環境的替代方案:介面仍然圍繞模型載入、音訊轉寫、分段結果展開,但底層執行效率更高,也更容易依照 CPU、GPU、量化和批次處理策略做取捨。
它解決什麼問題
Whisper 的效果很好,但原版實作直接部署時經常會遇到幾個問題:
- 長音訊轉寫耗時明顯。
- GPU 顯存占用偏高。
- CPU 環境可用,但速度不一定理想。
- 批次處理大量音影片時,吞吐不容易提升。
faster-whisper 主要就是圍繞這些問題做最佳化。專案 README 中說明,在相同精度下,它可以比 openai/whisper 快到 4 倍,並且記憶體占用更低;如果使用 8-bit 量化,速度還可以進一步提升。
安裝
一般 Python 環境裡可以直接安裝:
|
|
如果要使用 GPU,需要確認本機 CUDA、cuDNN 與 CTranslate2 版本相容。這裡最容易踩坑的是顯示卡驅動和 CUDA runtime 版本不一致:程式碼本身可能沒問題,但執行時會在載入模型或首次推理時失敗。
基本用法
最小範例很直接:
|
|
這裡有幾個關鍵參數:
| 參數 | 作用 |
|---|---|
model_size |
選擇 Whisper 模型規格,例如 small、medium、large-v3 |
device |
推理裝置,常見值是 cuda 或 cpu |
compute_type |
計算精度,例如 float16、int8_float16、int8 |
beam_size |
解碼搜尋寬度,通常越大越穩,但速度越慢 |
如果你的目標是本機快速轉寫,通常可以先從 medium 或 large-v3 開始測試。顯存緊張時,再考慮量化。
CPU 和 GPU 怎麼選
有 NVIDIA GPU 時,優先用:
|
|
顯存不夠時可以換成:
|
|
沒有 GPU 時,可以在 CPU 上跑:
|
|
CPU 模式更適合輕量任務、後台低頻任務,或者沒有顯示卡的伺服器。要處理大量長音訊,GPU 仍然更合適。
批次轉寫
faster-whisper 也提供批次轉寫能力。批次處理適合大量短音訊,或者需要提升 GPU 吞吐的場景:
|
|
batch_size 不是越大越好。它會提高吞吐,但也會增加顯存壓力。實際部署時建議從 4、8、16 這樣的值逐步測試,找到機器能穩定承受的點。
VAD 和詞級時間戳
語音轉文字經常會遇到長靜音、背景噪音和字幕對齊問題。faster-whisper 內建了一些實用參數,可以直接在轉寫時啟用。
啟用 VAD:
|
|
取得詞級時間戳:
|
|
VAD 適合處理會議錄音、Podcast、直播回放這類包含長靜音的音訊。詞級時間戳則適合生成字幕、做逐字稿校對,或者後續接入播放器高亮。
模型怎麼選
模型選擇主要看三件事:準確率、速度、機器資源。
| 場景 | 建議 |
|---|---|
| 快速測試 | small 或 medium |
| 中文內容品質優先 | large-v3 |
| GPU 顯存緊張 | int8_float16 或更小模型 |
| CPU 跑後台任務 | 小模型加 int8 |
| 批次短音訊 | 嘗試 BatchedInferencePipeline |
如果是中文語音,建議優先測試 large-v3。如果機器壓力太大,再降低模型規格或使用量化。不要一開始就只看速度,轉寫品質下降後,人工校對時間可能會把省下來的推理時間抵消掉。
適合的使用場景
faster-whisper 很適合這些任務:
- 影片字幕生成。
- Podcast、會議、課程錄音轉文字。
- Bilibili、YouTube 等影片的本機轉寫流程。
- 批次音訊歸檔和檢索。
- 把語音內容接入 RAG、知識庫或搜尋系統。
它不直接解決說話人分離、摘要、章節切分這些上層問題,但可以作為穩定的轉寫層。後面可以再接 pyannote 做說話人分離,接 LLM 做摘要和結構化整理。
部署建議
實際使用時,可以按這個順序調試:
- 先用一段 1 到 3 分鐘的音訊確認環境能跑通。
- 再換成目標語言和目標音質的樣本測試準確率。
- 確認顯存占用,再決定是否啟用量化。
- 長音訊先切分,避免一次性任務失敗後重跑成本過高。
- 輸出結果同時保存 TXT 和 SRT,後續校對更方便。
如果是伺服器任務,最好把模型載入放在服務啟動階段,不要每次請求都重新載入模型。模型載入本身會消耗時間,頻繁載入也容易讓顯存管理變得不穩定。
小結
faster-whisper 的價值在於把 Whisper 變成更適合長期使用的轉寫元件。它不是換一個模型,而是換一套更高效的推理後端和工程介面。
對於個人工作流,可以用它快速把影片、會議、課程音訊變成文字。對於伺服器端任務,可以透過 GPU、量化、批次處理和 VAD 做效能調校。只要機器環境配置正確,它會比原版 Whisper 更適合承擔穩定、批次的語音轉文字工作。