faster-whisper 快速上手教程:免费实现比原版快 4 倍的语音转文字
2026/9/5 21:50:46 网站建设 项目流程

faster-whisper 快速上手教程:免费实现比原版快 4 倍的语音转文字

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

faster-whisper 是一个用 CTranslate2 推理引擎重写的 OpenAI Whisper 语音转文字工具,同样的识别准确率下,速度最高可达原版的 4 倍,占用的内存反而更少。它是免费开源的,一条命令安装,几行 Python 代码就能把一段录音变成带时间戳的文字。

它能帮你做什么

你手里有一段 13 分钟的会议录音,想 1 分钟内拿到逐字稿?它能做。你正在剪辑视频,需要词级时间戳来对齐字幕?它能做。你攒了一堆语音备忘录,想批量转成可搜索的文字?它也能做。

按项目自带的基准测试,用 large-v2 模型在 GPU 上处理 13 分钟音频:原版 Whisper 要 2 分 23 秒,faster-whisper 只要 1 分 03 秒,开启 int8 量化后 59 秒出结果。

3 分钟完成 faster-whisper 安装

先确认环境:Python 3.9 及以上即可。不用装 FFmpeg,音频解码由 PyAV 库自带完成,比原版少一个麻烦。

安装只有一条命令:

pip install faster-whisper

有 NVIDIA 显卡的话,还需要装 cuBLAS(CUDA 12)和 cuDNN 9 这两个库才能启用 GPU,具体说明见 README.md。没有显卡也完全没问题,CPU 模式一样能跑。

第一次运行:3 行代码转出文字

先跑通再说。下面这个例子选 base 模型 + CPU + int8,是新手最不容易出错的组合:

from faster_whisper import WhisperModel model = WhisperModel("base", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3") for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

它做了三件事:加载 base 模型(首次运行会自动下载并缓存)、转录audio.mp3并自动检测语言、按句子打印每段文字和起止时间。把模型名换成 "small"、"medium"、"large-v3" 就能在速度和精度之间取舍。

跟着做一遍:时间戳 + 静音过滤

字幕制作最有用的是词级时间戳,加一个word_timestamps=True参数就行:

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

segment.words里每个词都带独立的 start/end,直接就能导出成 SRT 或逐字稿对齐文件。

第二个高频参数是静音过滤。长音频里大量静音段落其实不用送进模型,加vad_filter=True会自动跳过没有说话声的部分(底层是 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=500表示超过半秒的静音就切掉,处理背景音乐多的音频时速度提升很明显。

让识别速度再翻倍的设置

模型和计算类型是速度、精度、内存三者的调节旋钮:

  • 模型:tiny 最快、small 均衡、medium 偏质量、large-v3 精度最高,另有 turbo 和 distil-large-v3 可选(distil 模型记得传language="en")。
  • 计算类型:GPU 推荐compute_type="float16";显存紧张换"int8_float16";纯 CPU 用"int8"
  • 批量推理:显存够的话,用BatchedInferencePipelinebatch_size=16,同一份 13 分钟音频从 63 秒压到 17 秒,这是 README 实测数据。

int8 量化对速度的帮助同样可观:CPU 上 small 模型从 1 分 42 秒(int8)对比原版的 6 分 58 秒,快了一大截。所有参数都在 faster_whisper/transcribe.py 的transcribe方法里,可以逐个试。

常见问题与避坑

Q:调用了 transcribe 但打印不出来?segments是个生成器,转录只在遍历它时才开始执行。用for循环或list(segments)收一遍,文字才会真正产出。这是新手最常踩的坑。

Q:GPU 报 CUDA 相关错误?最新版 ctranslate2 只支持 CUDA 12 + cuDNN 9。如果是 CUDA 11 环境,降级pip install ctranslate2==3.24.0;CUDA 12 但 cuDNN 8 则用ctranslate2==4.4.0

Q:需要单独装 FFmpeg 吗?不需要。PyAV 已经把 FFmpeg 库打进了 pip 包里,直接转 mp3、wav、m4a 都没问题。

Q:显存不够怎么办?先换int8_float16计算类型(large-v2 的显存占用从 4525MB 降到 2926MB),再不行就降级模型,或调小chunk_length

Q:能用自己的微调模型吗?能。用ct2-transformers-converter把 Transformers 格式的 Whisper 模型转成 CTranslate2 格式后,把WhisperModel("本地目录")指向该目录即可,方法见 README.md 的 Model conversion 一节。

适合哪些场景

  • 会议记录:长录音一键转逐字稿,分段带时间戳,方便回查谁在什么时候说了什么。
  • 视频字幕:word_timestamps输出可直接喂给字幕工具,中英混录也能自动识别语言。
  • 语音备忘录:把零散的语音笔记批量转成文字,之后可以搜索、归档。
  • 播客与课程:长音频配 VAD 静音过滤,转写完还能顺手做内容索引。

仓库里还带了现成测试音频(如 tests/data/jfk.flac)和 benchmark/ 下的速度、内存、WER 基准脚本,想验证自己机器上的真实表现可以直接跑。

写在最后

faster-whisper 的价值一句话概括:不牺牲准确率的 Whisper 加速版,装完三行代码就能用。

下一步建议:用batch_size试试批量推理能快多少;跑一遍 benchmark/speed_benchmark.py 看看自己机器的实测数据;最后尝试转换一个自己微调过的模型,把这套流程接到真实业务里。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询