news 2026/9/5 16:18:46

4倍速的语音转文字:faster-whisper 上手教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4倍速的语音转文字:faster-whisper 上手教程

4倍速的语音转文字:faster-whisper 上手教程

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

13 分钟会议录音,原版 Whisper 在 GPU 上要 2 分 23 秒,faster-whisper 是 1 分 03 秒,开启 int8 量化后只要 59 秒。faster-whisper 是基于 CTranslate2 引擎重新实现的 OpenAI Whisper,核心功能就一件事:把语音转文字做得更快、占内存更少。

一、它凭什么值得关注(能力速览)

速度优势最直观。官方在 RTX 3070 Ti 上用 large-v2 模型测了 13 分钟音频:原版 Whisper 2 分 23 秒,faster-whisper(float16)1 分 03 秒,int8 量化 59 秒,准确率相同。

内存省掉近一半。int8 量化有点像图片改存 JPEG:肉眼看不出差别,体积却小得多。GPU 上显存从 4708MB 降到 2926MB,CPU 上 small 模型 int8 只要 1477MB。

接入门槛低。不用装 FFmpeg,PyAV 库自带解码依赖,一条 pip 命令装完。

二、从零到跑通:最短路经

前置条件只有 Python 3.9+,不需要单独安装 FFmpeg,必须执行的只有安装这一步:

pip install faster-whisper

第一次运行时模型会自动下载并缓存,之后离线也能跑。先用 CPU + small 模型 + int8 把链路跑通,这是 CPU 上最省内存的组合:

from faster_whisper import WhisperModel # int8:内存减半且精度损失很小,CPU 首选 model = WhisperModel("small", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3", beam_size=5) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

有一个细节:segments是生成器,真正开始转录是在你迭代它的那一刻。想提前跑完,就list(segments)包一层。

三、实战:一次完整调用

有 GPU 的话,先装 faster-whisper GPU 加速需要的两个 NVIDIA 依赖(要求 CUDA 12 + cuDNN 9,Linux 上运行前还需设置LD_LIBRARY_PATH指向库):

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

再发起调用:

from faster_whisper import WhisperModel # float16 是 GPU 默认精度,显存紧张时换 int8_float16 model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) print(info.language, info.language_probability) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

跑起来后第一行是检测到的语言与置信度(不传language时会用音频前 30 秒自动判断);之后每行一个段落,start/end是秒级时间范围,text就是转录结果。

devicecompute_type的组合速查:

运行环境devicecompute_type定位
GPUcudafloat16全精度,速度最佳
显存吃紧的 GPUcudaint8_float16混合精度,省显存
CPUcpuint8内存占用低

四、进阶:解锁更多能力

词级时间戳

场景:做字幕、文字和视频逐字对齐,段落级时间不够细。怎么开:给transcribeword_timestamps=True,然后遍历segment.words就能拿到每个词的开始与结束时间。注意:该特性默认关闭,只在需要精确到词时开,避免多一层遍历。

VAD 静音过滤

场景:访谈、会议这类长录音里静默很多,转录会浪费在无声段上。怎么开:这个能力默认就是打开的,且默认保守,只去掉超过 2 秒的静音;想过滤更激进,传vad_parameters=dict(min_silence_duration_ms=500)。注意:阈值调得越低越容易切断句间停顿,全部参数可看 vad.py。

批量推理

场景:一次要处理多条长音频,单文件转录时 GPU 利用率吃不满。怎么开:用BatchedInferencePipeline(model=model)包一层,转录时传batch_size=16之类的值。注意:官方基准里同一段 13 分钟音频,GPU 上单文件 1 分 03 秒,batch_size=8 时 17 秒;批量模式下 VAD 默认开启。

五、选型与调优决策

如果你只有 CPU:直接选 int8 量化,small 模型 13 分钟音频 1 分 42 秒,而原版 Whisper fp32 要 6 分 58 秒,内存分别是 1477MB 对 2335MB。

如果你有一块 8GB 级的主流 GPU:先用 float16,显存不够再切 int8_float16,以 large-v2 为例显存从 4525MB 降到 2926MB,精度代价很小。

如果你要的是最高准确率:选 large-v3;纯英文内容可以试 distil-large-v3,官方基准里比 transformers 实现快约 44%(46 分 12 秒对 25 分 50 秒),词错率还更低。

语音转文字的瓶颈往往在推理引擎而不是模型,换掉引擎,同样的 13 分钟录音就能从 2 分 23 秒压到 59 秒。下一步建议找一段真实录音,先用 small + int8 跑通,感觉速度够用之前,不必急着上 large-v3 或批量推理。

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

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

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

类魂游戏手甲武器选择与符文搭配全面攻略

开篇先聊点实在的。在类魂动作游戏里选择武器,很多人喜欢盯着面板伤害看,谁数值高就用谁,结果换上手甲这类攻速快、连段灵活的武器后,反而打不出理想效果。原因很简单,手甲的核心优势从来不是单发爆发,而是…

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

STM32F4硬件时间戳实现IEEE 1588 PTP主时钟

简介:本资源是面向嵌入式开发工程师与工业通信系统设计者的STM32 F4系列PTP(IEEE 1588精密时间协议)完整实现方案,解决高精度网络时钟同步在自动化、电力监控、音视频传输等场景下的落地难题。压缩包含515个文件,以151…

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

Skyvern实战笔记:3步在本地跑通AI浏览器自动化

Skyvern实战笔记:3步在本地跑通AI浏览器自动化 【免费下载链接】skyvern Automate browser based workflows with AI 项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern 财务同事需要从十几个供应商后台逐个导出上月的发票 PDF,而每个后…

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

RAG-Anything自定义模态处理器:20行代码跑通

RAG-Anything自定义模态处理器:20行代码跑通 【免费下载链接】RAG-Anything "RAG-Anything: All-in-One RAG Framework" 项目地址: https://gitcode.com/GitHub_Trending/ra/RAG-Anything 解析出的文档里混着一种内置链路没覆盖的内容类型——音频…

作者头像 李华