ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

faster-whisper:让 Whisper 语音转文字快 4 倍的 CTranslate2 重写引擎

faster-whisper:让 Whisper 语音转文字快 4 倍的 CTranslate2 重写引擎 faster-whisper让 Whisper 语音转文字快 4 倍的 CTranslate2 重写引擎【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是把 OpenAI Whisper 重写到 CTranslate2 推理引擎上的本地语音转文字库识别精度不变的前提下处理速度最高提升到 4 倍开启 8 位量化后内存还能再降约四成全程离线运行不依赖网络。 定位与硬实力一句话概括模型还是 Whisper但推理引擎换成了专为 Transformer 打造的 CTranslate2量化和算子优化都做得更狠所以快和省内存不需要拿准确率去换。它还内置了 Silero VAD 做静音检测音频解码直接由 PyAV 完成——系统里连 FFmpeg 都不用装pip install一步到位Python 3.9。官方 benchmark 用一段 13 分钟的音频实测large-v2 模型NVIDIA RTX 3070 Ti数据节选如下实现方式精度耗时显存占用openai/whisperfp162m23s4708MBfaster-whisperfp161m03s4525MBfaster-whisperint859s2926MBfaster-whisperbatch_size8int816s4500MB放到纯 CPU 场景small 模型i7-12700K 八线程原版 Whisper 要 6 分 58 秒faster-whisper 用 int8 跑 1 分 42 秒开批量后 51 秒搞定内存也从 2335MB 压到 1477MB。完整复现脚本见 benchmark/speed_benchmark.py。 上手装环境 跑通第一段转写环境要求很简单Python 3.9 及以上。CPU 转写开箱即用想用 GPU 则需 NVIDIA 的 cuBLAS 和 cuDNN 9配套 CUDA 12其余什么都不用装——音频解码依赖已随 PyAV 打包。pip install faster-whisper适用场景首次搭建本地 ASR 环境纯 CPU 即可运行。首次加载模型时会自动从 Hugging Face Hub 拉取对应的 CTranslate2 权重之后走本地缓存。最小可运行示例from faster_whisper import WhisperModel model WhisperModel(base, devicecpu, compute_typeint8) # CPU 8位量化 segments, info model.transcribe(audio.mp3) # 返回生成器迭代时才真正开始转 print(info.language, round(info.language_probability, 2)) # 自动检测语言及置信度 for seg in segments: # 在这里消费结果转录才会执行 print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})适用场景会议录音、语音笔记等单文件转写含语言自动检测。[!TIP]segments是生成器不遍历就不干活。想拿到完整结果就segments list(segments)或直接放进for循环消费。 核心能力拆解词级时间戳段落级起止之外还能给每个词标出起止时间做字幕和逐字分析直接可用segments, _ model.transcribe(audio.mp3, word_timestampsTrue) # 开启词级时间戳 for seg in segments: for word in seg.words: # 每个词带 start/end/word/probability print(f[{word.start:.2f}-{word.end:.2f}] {word.word}, end )适用场景字幕制作、语音逐字分析、内容标注。适合需要精确到词的用户。VAD 静音过滤内置 Silero VAD 模型自动跳过无人声的片段默认策略偏保守——只剔除超过 2 秒的静音。参数和默认值定义在 faster_whisper/vad.py 中可按需收紧segments, _ model.transcribe( interview.wav, vad_filterTrue, # 开启静音过滤 vad_parametersdict(min_silence_duration_ms500), # 静音超 500ms 即视为分段点 )适用场景停顿很多的访谈、课堂录音。适合长音频和批量处理用户。批量推理管道BatchedInferencePipeline是WhisperModel.transcribe的平替把多个 chunk 并行喂给解码器VAD 默认开启。官方数据里distil-large-v3 配batch_size16跑完 46 分钟量级的负载只用了 25 分 50 秒约为普通 transformers 路径的一半from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(modelmodel) segments, _ batched.transcribe(audio.mp3, batch_size16) # 内部已默认启用 VAD适用场景大批量音频管线。适合做离线批处理、内容工厂的开发者。另外transcribe还提供language指定语言、tasktranscribe 或 translate、hotwords热词提示、initial_prompt风格引导等参数完整签名见 faster_whisper/transcribe.py。⚖️ 选型与横向对比模型档位怎么选档位名即传入WhisperModel的第一参数首次使用自动下载档位定位建议tiny / base体量小CPU 友好草稿、实时性要求高的场景small速度与质量的平衡点日常会议转写的主力medium中档精度介于 small 与 large 之间large-v3精度上限重要内容、正式文稿turbo蒸馏大模型GPU 批量推理下速度收益明显大批量离线处理distil-large-v3专为 Faster-Whisper 算法设计建议搭配condition_on_previous_textFalse与同类方案横向对比主观评分维度重新挑选供选型参考维度faster-whisperopenai/whisper 原版whisper.cpp在线转写服务推理速度★★★★★★★☆☆☆★★★★☆★★★☆☆内存占用★★★★☆★★☆☆☆★★★★★★★★★★不占本地离线可用★★★★★★★★★★★★★★★☆☆☆☆☆词级时间戳★★★★★★★★☆☆★★★★☆★★★☆☆静音过滤VAD★★★★★☆☆☆☆☆★★★☆☆★★★☆☆解码参数自由度★★★★★★★★★☆★★★☆☆★★☆☆☆使用成本免费免费免费按量付费 谁在用场景速览字幕与视频创作者词级时间戳直接落字幕tasktranslate顺带产出多语言版本。开发者作为引擎嵌入自己的应用批量管线 热词提示定制领域术语。学术与调研人员讲座、访谈录音转文字配合 VAD 过滤长静音先出稿再精修。职场效率党会议录音转纪要、电话沟通存档CPU int8 就能跑数据不出本机。️ 排障三个坑 速查表坑 1脚本卡住没输出。现象是调用transcribe后长时间无反应——其实转录还没开始因为返回的是生成器。解法list(segments)或for循环消费后才真正执行。坑 2GPU 起不来。新版 ctranslate2 只支持 CUDA 12 cuDNN 9缺 cuBLAS/cuDNN 9 就会报错。老环境CUDA 11的临时方案是降级到ctranslate23.24.0。坑 3对比跑分对不上。faster-whisper 默认beam_size5而 openai/whisper 默认是 1设置不一致时快慢没有可比性CPU 侧记得固定OMP_NUM_THREADS再测。[!WARNING] 拿 faster-whisper 和别的实现比性能时先对齐 beam size、线程数和 WER否则比的是配置而不是引擎。问题可能原因解法调用后长时间无输出未迭代生成器for seg in segments:或list(segments)GPU 报库缺失错误未装 cuBLAS / cuDNN 9CUDA 12按 NVIDIA 官方文档安装CUDA 11 降级ctranslate23.24.0首次加载很慢正在从 Hugging Face Hub 下载 CTranslate2 权重耐心等待后续加载走本地缓存模型不匹配微调需求只认 CTranslate2 格式用ct2-transformers-converter转换后按本地目录加载Python 装不上包版本低于 3.9升级到 Python 3.9 后重装 进阶换模型、接生态用自己微调的模型仓库提供了转换工具任何兼容 Transformers 的 Whisper 权重含 OpenAI 原版和微调模型都能转成 CTranslate2 格式之后WhisperModel(本地目录)直接加载量化也能在转换时指定。接实时与多说话人生态社区已有基于 faster-whisper 的流式转写、说话人分离WhisperX 等和图形界面项目做实时字幕或多人会议转写时可以直接站在现成轮子上。行动清单pip install faster-whisper装完即跑无需系统级 FFmpeg先用WhisperModel(base, devicecpu, compute_typeint8)跑通最小示例长音频加vad_filterTrueGPU 环境改devicecuda, compute_typefloat16再提速上批量管线时换成BatchedInferencePipeline并调大batch_size。引擎选对、参数调顺本地语音转文字的瓶颈就不在了——剩下的只是把你手里的音频喂给它。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进