faster-whisper 实战指南:语音转文字快 4 倍,从安装到排坑 faster-whisper 实战指南语音转文字快 4 倍从安装到排坑【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是基于 CTranslate2 推理引擎重写的 OpenAI Whisper 语音识别库准确率与原版一致但转录速度最快提升 4 倍内存占用更低。它不需要系统安装 FFmpeg装完即可用。下面按上手 → 提速 → 排坑 → 深入的顺序把你会用到的内容讲一遍。faster-whisper 是什么为什么值得用原版 openai/whisper 是 PyTorch 训练脚本直接拿来推理时速度一般。faster-whisper 把同一套模型权重换装进 CTranslate2——一个专为 Transformer 推理优化的引擎支持量化和更高效的算子。结果就是识别结果不变跑得更快、占得更少。官方基准数据13 分钟音频NVIDIA RTX 3070 Ti实现精度耗时显存openai/whisperfp162m23s4708MBfaster-whisperfp161m03s4525MBfaster-whisperint859s2926MBfaster-whisperbatch_size8int816s4500MB纯 CPU 场景也有明显收益small 模型下原版 fp32 需要 6m58sfaster-whisper 用 int8 只需 1m42s。如果你要处理的是会议录音、播客这类长音频这笔时间账很容易算清。另外两点省心之处Python 3.9 及以上即可音频解码由依赖库 PyAV 自带的 FFmpeg 库完成不需要单独安装 FFmpeg。安装与第一次转录两条命令跑通安装只有一步pip install faster-whisper然后是最短的可运行示例from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3) print(info.language, info.language_probability) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})跑完你会得到语言检测结果比如en 0.98和带起止时间的分段文本。首次运行会自动下载对应的 CTranslate2 模型权重并缓存到本地之后离线也能用。有四个细节值得留意segments是生成器。调用transcribe时不会真正开始转录必须遍历才会执行。想一次性拿到结果就写segments list(segments)。输入很灵活。音频参数可以是文件路径、类文件对象或 numpy 数组常见格式mp3、wav、m4a 等都能直接读。静音过滤默认内置。传vad_filterTrue会启用内置的 Silero VAD 模型onnx 文件随包分发见 faster_whisper/assets/默认只剪掉超过 2 秒的静音可用vad_parametersdict(min_silence_duration_ms500)收紧。词级时间戳。加word_timestampsTrue每个分段下会多出一个words列表每个词带起止时间做卡拉 OK 字幕或关键词高亮都靠它。提速与省内存选对模型、精度与批量推理速度主要由三件事决定模型大小、计算精度、是否批量推理。模型大小。内置名字可以直接当模型参数用完整映射关系在 faster_whisper/utils.pytiny/base/small/medium按精度递增速度递减large-v1~large-v3最高精度档turbo即 large-v3-turbo与distil-large-v3面向快且准的新一代权重适合 GPU。拿不准就用small起步不够再往上换。计算精度compute_type。GPU 上推荐float16显存紧张就int8_float16CPU 上推荐int8。device传auto会自动挑选可用设备CPU 线程数可用cpu_threads指定。批量推理。对长音频BatchedInferencePipeline能把 GPU 利用率拉满接口与WhisperModel.transcribe基本一致属于直接替换from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(model) segments, info batched.transcribe(audio.mp3, batch_size16)前面表格里的 16s 就是它的成绩。注意批量推理默认开启了 VAD 过滤。你大概率会踩的三个坑1. transcribe 调用了但什么都没发生就是上面说的生成器问题。把它放进list()或for循环里转录才会真正执行。日志想更详细可以这样开import logging logging.getLogger(faster_whisper).setLevel(logging.DEBUG)2. GPU 报 cuBLAS / cuDNN 找不到或版本不符较新的 ctranslate2 只支持 CUDA 12 cuDNN 9。版本不匹配时的降级方案来自 README.mdCUDA 11 cuDNN 8pip install ctranslate23.24.0CUDA 12 cuDNN 8pip install --force-reinstall ctranslate24.4.0如果不想折腾本机环境docker/Dockerfile 给出了现成的镜像底nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04里面 cuBLAS、cuDNN 都齐了。3. 识别慢、语言判错、专有名词老写错速度慢先确认是否用了 GPU 和合适的compute_type长音频换BatchedInferencePipeline。语言判错显式传languagezh或对应代码省掉检测环节速度也会快一点。专有名词transcribe支持hotwords参数把容易错的术语喂进去。显存/内存不足换更小的模型或把精度降到 int8。还有一点容易忽略拿 faster-whisper 和别的实现比速度时要保证条件对齐——本库默认beam_size5原版默认是 1且 CPU 线程数要固定例如OMP_NUM_THREADS4 python3 my_script.py。这些注意事项写在 README 的 Comparing performance 一节里。深入方向distil、turbo 与自定义模型distil 与 turbo 模型。distil-large-v3是为 faster-whisper 的转录算法专门设计的蒸馏权重配合languageen和condition_on_previous_textFalse使用效果最好turbo则主打推理速度两者都直接传名字即可加载。转换自己微调过的模型。如果手里是 Transformers 格式的 Whisper 权重官方模型或微调产物可以用官方脚本转成 CTranslate2 格式pip install transformers[torch]4.23 ct2-transformers-converter --model openai/whisper-large-v3 \ --output_dir whisper-large-v3-ct2 \ --copy_files tokenizer.json preprocessor_config.json \ --quantization float16转完的目录可以直接当模型参数加载WhisperModel(whisper-large-v3-ct2)。周边生态。faster-whisper 是很多工具的后端WhisperX 提供说话人分离和词级对齐speaches 把它包成 OpenAI 兼容的服务whisper-ctranslate2 提供命令行客户端aTrain 是带界面的图形化工具。清单维护在 README.md 的 Community integrations 一节需要 GUI 或 API 服务时可以直接省掉重复造轮子。动手验证。仓库自带测试集tests/ 里的 jfk.flac、hotwords.mp3 等和基准脚本benchmark/speed_benchmark.py、wer_benchmark.py、memory_benchmark.py想在自己的机器上量一下真实速度照着benchmark/目录的写法跑一遍即可。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考