faster-whisper 语音转录加速:13分钟音频1分钟跑完,INT8再省近四成显存
2026/9/5 18:54:17 网站建设 项目流程

faster-whisper 语音转录加速:13分钟音频1分钟跑完,INT8再省近四成显存

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

凌晨一批三小时的会议录音要赶在早上出字幕,原版 Whisper 单卡跑完要到天亮。faster-whisper 是基于 CTranslate2 推理引擎的语音转录加速与低资源部署方案:同样的 13 分钟音频,GPU 上 1 分钟跑完,再开 INT8 量化显存还能省近四成。这里不先讲原理,先把环境跑通,再拆开看它快在哪。

5分钟跑通:faster-whisper 安装与第一次转录

环境门槛不高:Python 3.9 以上,音频解码用的 FFmpeg 库由依赖包 PyAV 自带,不用单独装 FFmpeg。依赖核心是ctranslate2>=4.0,<5,见 requirements.txt。

GPU 环境缺什么装什么(cuBLAS + cuDNN)

NVIDIA 卡需要 cuBLAS 和 cuDNN 的 CUDA 12 版本,最新 ctranslate2 只支持 CUDA 12 + cuDNN 9;老环境有降级方案,后文避坑清单里有写。docker/Dockerfile 里是一个现成的 GPU 部署镜像,可直接参考。

pip install faster-whisper
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") # 没 GPU 就写: device="cpu", compute_type="int8" segments, info = model.transcribe("audio.mp3", beam_size=5) print(f"language: {info.language} ({info.language_probability:.2f})") for seg in segments: # 注意是生成器,开始迭代才真正跑 print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")
  • 直接传"tiny""base""small""medium""large-v3"这类名字,会自动下载 Systran 官方转换好的模型;available_models()能列出可选项
  • 也可以传本地路径,加载自己用ct2-transformers-converter转出来的模型(含微调模型)
  • device+compute_type就是全部提速开关:GPU 用float16int8_float16,CPU 用int8

CPU 环境怎么配线程数

CPU 上跑之前先固定线程数:OMP_NUM_THREADS=8 python my_transcribe.py。速度更稳,和别的实现跑分也才有可比性。

⚡ 为什么比原版快:量化、计算图与 VAD

INT8/FP16 量化:模型瘦身,精度基本不掉

原版模型权重是 32 位浮点(FP32),量化后压成 16 位(FP16)或 8 位整数(INT8)。打个比方:仓库从一个个散箱换成压缩集装箱,取货(计算)更快、占地更小,货物(精度)基本没变。INT8 在 CPU 上收益最大,GPU 上同样有效。

计算图优化:编码器只算一遍,输出反复复用

CTranslate2 把 Transformer 推理重排成流水线:每个 30 秒窗口的编码器输出只算一次,解码阶段反复复用——中央厨房预做好酱料,档口只管出菜,不用每人现炒。批量接口更进一步,把多个窗口拼起来一起喂给 GPU:

from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16") batched = BatchedInferencePipeline(model=model) segments, info = batched.transcribe("audio.mp3", batch_size=16)

Silero VAD:先挑出人声,再让模型干活

转录前先过一遍内置的 Silero VAD(模型文件),只对人声段落跑大模型,等于先把垃圾页从书里抽掉再装订。默认策略保守,只去掉超过 2 秒的静音;想更激进可传vad_parameters=dict(min_silence_duration_ms=500),全部默认值见 faster_whisper/vad.py。批量接口默认就开着 VAD。

性能账本:13分钟音频,各家实跑对比

下表来自 README 官方基准:同为 13 分钟音频、large-v2 模型、beam_size=5,GPU 为 RTX 3070 Ti 8GB + CUDA 12.4。

跑法精度13分钟耗时显存占用
原版 openai/whisperfp162分23秒4708MB
faster-whisperfp161分03秒4525MB
faster-whisper(batch_size=8)fp1617秒6090MB
faster-whisper(INT8 量化)int859秒2926MB
faster-whisper(INT8 + batch_size=8)int816秒4500MB
whisper.cpp(Flash Attention)fp161分05秒4127MB
transformers(SDPA)fp161分52秒4960MB

精度对齐提速约4倍,INT8省38%显存;批处理最快16秒,但显存吃紧。

CPU 侧(small 模型,i7-12700K):原版 fp32 要 6分58秒、2335MB,faster-whisper INT8 是 1分42秒、1477MB,开批处理压到 51秒。低资源环境下这组数字更有参考意义。

三类场景对号入座

长视频 / 会议录音 → 字幕批处理

  • 优势:批量接口把 13 分钟压到 16 秒;word_timestamps=True给出词级起止时间,字幕对齐省事;多语言自动检测内置
  • 适用:课程字幕、会议纪要、视频审核队列
  • 限制:默认 VAD 只滤超过 2 秒的静音,长停顿音频要自己调参;极嘈杂环境准确率会下降

CPU 低资源自建转录服务

  • 优势:INT8 下 small 模型 CPU 只要 1分42秒、内存 1477MB;不用装 FFmpeg;GPU 部署有现成 docker/Dockerfile
  • 适用:内网自建转录服务、低配服务器
  • 限制:CPU 有速度上限,高并发要靠批处理和OMP_NUM_THREADS调优

说话人分离 / 近实时字幕(生态组合)

  • 优势:社区有 WhisperX(说话人分离 + 精确词级对齐)、Whisper-Streaming(近实时字幕)、speaches(OpenAI 兼容 API)等成熟集成
  • 适用:客服通话质检、直播字幕展示
  • 限制:需要组合第三方组件;多人同时说话易识别混乱

⚠️ 什么时候选它、什么时候别选

能勾中这些,就选 faster-whisper:

  • 只有 CPU 或低显存 GPU,却要批量处理长音频
  • 吞吐优先,能接受 INT8 量化带来的微小精度交换
  • 需要词级时间戳、多语言自动检测、热词提示(transcribehotwords参数)
  • 项目是 Python 3.9+,能引入 ctranslate2 依赖
  • 后续想接说话人分离、近实时字幕这类生态能力

这些情况别硬上:

  • 必须原封不动走 openai/whisper 的代码路径
  • 环境是 CUDA 11:新版 ctranslate2 只支持 CUDA 12,得降级到ctranslate2==3.24.0(CUDA 12 + cuDNN 8 则用4.4.0
  • 显存不到 4.5GB 却想开 batch_size=8:批量模式显存会涨到 4500–6090MB

最常踩的四个坑:

  1. segments是生成器,不迭代就不跑——新手第一坑
  2. 默认 beam_size=5(原版是 1),跑分不对齐参数,对比无效
  3. VAD 默认保守,转录里静音太多就调小min_silence_duration_ms
  4. distil-large-v3 建议按官方示例设condition_on_previous_text=False

模型加载与全部转录参数在 faster_whisper/transcribe.py,音频解码在 faster_whisper/audio.py,想复现基准可用 benchmark/speed_benchmark.py。

模型没变,跑法变了:faster-whisper 把 Whisper 的语音转录从"跑不跑得完"拉回到"多快跑完"。

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

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

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

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

立即咨询