faster-whisper 语音转文字实战指南:从安装到 GPU 避坑的完整流程
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
一段 13 分钟的录音,在 GPU 上转成文字:官方 openai/whisper 实现要花 2 分 23 秒,faster-whisper 这个基于 CTranslate2 重写的语音转文字引擎只要 1 分 03 秒。如果你每天要处理长音频,这个差距每天都在消耗你。而真正卡住新手时间的,往往不是速度本身,而是环境——CUDA 和 cuDNN 的版本搭配,是第一道坎。
它是什么,适合谁
faster-whisper 用 Transformer 快速推理引擎 CTranslate2 重新实现了 OpenAI 的 Whisper 语音识别模型,模型权重与官方一致,换掉的是运行时的计算部分,准确率基本不变,耗时和内存占用变小。项目当前版本 1.2.1,要求 Python 3.9 及以上。它适合想在自有机器上把会议录音、课程音频转成文字的个人用户,也适合想给产品接一套私有化语音转文字能力的开发者。
30 秒安装并跑通第一次转录
安装只有一行命令,而且不用像官方版本那样先装 FFmpeg——它依赖的 PyAV 已经把 FFmpeg 的解码库打包在内:
pip install faster-whisper准备任意一个音频文件,跑通第一次转录:
from faster_whisper import WhisperModel model = WhisperModel("base") segments, info = model.transcribe("audio.mp3") for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")首次运行会自动从 Hugging Face 下载对应权重的 CTranslate2 模型。base 是小模型,适合先验证流程;确认跑通后再换更大的规格。每个 segment 自带起止时间,做字幕对齐时直接可用。
GPU 环境避坑清单:CUDA 12 与 cuDNN 9 的版本搭配
这一段建议先读完再动 GPU,最常见的启动报错都指向同一件事:ctranslate2 的版本和你机器上的 CUDA/cuDNN 对不上。
最新版的 ctranslate2 只支持 CUDA 12 加 cuDNN 9 的组合。如果你机器正好是这个版本,装好两个 NVIDIA 库即可:
pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*pip 装库的方式仅限 Linux,且要在启动 Python 之前设置好 LD_LIBRARY_PATH;Windows 需要自行准备库文件。如果环境是 CUDA 12 配 cuDNN 8,把 ctranslate2 降到 4.4.0:
pip install --force-reinstall ctranslate2==4.4.0再老一档的 CUDA 11 配 cuDNN 8,则要用 3.24.0 版本。记住这条降级链(3.24.0 → 4.4.0 → 最新版),排错时先核对它。
另一个高频小坑:很多示例代码调用 transcribe() 之后看起来毫无动静。segments 是个生成器,迭代它之前转录根本不会启动。调试时把它包进 list(segments),或者直接写 for 循环,转录才会真正执行。
进阶用法:GPU 加速、批处理与翻译
有 GPU 时,构造模型时显式指定设备和精度:WhisperModel("large-v3", device="cuda", compute_type="float16"),想进一步压显存可以换成 int8_float16,CPU 上跑 int8 也是支持的。
多条音频或超长音频,改用 BatchedInferencePipeline 做批量推理,配合 batch_size=16 这类参数;这个批处理模式默认就开着 VAD 静音过滤。
外语录音想要英文文本,给 transcribe 传 task="translate" 即可;需要逐词定位时打开 word_timestamps=True,时间戳会细化到单词。VAD 也可以单独启用:vad_filter=True,默认策略比较保守,只剔除持续超过 2 秒的静音。这些开关的主逻辑集中在 faster_whisper/transcribe.py 里,想看默认值和全部参数直接读它。
真实场景怎么用
开完一个下午的会,你把录音丢给脚本,得到的不是一整块文字,而是带时间戳的分段。回看某个决策是怎么定下来的,拖进度条到对应秒数核对就行,不用重听整场。
学习场景里,两小时的讲座录音转成文字后,用 word_timestamps 能定位到具体哪个词。记笔记时想确认某句话的上下文,跳到那个词的时间点听一下,比从头快进半小时省事得多。
做播客或视频字幕,word 级时间戳配合分段输出,基本就是字幕文件的雏形。转错一两个专有名词时,你能精确知道是哪一个词、在哪一秒,修改成本很低。
性能数字:比官方版快多少
以下数据来自项目 README 的基准测试(13 分钟音频,large-v2 模型,NVIDIA RTX 3070 Ti 8GB,CUDA 12.4,beam size 均为 5):
| 实现 | 精度 | 转录耗时 | 显存占用 |
|---|---|---|---|
| openai/whisper | fp16 | 2m23s | 4708 MB |
| whisper.cpp(Flash Attention) | fp16 | 1m05s | 4127 MB |
| transformers(SDPA) | fp16 | 1m52s | 4960 MB |
| faster-whisper | fp16 | 1m03s | 4525 MB |
| faster-whisper(batch_size=8) | fp16 | 17s | 6090 MB |
| faster-whisper(batch_size=8) | int8 | 16s | 4500 MB |
CPU 侧同样有差距:同一台 i7-12700K(8 线程)跑 small 模型,官方实现 6 分 58 秒,faster-whisper fp32 为 2 分 37 秒,int8 为 1 分 42 秒,内存占用约 1477 MB。README 给出的总口径是:相同准确率下最快可达官方实现的 4 倍速度,且内存占用更低。
生态与贡献入口
项目采用 MIT 许可(见 LICENSE),商用和二次封装基本没有障碍。想参与开发,入口在 CONTRIBUTING.md,执行pip install -e .[dev]即可搭好开发环境。围绕它也已经长出一批开源项目,比如做说话人分离的 WhisperX、做准实时转写的 Whisper-Streaming,README 里有更完整的社区集成列表。
把它跑通之后你会发现:语音转文字的等待时间,大部分可以省下来。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考