
Faster Whisper 快速上手教程语音转文字如何提速到 4 倍【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper同一段 13 分钟的音频openai/whisper 要转 2 分 23 秒faster-whisper 用 INT8 量化只要 59 秒显存也从 4708MB 降到 2926MB——这是 README 基准测试里写死的数字。faster-whisper 把 OpenAI Whisper 换到 CTranslate2 推理引擎上重跑了一遍准确率基本不变速度和内存是它最核心的两个卖点。它解决什么问题批处理大量录音时转写时间是主要成本。仓库 README 给出的实测是同样一段 13 分钟的音频large-v2 模型在 GPU 上faster-whisperint859 秒跑完openai/whisperfp16要 2 分 23 秒再开batch_size8时间压到 16 秒。你的机器能多快后面「性能与选型参考」有对照表。只有一台没有 GPU 的服务器这也是常见场景。CPU 上跑 small 模型INT8 量化能把内存从 2335MB 降到 1477MB时间从 7 分 58 秒降到 1 分 42 秒openai/whisper fp32 为基准8 线程 i7-12700K 实测。要做字幕或语音标注transcribe()能直接给出每个词的起止时间word_timestampsTrue不用自己再做对齐。装好并跑通系统要求只有一条硬性的Python ≥ 3.9README「Requirements」节。不用装 FFmpeg——音频解码由 PyAV 库自带的 FFmpeg 库完成。默认路径CPU 就能跑pip install faster-whisper如果你要 GPU 加速额外需要 NVIDIA 的 cuBLASCUDA 12 版和 cuDNN 9。最新版 ctranslate2 只认 CUDA 12 cuDNN 9CUDA 11 环境要降级到ctranslate23.24.0CUDA 12 cuDNN 8 用4.4.0README 原文给出的版本对应关系。嫌麻烦就直接用 NVIDIA 官方 CUDA 镜像起容器仓库里就有现成的docker/Dockerfile 基于nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04只装包加跑一个推理脚本。如果你要离线 / 内网先在有网机器上把模型下下来然后把本地目录传给WhisperModel后文有示例或加local_files_onlyTrue只读本地缓存。最小可运行示例音频直接用仓库自带的测试文件 tests/data/jfk.flacfrom faster_whisper import WhisperModel model WhisperModel(base, deviceauto, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac) print(info.language, info.language_probability) for s in segments: print(f[{s.start:.2f}s - {s.end:.2f}s] {s.text})for循环走完转写才真正执行完——后面排错一节会解释为什么。核心用法速查 参数默认值作用model_size—模型名或本地目录如tiny/base/small/medium/large-v3/turbo/distil-large-v3完整列表见 faster_whisper/utils.pydevice/compute_typeauto/defaultcpuint8、cudafloat16、cudaint8_float16是三种常用组合language自动检测按前 30 秒音频判断语言代码如zh、en英文专用模型tiny.en等只认英文tasktranscribetranscribe转写 /translate翻译成英文beam_size5解码束宽跨实现对比性能时这个值必须一致README 专门提醒了vad_filterFalse批推理模式默认 True用 Silero VAD 跳过静音段word_timestampsFalse输出词级时间戳hotwordsNone领域词提示提高专有名词识别率initial_promptNone给模型的文本提示模型组合怎么选三行够判断WhisperModel(base, devicecpu, compute_typeint8) # 低内存 CPU WhisperModel(large-v3, devicecuda, compute_typefloat16) # 精度优先 WhisperModel(turbo, devicecuda, compute_typefloat16) # 速度优先更细的WhisperModel参数cpu_threads、num_workers、download_root等直接看 faster_whisper/transcribe.py 里WhisperModel.__init__的 docstring。进阶技巧批推理BatchedInferencePipeline——什么时候用GPU 上转长音频这是提速最大的一招README 实测里 large-v2 从 59s 压到 16s 靠的就是它。最小示例from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(modelmodel) segments, info pipeline.transcribe(audio.mp3, batch_size16)注意点transcribe()是WhisperModel.transcribe()的直接替身参数一致batch_size越大越快但吃显存上面 16s 那档显存 4500MB该模式默认开着 VAD。VAD 过滤——什么时候用长录音里大量静音时跳过静音段能明显省时。最小示例segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )注意点默认行为偏保守只去掉超过 2 秒的静音各参数默认值在 faster_whisper/vad.py 的VadOptions里阈值 0.5、语音块两侧各补 400ms 等。distil-large-v3——什么时候用要接近 large 的精度但推理更快。最小示例model WhisperModel(distil-large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5, languageen, condition_on_previous_textFalse)注意点该模型是按 faster-whisper 的转写算法专门设计的README「Faster Distil-Whisper」节README 基准表里它在 GPU 上 25m50s 跑完 YT CommonsWER 13.527比 transformers fp16 的 46m12s / 14.801 更快也更准。踩坑与排错症状加载 cuda 模型报错找不到 cuBLAS / cuDNN 库。原因最新 ctranslate2 只支持 CUDA 12 cuDNN 9环境里版本对不上。 解法装 CUDA 12 的 cuBLAS 和 cuDNN 9用 Docker 则直接基于nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04镜像见 docker/DockerfileCUDA 11 / cuDNN 8 的旧环境按 README 说明降级 ctranslate2 版本。症状拿到segments就打印结果什么都没输出或程序看起来卡住。原因transcribe()返回的是生成器不迭代就不转写README 里专门标了 Warning。 解法for循环遍历它或segments list(segments)让转写在当前时刻真正跑完。症状英文专用模型名字带.en上指定了languagezh输出却是英文或行为不对。原因.en系列只支持英文代码里会强制回退成en并打一条 warning。 解法多语言需求换非.en模型比如base、small、large-v3。症状模型加载慢 / 想换缓存位置。原因按模型名加载时会自动从 Hugging Face Hub 下载对应 CTranslate2 模型。 解法WhisperModel(/path/to/local/model)直接指本地目录download_root指定缓存目录local_files_onlyTrue禁止联网。性能与选型参考 GPUlarge-v2 模型13 分钟音频CUDA 12.4 NVIDIA RTX 3070 Ti 8GBbeam size 5README「Large-v2 model on GPU」表配置时间显存openai/whisper fp162m23s4708MBfaster-whisper fp161m03s4525MBfaster-whisper int859s2926MBfaster-whisper int8 batch_size816s4500MBCPUsmall 模型8 线程 Intel Core i7-12700KREADME「Small model on CPU」表配置时间内存openai/whisper fp326m58s2335MBfaster-whisper fp322m37s2257MBfaster-whisper int81m42s1477MBfaster-whisper int8 batch_size851s3608MB结论很直白GPU 上 int8 量化几乎免费赚来一半内存batch 推理只在 GPU 上有意义CPU 上 batch 版时间反而更长。自己复测的话仓库提供了 benchmark/speed_benchmark.py 和 benchmark/memory_benchmark.py注意对比时保持 beam size、线程数一致。资源与下一步核心转写类WhisperModel/BatchedInferencePipelinefaster_whisper/transcribe.py可用模型名与下载映射faster_whisper/utils.pyVAD 参数与默认值faster_whisper/vad.py音频解码PyAVfaster_whisper/audio.py性能基准脚本benchmark/测试音频与用例tests/tests/data/ 下有现成音频可跑下一步动作装上包后先用baseint8转写一段你自己的一分钟音频听听准确率是否够用不够再把模型升到medium或large-v3这一步决定了它值不值得留在你的流程里。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考