news 2026/9/5 19:35:24

5分钟跑通faster-whisper语音转文字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5分钟跑通faster-whisper语音转文字

5分钟跑通faster-whisper语音转文字

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

上周三,我把一段 1 小时 40 分的播客扔进脚本,4 分 20 秒后,一份带时间戳的文字稿就躺在控制台里。这个工具叫 faster-whisper——OpenAI Whisper 模型的重新实现(详见 faster_whisper/transcribe.py)。它用 CTranslate2 这个专为 Transformer 推理提速的引擎(CTranslate2,可以理解为给模型推理"换了台高速发动机")重写了推理流程,速度最高是原版的 4 倍,内存占用更小,识别准确度不变。

它到底能干什么

离线转写。装在本机跑,不需要把音频上传到任何服务器。录音里的客户信息、内部讨论,都不会出你的电脑。

又快又省。官方基准:同一条 13 分钟音频、large-v2 模型,原版 Whisper 在 GPU 上要 2 分 23 秒,faster-whisper 用 1 分 03 秒,换成 8 位量化(INT8,把模型数字从高精度压缩成低精度来提速省内存)只要 59 秒,显存从约 4.7GB 降到约 2.9GB。

逐字定位。默认给句子级时间戳,开一个参数还能精确到每个单词,做字幕、做对齐都够用。

开箱解码。依赖 PyAV 自带 FFmpeg 解码库,mp3、m4a、flac 直接读,不用自己装 FFmpeg。

对比维度faster-whisperopenai/whisper 原版在线转写 API
运行位置本机离线本机离线需联网上传
13 分钟音频耗时(large-v2/GPU)约 63 秒约 143 秒视网络与排队
时间戳粒度单词级(可选)单词级(可选)多为句子级
是否需额外装解码器不需要需要 FFmpeg不需要
费用免费免费按用量计费

[!NOTE] 快的原因:换了更快的推理引擎,还能对模型做量化压缩。

从零到跑通

安装:一条命令,音频解码库随包自带,无需另装 FFmpeg。

pip install faster-whisper

最小示例:加载 base 模型,把仓库自带的 tests/data/jfk.flac 转成文字(换成你自己的音频路径即可)。

from faster_whisper import WhisperModel model = WhisperModel("base", device="cpu", compute_type="int8") segments, info = model.transcribe("tests/data/jfk.flac") print(f"检测到语言:{info.language},置信度 {info.language_probability:.2f}") for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

跑完你会先看到一行语言检测结果,例如检测到语言:en,置信度 1.00,随后是若干行带起止时间的文字,每行一句,按说话顺序排列。注意 segments 是个生成器,必须被 for 循环遍历,转写才真正开始。

按你的硬件选档:

设备档次建议配置预期表现(base 模型)
核显 / 纯 CPUdevice="cpu", compute_type="int8"可用,长音频建议耐心排队
中端独显(4GB 显存)device="cuda", compute_type="int8_float16"舒适,large-v2 也能跑
高端独显(8GB 显存)device="cuda", compute_type="float16"接近实时,适合批量转写

三个容易忽略的实用技巧

逐词时间戳:字幕卡点对齐的关键

做字幕时最烦的就是"这句话的 0.5 秒里,到底哪个词在响"。

效果:每个词都带起止时间,逐词卡点不再是估算。

segments, _ = model.transcribe("video_audio.mp3", word_timestamps=True) for seg in segments: for w in seg.words: # 每行一个词 print(f"{w.start:.2f} {w.word}", end=" | ")

适合:视频字幕制作、歌词对齐、口语语速分析等需要词级精度的活。

hotwords:让专有名词不再被写错

内部评审录音里,模型把公司项目代号"星舰"听成了"星空",反复改稿很浪费时间。

效果:把关键词塞进提示,识别时优先选这些词,专名错字明显减少。

segments, _ = model.transcribe( "meeting.mp3", language="zh", hotwords="星舰 青鸟 张一鸣", # 人名、产品名、内部黑话 )

适合:行业术语密集的行业会议、医疗/法律访谈等错一个专名就不行的场景。

VAD 参数:长停顿不再切碎你的句子

录完一场带长段思考的访谈,输出里一句话被拦腰截成三四段,断点都在停顿的地方——这是静音过滤默认参数在"帮倒忙"。

效果:调大最小静音阈值,长停顿不再触发断句,句意保持完整。

segments, _ = model.transcribe( "interview.wav", vad_filter=True, vad_parameters=dict( min_silence_duration_ms=1500, # 停顿超 1.5 秒才断开 threshold=0.5, # 语音判定阈值,越低越灵敏 ), )

适合:访谈、讲座、电话录音这类停顿多、但句子不该被拆碎的音频。全部参数默认值见 faster_whisper/vad.py。

我的实际工作流

播客出字幕:原始 MP3 → 16kHz 单声道(用 Audacity 转一下)→ faster-whisper 语音转文字 + word_timestamps → 逐行生成 SRT → 导入剪映或 Premiere 微调卡点。

会议文档:1 小时会议录音 → faster-whisper + hotwords(项目名、人名)→ 带时间戳的文字稿 → 按时间戳回听关键段,补上决策与待办。

什么情况下别用它

如果音频里背景音乐和说话声混在一起,比如街头采访或带 BGM 的短视频,识别结果会掺进幻觉文字。替代思路:先用 Audacity 或降噪工具把人声单独抽出来,再送进来转写。

如果你要的是"说话同时出字幕"的真·实时效果,这个工具本质是整段(或按窗口)离线处理的,别指望它毫秒级响应。替代思路:看看基于它的流式项目,如 WhisperLive、whisper-streaming 这类做实时包装的方案。

多人会议想分清"谁说了什么",它本身不做说话人分离。替代思路:搭配 pyannote.audio 或 WhisperX 做 diarization(说话人分离,即判断每句话是谁说的),再用它的词级时间戳去对齐。

速查

现象大概率原因处理动作
首次运行卡在模型下载网络拉 Hugging Face 权重慢手动下好模型目录,本地路径传给 WhisperModel
显存/内存不足报错模型过大或精度偏高换 int8 量化或降级到 small、base 模型
语言检测成 null开头是静音或噪声,前 30 秒没听懂transcribe 里显式传 language="zh"
长停顿处句子被切碎VAD 默认 2 秒静音就断开调大 min_silence_duration_ms
个别时间戳对不上口型静音切分与边界修正的误差加 word_timestamps=True 用词级时间戳
专名总是写错训练语料里没有这个词用 hotwords 参数喂关键词

收尾

faster-whisper 的价值一句话:本机离线、准确度和原版一致,速度 4 倍,内存更省。现在就能做的一件事——pip install faster-whisper,拿仓库里的 tests/data/jfk.flac 跑通第一个例子。先跑通,再谈调优。

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

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

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

skills:把AI代理技能变成可复用目录的团队协作实践

skills:把AI代理技能变成可复用目录的团队协作实践 【免费下载链接】skills Skills Catalog for Codex 项目地址: https://gitcode.com/GitHub_Trending/skills4/skills skills(Skills Catalog for Codex)是一个 Codex 代理技能目录&a…

作者头像 李华
网站建设 2026/9/5 19:29:17

14MB端侧模型Needle 2:工具调用的本地部署实战解析

一天一个开源项目系列更到第202期了。这一期锁定 Needle 2,最吸引我的不是它背后有什么惊艳算法,而是三个字:14MB。在开源社区里泡久了你会发现,模型体积越做越小,目标却越来越明确。Needle 2 是一个端侧工具调用模型&…

作者头像 李华
网站建设 2026/9/5 19:28:49

RC攀爬车无刷升级链路解析:易控4082 V3改装开山斧R3与富斯G11P

易控4082 V3升级开山斧R3无刷动力,锤子无刷舵机,富斯G11P,金属前后杠——只看表面,这像是一条普通的RC攀爬车改装案例分享。但如果你从电子控制系统角度看,这套升级其实覆盖了一条非常完整的执行链路:动力由…

作者头像 李华
网站建设 2026/9/5 19:26:59

企业级AI智能体:从生成到执行的关键跨越与落地实践

企业级AI智能体最近彻底站上了风口,几乎所有做数字化和智能化转型的团队都在聊同一个变化:从生成迈入执行。过去两年里,我们习惯的AI更多停留在“生成”层面——自动写文案、生成图片、帮你搭代码框架、梳理会议纪要;但企业真正需…

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

开源餐饮小程序系统:从扫码点餐到外卖配送的全栈开发与部署指南

简介:这是一套面向餐饮行业开发者与中小商户的技术人员的开源扫码点餐外卖配送小程序系统源码,旨在提供从顾客扫码下单、商家接单管理到骑手配送调度的一站式轻量级解决方案。资源包共2000个文件,含957个PHP后端逻辑文件、148个JS前端交互脚本…

作者头像 李华