ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Faster-Whisper 实测:同一个 Whisper,为什么它的语音转录能快 4 倍?

Faster-Whisper 实测:同一个 Whisper,为什么它的语音转录能快 4 倍? Faster-Whisper 实测同一个 Whisper为什么它的语音转录能快 4 倍【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper刚录完一场三小时的播客文件躺在桌面上你需要把它转写成文字稿。用 OpenAI 原版 Whisper 在显卡上跑13 分钟的音频要 2 分 23 秒——这个速度对长音频基本没法忍。Faster-Whisper 就是干这事的它基于 CTranslate2 推理引擎重新实现了 Whisper 模型用更少的内存、最高快 4 倍的速度完成同样的语音转录任务。它到底是什么简单说SYSTRAN 团队维护的一个开源库把原版 Whisper 的 PyTorch 推理引擎整个换成了 CTranslate2——一个专门为 Transformer 模型推理加速的 C 引擎。模型权重没变还是你熟悉的那套 Whisperlarge-v3、distil-large-v3 都能直接加载变的只是跑推理的那台发动机。附带一个很省心的细节不用单独装 FFmpeg音频解码靠它捆绑的 PyAV 库直接搞定。为什么这么快 ⚡三个关键点每个都比原版快在明处1. 引擎替换。原版 Whisper 用 PyTorch 跑推理算子调用、内存布局都有不少开销CTranslate2 针对 Transformer 做了算子融合和显存排布优化单段解码本身就更快。2. 8 位量化。原版权重全精度存储它一行参数就能切到 int8内存占用近乎减半速度还涨基准测试里精度基本不掉。3. 批量推理。这是拉开差距的大头。Whisper 本来就是按 30 秒一段切片处理音频的batch_size参数让 GPU 同时解多段。同样的 large-v2 模型从 1 分 03 秒压到 17 秒靠的就是这个。from faster_whisper import WhisperModel # GPUFP16 是默认选择INT8 更省显存 model WhisperModel(large-v3, devicecuda, compute_typefloat16) # CPUINT8 量化内存和速度兼顾 # model WhisperModel(large-v3, devicecpu, compute_typeint8)这段就是全部的核心配置换device和compute_type两个参数GPU 和 CPU 的部署就都覆盖了。上手只需几分钟先安装一条命令PyPI 直接装pip install faster-whisper然后是完整的最小可跑路径import faster_whisper model faster_whisper.WhisperModel(base, devicecpu, compute_typeint8) # 最小模型 INT8先试跑 segments, info model.transcribe(audio.mp3) # 返回的是生成器还没开始转 print(检测到语言:, info.language, round(info.language_probability, 2)) # 自动检测语种 for seg in segments: # 开始迭代转录此刻才真正执行 print(f[{seg.start:.1f}s - {seg.end:.1f}s] {seg.text})GPU 用户把devicecuda、compute_typefloat16换上去就行其他代码一字不改CPU 用户保持int8再视情况加cpu_threads指定物理核心数。实测数据说话以下数据全部引自仓库 README.md 的 Benchmark 章节GPU 在 NVIDIA RTX 3070 TiCUDA 12.4上测CPU 在 i7-12700K 8 线程上测音频均为 13 分钟。GPU 组large-v2 模型实现精度耗时显存openai/whisperfp162m23s4708MBfaster-whisperfp161m03s4525MBfaster-whisperint859s2926MBfaster-whisperbatch_size8int816s4500MBCPU 组small 模型实现精度耗时内存openai/whisperfp326m58s2335MBfaster-whisperfp322m37s2257MBfaster-whisperint81m42s1477MBfaster-whisperbatch_size8int851s3608MB最值得看的数字是 GPU 组的 16 秒13 分钟音频 16 秒跑完约 49 倍实时显存 4500MB 意味着 8GB 卡能稳稳跑 large 级别模型。不开批处理的话int8 的 2926MB 也比原版少了近 40% 显存——对小显存显卡来说这是能不能跑的差别。真实场景怎么用给 3 小时会议录像加字幕。痛点字幕工具只认句子级时间戳做不了逐词高亮。配置model.transcribe(meeting.mp4, word_timestampsTrue, vad_filterTrue)。效果每个词都带 start/end 时间VAD 先把静音段切掉再转录省算力还不容易在静音处幻听。批量转写整个目录的 MP3。痛点几十集播客一个个跑太慢。配置套个文件循环调用transcribeGPU 上换用BatchedInferencePipeline并把batch_size调到 16。效果批量推理是吞吐最大的跑法这条流水线默认开启 VAD 过滤。提升专业术语识别率。痛点Whisper 爱把 CTranslate2 写成 C translate two。配置加一个hotwordsCTranslate2, Whisper, VAD参数参数说明见 transcribe.py 里的 docstring。效果模型会倾向输出你给的词后期改稿量明显下降。踩坑与调优调了 transcribe 却没反应、不输出→segments是生成器不迭代就不跑 → 先list(segments)或者直接在 for 循环里消费。GPU 报找不到 cuBLAS / cuDNN 库→ 新版 ctranslate2 只支持 CUDA 12 cuDNN 9 → 按 README 装对应版本用 CUDA 11 的老卡就降级ctranslate23.24.0。INT8 加批量推理 OOM→ 大概率是batch_size设太大 → 从 16 降到 4 或 8 试试实在不行退回float16。VAD 把句子首尾咬字切掉了→speech_pad_ms太保守 → 在vad_parameters里设speech_pad_ms200再调小min_silence_duration_ms默认参数说明在 vad.py。CPU 上速度没提上来→ 线程没配 → 给cpu_threads设物理核心数或运行时设OMP_NUM_THREADS两者取一致。值不值得用如果你在跑 Whisper 但嫌慢、嫌吃内存或者要批量处理字幕转写它基本没有理由不换成这个接口几乎一致迁移成本很低。不适合的场景是流式实时转录——它本质是离线模型实时需求得去看社区方案Whisper-Streaming 这类项目都以它做后端。想深入调参WhisperModel 的全部参数 和 VAD 实现 是两站必读。建议的下一步很具体先用base模型加 int8 转一段一分钟的音频把速度手感找出来再决定上大模型。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表