FEATURED · 精选文章

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

发布时间 / 2026/9/5 19:35:30
来源 / 创域科博编辑部
栏目 / 资讯中心
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, devicecpu, compute_typeint8) 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 模型核显 / 纯 CPUdevicecpu, compute_typeint8可用长音频建议耐心排队中端独显4GB 显存devicecuda, compute_typeint8_float16舒适large-v2 也能跑高端独显8GB 显存devicecuda, compute_typefloat16接近实时适合批量转写三个容易忽略的实用技巧逐词时间戳字幕卡点对齐的关键做字幕时最烦的就是这句话的 0.5 秒里到底哪个词在响。效果每个词都带起止时间逐词卡点不再是估算。segments, _ model.transcribe(video_audio.mp3, word_timestampsTrue) for seg in segments: for w in seg.words: # 每行一个词 print(f{w.start:.2f} {w.word}, end | )适合视频字幕制作、歌词对齐、口语语速分析等需要词级精度的活。hotwords让专有名词不再被写错内部评审录音里模型把公司项目代号星舰听成了星空反复改稿很浪费时间。效果把关键词塞进提示识别时优先选这些词专名错字明显减少。segments, _ model.transcribe( meeting.mp3, languagezh, hotwords星舰 青鸟 张一鸣, # 人名、产品名、内部黑话 )适合行业术语密集的行业会议、医疗/法律访谈等错一个专名就不行的场景。VAD 参数长停顿不再切碎你的句子录完一场带长段思考的访谈输出里一句话被拦腰截成三四段断点都在停顿的地方——这是静音过滤默认参数在帮倒忙。效果调大最小静音阈值长停顿不再触发断句句意保持完整。segments, _ model.transcribe( interview.wav, vad_filterTrue, vad_parametersdict( min_silence_duration_ms1500, # 停顿超 1.5 秒才断开 threshold0.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 里显式传 languagezh长停顿处句子被切碎VAD 默认 2 秒静音就断开调大 min_silence_duration_ms个别时间戳对不上口型静音切分与边界修正的误差加 word_timestampsTrue 用词级时间戳专名总是写错训练语料里没有这个词用 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),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻