Windows 下用 faster-whisper 搭建 GPU 加速的语音转写环境
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
场景切入
手里有一段 60 秒的会议录音,要出文字稿。原版 openai/whisper 在 CPU 上要跑三四分钟,而同一段音频在 faster-whisper 加 GPU 的组合下通常 30 秒内就能拿到结果——差的不是显卡,而是推理引擎。faster-whisper 用 CTranslate2(一个专门做 Transformer 推理加速的引擎)重写了推理层,在相同准确率下比原版快 2-4 倍,显存占用更低,还支持 int8 量化进一步压内存。本文以 Windows 11 + NVIDIA 显卡为基准,把从装环境到跑出第一条转写结果的路径走完;没有独显也可以最后参考 int8 + CPU 的降速方案,但主体按 GPU 加速来写。
门槛与选型
先交代两个名词,后面直接用:CUDA 是 NVIDIA 的并行计算平台,负责把计算任务调度到显卡上;cuDNN 是它上面的深度学习加速库。faster-whisper 的推理引擎 CTranslate2 只预编译支持 CUDA 12 + cuDNN 9 这套组合,这是整条安装路线的锚点。
| 项目 | 最低 | 推荐 |
|---|---|---|
| NVIDIA 显卡 | GTX 1050 Ti / 4 GB 显存 | RTX 30 系 / 6 GB 以上 |
| 显卡驱动 | 支持 CUDA 12.4 的版本(nvidia-smi 右上角可查) | 最新 Studio 驱动 |
| Python | 3.9 | 3.10 |
| 磁盘 | 10 GB | SSD,20 GB |
内存 8 GB 起步即可。注意驱动版本决定你能用哪套 CUDA,用 nvidia-smi 看一下右上角的 "CUDA Version" 不小于 12.4 就可以开工,不用单独装完整的 CUDA Toolkit。
三步安装法
第一步:部署 CUDA 12 运行库与 cuDNN 9
- 安装 CUDA 12.x: winget install --id NVIDIA.CUDA # 或者官网下载 12.x 安装包 走自定义安装,勾 Toolkit 和 cuBLAS(矩阵运算库,CTranslate2 依赖它)即可,VS 集成组件不用勾。
- 验证:nvcc -V 能打印出 V12.x 版本号就说明编译器和运行库都就位了。
- 装 cuDNN 9:注册 NVIDIA 账号后下载 cuDNN v9(for CUDA 12)zip 包,把里面 bin 目录中的 cudnn64_9.dll 等文件复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin\(cuDNN 的 DLL 需要和 CUDA 放在一起才能被找到),并确认该目录已加入系统 PATH。
- 这一步最容易漏。后面报错 "cudnn64_9.dll not found" 九成是文件没复制对位置。
第二步:装 Python 依赖
- 项目可以从仓库源码装(faster-whisper 仓库),日常使用直接 pip 安装即可:
python -m venv venv venv\Scripts\activate pip install -U pip pip install faster-whisper- 依赖会一次性拉齐:ctranslate2(推理引擎,要求 4.0 以上)、av(PyAV,音频解码)、onnxruntime 等。
- PyAV 是 FFmpeg 的 Python 封装,faster-whisper 靠它解码 mp3、m4a 这类格式,所以不用再系统级装 FFmpeg。它自带静态链接的解码库,Windows 上有官方预编译轮子,pip 直接装就不会碰到编译报错。
第三步:验证环境
python -c "from faster_whisper import WhisperModel; print('ok')"打印 ok 就代表转写链路可用,模型文件不用手动下载——首次按名字加载时会自动从 Hugging Face 拉取并缓存到本地。
第一次转写
faster-whisper 本体是 Python 库,不带命令行入口。想要一条命令搞定,用基于它的命令行工具 whisper-ctranslate2:
pip install whisper-ctranslate2 whisper-ctranslate2 transcribe --model large-v3 --device cuda --language zh meeting.m4a -o transcript.txt不想加组件就写个脚本,下面这个例子已经是最小可运行版本:
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16") segments, info = model.transcribe("meeting.m4a", beam_size=5, vad_filter=True) print(f"语言: {info.language} ({info.language_probability:.2f}), 时长: {info.duration:.1f}s") for seg in segments: print(f"[{seg.start:6.2f}s -> {seg.end:6.2f}s] {seg.text.strip()}")跑起来大概三件事:首次运行下载模型(large-v3 约 3 GB,之后走缓存);vad_filter=True 让内置的 Silero VAD(语音活动检测模型)先剪掉纯静音段,少算很多空帧;segments 是生成器,for 循环跑到哪算到哪,中途 Ctrl+C 不会白等。正常输出类似:
语言: en (0.99), 时长: 12.3s [ 0.00s -> 2.10s] Good morning, thanks for joining. [ 2.30s -> 5.80s] Let's start with the Q3 roadmap.排障速查
| 错误信息 | 可能原因 | 修复命令 / 操作 |
|---|---|---|
| cudnn64_9.dll not found | cuDNN 没装或 DLL 不在 PATH | 复制 cuDNN bin 下的 dll 到 CUDA 的 bin 目录并加入 PATH |
| CUDA error: out of memory | 显存装不下当前模型/批量 | 换 int8_float16、降 batch_size,或改用 small 模型 |
| ImportError: DLL load failed(av 模块) | 缺 VC++ 运行库 | winget install Microsoft.VC++2015-2022Redist-x64 |
| 模型下载反复中断 | 网络到 Hugging Face 不稳 | 用 hf 镜像环境变量重试,或手动下载模型目录后传本地路径 |
| Compute type int8_float16 not supported | 老架构 GPU 不支持混合精度 | 改用 compute_type="int8" 或 "float16" |
性能旋钮
⚡️ 主要调节项就是 compute_type,它决定模型以什么精度驻留和计算:float16 精度最稳、速度中等;int8_float16 是速度与显存的平衡点(权重用 int8,累加用 fp16);int8 面向纯 CPU 场景。官方基准里,large-v2 转写 13 分钟音频:原版 whisper 2 分 23 秒,faster-whisper float16 1 分 03 秒,int8 模式 59 秒且显存从 4525 MB 降到 2926 MB;再套上批量推理管线还能再快一倍,代价是显存占用上升。
| compute_type | 适用场景 | 精度 | 显存 |
|---|---|---|---|
| float16 | 对准确率敏感 | 最高 | 中 |
| int8_float16 | 日常批量转写 | 略降 | 低 |
| int8 | CPU / 小显存 | 略降 | 最低 |
收尾
三件事:CUDA 12 + cuDNN 9 装对位置并加进 PATH;虚拟环境里 pip install faster-whisper 一步到位;用 compute_type 在精度、速度、显存之间选平衡点。后续可以看 faster-whisper 源码 里的 transcribe 参数全集,或用 ct2-transformers-converter 把自己微调过的模型转成 CTranslate2 格式。延伸方向有三个:给转写结果加 word_timestamps 做字幕对齐;把转写流程封装成 HTTP 服务供其他系统调用;结合社区方案加说话人分离。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考