ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

faster-whisper 语音识别实战指南:模型、硬件与参数选型一篇讲清

faster-whisper 语音识别实战指南:模型、硬件与参数选型一篇讲清 faster-whisper 语音识别实战指南模型、硬件与参数选型一篇讲清【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 语音识别项目基于 CTranslate2 推理引擎重建了 OpenAI 的 Whisper 模型同等精度下推理速度最高可达官方实现的 4 倍且内存占用更低。本文面向新手和普通开发者按先选型、再安装、后调优的决策顺序展开覆盖模型规格选择、CPU/GPU 配置、转录参数和自定义模型转换性能数据均取自仓库 README 的实测基准。性能基准到底快多少、省多少README 的测试条件是 13 分钟音频、beam_size5。GPU 侧NVIDIA RTX 3070 Ti 8GB、large-v2 模型openai/whisperfp162 分 23 秒显存 4.7GBfaster-whisperfp161 分 03 秒显存 4.5GBfaster-whisperint8 量化59 秒显存 2.9GBfaster-whisper 批量推理batch_size8int816 秒显存 4.5GBCPU 侧Intel Core i7-12700K 8 线程、small 模型openai/whisper fp32 需 6 分 58 秒、占 2.3GB 内存faster-whisper int8 为 1 分 42 秒、占 1.5GB。需要说明的取舍int8 量化速度接近翻倍、内存减半但可能损失少量精度对准确率敏感的场景建议保留浮点批量推理本质是拿显存换速度8GB 显卡开 batch_size8 就要预留约 4.5GB另外官方 openai/whisper 默认 beam size 是 1faster-whisper 默认是 5横向对比速度时务必先统一这项设置。安装与环境本地 Whisper 部署前先确认三件事Python 3.9 或更高版本是硬性要求。FFmpeg 不需要单独安装音频解码由打包在 PyAV 中的 FFmpeg 库完成实现细节可参考 faster_whisper/audio.py。CPU 环境执行pip install faster-whisper即可开工。GPU 环境需要 NVIDIA 的 cuBLAS 和 cuDNN 9配合 CUDA 12。注意最新的 ctranslate2 只支持这一组合CUDA 11 环境需固定 ctranslate23.24.0CUDA 12 配 cuDNN 8 则固定 4.4.0用 Docker 的话可以直接基于 nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04 镜像搭环境。模型权重在首次按名称加载时会自动从 Hugging Face 下载到本地之后走离线缓存因此整套离线音频转文字服务对环境的要求并不高。模型选择按任务和硬件定规格faster-whisper 支持 Whisper 标准系列tiny、base、small、medium、large-v3另有 turbolarge-v3 的高吞吐变体与 distil-large-v3蒸馏模型。选型建议英文内容、追求吞吐distil-large-v3。README 基准中它跑完测试集用时 25 分 50 秒transformers 实现为 46 分 12 秒词错误率也更低13.5 对 14.8。精度优先的通用场景large-v3配合 float16 是精度与资源的平衡点。硬件较弱或快速验证流程small 或 medium叠加 int8 量化。尺寸名直接作为字符串传给 WhisperModel无需手动下载。如果你有自己微调过的 Whisper 权重见文末的转换一节。CPU 还是 GPUcompute_type 怎么选device 与 compute_type 两个参数决定运行速度与资源占用GPU 默认用 devicecuda compute_typefloat16显存紧张时换 int8_float16显存约减半代价是精度可能略有下降。CPU 推荐 devicecpu compute_typeint8比 fp32 明显更快、占内存更少内存充裕且精度优先时才考虑 fp32。CPU 上可用环境变量 OMP_NUM_THREADS 限制线程数如 OMP_NUM_THREADS4控制内存峰值与调度开销。这套语音识别加速的收益主要就来自这里同一模型换对精度档位速度差可以到 2 倍以上。执行转录加载与调用只需两步from faster_whisper import WhisperModel # GPU FP16 model WhisperModel(large-v3, devicecuda, compute_typefloat16) # 或 GPU INT8 # model WhisperModel(large-v3, devicecuda, compute_typeint8_float16) # 或 CPU INT8 # model WhisperModel(large-v3, devicecpu, compute_typeint8)segments, info model.transcribe(audio.mp3, beam_size5) print(Detected language: %s, probability: %f % (info.language, info.language_probability)) for segment in segments: print([%0.2fs - %0.2fs] %s % (segment.start, segment.end, segment.text))注意segments是生成器转录在你迭代它时才真正开始想一次性拿到全部结果用list(segments)包一层即可。常用 transcribe 参数每个一句话beam_size束搜索宽度默认 5调大更稳定但更慢。word_timestamps传 True 获得词级时间戳通过 segment.words 逐词读取。vad_filter传 True 启用内置 Silero VAD先跳过无人声的片段默认策略只剔除超过 2 秒的静音可用 vad_parameters 收紧例如 min_silence_duration_ms500全部默认值见 faster_whisper/vad.py。language 与 condition_on_previous_text运行 distil-large-v3 时建议显式指定语言并设为 False这是该模型的设计用法。完整参数清单以 WhisperModel 类 为准。批量处理长音频BatchedInferencePipelineBatchedInferencePipeline.transcribe 与 WhisperModel.transcribe 是即插即用的替换关系只需额外传 batch_size。在 13 分钟 large-v2 测试中batch_size8 把耗时从 1 分 03 秒压到 17 秒显存从 4.5GB 涨到 6.1GB属于典型的用显存换速度。批量模式默认开启 VAD 过滤会议录音、播客这类长音频中静音占比不低开着它推理量会小一截。自定义模型转换并加载自己的 Whisper 权重需要微调模型时用项目自带的 ct2-transformers-converter 把 Transformers 格式的 Whisper 权重转成 CTranslate2 格式先安装 transformers[torch]4.23转换命令通过 --model 指定 Hub 模型名或本地目录--quantization 决定存储精度如 float16。转换产物可以直接按本地目录路径或用户名/模型名加载微调结果与标准模型的调用方式完全一致后续的部署链路无需任何改动。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进