4 步把 faster-whisper 装好跑通:本地语音转写提速 4 倍
4 步把 faster-whisper 装好跑通本地语音转写提速 4 倍【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper周一早上 9 点你手里有一份 20 分钟的播客录音中午前既要出全文逐字稿还要拿到词级时间戳交给剪辑做字幕。faster-whisper 是 OpenAI Whisper 用 CTranslate2 重写的推理引擎同等精度下最高快 4 倍、内存占用更低适合想在 CPU 或 N 卡上离线跑语音转写的你。装之前先定 3 个配置 精度档位有 N 卡选devicecudacompute_typefloat16没卡选devicecpucompute_typeint8因为 ctranslate2 的 GPU 推理要调 cuBLAS 和 cuDNN量化档位直接决定显存/内存占用——large-v2 int8 只要 2926MBfp16 要 4525MB。模型档位base/small出草稿large-v3/turbo出正式稿因为 WER 和耗时都随档位涨草稿阶段没必要为精度多等 3 倍时间。Python 版本要求 3.9因为音频解码依赖 PyAV它把 FFmpeg 库打进了自己的 wheel 里装完就能读 mp3 / wav / m4a不用再往系统里装 FFmpeg。装环境三条命令的事GPU 运行库仅 N 卡需要—— 缺了 cuBLAS / cuDNNctranslate2 的 GPU 后端根本起不来。Linux 上直接pip install nvidia-cublas-cu12 nvidia-cudnn-cu129.* export LD_LIBRARY_PATH$(python3 -c import os, nvidia.cublas.lib, nvidia.cudnn.lib; print(os.path.dirname(nvidia.cublas.lib.__file__) : os.path.dirname(nvidia.cudnn.lib.__file__)))如果加载时报cuDNN not found或 CUDA 版本错误 → 说明库没进LD_LIBRARY_PATH或 ctranslate2 版本对不上 CUDA 12 → 回到这步核对路径新版 ctranslate2 只支持 CUDA 12 cuDNN 9老环境用pip install --force-reinstall ctranslate23.24.0CUDA 11或ctranslate24.4.0CUDA 12 cuDNN 8降级。Windows 上把 CUDA 12 的预编译库放进PATH或直接用nvidia/cuda:12.3.2-cudnn9-runtime这类官方 Docker 镜像。装 faster-whisper 本体—— 一行把 ctranslate2、tokenizers、PyAV 全带齐PyAV 自带 FFmpeg 库省掉系统依赖pip install faster-whisper如果import faster_whisper报 ctranslate2 版本冲突 → 说明机器上有旧版 ctranslate2 → 用pip install --force-reinstall ctranslate24.4.0锁版本如果 PyAV 触发本地编译 → 说明 pip 拉到了源码包而不是预编译 wheel → 检查 Python 版本是否在 3.9换官方预编译包别在 Windows 上硬编译。预下载模型可选—— 首次transcribe会自动从 Hugging Face 拉权重网络慢的机器先跑一次WhisperModel(large-v3, devicecuda)之后每次启动都走本地缓存。第一次跑通最小可运行代码 ⚡from faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe( podcast.mp3, beam_size5, # 默认 5调小更快、调大更准 vad_filterTrue, # 内置 Silero VAD 先剪静音 languagezh, # 已知语言直接指定省掉检测 ) print(info.language, f{info.language_probability:.2f}) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})beam_size控制解码时保留的候选路径数越大越准但越慢vad_filter先用 Silero VAD 剪掉超过 2 秒的静音段模型不用为无声部分白算language显式指定后跳过语言检测开头少跑一轮推理。注意segments是生成器真正的转写发生在你遍历它的那一刻想在遍历前拿到全部结果先执行segments list(segments)。长音频或成批文件建议换批量管线它把片段攒成批一次喂给模型官方基准里 13 分钟音频用large-v2batch_size8fp16 从 1 分 03 秒压到 17 秒int8 下 16 秒from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v2, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(modelmodel) segments, info pipeline.transcribe(podcast.mp3, batch_size8) with open(transcript.txt, w, encodingutf-8) as f: for seg in segments: f.write(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text}\n)模型档位怎么选 看交付精度和可用显存选草稿要快选小档加量化正式出稿上大档。档位用途资源占用RTX 3070 Ti13 分钟音频base / small草稿速览、低延迟CPU int8 约 1.5GB RAM / 51 秒large-v3日常交付主力GPU fp16 约 4.5GB / 1 分 03 秒turbo正式出稿、追求低延迟GPU fp16 约 6GB / 17 秒batch8large-v3 int8_float16显存吃紧的正式稿GPU 约 2.9GB / 59 秒拿不准就选large-v3这个中间档fp16 跑不动再降 int8。再往深走要词级时间戳做字幕transcribe(..., word_timestampsTrue)每个seg.words里带起止时刻和概率解码参数全集在 faster_whisper/transcribe.py。收紧 VAD 省算力默认只剪超过 2000ms 的静音传vad_parametersdict(min_silence_duration_ms500, threshold0.5)调整切分默认值定义在 faster_whisper/vad.py。换自己的权重用ct2-transformers-converter --model openai/whisper-large-v3 --quantization float16把 Transformers 权重转成 CTranslate2 格式量化档位和加载方式见 README.md 的 Model conversion 一节跑分方法参考 benchmark/。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考