
faster-whisper快速語音轉錄提速4倍【免費下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper13分鐘的會議錄音在一張8GB的顯卡上跑官方 openai/whisper 用了2分23秒faster-whisper 語音轉錄只要1分03秒再開 int8 量化是59秒顯存從4.7GB降到2.9GB。它做的事并不神秘——把同一套 Whisper 模型權重搬到 CTranslate2 推理引擎上跑量化、批處理和 VAD 過濾都是圍繞這個引擎加的。faster-whisper 到底做了什么它是一個 Python 庫輸入一個音頻文件mp3、m4a、flac、wav 都行輸出檢測到的語言、每段文本及其起止時間戳還可以拿到詞級時間戳和置信度。中間環節是PyAV 解碼音頻所以不用往系統里裝 FFmpegSilero VAD 模型先圈出有人聲的區間CTranslate2 負責跑編碼器-解碼器推理。一句話就是音頻進帶時間戳的文字出。完整的參數和返回結構在 faster_whisper/transcribe.py 里想摳細節可以直接讀源碼。批量會議錄音走通一次轉錄說下具體場景手上有幾段三四十分鐘的會議錄音要交給字幕系統要求每段帶時間戳。model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe( meeting.mp3, beam_size5, vad_filterTrue, word_timestampsTrue ) for seg in list(segments): print(seg.start, seg.end, seg.text)這段代碼跑起來后內部發生的事音頻先解碼成 16kHz 單聲道VAD 把連續語音區間標出來默認只刪超過2秒的靜音模型按30秒窗口逐段解碼。beam_size5表示解碼時每步保留5個最可能的候選序列越大越準也越慢。VAD 在長會議音頻上省掉的算力很可觀——靜音和停頓直接不進解碼器。有個容易踩的坑segments是生成器。transcribe()返回時一幀音頻都還沒算真正開始轉錄是在你迭代它或list()它的那一刻。文件多的時候不必一個個串行倉庫提供了批量接口from faster_whisper import BatchedInferencePipeline batched BatchedInferencePipeline(model) segments, info batched.transcribe(meeting.mp3, batch_size8)BatchedInferencePipeline把多個30秒窗口打進同一個 GPU 批次推理VAD 默認開啟。同樣是13分鐘的音頻在 RTX 3070 Ti 上從1分03秒降到17秒代價是顯存從4525MB漲到6090MB。為什么快和省從 CTranslate2 到 int8提速主要來自三個決策每個都能在倉庫 README.md 的基準數據里對上號。第一個是換推理引擎。權重和算法還是 Whisper 那套但推理跑在 CTranslate2 上這是一個針對 Transformer 模型做的推理運行時。同一環境RTX 3070 Ti 8GB、i7-12700K 開8線程下large-v2 模型轉13分鐘音頻官方實現2分23秒這里是1分03秒CPU 上差距更明顯官方6分58秒這里2分37秒。第二個是8位量化。把compute_type設成int8CPU或int8_float16GPU權重以 int8 存儲、主要計算走低精度單元顯存和內存下降最直接GPU 上同模型從4525MB降到2926MBCPU 上從2257MB降到1477MB時間也從1分03秒壓到59秒。精度損失通常很小做字幕級別基本無感對準確率有極致要求的場景留在 fp16/fp32 更穩。第三個是批量加 VAD 的組合。批量接口前面提過能把 GPU 時間壓到17秒VAD 則讓要轉的總量變小——錄音里靜音占比越高訪談、會議錄音通常如此剪掉的窗口越多整體越快。VAD 的參數都在 faster_whisper/vad.py比如min_silence_duration_ms500可以把切分粒度從超過2秒的靜音才斷改成半秒。什么時候不該用 faster-whisper實時低延遲對話不要用。Whisper 本身是離線分塊模型faster-whisper 沒有改變這一點做流式字幕你得在外面再包一層流式策略倉庫里列了幾個把它當后端的社區項目可以參考但交互式場景不如直接選專門的流式 ASR 方案。最輕部署的環境不要用。它是 Python 庫依賴 ctranslate2 運行時和 onnxruntime目標環境是純 C 或沒有 Python 的嵌入式設備時whisper.cpp 更合適。相比 whisper.cppfaster-whisper 在 CPU 單文件 fp32 場景略慢2分37秒對2分05秒但換來的是批量推理、詞級時間戳、VAD 和更完整的參數面兩者定位不完全重疊。老顯卡環境要小心。最新版 ctranslate2 只支持 CUDA 12 和 cuDNN 9CUDA 11 的老機器要降級鎖定舊版 ctranslate2比較折騰。GPU 部署建議直接用倉庫 docker/Dockerfile它基于 NVIDIA 官方 CUDA 12.3 cuDNN 9 的鏡像把依賴一次配齊。5分鐘跑通第一次轉錄Python 3.9一條 pip 命令裝完不需要系統裝 FFmpegpip install faster-whisper最小可運行代碼換掉文件名就能跑from faster_whisper import WhisperModel model WhisperModel(tiny, deviceauto) # auto 會自動選 cuda 或 cpu segments, info model.transcribe(audio.mp3, vad_filterTrue) for seg in list(segments): print(info.language, f[{seg.start:.1f} - {seg.end:.1f}], seg.text)tiny 只是先跑通流程轉錄質量不滿意時把模型名換成large-v3或distil-large-v3其余代碼不用動。調優int8 和 batch_size 怎么選compute_typeCPU 用int813分鐘音頻1分42秒內存1477MBGPU 默認float168GB 顯存卡跑 large-v3 這類大模型時用int8_float16更穩。大多數情況CUDA 上就選float16純 CPU 選int8。batch_size僅批量接口從1加到8GPU 上1分03秒到17秒顯存4525MB到6090MB顯存緊張就降到4。模型檔位tiny用于快速試效果large-v3是質量上限distil-large-v3是折中——倉庫基準里同樣任務它比 transformers 后端快約一倍25分50秒對46分12秒WER 還從14.8降到13.5。hotwords傳一段專有名詞或術語字符串會拼進提示詞里產品名、人名這類容易聽錯的詞識別率會改善。如果音頻是中文會議錄音、機器上有 CUDA 卡默認float16加 VAD 就夠用了長視頻加低端卡的組合先切int8_float16加BatchedInferencePipeline第一個文件轉完你就能看到差距。【免費下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考