
Faster-Whisper 本地部署指南3 个判断定配置5 分钟跑通语音识别【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper本文带你用 faster-whisper 在本地完成语音识别部署先做三个判断选定模型与计算精度再用最小代码跑通首次转录最后给出三个高频坑的解法和官方性能参考值。一、三个判断定下你的部署方案上手前先把三个问题定下来能省掉后面大部分返工要不要本地部署、用哪个模型、用什么计算精度。判断 1该不该本地部署faster-whisper 用 CTranslate2一个面向 Transformer 模型的推理引擎重写了 OpenAI Whisper 的推理路径音频不出机器也没有按次调用的费用。官方基准显示相同精度下转录 13 分钟音频openai/whisper 需要 2 分 23 秒faster-whisperfp16只要 1 分 03 秒官方基准参考值自验方法见第五节。适合本地部署的情况通常满足其一音频涉及敏感内容会议、医疗、法务不能上传第三方服务批量处理需求大云端按次计费成本压不住设备无法联网需要离线运行如果只是偶尔转录几段短音频云端 API 更省事不必为此搭建本地环境。判断 2选哪个模型模型名称直接传给WhisperModel对应的 CTranslate2 权重会在首次运行时自动下载可下载的名称列表定义在模型列表中。选型思路CPU 环境small及以下追求极速可用tinyGPU 环境、追求精度large-v3或更轻的distil-large-v3蒸馏版参数量更少、速度更快仅英文场景带.en后缀的模型如base.en比多语言版更快更准英文高吞吐场景可看turbolarge-v3 的蒸馏加速版模型选大了机器带不动选小了专有名词识别率会掉建议先用small跑一遍样音听感不满意再升级。判断 3按硬件选对计算精度compute_type控制权重的存储和运算精度int8 指 8 位整数量化把 fp32 权重压到 8 位省内存、提速精度损失很小。核心推理模块中device默认值为auto有 GPU 时自动使用 GPU。硬件devicecompute_type说明NVIDIA GPUcudafloat16速度与精度平衡首选NVIDIA GPUcudaint8_float16显存紧张时的混合量化CPUcpuint8比 fp32 快且内存约省一半官方基准参考值二、5 分钟搭好本地推理环境 安装只有一条命令要求 Python 3.9 以上。音频解码由 PyAV 库内置完成不需要单独安装 FFmpegpip install faster-whisperGPU 环境需要额外准备 NVIDIA 的 cuBLASCUDA 12和 cuDNN 9 两个库。Linux 上可以直接用 pip 装并设置LD_LIBRARY_PATHpip install nvidia-cublas-cu12 nvidia-cudnn-cu129.* export LD_LIBRARY_PATH$(python3 -c import os; import nvidia.cublas.lib; import nvidia.cudnn.lib; print(os.path.dirname(nvidia.cublas.lib.__file__) : os.path.dirname(nvidia.cudnn.lib.__file__)))下面是最小可运行示例用的是仓库自带的示例音频from faster_whisper import WhisperModel audio_file tests/data/jfk.flac # 仓库自带示例音频 asr_model WhisperModel(base, devicecpu, compute_typeint8) segments, info asr_model.transcribe(audio_file, beam_size5) print(f语言: {info.language}置信度 {info.language_probability:.2f}) for seg in segments: print(f[{seg.start:7.2f} - {seg.end:7.2f}] {seg.text})segments是生成器generator一种惰性序列在遍历它之前不会真正执行转录——这一点是新手最常踩的坑第三节详细说。三、跑不通三个高频坑与解法 ️坑 1调了 transcribe程序却没动静model.transcribe返回的segments是生成器调用瞬间只完成参数解析音频不遍历、模型不加载推理。把结果物化成列表或直接在for循环里消费segments, info asr_model.transcribe(audio_file) results list(segments) # 转录在这一步才真正执行 print(results[0].text)坑 2VAD 把语音切没了或静音全留着vad_filterTrue会启用 Silero VAD语音活动检测模型先筛出有声片段再送模型避免空转默认策略偏保守只丢弃超过 2 秒的静音。参数默认值定义在 VAD 模块可通过vad_parameters覆盖segments, info asr_model.transcribe( audio_file, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), # 默认 2000ms )背景噪音多、误判出多余片段调大min_silence_duration_ms如 800句子交界处有字被切掉调小如 300或增大speech_pad_ms默认 400每段语音两侧的保护垫坑 3GPU 报 CUDA / cuDNN 版本冲突最新版ctranslate2只支持 CUDA 12 cuDNN 9。环境不匹配时的降级方案CUDA 11 cuDNN 8pip install --force-reinstall ctranslate23.24.0CUDA 12 cuDNN 8pip install --force-reinstall ctranslate24.4.0图省事可以直接用 Docker官方镜像nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04已内置所需库仓库里给了可直接参考的 Docker 示例。四、进阶参数更准、更快的转录以下参数都在transcribe上直接传参完整签名见核心推理模块。词级时间戳给每个词打点segments, _ asr_model.transcribe(audio_file, word_timestampsTrue) for seg in segments: for word in seg.words: print(f[{word.start:7.2f} - {word.end:7.2f}] {word.word})做逐词高亮、字幕对齐时必开。批量推理GPU 上的最大提速点BatchedInferencePipeline把多个 30 秒窗口打包一起送 GPU是 GPU 环境下提升最明显的开关且默认就带 VADfrom faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(modelmodel) segments, info pipeline.transcribe(audio_file, batch_size16) # int8 时用 8官方基准中large-v2GPUfp16 加batch_size8时 13 分钟音频 17 秒跑完比非批量快 3 倍以上官方基准参考值。提高准确率的开关hotwords量子 纠缠给专有名词、术语加权减少同音词误识initial_prompt这是一段关于物理学的讲座注入上下文引导输出风格beam_size束搜索宽度同时保留几条候选路径取最优默认 5调到 10 可提升少量准确率耗时相应变长temperature默认按 0.0 起步、逐段递增低置信度段自动重试languagezh明确指定语言可跳过检测环节condition_on_previous_textTrue默认启用用前文帮助消歧但distil-large-v3官方推荐搭配languageen并关闭它五、官方基准参考与自验方法以下数据摘自仓库 README均为官方基准参考值请以自己环境实测为准场景配置13 分钟音频耗时内存/显存GPURTX 3070 Tiopenai/whisper fp162m23s4708MBGPUfaster-whisper fp161m03s4525MBGPUfaster-whisper int859s2926MBGPUfaster-whisper fp16 batch_size817s6090MBCPUi7-12700Ksmall 模型fp322m37s2257MBCPUint81m42s1477MB自己复测时注意三点否则对比没有意义beam_size对齐openai/whisper 默认 1faster-whisper 默认 5CPU 下用OMP_NUM_THREADS8 python3 my_script.py固定线程数用 WER词错误率即识别错词占比相近的两组结果比速度仓库自带基准脚本可直接跑先用small int8 在 CPU 上把第二节的最小示例跑通再对照第三节排查你的硬件环境然后用第四节的 VAD 和beam_size参数调到自己音频上的效果满意为止。仓库的benchmark/和tests/目录提供了现成的验收素材遇到异常时把日志级别调到DEBUGlogging.getLogger(faster_whisper).setLevel(logging.DEBUG)通常能直接看到问题段落在哪。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考