拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何用 faster-whisper 把 Whisper 语音转录提速4倍:完整实战指南

如何用 faster-whisper 把 Whisper 语音转录提速4倍完整实战指南【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是一个基于 CTranslate2 推理引擎重新实现的 OpenAI Whisper 语音转录库。它保持与原版相同的准确率但速度最快可提升 4 倍内存占用更低并支持 8 位量化。如果你还在用 openai/whisper 转录整场会议录音、干等十几分钟这套方案可以直接替换准确率不降。场景先说清楚转录慢卡在哪用原版 Whisper 做语音转文字时常见的两个抱怨13 分钟录音要转 2 分多钟GPU、large-v2 模型长音频更夸张批量处理时内存/显存吃紧想开批处理又容易爆显存。faster-whisper 的做法不是魔改 Whisper而是把 Whisper 模型搬到 CTranslate2 这个专门为 Transformer 模型做过推理优化的引擎上跑再配合权重量化int8和批量推理把耗时和内存同时压下来。一句话版本项目结构有多轻整个库就 6 个核心模块职责清晰模块负责什么faster_whisper/audio.py音频解码依赖 PyAV自带 FFmpeg 库系统不用单独装 FFmpegfaster_whisper/feature_extractor.py梅尔频谱特征提取faster_whisper/tokenizer.py多语言分词器faster_whisper/transcribe.py转录核心算法含批量推理入口faster_whisper/vad.py语音活动检测内置 Silero VAD 模型faster_whisper/assets/silero_vad_v6.onnxfaster_whisper/utils.py工具函数当前版本 1.2.1要求 Python 3.9。用数据看提速同一段 13 分钟音频官方基准用 13 分钟音频对比各实现测试环境分别是 CUDA 12.4 RTX 3070 Ti 8GBGPU和 8 线程 i7-12700KCPUbeam_size 统一为 5GPU 上跑 large-v2 模型实现精度耗时显存openai/whisperfp162m23s4708MBfaster-whisperfp161m03s4525MBfaster-whisperbatch_size8fp1617s6090MBfaster-whisperint859s2926MBfaster-whisperbatch_size8int816s4500MBCPU 上跑 small 模型实现精度耗时内存openai/whisperfp326m58s2335MBfaster-whisperfp322m37s2257MBfaster-whisperint81m42s1477MBfaster-whisperbatch_size8int851s3608MB规律很清楚开 batch_size 换速度开 int8 换内存显存/内存够用就两个一起上GPU 上 13 分钟音频 16 秒跑完。另外对蒸馏模型 distil-large-v3faster-whisper 批量推理batch_size16fp1625m50s 完成WER 13.527比 transformers 实现46m12sWER 14.801快了近一倍且误差更低。三步上手安装、加载、转录pip install faster-whisperfrom faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5) print(info.language, info.language_probability) for segment in segments: print(f[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text})设备与精度的组合关系场景devicecompute_typeGPU省显存cudaint8_float16GPU默认cudafloat16CPU省内存cpuint8CPU默认cpufloat32不指定language时会自动检测语言基于开头 30 秒返回info.language和置信度task支持transcribe和translate非英语音频转成英文。常用参数速查调优基本只动这几个参数参数作用建议beam_size解码搜索宽度默认 5注意原版 whisper 默认是 1对比性能时务必对齐batch_size批量推理大小显存够就调到 8~16提速明显word_timestamps输出词级时间戳做字幕必开vad_filter过滤无人声片段默认 True长音频建议保留vad_parameters调节 VAD 灵敏度如dict(min_silence_duration_ms500)默认只删 2 秒以上的静音hotwords提示词/专有名词识别专业术语、人名时加language强制指定语言已知语言时指定省掉检测开销词级时间戳 VAD 的典型用法做字幕时直接抄segments, _ model.transcribe( audio.mp3, word_timestampsTrue, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), ) for seg in segments: print([(round(w.start, 2), round(w.end, 2), w.word) for w in seg.words])进阶批量推理与自定义模型批量推理BatchedInferencePipeline是WhisperModel.transcribe的即插即用替代版默认自带 VAD 过滤from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(modelmodel) segments, info batched.transcribe(audio.mp3, batch_size16)加载自己微调的模型装好transformers[torch]4.23后用ct2-transformers-converter把任何兼容 Transformers 的 Whisper 模型原始官方模型或用户微调模型转成 CTranslate2 格式可用--quantization float16或int8_float16指定精度再用WhisperModel(本地目录)直接加载。Docker 部署仓库 docker/ 目录有一个最小示例Dockerfile 基于nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04镜像内含 cuBLAS 和 cuDNN 9适合 GPU 环境不想手动装库的人。避坑指南segments是生成器transcribe返回时并没有真正开始转录必须遍历for 循环或list()才会实际运行。这是新手最容易踩的坑。GPU 环境要求需要 NVIDIA cuBLAS cuDNN 9CUDA 12。CUDA 11 用户需降级ctranslate23.24.0CUDA 12 cuDNN 8 则用4.4.0。VAD 依赖onnxruntime启用vad_filter前确认已安装。做对比测试要对齐条件beam_size5 vs 1、CPU 线程数设置OMP_NUM_THREADS、以及转录 WER 相近否则速度数字没有可比性。系统不用装 FFmpeg解码走 PyAV 自带的 FFmpeg 库少一项环境依赖。适合谁下一步做什么如果你在做字幕生产线、会议/播客语音转文字、或需要批量处理大量音频faster-whisper 是目前把速度、准确率、内存三者平衡得最好的开源方案。下一步建议先按上文的三步把最小流程跑通再阅读 faster_whisper/transcribe.py 里transcribe的完整参数文档批量部署参考 docker/ 的示例。想拉源码看实现的话可克隆git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门