如何用 faster-whisper 把 Whisper 语音转录提速4倍:完整实战指南
2026/9/5 19:09:32 网站建设 项目流程

如何用 faster-whisper 把 Whisper 语音转录提速4倍:完整实战指南

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

faster-whisper 是一个基于 CTranslate2 推理引擎重新实现的 OpenAI Whisper 语音转录库。它保持与原版相同的准确率,但速度最快可提升 4 倍,内存占用更低,并支持 8 位量化。如果你还在用 openai/whisper 转录整场会议录音、干等十几分钟,这套方案可以直接替换,准确率不降。

场景先说清楚:转录慢卡在哪

用原版 Whisper 做语音转文字时,常见的两个抱怨:

  • 13 分钟录音要转 2 分多钟(GPU、large-v2 模型),长音频更夸张;
  • 批量处理时内存/显存吃紧,想开批处理又容易爆显存。

faster-whisper 的做法不是"魔改 Whisper",而是把 Whisper 模型搬到 CTranslate2 这个专门为 Transformer 模型做过推理优化的引擎上跑,再配合权重量化(int8)和批量推理,把耗时和内存同时压下来。

一句话版本:项目结构有多轻

整个库就 6 个核心模块,职责清晰:

模块负责什么
faster_whisper/audio.py音频解码,依赖 PyAV(自带 FFmpeg 库,系统不用单独装 FFmpeg
faster_whisper/feature_extractor.py梅尔频谱特征提取
faster_whisper/tokenizer.py多语言分词器
faster_whisper/transcribe.py转录核心算法(含批量推理入口)
faster_whisper/vad.py语音活动检测,内置 Silero VAD 模型(faster_whisper/assets/silero_vad_v6.onnx)
faster_whisper/utils.py工具函数

当前版本 1.2.1,要求 Python 3.9+。

用数据看提速:同一段 13 分钟音频

官方基准用 13 分钟音频对比各实现,测试环境分别是 CUDA 12.4 + RTX 3070 Ti 8GB(GPU)和 8 线程 i7-12700K(CPU),beam_size 统一为 5:

GPU 上跑 large-v2 模型

实现精度耗时显存
openai/whisperfp162m23s4708MB
faster-whisperfp161m03s4525MB
faster-whisper(batch_size=8)fp1617s6090MB
faster-whisperint859s2926MB
faster-whisper(batch_size=8)int816s4500MB

CPU 上跑 small 模型

实现精度耗时内存
openai/whisperfp326m58s2335MB
faster-whisperfp322m37s2257MB
faster-whisperint81m42s1477MB
faster-whisper(batch_size=8)int851s3608MB

规律很清楚:开 batch_size 换速度,开 int8 换内存,显存/内存够用就两个一起上,GPU 上 13 分钟音频 16 秒跑完。另外对蒸馏模型 distil-large-v3,faster-whisper 批量推理(batch_size=16,fp16)25m50s 完成,WER 13.527,比 transformers 实现(46m12s,WER 14.801)快了近一倍且误差更低。

三步上手:安装、加载、转录

pip install faster-whisper
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) print(info.language, info.language_probability) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

设备与精度的组合关系:

场景devicecompute_type
GPU(省显存)cudaint8_float16
GPU(默认)cudafloat16
CPU(省内存)cpuint8
CPU(默认)cpufloat32

不指定language时会自动检测语言(基于开头 30 秒),返回info.language和置信度;task支持transcribetranslate(非英语音频转成英文)。

常用参数速查

调优基本只动这几个参数:

参数作用建议
beam_size解码搜索宽度默认 5(注意:原版 whisper 默认是 1,对比性能时务必对齐)
batch_size批量推理大小显存够就调到 8~16,提速明显
word_timestamps输出词级时间戳做字幕必开
vad_filter过滤无人声片段默认 True,长音频建议保留
vad_parameters调节 VAD 灵敏度dict(min_silence_duration_ms=500),默认只删 2 秒以上的静音
hotwords提示词/专有名词识别专业术语、人名时加
language强制指定语言已知语言时指定,省掉检测开销

词级时间戳 + VAD 的典型用法(做字幕时直接抄):

segments, _ = model.transcribe( "audio.mp3", word_timestamps=True, vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500), ) for seg in segments: print([(round(w.start, 2), round(w.end, 2), w.word) for w in seg.words])

进阶:批量推理与自定义模型

批量推理BatchedInferencePipelineWhisperModel.transcribe的即插即用替代版,默认自带 VAD 过滤:

from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("turbo", device="cuda", compute_type="float16") batched = BatchedInferencePipeline(model=model) segments, info = batched.transcribe("audio.mp3", batch_size=16)

加载自己微调的模型:装好transformers[torch]>=4.23后,用ct2-transformers-converter把任何兼容 Transformers 的 Whisper 模型(原始官方模型或用户微调模型)转成 CTranslate2 格式,可用--quantization float16int8_float16指定精度,再用WhisperModel("本地目录")直接加载。

Docker 部署:仓库 docker/ 目录有一个最小示例(Dockerfile 基于nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04镜像,内含 cuBLAS 和 cuDNN 9),适合 GPU 环境不想手动装库的人。

避坑指南

  1. segments是生成器transcribe返回时并没有真正开始转录,必须遍历(for 循环或list())才会实际运行。这是新手最容易踩的坑。
  2. GPU 环境要求:需要 NVIDIA cuBLAS + cuDNN 9(CUDA 12)。CUDA 11 用户需降级ctranslate2==3.24.0;CUDA 12 + cuDNN 8 则用4.4.0
  3. VAD 依赖onnxruntime:启用vad_filter前确认已安装。
  4. 做对比测试要对齐条件:beam_size(5 vs 1)、CPU 线程数(设置OMP_NUM_THREADS)、以及转录 WER 相近,否则速度数字没有可比性。
  5. 系统不用装 FFmpeg:解码走 PyAV 自带的 FFmpeg 库,少一项环境依赖。

适合谁,下一步做什么

如果你在做字幕生产线、会议/播客语音转文字、或需要批量处理大量音频,faster-whisper 是目前把"速度、准确率、内存"三者平衡得最好的开源方案。下一步建议:先按上文的三步把最小流程跑通,再阅读 faster_whisper/transcribe.py 里transcribe的完整参数文档,批量部署参考 docker/ 的示例。想拉源码看实现的话,可克隆:git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper🎬

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询