news 2026/9/5 21:09:42

Faster-Whisper:把 13 分钟音频转写成文字的离线语音转录方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Faster-Whisper:把 13 分钟音频转写成文字的离线语音转录方案

Faster-Whisper:把 13 分钟音频转写成文字的离线语音转录方案

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

要把 10 小时的会议录音转成文字,原版 Whisper 得跑好几个小时,显存占用还经常让台式机风扇狂转。faster-whisper 用 CTranslate2 重写了 OpenAI Whisper 的推理管线:作为离线语音转录工具,它在准确率不变的前提下最快达到 4 倍加速,内存占用更少。

为什么比原版 Whisper 快

核心差异在于推理引擎的替换。openai/whisper 直接用 PyTorch 跑模型,faster-whisper 则把 Whisper 模型转成 CTranslate2 格式,交给这个专为 Transformer 设计的推理引擎执行(首次使用可以从 Hugging Face Hub 自动转换并缓存)。引擎带来两个关键能力:批量推理和量化。GPU 上可以选 fp16 或 int8_float16 精度,CPU 上跑 int8,量化能显著压掉显存和内存带宽的压力。还有一个容易忽略的细节:你不需要在系统里装 FFmpeg,音频解码由随包提供的 PyAV 库完成,它自带 FFmpeg 运行时。

实测数据:13 分钟音频

以下数字来自项目官方对一段 13 分钟音频的测试。

  • GPU(NVIDIA RTX 3070 Ti,CUDA 12.4,large-v2 模型,beam_size=5):原版 openai/whisper fp16 耗时 2 分 23 秒、显存 4708MB;faster-whisper fp16 为 1 分 03 秒、4525MB;int8 精度 59 秒、2926MB;加上 batch_size=8 后,int8 只需 16 秒。
  • CPU(Intel Core i7-12700K,8 线程,small 模型):原版 fp32 耗时 6 分 58 秒、内存 2335MB;faster-whisper int8 为 1 分 42 秒、1477MB;batch 8 的 int8 配置 51 秒完成。
  • 准确率没有牺牲:YT Commons 测试集上,distil-large-v3 模型在 faster-whisper 下的 WER 为 13.53,transformers 实现为 14.80,反而略优。

🚀 从零跑通:三分钟拿到第一条转录

纯 CPU 场景,一条命令搞定:

pip install faster-whisper

GPU 场景需要系统装有 NVIDIA 的 cuBLAS 和 cuDNN 9(对应 CUDA 12),Linux 上可以直接用 pip 安装:

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

安装后记得在启动 Python 前设置好 LD_LIBRARY_PATH。然后是能跑通的最少代码:

from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

模型尺寸一句话选型:日常转写 small 就够,追求精度上限再上 large-v3 或 turbo,纯英文且在意速度可以试试 distil-large-v3。

⚙️ 三个真正好用的进阶开关

词级时间戳

需要把字幕逐词对齐、做关键词高亮时打开。

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

注意:英文的词级时间戳相当准,中文的粒度实际更接近短语级,别指望精确到每个汉字。

VAD 过滤:别让模型听沉默

长录音里有大段静音或环境底噪时,开启 VAD(内置 Silero VAD,实现在faster_whisper/vad.py)可以跳过无声片段,省下的不只是时间,还有模型在噪声上的胡言乱语。

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

默认行为偏保守,只剔除超过 2 秒的静音;如果语速快、停顿短,默认阈值容易误删,这时把 min_silence_duration_ms 调小试试。

批量推理:一行换速度

GPU 上处理一批音频时,把模型包进 BatchedInferencePipeline 就行,它和 transcribe 的调用方式一致,是直接的替换。

from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("large-v3", device="cuda", compute_type="float16") pipeline = BatchedInferencePipeline(model) segments, _ = pipeline.transcribe("audio.mp3", batch_size=16)

批量模式下 VAD 默认开启。batch_size 越大显存吃得越狠,上面实测 batch 16 时显存超过 6GB,不够就往下调。

⚠️ 避坑与常见问题

  • 现象:创建模型时直接报错,提示找不到 cuDNN 或 cuBLAS。原因:最新版 ctranslate2 只认 CUDA 12 + cuDNN 9 的组合,老环境版本不匹配。解决:cuDNN 8 的环境执行pip install --force-reinstall ctranslate2==4.4.0,CUDA 11 则降到 3.24.0。
  • 现象:调用 transcribe 后程序"秒结束",却一行字都没输出。原因:segments 是生成器,你不遍历它,推理压根没开始。解决:后续还要用的话,先list(segments)兜住。
  • 现象:CI 流水线今天能跑明天挂。原因:从 master 分支装的是滚动版本,上游一变就断。解决:生产环境固定 PyPI 发行版,真需要新特性就从特定 commit 安装,别用 master。

生态与延伸

围绕它已经长出几个成熟集成:faster-whisper-server 把它封装成 OpenAI 兼容的 API 服务;WhisperX 在词级时间戳之上补了说话人分离;whisper-ctranslate2 提供命令行客户端,适合脚本里快速调用。项目采用 MIT 协议发布,商用没有障碍。本地转写字幕、会议纪要或清洗标注数据,它基本是首选;如果你只是要调云端 ASR 接口、想要零代码开箱的界面,那可以再看看别的方案。

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

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

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

Flutter端侧声音克隆TTS落地实践:sherpa-onnx+ZipVoice

断网也能用上“自己声音”的TTS,这件事听起来有点反直觉,但这两年端侧推理栈成熟之后,已经变成了一个可以稳定落地的方案。这个项目本质上是把sherpa-onnx当运行时、把ZipVoice当“声线提取器”,在Flutter应用里拼出一条完整的声音…

作者头像 李华
网站建设 2026/9/5 21:04:08

多Agent协作生产级实践指南:从框架选型到工程落地

1. 一场技术沙龙的含金量,在于能不能留下可复用的东西先说结论:这次阿里云 Agent 开源开发者沙龙广州站,是我今年参加过的最“不务虚”的一场线下技术活动。整整一天的议题排得非常满,从上午的主论坛到下午的动手实操,…

作者头像 李华
网站建设 2026/9/5 20:57:51

蓝牙音箱设计与调试实战:从方案选型到产测落地

这次我们来看一个蓝牙音箱项目的完整设计记录。文章标题写的是“之45”,实际是本系列第一版原型迭代到第45稿之后整理出来的工程笔记,覆盖的不只是蓝牙芯片怎么连喇叭,而是从方案选型、音频链路、电源、天线布局,到配对调试、产测…

作者头像 李华
网站建设 2026/9/5 20:57:47

蓝牙音箱设计联调与故障排查:从能响到稳定量产

蓝牙音箱项目走到“能响”这个阶段相对容易,真正难的是配对稳定、播放不卡顿、通话切换正常、距离不缩水、量产一致性好。这次接着蓝牙音箱项目设计推进到第 45 个节点,不聊空泛概念,直接把蓝牙传输链路、音频回放链路、电源与射频的相互影响…

作者头像 李华