news 2026/9/5 16:38:49

faster-whisper 教程:在 GPU 与 CPU 上搭建高速 Whisper 语音转写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
faster-whisper 教程:在 GPU 与 CPU 上搭建高速 Whisper 语音转写

faster-whisper 教程:在 GPU 与 CPU 上搭建高速 Whisper 语音转写

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

faster-whisper 是一个开源 Python 库,它用 CTranslate2 推理引擎重新实现了 OpenAI 的 Whisper 语音识别模型。相比原始 whisper,它在相同准确率下速度最高可达 4 倍,占用内存更低;再叠加 8 位量化,显存和内存还能进一步压缩。库自带语言自动检测、VAD 静音过滤和词级时间戳,适合做字幕生成、会议记录、音视频内容归档等场景。

三步快速上手

第一步:安装

pip install faster-whisper

要求 Python 3.9 或更高版本。音频解码由 PyAV 库完成,系统里不需要额外安装 FFmpeg。

第二步:加载模型并转写

from faster_whisper import WhisperModel model = WhisperModel("small", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3", beam_size=5) print(f"语言: {info.language},置信度: {info.language_probability:.2f}") for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

按名字加载模型时,对应的 CTranslate2 权重会在首次运行时自动从 Hugging Face Hub 下载。

注意一个容易踩的坑:transcribe返回的segments是生成器,只有真正迭代它时转写才会执行。如果想一次性拿全结果,用segments = list(segments)收集即可。

第三步:词级时间戳

生成逐词对齐的文本(做字幕时常用):

segments, _ = model.transcribe("audio.mp3", word_timestamps=True) for segment in segments: for word in segment.words: print(f"{word.start:.2f}s - {word.end:.2f}s: {word.word}")

环境要求与 GPU 配置

  • CPU 环境装上 Python 包即可运行;
  • GPU 环境需要 NVIDIA 显卡,并安装 CUDA 12 对应的 cuBLAS 和 cuDNN 9。

获取 NVIDIA 运行库的几种方式:

  1. 使用官方 NVIDIA CUDA Docker 镜像(如nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04),cuBLAS 与 cuDNN 已内置,仓库的 docker/ 目录提供了配套的 Dockerfile 和最小推理示例;
  2. Linux 下可直接pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*,并在启动 Python 前把两者所在目录加入LD_LIBRARY_PATH
  3. 按 NVIDIA 官方文档手动安装对应版本。

版本匹配是 GPU 部署中最常见的失败点:新版ctranslate2只支持 CUDA 12 + cuDNN 9。如果你的环境是 CUDA 11 / cuDNN 8,需要把ctranslate2降到 3.24.0;若是 CUDA 12 + cuDNN 8,则用 4.4.0:

pip install --force-reinstall ctranslate2==3.24.0

模型与计算类型选择

按“速度需求 vs 精度需求”选模型:

  • tiny / small:低延迟、高并发,或硬件条件有限时使用;
  • medium:通用场景;
  • large-v3:对识别精度要求最高时使用;
  • distil-large-v3:蒸馏模型,英文任务上速度更快,建议同时传language="en"并设置condition_on_previous_text=False

compute_type决定精度与资源占用,三种常用组合:

# GPU + FP16(速度优先) WhisperModel("large-v3", device="cuda", compute_type="float16") # GPU + INT8(显存减半左右) WhisperModel("large-v3", device="cuda", compute_type="int8_float16") # CPU + INT8 WhisperModel("small", device="cpu", compute_type="int8")

音频较长时可用批量推理管线,BatchedInferencePipeline.transcribeWhisperModel.transcribe的参数用法一致,且默认开启 VAD 过滤:

from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("turbo", device="cuda", compute_type="float16") pipeline = BatchedInferencePipeline(model=model) segments, info = pipeline.transcribe("audio.mp3", batch_size=16)

性能参考

官方基准测的是 13 分钟音频的转写耗时与内存:

GPU(large-v2,RTX 3070 Ti,CUDA 12.4):

方案耗时显存
openai/whisper(fp16)2m23s4708MB
faster-whisper(fp16)1m03s4525MB
faster-whisper(int8)59s2926MB
faster-whisper(int8,batch_size=8)16s4500MB

CPU(small,i7-12700K,8 线程):

方案耗时内存
faster-whisper(fp32)2m37s2257MB
faster-whisper(int8)1m42s1477MB
faster-whisper(int8,batch_size=8)51s3608MB

原始测量脚本在 benchmark/ 目录,可用自己的硬件复测。对比不同实现时注意两点:本库默认beam_size=5,而 openai/whisper 默认是 1,条件不同速度不可直接比;CPU 上建议用OMP_NUM_THREADS固定线程数再测。

常见报错与排查

  • 加载模型报 CUDA / cuDNN 库缺失:优先核对驱动、cuBLAS、cuDNN 三者的版本组合是否满足 ctranslate2 要求,必要时按上文降级ctranslate2

  • GPU 显存不足(OOM):改用int8_float16量化、换更小的模型,或调低batch_size

  • transcribe 调用后长时间无输出:生成器尚未被迭代,转写没有启动;用list(segments)或 for 循环触发执行。

  • 结果里混入静音或幻觉文本:VAD 默认开启(默认只过滤超过 2 秒的静音),可通过vad_parameters调整灵敏度:

    segments, _ = model.transcribe( "audio.mp3", vad_parameters=dict(min_silence_duration_ms=500), )
  • 准确率不理想:升级更大的模型;已知语种时显式传language跳过自动检测;distil 模型记得关闭condition_on_previous_text

  • CPU 上转写偏慢:确认compute_typeint8,并把OMP_NUM_THREADS设为物理核心数。

下一步可以做什么

  • 转写自己微调过的模型:安装transformers[torch]>=4.23后用ct2-transformers-converter命令把 OpenAI 格式(含微调权重)的模型转成 CTranslate2 格式,再直接把本地目录传给WhisperModel加载。
  • 容器化部署:以 docker/ 里的 Dockerfile 为基础镜像,把infer.py换成你的业务逻辑,即可得到可发布的转写服务。
  • 调整更多参数transcribe的完整参数(temperatureinitial_prompthotwords、VAD 选项等)见 faster_whisper/transcribe.py,VAD 各阈值默认值见 faster_whisper/vad.py。
  • 实时流式转写:本库本身是离线批处理,若需要接近实时的效果,可关注基于 faster-whisper 构建的流式方案(如 Whisper-Streaming、WhisperLive 等开源项目)。

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 16:36:38

如何用每天 10 分钟打字训练,把英语输入速度提上来

如何用每天 10 分钟打字训练,把英语输入速度提上来 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/9/5 16:35:30

GitHub中文排行榜AI与大数据领域精选:15个不容错过的项目

GitHub中文排行榜AI与大数据领域精选:15个不容错过的项目 GitHub中文排行榜是发现高分优秀中文项目的重要平台,它能帮助开发者更高效地吸收国人的优秀经验成果。本文将为你精选15个AI与大数据领域的优质项目,助你快速了解该领域的热门趋势和实…

作者头像 李华
网站建设 2026/9/5 16:34:33

智能体评测体系构建:从综合智能指数到实操流程

最近开源社区和智能体圈子都在讨论 Apodex 1.1 的发布,热点集中在两个点上:一是它在 Agent 任务上的表现确实亮眼,二是整体智能指数只有 44,与很多人的心理预期有落差。作为搞 AI 应用开发和评测的技术博主,我觉得这个…

作者头像 李华
网站建设 2026/9/5 16:32:25

把明日方舟日常交给 MAA:一键自动化完整指南

把明日方舟日常交给 MAA:一键自动化完整指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.com/…

作者头像 李华