news 2026/9/18 7:59:23

faster-whisper 实战:3 步把 Whisper 语音转写提速 4 倍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
faster-whisper 实战:3 步把 Whisper 语音转写提速 4 倍

faster-whisper 实战:3 步把 Whisper 语音转写提速 4 倍

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

晚上 6 点,你手里有一段 40 分钟会议录音,想在晚饭前拿到带时间戳的语音转写稿。faster-whisper 是 OpenAI Whisper 的 CTranslate2 重写版,CTranslate2 相当于给模型换了台更省油的推理引擎,同等精度下最高 4 倍速,还更省内存。

🎯 动手前,先把这 3 件事定下来

  • 先看硬件档位:有 N 卡就选device="cuda"+compute_type="float16",没卡就device="cpu"+compute_type="int8"。新版 ctranslate2 只支持 CUDA 12 + cuDNN 9,如果老环境跑不了,就升级,或把 ctranslate2 锁到 3.24.0(CUDA 11)/ 4.4.0(CUDA 12 + cuDNN 8)。显存紧张时还能用compute_type="int8_float16"再压一档。
  • 按延迟预算选模型tiny/base最快,medium均衡,large-v3/turbo精度最高。如果音频短、要求快,就往小模型靠;如果是正式交付,就上大模型。
  • 环境只要 Python 3.9+:解码音频靠 PyAV,它把 FFmpeg 的库打进了自己的 wheel 里,系统不用另装 FFmpeg。如果import faster_whisper直接报缺av,说明 PyAV 没装好,先回上一节补装。

📦 安装与首次启动

有 N 卡先装 GPU 运行库。CTranslate2 推理时要调 cuBLAS 和 cuDNN,缺了它们模型根本起不来:

pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*

Linux 装完要把库目录加进LD_LIBRARY_PATH,README 的 GPU 小节有现成命令。如果加载时报cuDNN not found或 CUDA 版本错 → 库没进环境变量,或版本对不上 CUDA 12 → 回上一步核对路径,或者直接换内置 cuDNN 9 的 Docker 镜像。

再装 PyAV,它是唯一的音频解码入口,走官方预编译 wheel 就免编译:

pip install av

如果它触发本地编译失败 → pip 拉到了源码包而不是 wheel → 换官方预编译包,别在 Windows 上硬编译。

最后装本体,一行把 ctranslate2、tokenizers、onnxruntime 全部带齐:

pip install faster-whisper

如果import faster_whisper报 ctranslate2 版本冲突 → 机器上已有旧版 → 用pip install --force-reinstall ctranslate2==4.4.0锁版本。

装完先验证一下。仓库自带一条小样本tests/data/jfk.flac,转它一遍,链路就算通了:

from faster_whisper import WhisperModel model = WhisperModel("tiny", device="cpu", compute_type="int8") segments, info = model.transcribe("tests/data/jfk.flac") print(next(iter(segments)).text, info.language)

🚀 核心用法:从单条到批量

三种模式都在同一个transcribe接口上,参数是同一套。

单条转写,最小可跑vad_filter=True会先用内置 Silero VAD 剪掉长静音再送进模型,VAD ≈ 先把没声音的段落剪掉,模型就不用白算;beam_size控制解码精度,默认就是 5:

model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("meeting.mp3", beam_size=5, vad_filter=True) print(f"语言: {info.language},置信度 {info.language_probability:.2f}") for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

注意segments是生成器,真正跑转写发生在你遍历它的那一刻;想立刻跑完,先segments = list(segments)

收紧 VAD,省算力。音频很长、说话占比低时,可以收紧静音切分:

segments, _ = model.transcribe( "meeting.mp3", vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500), )

默认只移除超过 2 秒的静音;speech_pad_ms默认 400,在语音块两侧留余量。各参数含义在 vad.py。

批量转写,生产可用BatchedInferencePipelineWhisperModel.transcribe的平替,把片段攒成批一次喂给模型,比逐句解码快一个量级:

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

批量管线默认就开着 VAD;仓库基准里,13 分钟音频用large-v2+batch_size=8,fp16 的 1 分 03 秒被压到 17 秒。

📋 快速对照表

RTX 3070 Ti 上的实测数据(13 分钟音频、large-v2,来自 README 的 Benchmark 节):

转写方式耗时显存
fp16,beam_size=51 分 03 秒4525 MB
fp16,batch_size=817 秒6090 MB
int8,beam_size=559 秒2926 MB
int8,batch_size=816 秒4500 MB

结论就一句:批量化是提速大头,int8 是省显存大头,两者可以叠加。

🧭 接下来往哪走

  • 做词级时间戳:加word_timestamps=True,每个seg.words里都有起止时刻,完整解码参数看 transcribe.py。
  • 调 VAD 省算力:用vad_parameters=dict(min_silence_duration_ms=500)收紧静音切分,默认值与含义在 vad.py。
  • 转换或加载自有权重:README 的 Model conversion 一节讲了怎么把微调模型转成 CTranslate2 格式,见 README.md,更多跑分参考 benchmark/。

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

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

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

改进LeNet-5结合MSER颜色增强的交通标志识别方法复现指南

简介:面向交通标志识别场景的学术论文PDF,聚焦复杂背景下检测与识别过程分步、模型鲁棒性不足等问题。其核心方案融合感兴趣区域(ROI)提取与卷积神经网络(CNN),利用MSER方法做颜色增强&#xff…

作者头像 李华
网站建设 2026/9/18 7:59:07

Django+Vue学习资源推荐系统开发实践

1. 项目概述这个基于Django和大数据技术的学习资源推荐系统是一个典型的计算机专业毕业设计项目。作为一名有多年开发经验的工程师,我认为这类系统非常适合作为毕业设计选题,因为它涵盖了Web开发、数据库设计、推荐算法等多个技术领域,能够全…

作者头像 李华
网站建设 2026/9/18 7:59:03

Node BFF + Vue3 SSR 手把手实战:从架构设计到上线避坑

做前端做到第五个年头,我越来越觉得,页面上真正难的不是某个组件怎么写,而是整条链路怎么串。前阵子接了一个内容型门户的项目,需求特别典型:首屏要快、SEO 必须能爬到正文、同时小程序和 H5 还想要共用一套接口逻辑。…

作者头像 李华
网站建设 2026/9/18 7:58:34

基于Vue与JavaWeb的安顺民族文化互动系统开发实践

我这次做的项目,题目全称叫“基于Vue和JavaWeb的安顺民族文化融合互动系统”,听着挺长,但核心其实就是三件事:把安顺的民族文化资源整理成可浏览的信息,把文化内容转化成用户能参与的互动玩法,再用一套前后…

作者头像 李华
网站建设 2026/9/18 7:58:02

Hermes引擎配置调优实战:内存参数、GC策略与字节码优化

1. 为什么需要给Hermes单独配一套“脚手架”先说一个最直接的问题:你的React Native应用明明开了Hermes,启动速度也还过得去,但真机一跑就露馅——内存涨得飞快、页面切换掉帧、Debug模式正常但Release包偶发闪退。这些问题,十有八…

作者头像 李华