Faster-Whisper:让 OpenAI Whisper 转录提速 4 倍、内存减半
2026/9/5 18:18:37 网站建设 项目流程

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)GPU2 分 23 秒4708MB
large-v2 · faster-whisper(FP16)GPU1 分 03 秒4525MB
large-v2 · faster-whisper(INT8)GPU59 秒2926MB
small · faster-whisper(INT8,batch_size=8)CPU51 秒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 秒。音频越长、文件越多收益越大,过夜跑几小时音频的活儿必用。

做字幕和词级时间戳时,它怎么帮你

transcribeword_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"+BatchedInferencePipelinebatch_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),仅供参考

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

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

立即咨询