faster-whisper 语音转文字完整使用指南:安装、转录与性能调优教程
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
faster-whisper 是一个用 CTranslate2 推理引擎重构的 Whisper 语音转文字(ASR)工具:在保持同等识别准确率的同时,转录速度最高提升 4 倍、内存占用更低,并支持 8 位量化进一步压缩显存/内存。本文帮你判断它是否适合你的场景,并给出从安装到调优的最小上手路径。
一、faster-whisper 能解决什么问题?
如果你在用原版 openai/whisper 处理长音频,最常见的两个痛点是转录太慢、吃内存/显存。faster-whisper 把 Whisper 模型搬到 CTranslate2 这个 Transformer 专用推理引擎上,通过批处理、量化、VAD 剪枝等工程手段换取速度,而模型权重与识别逻辑不变,因此准确率基本对齐。
先看官方在13 分钟音频上的实测对比(GPU,large-v2 模型,beam_size=5):
| 实现 | 精度 | 耗时 | 显存 |
|---|---|---|---|
| openai/whisper | fp16 | 2m23s | 4708MB |
| faster-whisper | fp16 | 1m03s | 4525MB |
| faster-whisper(batch_size=8) | fp16 | 17s | 6090MB |
| faster-whisper(int8) | int8 | 59s | 2926MB |
| faster-whisper(batch_size=8, int8) | int8 | 16s | 4500MB |
以上 GPU 数据基于 NVIDIA RTX 3070 Ti 8GB、CUDA 12.4。CPU 侧 small 模型在 i7-12700K(8 线程)上:原版 openai/whisper 为 6m58s / 2335MB,faster-whisper int8 + 批处理可做到 51s / 3608MB。
结论:如果你要的是「同等准确率、更快出结果、更省资源」,它是比原版 Whisper 更稳的选择;若你已在用 whisper.cpp 且对延迟极敏感,两者量级接近,可按部署习惯二选一。
二、怎么安装 faster-whisper?
环境要求只有 Python 3.9+。与原版 openai-whisper 不同,它不需要系统安装 FFmpeg——音频解码由 PyAV 库(自带 FFmpeg 库)完成,这是新手最容易忽略的一点。
# CPU:一条命令即可 pip install faster-whisper # GPU 额外需要 NVIDIA 库(cuBLAS + cuDNN 9,对应 CUDA 12,Linux 可用 pip 安装) pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*⚠️ CUDA 版本要匹配:最新 ctranslate2 只支持 CUDA 12 + cuDNN 9。若你是 CUDA 11/cuDNN 8,需把 ctranslate2 降到 3.24.0;CUDA 12 + cuDNN 8 降到 4.4.0。用 Docker 也可直接基于官方nvidia/cuda运行时镜像省去手工装库。
三、faster-whisper 怎么用?
核心是 faster_whisper/transcribe.py 里的WhisperModel。最小可运行示例(GPU + FP16):
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) print("Detected language '%s' with probability %f" % (info.language, info.language_probability)) for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))几个要点:
- 模型自动下载:传入
large-v3、turbo、distil-large-v3等尺寸名时,对应 CTranslate2 模型会自动从 Hugging Face Hub 拉取并缓存;也可传入本地目录或微调后的模型 ID 直接加载。 - 自动语言检测:
info.language与info.language_probability给出检测到的语言及置信度,多语言场景无需额外配置。 - 音频解码:
audio.mp3可以是本地路径、二进制流或 numpy 数组,解码逻辑见 faster_whisper/audio.py。
四、怎么调优 faster-whisper?
按「提速 → 省资源 → 提精度」三个方向选:
- 批处理提速:
BatchedInferencePipeline可无缝替换WhisperModel.transcribe,把多片段凑批推理。上表里 GPU 从 1m03s 降到 16s、CPU small 从 1m42s 降到 51s,主要靠的就是它;批处理默认启用 VAD。 - 8 位量化省资源:CPU 用
compute_type="int8",GPU 用"int8_float16"。large-v2 在 GPU 上 int8 后显存从 4525MB 降到 2926MB。 - 词级时间戳:
word_timestamps=True让每个词都带起止时间,适合做字幕。 - VAD 静音剪枝:
vad_filter=True会先过滤无人声片段,长音频尤其受益,可用vad_parameters调阈值。VAD 基于 Silero VAD,实现见 faster_whisper/vad.py。 - 更快模型:英文或追求极致速度可换
distil-large-v3/turbo(distil 系需显式language="en"并关闭condition_on_previous_text)。
更多参数(beam_size、temperature、hotwords等)见WhisperModel.transcribe方法签名;速度基准脚本可参考 benchmark/speed_benchmark.py。
五、常见误区与避坑指南
segments是生成器:transcribe返回的segments在被遍历前并不会真正执行转录。要拿全结果,必须for循环或list(segments),否则看起来「没反应」。- 对比口径要一致:faster-whisper 默认
beam_size=5,而 openai/whisper 默认beam_size=1。跨实现比较时若 beam 不一致,速度与准确率都不可比;CPU 侧还要对齐OMP_NUM_THREADS。 - GPU 环境别漏依赖:缺 cuBLAS/cuDNN 或 CUDA 版本不匹配时加载会失败,对照第二节的版本要求逐项核对。
- VAD 默认值偏保守:默认只剪掉超过 2 秒的静音。若你的音频短句多、静音碎,可收紧
min_silence_duration_ms。
下一步
如果你要的是「同等准确率下更快更省的语音转文字」,直接pip install faster-whisper装上,用第三节的示例跑一遍你的音频,再按第四节按需开启批处理与量化即可。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考