faster-whisper 语音识别加速完整指南17 秒转写 13 分钟音频的离线方案【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 用 CTranslate2 重写了 Whisper 的推理流程准确率不变但同样转写 13 分钟音频最快只要 17 秒内存占用也更低并且全程离线。适合要在产品里集成离线语音转文字、或需要批量处理会议与播客录音的开发者。13 分钟会议录音转写要等多久这一节用同一份 13 分钟音频的实测数字回答“到底值不值得从 openai/whisper 换过来”。GPU 上跑 large-v2 模型RTX 3070 Ti 8GBCUDA 12.4同一精度 fp16 下openai/whisper 要 2 分 23 秒、显存 4708MBfaster-whisper 只花 1 分 03 秒。再把权重压成 int88 位整数量化用精度换速度和内存时间降到 59 秒显存 2926MB比原版少占 1.8GB。如果换用批量推理管线多条 30 秒片段并行解码摊薄模型启动开销fp16 下 13 分钟音频 17 秒转完int8 下只要 16 秒——比原生实现省了一分多钟。没有独显也能用CPU 上 small 模型openai/whisper fp32 要 6 分 58 秒、内存 2335MBfaster-whisper int8 是 1 分 42 秒、1477MB开 batch_size8 后进一步到 51 秒。另外两点省事音频解码由 PyAV 自带完成系统不用装 FFmpeg内置的 Silero VAD一段检测人声起止的小模型可以先滤掉静音减少空跑计算。faster-whisper 安装与首次转写这一节把环境确认、安装和第一段出字结果合并成三步从零到看到文字。先确认两件事Python 3.9 及以上当前发布版本 1.2.1如果要用 GPU机器上有 NVIDIA 显卡 CUDA 12 cuBLAS cuDNN 9。没有 GPU 也完全可行CPU 配 int8 量化即可覆盖多数离线场景。核心依赖ctranslate2 4.x、onnxruntime、av、tokenizers由 pip 自动解析不用单独装。第二条命令装包pip install faster-whisper第三条命令验证安装成功python -c import faster_whisper; print(faster_whisper.__version__)终端打印出 1.2.1 即代表装好了。下面这段代码在 CPU 上用 int8 量化加载 small 模型转写仓库测试目录里的 JFK 音频并逐段打印起止时间和文本from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac, beam_size5) for seg in segments: print(f[{seg.start:6.2f}s - {seg.end:6.2f}s] {seg.text.strip()})首次运行会先从 Hugging Face 下载一次模型权重之后你会看到形如[0.00s - 2.44s] And so my fellow Americans...的输出权重会缓存在本地之后运行不再下载。按硬件选 faster-whisper 的 compute_type 与 beam_size这一节给一张按 CPU / 消费级 GPU / 高端 GPU 划分的配置速查表照着填参数即可。硬件条件compute_typebeam_sizelanguagebatch_size参考数据仅 CPUint85已知语种直接指定8small 模型转 13 分钟音频 1 分 42 秒内存 1477MB消费级 GPU8GB 显存int8_float165同上默认large-v2 int8 下 59 秒显存 2926MB高端 GPU显存充裕float165同上8large-v2 fp16 下 17 秒显存 6090MB几个取值逻辑beam_size 越大解码越稳但越慢长音频或对准确率敏感时保持 5追求速度可以降到 1language 指定后跳过自动检测速度更稳比如英文录音写languageen、中文写zhbatch_size 只对 BatchedInferencePipeline 生效长音频批量转写建议 8 或 16。完整参数签名和注释见 faster_whisper/transcribe.py。faster-whisper 进阶VAD 静音过滤、批量转写与词级时间戳这一节覆盖三个高频进阶能力各配一段可直接复制的代码。VAD 静音过滤。传vad_filterTrue即可跳过录音里的长段沉默默认只移除超过 2 秒的静音想更激进地过滤用vad_parameters调阈值segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )批量转写。BatchedInferencePipeline是transcribe的即插即用替换GPU 上吃满显存的关键from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(model) segments, info pipeline.transcribe(audio.mp3, batch_size16)词级时间戳。做字幕对齐、热词定位时传word_timestampsTrue再从每个 segment 的words字段读每个词的起止时间segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for seg in segments: for word in seg.words: print(f{word.start:6.2f}-{word.end:6.2f} {word.word})faster-whisper 常见报错与解决方法这一节是“现象 → 原因 → 解决”对照表踩到直接查。现象可能原因解决办法GPU 加载时报 CUDA 相关错误缺 cuBLAS/cuDNN或 CUDA 11 环境配了新版 ctranslate2按 CUDA 12 装 cuBLAS 和 cuDNN 9旧环境降级 ctranslate2CUDA 11 用ctranslate23.24.0CUDA 12 cuDNN 8 用ctranslate24.4.0GPU 显存不足OOM模型过大或 fp16 占用偏高compute_type 改用 int8_float16large-v2 显存从 4525MB 降到 2926MB或换更小模型转写速度远低于预期CPU 跑大模型或 beam_size 偏高换小模型 int8CPU 上 small 从 6 分 58 秒降到 1 分 42 秒或用 GPU长音频走批量推理调用 transcribe 后一直没有输出segments 是生成器遍历前不会真正开始转写用 for 循环遍历或list(segments)强制执行首次运行特别慢首次加载会从 Hugging Face 下载模型权重等一次即可之后本地缓存也可自行转换模型目录后直接加载faster-whisper int8 量化验证与源码入口这一节给一个上线前必做的对比动作并附上深入阅读的入口。拿一段你自己的真实录音分别用compute_typefloat16和compute_typeint8GPU 上用int8_float16各跑一遍记录三项指标总耗时、峰值显存/内存、转写文本差异。数据以 benchmark/ 目录下的脚本为准想复现文中数字可以直接跑这些基准脚本想逐行核对参数默认值读 faster_whisper/transcribe.py 里 transcribe 方法的签名和注释。现在就做一件事选一段 10 分钟以上的真实录音今天把 int8 与 float16 的耗时、内存、识别差异各跑一遍数据说话再定线上配置。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考