Faster-Whisper:让 OpenAI Whisper 转录提速 4 倍、内存减半
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
Faster-Whisper 基于 CTranslate2 重新实现了 OpenAI 的语音转录模型 Whisper,精度不变,比原版最快提速 4 倍、内存占用减半。批量处理播客、做实时会议纪要,它都接得住。
为什么选它:看三组实测数字
- 速度实打实:large-v2 模型在 GPU 上转录 13 分钟音频,openai/whisper 要 2 分 23 秒,它只花 1 分 03 秒;换成批处理推理再压到 17 秒,相当于原版的 8 倍以上。
- 内存直接减半:GPU 开 INT8 量化,显存从 4525MB 降到 2926MB;CPU 上跑 small 模型加 INT8,内存只用 1477MB。
- 精度没有掉:distil-large-v3 模型上,它的 WER(词错误率)13.527,比 transformers 的 14.801 还低,跑得快的同时识别得更准。
| 模型 | 设备 | 耗时(13 分钟音频) | 内存 |
|---|---|---|---|
| large-v2 · openai/whisper(FP16) | GPU | 2 分 23 秒 | 4708MB |
| large-v2 · faster-whisper(FP16) | GPU | 1 分 03 秒 | 4525MB |
| large-v2 · faster-whisper(INT8) | GPU | 59 秒 | 2926MB |
| small · faster-whisper(INT8,batch_size=8) | CPU | 51 秒 | 3608MB |
以上为同卡(RTX 3070 Ti)/同 CPU(i7-12700K,8 线程)下的官方基准,起跑线一致。
5分钟跑起来:一行命令安装加最小示例
一行命令装好。它和原版最大的省事之处:不用单独装 FFmpeg,音频解码由自带的 PyAV 库完成,装完就能直接跑。
pip install faster-whisper最小示例(8 行,GPU 版):
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) print(f"检测到语言 '{info.language}',概率 {info.language_probability:.2f}") for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")只有 CPU 的机器把参数改成device="cpu", compute_type="int8"即可。注意segments是个生成器,转录真正开始执行是在你用for循环遍历它的时候。
核心能力拆解:按使用场景看它怎么用
做批量音频转录时,它怎么帮你
它提供BatchedInferencePipeline,是WhisperModel.transcribe的直接替代品,多传一个batch_size参数即可。内部把多个音频片段打包并行喂给 GPU,large-v2 上 13 分钟音频从 1 分 03 秒干到 17 秒。音频越长、文件越多收益越大,过夜跑几小时音频的活儿必用。
做字幕和词级时间戳时,它怎么帮你
transcribe传word_timestamps=True,每个 segment 里就有words列表,每个词带独立的开始和结束时间(实现在 faster_whisper/transcribe.py)。做字幕烧录、逐词高亮、点击跳转都能直接用,不用再上额外的对齐工具。
做长音频和会议转录时,它怎么帮你
开vad_filter=True,它内置的 Silero VAD 会先把没说话的部分裁掉再送模型(检测逻辑见 faster_whisper/vad.py)。默认只裁超过 2 秒的静音,保守安全;杂音多就把vad_parameters里的min_silence_duration_ms调小让它更激进。会议录音、访谈播客这种废话时间多的素材,能省掉一大截无效计算。
用自己微调的模型时,它怎么帮你
ct2-transformers-converter一条命令就能把原版 Whisper 或你微调过的权重转成 CTranslate2 格式,权重可存 FP16 或 INT8,之后WhisperModel("whisper-large-v3-ct2")直接从本地目录加载。如果你调过法律、医疗这类垂直领域的模型,代码一行不用改,换个模型目录就能用。
⚙️ 进阶调优:两个显著提升效果的参数
from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("large-v3", device="cuda", compute_type="float16") pipeline = BatchedInferencePipeline(model) segments, _ = pipeline.transcribe("audio.mp3", batch_size=16)batch_size往显存允许的极限推:本质是 GPU 并行,同时跑的分片越多,显卡利用率越高,基准里 16 能把 13 分钟音频压到 16~17 秒。compute_type换成"int8_float16":8 位量化让显存占用近乎减半(4525MB → 2926MB),且基准里转录精度几乎不变,显存不够的卡这是第一优先要动的开关。
周边生态:已经帮你铺好的路
- WhisperX:结合 wav2vec2 对齐,提供说话人分离和更精确的词级时间戳
- whisper-ctranslate2:命令行客户端,兼容原版 openai/whisper 的命令行用法
- Whisper-Streaming:让离线 Whisper 跑实时流式模式,延迟随语音复杂度自适应
- Open-Lyrics:转录音频并用 GPT 翻译润色成 .lrc 歌词文件
- speaches:OpenAI 兼容的 ASR 服务器,直接支持 OpenAI SDK/CLI 和流式调用
场景化建议:按你的需求选配置
- 音频量大、要长时跑:GPU +
compute_type="int8_float16"+BatchedInferencePipeline(batch_size=16),13 分钟音频 16 秒、显存还不紧张,是吞吐上限最高的组合。 - 内存紧张或要低延迟:CPU +
device="cpu", compute_type="int8"+ small 模型 +vad_filter=True,1477MB 内存、13 分钟音频约 1 分 42 秒;要接近实时,再叠加 Whisper-Streaming 做流式处理。
下次转写那段音频的时候先拿它试一把,以这个速度,转录值得成为你流水线里的固定一步。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考