faster-whisper 实战3 步把 Whisper 语音转写提速 4 倍【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper晚上 6 点你手里有一段 40 分钟会议录音想在晚饭前拿到带时间戳的语音转写稿。faster-whisper 是 OpenAI Whisper 的 CTranslate2 重写版CTranslate2 相当于给模型换了台更省油的推理引擎同等精度下最高 4 倍速还更省内存。 动手前先把这 3 件事定下来先看硬件档位有 N 卡就选devicecudacompute_typefloat16没卡就devicecpucompute_typeint8。新版 ctranslate2 只支持 CUDA 12 cuDNN 9如果老环境跑不了就升级或把 ctranslate2 锁到 3.24.0CUDA 11/ 4.4.0CUDA 12 cuDNN 8。显存紧张时还能用compute_typeint8_float16再压一档。按延迟预算选模型tiny/base最快medium均衡large-v3/turbo精度最高。如果音频短、要求快就往小模型靠如果是正式交付就上大模型。环境只要 Python 3.9解码音频靠 PyAV它把 FFmpeg 的库打进了自己的 wheel 里系统不用另装 FFmpeg。如果import faster_whisper直接报缺av说明 PyAV 没装好先回上一节补装。 安装与首次启动有 N 卡先装 GPU 运行库。CTranslate2 推理时要调 cuBLAS 和 cuDNN缺了它们模型根本起不来pip install nvidia-cublas-cu12 nvidia-cudnn-cu129.*Linux 装完要把库目录加进LD_LIBRARY_PATHREADME 的 GPU 小节有现成命令。如果加载时报cuDNN not found或 CUDA 版本错 → 库没进环境变量或版本对不上 CUDA 12 → 回上一步核对路径或者直接换内置 cuDNN 9 的 Docker 镜像。再装 PyAV它是唯一的音频解码入口走官方预编译 wheel 就免编译pip install av如果它触发本地编译失败 → pip 拉到了源码包而不是 wheel → 换官方预编译包别在 Windows 上硬编译。最后装本体一行把 ctranslate2、tokenizers、onnxruntime 全部带齐pip install faster-whisper如果import faster_whisper报 ctranslate2 版本冲突 → 机器上已有旧版 → 用pip install --force-reinstall ctranslate24.4.0锁版本。装完先验证一下。仓库自带一条小样本tests/data/jfk.flac转它一遍链路就算通了from faster_whisper import WhisperModel model WhisperModel(tiny, devicecpu, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac) print(next(iter(segments)).text, info.language) 核心用法从单条到批量三种模式都在同一个transcribe接口上参数是同一套。单条转写最小可跑。vad_filterTrue会先用内置 Silero VAD 剪掉长静音再送进模型VAD ≈ 先把没声音的段落剪掉模型就不用白算beam_size控制解码精度默认就是 5model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(meeting.mp3, beam_size5, vad_filterTrue) print(f语言: {info.language}置信度 {info.language_probability:.2f}) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})注意segments是生成器真正跑转写发生在你遍历它的那一刻想立刻跑完先segments list(segments)。收紧 VAD省算力。音频很长、说话占比低时可以收紧静音切分segments, _ model.transcribe( meeting.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )默认只移除超过 2 秒的静音speech_pad_ms默认 400在语音块两侧留余量。各参数含义在 vad.py。批量转写生产可用。BatchedInferencePipeline是WhisperModel.transcribe的平替把片段攒成批一次喂给模型比逐句解码快一个量级from faster_whisper import BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(modelmodel) segments, _ pipeline.transcribe(meeting.mp3, batch_size16)批量管线默认就开着 VAD仓库基准里13 分钟音频用large-v2batch_size8fp16 的 1 分 03 秒被压到 17 秒。 快速对照表RTX 3070 Ti 上的实测数据13 分钟音频、large-v2来自 README 的 Benchmark 节转写方式耗时显存fp16beam_size51 分 03 秒4525 MBfp16batch_size817 秒6090 MBint8beam_size559 秒2926 MBint8batch_size816 秒4500 MB结论就一句批量化是提速大头int8 是省显存大头两者可以叠加。 接下来往哪走做词级时间戳加word_timestampsTrue每个seg.words里都有起止时刻完整解码参数看 transcribe.py。调 VAD 省算力用vad_parametersdict(min_silence_duration_ms500)收紧静音切分默认值与含义在 vad.py。转换或加载自有权重README 的 Model conversion 一节讲了怎么把微调模型转成 CTranslate2 格式见 README.md更多跑分参考 benchmark/。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考