動到第一句轉(zhuǎn)寫)
20分鐘跑通 faster-whisper 的 Windows CUDA 加速從驅(qū)動到第一句轉(zhuǎn)寫【免費下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper一份兩小時的會議錄音下班前要出文字稿第二天還有十段訪談音頻排隊等著轉(zhuǎn)寫而原版 Whisper 跑在 CPU 上根本等不起。faster-whisper 就是為這種場景做的——它用 CTranslate2 推理引擎重新實現(xiàn)了 Whisper 模型在 Windows 上配合 CUDA 加速同樣精度下速度最高可到 4 倍占用的顯存反而更小。這篇文章帶你完整走一遍 faster-whisper 的 Windows 部署路線先把顯卡驅(qū)動、CUDA 12 和 cuDNN 9 一次裝對再裝上 faster-whisperPyAV 這個音頻解碼依賴不需要你手動編譯最后幾行代碼跑出第一句轉(zhuǎn)寫并用 compute_type 把速度調(diào)到最快。整篇文章四步走先讓顯卡跑起來再把依賴裝干凈然后跑通第一個轉(zhuǎn)寫腳本最后看一張表把配置調(diào)到位。讓顯卡跑起來驅(qū)動、CUDA 12 與 cuDNN 9 一次裝對faster-whisper 底層是 ctranslate2 推理引擎它的最新版只支持 CUDA 12并且要求系統(tǒng)里能找到 cuBLAS 和 cuDNN 9 這兩套 NVIDIA 庫。Windows 上要做的其實只有三件事驅(qū)動要新、CUDA 12 要裝、cuDNN 9 要復(fù)制到 CUDA 目錄。先升級驅(qū)動cuDNN 9 對驅(qū)動版本有硬性要求老驅(qū)動會直接被攔在門外。用一條命令看版本# 右上角顯示的版本號即驅(qū)動版本545 以后與 cuDNN 9 完全兼容 nvidia-smi版本太舊就先去 NVIDIA 官網(wǎng)把驅(qū)動升到最新再往下走。安裝 CUDA 12 與 cuDNN 9到 NVIDIA 官網(wǎng)下載 CUDA 12 的 Windows 安裝包注冊賬號即可安裝時選自定義只勾 CUDA 與 cuBLAS 相關(guān)條目Visual Studio 集成等一律不勾。cuDNN 9 單獨下載后解壓把bin、include、lib64三個目錄里的文件分別拷進(jìn) CUDA 安裝目錄的對應(yīng)目錄# 將 cuDNN 9 的 DLL 與頭文件拷入 CUDA 12 安裝目錄路徑按實際安裝位置調(diào)整 $cuda C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4 Copy-Item $env:USERPROFILE\Downloads\cudnn-windows-x64-v9*\cuda\bin\* $cuda\bin\ -Recurse Copy-Item $env:USERPROFILE\Downloads\cudnn-windows-x64-v9*\cuda\include\* $cuda\include\ -Recurse Copy-Item $env:USERPROFILE\Downloads\cudnn-windows-x64-v9*\cuda\lib\x64\* $cuda\lib\x64\ -Recurse拷完后把$cuda\bin和$cuda\libnvvp加進(jìn)系統(tǒng) PATH重開一個終端讓設(shè)置生效。?? 踩坑提示后面加載模型時若報錯提示找不到 cuBLAS 或 cuDNN99% 是這兩步?jīng)]做干凈。用where cudnn64_9.dll驗證一下 DLL 是否真的能被找到。跳過編譯坑PyAV 預(yù)編譯包隨 pip 一起落地faster-whisper 解碼音頻不依賴系統(tǒng)里的 FFmpeg而是用 Python 庫 PyAV——它的 wheel 包里已經(jīng)捆綁好了 FFmpeg 庫。Windows 上 PyPI 提供的就是預(yù)編譯 wheel絕大多數(shù)情況下你什么都不用做pip 會自動挑好匹配你 Python 版本的版本。讓 pip 一次裝到位python -m venv venv venv\Scripts\Activate.ps1 pip install -U pip pip install faster-whisper這段命令創(chuàng)建獨立虛擬環(huán)境并安裝 faster-whisperPyAV包名 av會作為依賴自動裝好。裝完用一行代碼確認(rèn)它真的能 importimport av print(av.__version__) # 能打印版本號說明 PyAV 免編譯安裝成功?? 踩坑提示如果你看到 pip 開始下載源碼現(xiàn)場編譯 av通常是 Python 版本過老、PyPI 上沒有對應(yīng) wheel把 Python 換成 3.10 或 3.11 再裝即可faster-whisper 要求 3.9 及以上。若 import 時報DLL load failed裝一次 Microsoft VC 運行庫就能解決。五步跑通第一句轉(zhuǎn)寫驅(qū)動和依賴都齊了下面跑最短的一條轉(zhuǎn)寫鏈路選模型 → 建環(huán)境 → 加載 → 轉(zhuǎn)寫 → 打印。先選一個模型模型按名字加載首次使用時自動下載。沒有特別要求就從 small 開始驗證流程正式干活再上 large-v3模型顯存占用float16約適合small2GB 上下快速驗證環(huán)境是否裝對large-v35GB 上下正式轉(zhuǎn)寫精度最高最短轉(zhuǎn)寫腳本from faster_whisper import WhisperModel # 加載模型N 卡就 cuda float16顯存吃緊可改 int8_float16 model WhisperModel(small, devicecuda, compute_typefloat16) # vad_filter 默認(rèn)開啟自動裁掉靜音段長錄音提速明顯 segments, info model.transcribe(meeting.mp3, languagezh, beam_size5) print(f語言: {info.language} (置信度 {info.language_probability:.2f})) for seg in segments: # segments 是生成器真正開始轉(zhuǎn)寫是在這里 print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})第一次運行會卡住一段時間那是在下載模型屬于正?,F(xiàn)象。?? 踩坑提示中文音頻不指定語言時可能識別成別的語種導(dǎo)致亂碼養(yǎng)成languagezh的習(xí)慣。另外segments拿到手并不會自動執(zhí)行必須像上面那樣迭代或list(segments)轉(zhuǎn)寫才會真正開始。實戰(zhàn)與調(diào)優(yōu)一張表挑出最快組合環(huán)境跑通之后真正影響速度的是兩個旋鈕compute_type精度檔位和批量推理。compute_type 怎么選直接給結(jié)論顯存 6GB 以上的 N 卡用 float16一步到位GTX 10 系這類老卡顯存緊張就用 int8_float16完全沒顯卡的機(jī)器用 int8 跑 CPU。compute_type精度顯存/RAM推薦硬件float16高中等RTX 20 系及以后的 N 卡int8_float16略降更小GTX 10 系等老顯卡int8略降最小純 CPU 機(jī)器float32最高最大一般不用留給調(diào)參排查官方 benchmark 給個直觀感受同一段 13 分鐘音頻、large-v2 模型、GPU 上 float16 約 1 分 03 秒開啟 batch_size8 的批量推理后降到 17 秒換成 int8 精度則 59 秒且顯存只要 2.9GB數(shù)據(jù)來自倉庫 README.md 的 Benchmark 章節(jié)。一批文件怎么跑批量腳本只需要一個循環(huán)逐文件轉(zhuǎn)寫并落盤import os model WhisperModel(small, devicecuda, compute_typefloat16) for name in os.listdir(audio_dir): if not name.endswith(.wav): continue segments, _ model.transcribe(os.path.join(audio_dir, name), languagezh) text .join(seg.text for seg in segments) # 迭代生成器觸發(fā)實際轉(zhuǎn)寫 with open(foutput_{os.path.splitext(name)[0]}.txt, w, encodingutf-8) as f: f.write(text)兩個再提速的開關(guān)第一個是 VADvad_filterTrue是默認(rèn)行為它會用內(nèi)置的 Silero VAD 模型裁掉無語音片段vad_parametersdict(min_silence_duration_ms500)可以收緊靜音判定閾值全部參數(shù)見 faster_whisper/vad.py。第二個是批量推理BatchedInferencePipeline是WhisperModel.transcribe的直接替換配合batch_size16能把 GPU 利用率吃滿用法參考 README.md。?? 踩坑提示GPU 報 CUDA out of memory 時先降 batch_size8 改 4還不行就把 compute_type 降到 int8 系或者換一個更小的模型三招總有一招管用??ㄗe慌一張速查表癥狀查什么怎么修加載模型報找不到 cuBLAS / cuDNNPATH 與 cuDNN 目錄cuDNN 9 的 DLL 拷進(jìn) CUDA 的 bin 并加入 PATH重開終端pip 編譯 av 源碼、裝不上 PyAVPython 版本換 3.10 / 3.11讓 pip 命中官方預(yù)編譯 wheelDLL load failedimport av 時VC 運行庫安裝 Microsoft VC Redist轉(zhuǎn)寫比預(yù)期慢很多compute_type 與 VAD換 float16 或 int8確認(rèn) vad_filter 處于開啟狀態(tài)CUDA out of memory顯存占用降 batch_size、換 int8、或換更小模型腳本跑完卻沒有任何輸出segments 生成器必須迭代 segments 或轉(zhuǎn)成 list轉(zhuǎn)寫才會執(zhí)行想再榨速度就去研究 int8 量化與 BatchedInferencePipeline 批量推理的組合想把轉(zhuǎn)寫能力變成服務(wù)用 FastAPI 把 transcribe 調(diào)用包一層、多進(jìn)程各掛一個模型就是可用的生產(chǎn)部署形態(tài)?!久赓M下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考