项目简介
faster-whisper 是 SYSTRAN 用 CTranslate2 重写的 Whisper 语音转写库,MIT 协议。它不带界面:装上之后用几行 Python,就能把录音转成一句一句、带开始和结束时间的文字。
推理走 CTranslate2,同一类模型比原版 Whisper 更快,也更省内存。8-bit 量化在 CPU 和 GPU 上都能用。和原版不一样,它不用另外安装系统里的解码器,音频解码交给 Python 包 PyAV,安装时会带上所需的库。
转写只负责「听见什么」。删掉嗯啊和口误、改同音字和专有名词、按封面 / 效果演示 / 使用方法 / 结尾拆成口播稿,交给 Codex。把你满意的旧稿和这些规矩写进项目里的 AGENTS.md,之后直接说人话就行。
📎 相关链接(点击展开)
核心亮点
它能做什么、输出什么
| 项目 | 说明 |
|---|---|
| 输入 | 常见音频,例如 mp3、wav、m4a、flac。视频要先抽出音轨再转 |
| 适用类型 | 语音备忘、直播回放、访谈、播客、课程录音 |
| 输出 | 按句的文字,带起止时间;打开词级时间后能对到每个词。静音过滤可去掉没人说话的部分 |
| 语言 | 沿用 Whisper 的多语识别。中文建议把 language 设为 zh,不写则自动检测 |
| 规格 | 模型名可用 tiny、base、small、medium、large-v3、distil-large-v3、turbo。第一次用某个模型会下载权重 |
环境要求
| 环境 | 建议配置 |
|---|---|
| 操作系统 | Windows、Linux、macOS 都可以 |
| 运行环境 | Python 3.9 或更高 |
| 硬件 | NVIDIA 显卡走 GPU 时,需要 CUDA 12 和 cuDNN 9。官方在 RTX 3070 Ti 8GB 上测 large-v2、fp16,显存大约 4525MB |
| 没有独显 | 改用 CPU,compute_type 用 int8。官方在 i7-12700K、8 线程、small 模型上,转 13 分钟音频大约 1 分 42 秒,内存大约 1477MB |
| 关键依赖 | pip 安装 faster-whisper 即可。解码库随 PyAV 一起装,不用再装系统里的 ffmpeg |
如何使用
💡 先用 CPU 和 small 模型跑通一条短录音。确认有 CUDA 12 和 cuDNN 9 之后,再换成 large-v3 和 GPU。
在 GitHub 搜索 SYSTRAN 的 faster-whisper,或直接用下面这一条。装的是 PyPI 上的发行版。
pip install faster-whisper
把 memo.m4a 换成你的录音。segments 是生成器,写进 for 循环才会真正开始转写。只写到 transcribe 那一行,程序会马上结束,一个字都没有。
from faster_whisper import WhisperModelmodel = WhisperModel("small", device="cpu", compute_type="int8")segments, info = model.transcribe("memo.m4a", beam_size=5, language="zh")print(info.language, info.language_probability)for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
常用参数:
| 参数 | 作用 |
|---|---|
模型名 |
tiny / base / small / medium / large-v3 / distil-large-v3 / turbo。要质量用 large-v3,要速度用 distil-large-v3 或 turbo,没显卡先用 small |
device |
cuda 或 cpu |
compute_type |
GPU 用 float16;GPU 想再省显存用 int8_float16;CPU 用 int8 |
beam_size |
束搜索宽度,这里默认 5。和别的实现比速度时要设成同一个值 |
language |
中文写 zh。不写就自动检测语种 |
word_timestamps |
设为 True 后,每句里的每个词也带起止时间 |
vad_filter |
设为 True 用 Silero 去掉没人说话的部分。默认只去掉长于 2 秒的静音,批量转写默认就开着 |
确认 CUDA 12 和 cuDNN 9 已经装好再改这两处。large-v3 第一次运行会下载权重,体积比 small 大不少。
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
开静音过滤,并把每条结果写成同名的 txt。词级时间把 word_timestamps 设为 True,再去读 segment.words。
from pathlib import Pathout = Path("transcripts")out.mkdir(exist_ok=True)for audio in Path("recordings").glob("*.m4a"): segments, info = model.transcribe(str(audio), language="zh", vad_filter=True) text = "".join(segment.text for segment in segments) (out / (audio.stem + ".txt")).write_text(text, encoding="utf-8")
同一条很长的音频想再加快,可以用官方的批量推理。它和普通 transcribe 的用法一样,多一个 batch_size。批量转写默认会开静音过滤。
from faster_whisper import WhisperModel, BatchedInferencePipelinemodel = WhisperModel("turbo", device="cuda", compute_type="float16")batched = BatchedInferencePipeline(model=model)segments, info = batched.transcribe("memo.m4a", batch_size=16)for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
转写稿还不是口播稿。把一两篇你满意的旧稿发给 Codex,让它把格式写进 AGENTS.md,至少写清这几条:
口播稿只保留口播。按封面、效果演示、使用方法、结尾分场。每场标题写上估好的秒数,超了就删句子,不要硬凑。删掉嗯、啊、重复句和说错又改口的部分。专有名词以旧稿为准。写 skills,不要写成技能。
✅ 之后直接说:把这个文件夹里的录音都改成口播稿,每条一分钟以内,专有名词照旧稿来。
典型应用场景
性能表现
下面是官方 README 里的实测,不是宣传口径。同一段 13 分钟音频,large-v2 模型,beam size 都是 5。GPU 测试用 CUDA 12.4、RTX 3070 Ti 8GB。
| 跑法 | 时间 | 显存 / 内存 |
|---|---|---|
| faster-whisper,GPU,fp16 | 1 分 03 秒 | 4525MB |
| faster-whisper,GPU,fp16,batch_size=8 | 17 秒 | 6090MB |
| faster-whisper,GPU,int8 | 59 秒 | 2926MB |
| openai/whisper,GPU,fp16 | 2 分 23 秒 | 4708MB |
CPU 用的是 small 模型、8 线程、Intel i7-12700K,转的仍是这 13 分钟。
| 跑法 | 时间 | 内存 |
|---|---|---|
| faster-whisper,int8 | 1 分 42 秒 | 1477MB |
| faster-whisper,int8,batch_size=8 | 51 秒 | 3608MB |
| openai/whisper,fp32 | 6 分 58 秒 | 2335MB |
🧠 它快,是因为 Transformer 推理换成了 CTranslate2,再用 8-bit 量化把内存降下来。比速度时 beam size、线程数要和对方设成一样,否则数字没有意义。
常见问题
Q: 和原版 Whisper 有什么差别?
模型一类,推理引擎换成了 CTranslate2。官方同一段 13 分钟音频、large-v2、GPU fp16:faster-whisper 1 分 03 秒,原版 2 分 23 秒。
Q: 还要安装 ffmpeg 吗?
不用。原版 Whisper 要系统里有 ffmpeg,这个库用 PyAV 解码,安装包里已经带了库。
Q: 没有 NVIDIA 显卡能跑吗?
能。device 用 cpu,compute_type 用 int8,模型先选 small。核显和苹果芯片也走这条 CPU 路径。
Q: 报错找不到 cublas 或 cudnn 怎么办?
GPU 路径需要 CUDA 12 和 cuDNN 9。CUDA 11 要把 ctranslate2 降到 3.24.0;CUDA 12 但 cuDNN 还是 8,降到 4.4.0。Linux 可以用 pip 装 nvidia-cublas-cu12 和 nvidia-cudnn-cu12,并设置库路径。Windows 按 NVIDIA 的文档安装,或把社区整理好的库放进 PATH。暂时搞不定就改回 CPU。
Q: 第一次运行停很久?
多半在下载模型权重。large-v3 比 small 大很多。想先看结果,把模型名改成 small。已经下过的模型可以传本地目录,不必每次都下。
Q: 中文同音字、专有名词不对?
转写负责听写,不负责改稿。同音字和专有名词交给 Codex,拿你的旧口播稿对照着改。这一步不要指望转写模型自己改对。
Q: 模型怎么选?
要听写质量用 large-v3。要更快用 distil-large-v3 或 turbo。没有独显用 small 加 int8。英文材料可以试 distil-large-v3,并把 language 设为 en。
Q: 程序结束了,但是没有文字?
segments 是生成器。transcribe 返回之后转写还没开始,要放进 for 循环,或者用 list(segments) 收齐,才会真正跑。
Q: 怎么和 Codex 一起用?
让 Codex 执行 pip install faster-whisper。再把旧稿和分场规矩写进 AGENTS.md。之后说:把这个文件夹里的录音都改成口播稿,每条一分钟以内,专有名词照旧稿来。
Q: 可以商用吗?
MIT 协议。可以放进商业项目,也可以再分发。分发时保留版权声明和许可声明。
本站收集的资源仅供内部学习、研究软件设计思想与原理使用。学习研究后请自觉删除,请勿添加内容资料中的联系方式,谨防受骗;请勿传播。因未及时删除或用于其他用途所造成的任何后果,均由使用者自行承担。感谢理解与配合!
若您认为「cmzhiku.com」发布的内容侵犯了您的合法权益,请联系站长邮箱:ksxwdyx@qq.com。我们将在核实后及时进行删除处理。
本站资源大多存储于云盘。如发现下载链接失效或资源异常,请及时联系我们,我们会第一时间核实并更新。



















