Faster-Whisper 完整安装指南:三步让 Whisper 转录提速 4 倍
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
faster-whisper 是 OpenAI Whisper 语音识别模型的高性能重实现,底层推理引擎换成了 CTranslate2(一个专门加速 Transformer 模型推理的引擎)。官方基准显示,同样精度下它比 openai/whisper 最高快 4 倍、占用的内存更少:GPU 上转写 13 分钟音频,large-v2 模型只要 1 分 03 秒。这篇文章带你用最少三步把它装起来,再讲怎么用、怎么避坑。
装前自检:faster-whisper 的 CPU 与 GPU 要求
装之前先花一分钟确认这些,CPU 路线和 GPU 路线分开看:
- CPU 路线(门槛最低):Python 3.9 及以上、多核 CPU、内存尽量大一些。跑 small 级别的模型日常使用足够。
- GPU 路线(推荐):NVIDIA GPU,配 CUDA 12 和 cuDNN 9(含 cuBLAS)。注意最新版的 ctranslate2 只支持 CUDA 12 + cuDNN 9 这一组合,老环境要先看后面踩坑手册。
一个好消息:你不用自己装 FFmpeg,依赖里的 PyAV 已把 FFmpeg 库打包带上了,mp3、wav、flac 这些常见格式开箱即读。
三步跑起来:准备、安装、验证
第一步:准备虚拟环境
python3 -m venv fw-env && source fw-env/bin/activate先确认python3 --version输出 3.9 及以上。环境干净后,后面出问题都容易排查。
第二步:安装
pip install faster-whisperGPU 用户还需要补两个 NVIDIA 库:pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*(Linux 上要在启动 Python 前设置好LD_LIBRARY_PATH,具体 export 命令见 README 的 GPU 一节)。图省事的话,也可以用官方 CUDA Docker 镜像nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04,库都预装好了。
第三步:验证安装 ✅
在终端执行这条内联命令:python -c "import faster_whisper; print(faster_whisper.__version__)"
只要打印出版本号、没有红色报错,就说明安装成功了。
第一个转录示例:先体验一次成功
随便准备一个音频(下面记作audio.mp3),新建脚本:
from faster_whisper import WhisperModel model = WhisperModel("tiny", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3", beam_size=5) for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")逐句说清楚:tiny是最小的模型,首次使用会自动从 Hugging Face Hub 下载并缓存到本地;device="cpu"加compute_type="int8"(8 位量化)是省内存组合,普通笔记本就能跑;transcribe返回两样东西——segments是分段结果,info里带着自动检测的语言和置信度。运行后你会看到类似[0.00s -> 2.31s] And so my fellow Americans这样的输出,每行是起止时间加转写文本。
能跑出这几行字,后面都是锦上添花。
进阶玩法:词级时间戳、VAD 过滤、批量加速
词级时间戳——做字幕对齐、逐词高亮都要用,加一个参数即可:
segments, _ = model.transcribe("audio.mp3", word_timestamps=True)拿到后遍历seg.words,每个词都有独立的start和end。
VAD 静音过滤——内置的 Silero VAD 能把没人说话的部分直接裁掉,调用时加vad_filter=True就行。默认策略比较保守,只过滤超过 2 秒的静音;想更激进入口是vad_parameters=dict(min_silence_duration_ms=500),各参数的默认值都写在 faster_whisper/vad.py 里。
批量推理——官方 GPU 基准里,large-v2 转写 13 分钟音频,普通 fp16 要 1 分 03 秒,换成BatchedInferencePipeline并设batch_size=8后只要 17 秒;不想多占显存就用 int8 单批,59 秒、显存从约 4.5GB 降到约 2.9GB。BatchedInferencePipeline.transcribe可直接替换WhisperModel.transcribe,接口不变。更多转写选项可以看 faster_whisper/transcribe.py 里的参数定义。
踩坑手册:faster-whisper 安装失败怎么办
现象:加载模型时报 cuDNN 找不到、CUDA 版本不匹配。原因:最新版 ctranslate2 只支持 CUDA 12 + cuDNN 9,你的环境是 CUDA 12 + cuDNN 8 或 CUDA 11 + cuDNN 8。解法:降级 ctranslate2:
pip install --force-reinstall ctranslate2==4.4.0如果是 CUDA 11 + cuDNN 8 的组合,把版本号换成3.24.0。
现象:transcribe调用后立刻返回,感觉什么都没发生。原因:segments是生成器,真正的转写发生在你迭代它的时候。解法:包一层list(segments),或者像上面示例那样 for 循环打印,跑完循环才算干完活。
现象:medium、large-v3 这类大模型直接爆内存、加载失败。原因:默认精度吃显存。解法:compute_type改成 CPU 的int8或 GPU 的int8_float16,显存/内存占用能砍掉三成以上;再不行就换小一档模型。
现象:自己测出的 CPU 速度和官方基准差很远。原因:线程数和 beam 数没对齐——本库默认beam_size=5,而 openai/whisper 默认是 1,条件不同结果自然不可比。解法:跑对比脚本时先用OMP_NUM_THREADS=4 python3 my_script.py固定线程数再谈速度。
写在最后
典型的用法就三类:会议录音、播客的批量转字幕,逐词时间戳给剪辑做对齐,以及作为后端接进 WhisperX 之类的工具链。
建议你现在就用 tiny 模型把「第一个转录示例」跑一遍,跑通后再把模型换成large-v3加 int8,直观感受一次速度和质量的差异。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考