音轉(zhuǎn)寫(xiě)提速4倍,把7分鐘等待壓進(jìn)1分鐘的實(shí)戰(zhàn)指南)
faster-whisperWhisper語(yǔ)音轉(zhuǎn)寫(xiě)提速4倍把7分鐘等待壓進(jìn)1分鐘的實(shí)戰(zhàn)指南【免費(fèi)下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項(xiàng)目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是基于 CTranslate2 推理引擎重新實(shí)現(xiàn)的 OpenAI Whisper 語(yǔ)音識(shí)別庫(kù)在保持相同準(zhǔn)確率的前提下最高提速 4 倍、內(nèi)存占用更低并支持 CPU/GPU 雙端 8 位量化。適合需要批量、快速轉(zhuǎn)寫(xiě)音頻的開(kāi)發(fā)者和普通用戶(hù)。轉(zhuǎn)寫(xiě)13分鐘音頻要等7分鐘瓶頸不在模型在推理引擎想象這樣的場(chǎng)景你把一段 13 分鐘的播客丟給原版 openai/whisper在 CPU 上掛著 small 模型轉(zhuǎn)寫(xiě)完要 6 分 58 秒就算有 GPUlarge-v2 模型也要 2 分 23 秒。音頻稍長(zhǎng)等待就以小時(shí)計(jì)。問(wèn)題出在哪模型權(quán)重本身沒(méi)變慢在 PyTorch 這類(lèi)通用訓(xùn)練框架去做純推理算子未充分融合、內(nèi)存調(diào)度偏保守。faster-whisper 的做法是換引擎不換模型——用專(zhuān)為 Transformer 部署優(yōu)化的 CTranslate2 跑同一套 Whisper 權(quán)重精度不變速度立變。? 核心能力解讀速度、內(nèi)存與批量推理的硬指標(biāo)以下數(shù)據(jù)全部來(lái)自倉(cāng)庫(kù) README 的官方基準(zhǔn)GPU 為 RTX 3070 Ti 8GB CUDA 12.4CPU 為 i7-12700K 8 線(xiàn)程均為 13 分鐘音頻。1. 同精度下速度最高 4 倍GPU 上 large-v2 模型原版 whisper 2 分 23 秒 → faster-whisper 1 分 03 秒CPU 上 small 模型原版 6 分 58 秒 → faster-whisper int8 模式 1 分 42 秒恰好 4 倍對(duì)你的好處原來(lái)一杯咖啡的時(shí)間只能轉(zhuǎn)完一條音頻現(xiàn)在夠轉(zhuǎn)完一整個(gè)訪(fǎng)談合集。2. 8 位量化int8顯存和內(nèi)存近乎減半GPUlarge-v2 的 VRAM 從 FP16 的 4525MB 降到 2926MBCPUsmall 模型 int8 僅占 1477MB比 FP32 的 2257MB 少約三成對(duì)你的好處顯存 8GB 的顯卡跑大模型更從容普通筆記本內(nèi)存也能穩(wěn)穩(wěn)跑起來(lái)。3. 批量推理batched inference把分鐘壓到秒GPU 上 large-v2batch_size8時(shí) 13 分鐘音頻只需 17 秒int8 下 16 秒CPU 上 small 模型 int8 批量51 秒對(duì)你的好處處理幾十小時(shí)錄音時(shí)吞吐差距是數(shù)量級(jí)的。4. 零系統(tǒng)依賴(lài)的開(kāi)箱體驗(yàn)原版 whisper 需要系統(tǒng)裝 FFmpegfaster-whisper 直接用 PyAV 庫(kù)自帶 FFmpeg 編解碼裝完即用指定模型名后還會(huì)自動(dòng)從 Hugging Face Hub 下載對(duì)應(yīng)的 CTranslate2 權(quán)重。快速上手faster-whisper 安裝與首次轉(zhuǎn)錄只需 Python 3.9一條命令安裝pip install faster-whisperGPU 環(huán)境需要 NVIDIA 的 cuBLASCUDA 12和 cuDNN 9 兩個(gè)庫(kù)也可以直接用官方 Docker 鏡像免去配置。下面是首次運(yùn)行的最短路徑——加載 large-v3 模型并轉(zhuǎn)寫(xiě)一段音頻from faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5) print(f檢測(cè)語(yǔ)言{info.language}概率 {info.language_probability:.2f}) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})注意segments是生成器只有開(kāi)始遍歷或list(segments)時(shí)轉(zhuǎn)寫(xiě)才真正啟動(dòng)內(nèi)存友好。場(chǎng)景實(shí)戰(zhàn)三個(gè)高頻用法場(chǎng)景一逐詞時(shí)間戳做卡拉OK式字幕很多字幕和歌詞工具需要精確到單詞的起止時(shí)間一個(gè)參數(shù)就夠了segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for seg in segments: for word in seg.words: print(f[{word.start:.2f}s - {word.end:.2f}s] {word.word})場(chǎng)景二VAD 過(guò)濾靜音只為真有人說(shuō)話(huà)的部分付計(jì)算成本庫(kù)內(nèi)置 Silero VAD 模型默認(rèn)只剔除超過(guò) 2 秒的靜音想更激進(jìn)就傳參數(shù)segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )場(chǎng)景三批量處理一摞音頻用BatchedInferencePipeline替換WhisperModel其余調(diào)用方式完全不變批量模式下 VAD 默認(rèn)開(kāi)啟from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(model) segments, _ pipeline.transcribe(audio.mp3, batch_size16)幕后原理為什么換個(gè)引擎就快了這么多用大白話(huà)講Whisper 本質(zhì)上是個(gè) Transformer推理時(shí)要反復(fù)做矩陣乘法和注意力計(jì)算。CTranslate2 針對(duì)只做推理這一件事重新設(shè)計(jì)把相鄰算子融合成一個(gè)內(nèi)核減少顯存往返、用更緊湊的內(nèi)存布局、并對(duì) int8/FP16 量化做了底層優(yōu)化。所以同樣的權(quán)重它跑得又快又省。倉(cāng)庫(kù)各模塊分工也很清晰音頻解碼模塊 負(fù)責(zé)用 PyAV 把任意格式音頻解成 16kHz 單聲道feature_extractor.py生成 mel 頻譜特征轉(zhuǎn)錄核心模塊 實(shí)現(xiàn)WhisperModel與批量推理管線(xiàn)VAD 模塊 封裝 Silero 語(yǔ)音檢測(cè)tokenizer.py處理多語(yǔ)言分詞與時(shí)間戳。一個(gè)容易踩坑的細(xì)節(jié)faster-whisper 默認(rèn) beam_size5而原版默認(rèn) beam_size1對(duì)比性能時(shí)記得對(duì)齊參數(shù)否則數(shù)字沒(méi)有可比性。生態(tài)與擴(kuò)展十幾個(gè)社區(qū)項(xiàng)目站在它肩上WhisperX在轉(zhuǎn)寫(xiě)之上加說(shuō)話(huà)人分離與精確詞級(jí)對(duì)齊Whisper-Streaming / WhisperLive把離線(xiàn)模型改成流式、準(zhǔn)實(shí)時(shí)轉(zhuǎn)寫(xiě)aTrainWindows/Linux 圖形界面轉(zhuǎn)寫(xiě)說(shuō)話(huà)人分離開(kāi)箱即用whisper-standalone-win打包成免安裝的獨(dú)立 CLI 可執(zhí)行文件Open-Lyrics轉(zhuǎn)寫(xiě)后自動(dòng)翻譯潤(rùn)色輸出 .lrc 歌詞Whisper-FastAPI / speaches提供 OpenAI 兼容 API方便接入現(xiàn)有系統(tǒng)對(duì)使用者意味著什么不需要自己造輪子從實(shí)時(shí)字幕到離線(xiàn)批處理都有現(xiàn)成方案。常見(jiàn)問(wèn)題GPU 環(huán)境怎么配CUDA 11 能用嗎最新版要求 CUDA 12 cuDNN 9 的 NVIDIA 庫(kù)cuBLAS 和 cuDNNCUDA 11 用戶(hù)可降級(jí)到 ctranslate2 3.24.0Linux 上也可用 pip 直接裝對(duì)應(yīng)庫(kù)或直接用官方 Docker 鏡像。必須手動(dòng)安裝 FFmpeg 嗎不需要。這是它和原版 whisper 很實(shí)用的一點(diǎn)差別解碼由 PyAV 完成FFmpeg 庫(kù)已打包在依賴(lài)?yán)?。自己微調(diào)過(guò)的 Whisper 模型能用嗎能。先用ct2-transformers-converter把 Transformers 格式的權(quán)重轉(zhuǎn)成 CTranslate2 格式pip install transformers[torch]4.23 ct2-transformers-converter --model openai/whisper-large-v3 \ --output_dir whisper-large-v3-ct2 --quantization float16然后WhisperModel(whisper-large-v3-ct2)直接加載本地目錄即可。誰(shuí)適合用 faster-whisper如果你有大量音頻要轉(zhuǎn)寫(xiě)、顯存或內(nèi)存有限、或者想在現(xiàn)有流水線(xiàn)里把 Whisper 推理環(huán)節(jié)提速faster-whisper 就是那個(gè)裝上就能用的選擇MIT 協(xié)議、一條 pip 命令安裝、API 與原版 Whisper 基本同構(gòu)遷移成本幾乎為零。換引擎不換模型7 分鐘的等待變成 1 分多鐘這就是它的全部?jī)r(jià)值?!久赓M(fèi)下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項(xiàng)目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考