Faster Whisper:13 分钟录音 1 分 03 秒转完,INT8 把显存砍到 2.9GB
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
用原版 Whisper 转一条 13 分钟的会议录音,GPU 上要跑 2 分 23 秒、显存占用 4.7GB;换 faster-whisper 这套基于 CTranslate2 的转录引擎,fp16 下只要 1 分 03 秒,切到 int8 量化后显存降到 2.9GB,识别准确率不变。下面直接说怎么装、怎么挑配置、哪些坑会咬人。
一行 pip 装完,十行代码出结果
安装就一条命令,不需要单独装 FFmpeg——音频解码由依赖里的 PyAV 库内置完成,省掉了环境配置最常见的一步:
pip install faster-whisperfrom faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")模型按名字(tiny到large-v3)自动从 Hugging Face 下载 CTranslate2 格式的权重。想要词级时间戳就加word_timestamps=True,想跳过静音段加vad_filter=True,默认会过滤掉超过 2 秒的静默,长音频收益明显。
用官方基准看真实差距
以下数据取自仓库 README 的基准测试:GPU 环境为 RTX 3070 Ti + CUDA 12.4,跑 large-v2 模型转 13 分钟音频;CPU 环境为 i7-12700K 开 8 线程,跑 small 模型。
GPU(large-v2):
| 实现 | 精度 | 耗时 | 显存 |
|---|---|---|---|
| openai/whisper | fp16 | 2分23秒 | 4.7GB |
| faster-whisper | fp16 | 1分03秒 | 4.5GB |
| faster-whisper | int8 | 59秒 | 2.9GB |
CPU(small):
| 实现 | 精度 | 耗时 | 内存 |
|---|---|---|---|
| openai/whisper | fp32 | 6分58秒 | 2.3GB |
| faster-whisper | int8 | 1分42秒 | 1.5GB |
GPU 上还能用批量推理把速度再压一档:batch_size=8时 large-v2 int8 只需 16 秒(显存 4.5GB)。纯 fp16 相比原版快 1.4 倍左右,主要红利在 int8——速度快近 2.4 倍,显存省 40% 以上;README 称整体最高可达 4 倍。
按硬件三句话定配置
- 有 NVIDIA GPU:
device="cuda"+compute_type="float16";显存紧张改int8_float16 - 纯 CPU:
device="cpu"+compute_type="int8",比 fp32 快得多且省内存 - 内存紧张或批量处理:换更小的模型(
base/small),或用BatchedInferencePipeline开批量转录,它默认自带 VAD 过滤
先踩这两个坑能少查半天
segments是生成器:transcribe返回后并不会立刻开跑,必须list(segments)或进入 for 循环才真正开始转录。只拿到对象就打印,会发现什么都没有。- GPU 环境只认 CUDA 12 + cuDNN 9:最新的 ctranslate2 只支持这个组合。还在 CUDA 11 上的人把 ctranslate2 降到 3.24.0;嫌麻烦可以直接用 Docker,官方镜像是
nvidia/cuda:12.3.2-cudnn9-runtime,仓库里 docker/infer.py 给了完整的部署示例。
改代码前先看仓库这两个位置
想调转录参数(beam size、VAD 阈值、语言检测等),直接看 faster_whisper/transcribe.py 里WhisperModel的transcribe签名,所有可选项都有注释。想复现或扩展上面的数字,benchmark/ 目录下的speed_benchmark.py和wer_benchmark.py就是 README 里表格的出处。
建议先用base模型 + int8 把流程跑通确认输出格式符合预期,再逐步升级到large-v3或批量推理,避免一上来就在大模型上调参。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考