faster-whisper 快速上手Whisper 语音转写提速 4 倍的完整指南【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是基于 CTranslate2一个针对 Transformer 模型优化的推理引擎重写的 Whisper 语音识别实现负责把音频转成带时间戳的文字。同样的模型权重意味着识别精度不变换来的是最多 4 倍的速度和更低的内存占用而且不用在系统里装 FFmpeg。读完这篇你能在 CPU 或 GPU 上把转写流程跑起来并知道常见报错怎么处理。对比原版基准速度、显存与量化收益先说结论引擎换了权重没换所以准确率不变变的是速度和占用。官方基准里GPU 上用 large-v2 转写 13 分钟音频faster-whisper 的耗时不足 openai/whisper 的一半开 8 位量化把模型权重压成更小的整数格式既省内存又加速再叠加批处理耗时进一步压到原来的四分之一左右显存占用下降约四成。CPU 场景差距更直观small 模型 int8 量化后同样音频的转写时间约为原版 fp32 的四分之一。没有显卡也完全能用int8 量化在普通 CPU 上已覆盖多数离线场景。安装前核对 Python 版本与 GPU 依赖pip 一条命令就能装好但有几个前提先核对依赖版本要求用途Python≥3.9当前发布版本为 1.2.1ctranslate24.x推理引擎pip 自动安装avPyAV≥11解码音频替代系统 FFmpegonnxruntime≥1.14运行内置的 Silero VAD 静音检测模型CUDA 12 cuBLAS cuDNN 9可选仅 GPU 部署需要环境是 CUDA 11 的话把 ctranslate2 固定到 3.24.0CUDA 12 配 cuDNN 8 则用 4.4.0。版本对应关系写在 README.md 里动手前先确认显卡驱动支持哪个 CUDA。三步跑通第一条带时间戳的转写跑通只需三步。装好后确认版本pip install faster-whisper python -c import faster_whisper; print(faster_whisper.__version__)用仓库自带的 tests/data/jfk.flac 试跑。CPU 上加载 small 模型并选 int8 量化首次运行会自动从 Hugging Face 下载一次权重from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac) print(info.language, info.language_probability) for seg in list(segments): print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})留意一个坑segments是生成器不遍历就不会真正开始转写上面用list()正是为了让转写立刻执行。你会看到形如[0.00s - 2.44s] And so my fellow Americans...的分段输出。开启词级时间戳与静音过滤拿到分段文本后还可以加两类细节。一是词级时间戳给 transcribe 传word_timestampsTrue每个分段的words字段里就有每个词的起止时间做字幕对齐、热词定位都用得上该选项默认是关闭的。二是静音过滤VADVoice Activity Detection语音活动检测在 1.2.1 里默认开启静音超过 2 秒的片段会被 Silero VAD 丢掉想收紧判定就传vad_parametersdict(min_silence_duration_ms500)全部可调项定义在 faster_whisper/vad.py。还可以传hotwords给模型提示专有名词降低人名、术语的错识率。长音频批处理吃满 GPU 吞吐普通 transcribe 一次只解码一个片段批量长录音建议换BatchedInferencePipeline它的 transcribe 是WhisperModel.transcribe的即插即用替代VAD 过滤默认开启from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v3, devicecuda, compute_typeint8_float16) pipeline BatchedInferencePipeline(model) segments, _ pipeline.transcribe(audio.mp3, batch_size8)官方基准里large-v2 在 GPU 上开batch_size8后13 分钟音频的耗时压缩到原来的四分之一左右。显存吃紧时把 compute_type 从 float16 降到 int8_float16精度损失很小。常见报错对照排查与下一步动作踩坑基本就这几类对号入座GPU 加载报 CUDA 错误 → 缺 cuBLAS/cuDNN或 CUDA 11 配了新版引擎 → 装 CUDA 12 的 cuBLAS 与 cuDNN 9老环境降级 ctranslate2显存 OOM → 模型偏大或 fp16 占用高 → compute_type 换 int8_float16或换更小模型速度远低于预期 → CPU 跑大模型或 beam_size束搜索宽度越大越稳但越慢偏高 → 换 small int8长音频走批处理调完 transcribe 迟迟没输出 → segments 是生成器未遍历就不执行 → 用list(segments)或 for 循环触发首次运行特别慢 → 在下载模型权重 → 等一次即可之后走本地缓存定线上配置前拿一段你自己的真实录音做对照float16 和 int8 各跑一遍记录耗时、内存与文字差异。想复现前文的基准数字直接跑 benchmark/ 目录里的脚本完整参数列表见 faster_whisper/transcribe.py 中 transcribe 的签名逐项带注释。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?