Whisper 本地语音转文字完全指南:免费替代讯飞/腾讯
OpenAI 的 Whisper 是目前最强的开源语音识别模型,支持 99 种语言,准确率媲美商业方案。完全本地运行,数据不出电脑,隐私无忧。
📊 版本选择
| 版本 | 参数量 | 显存需求 | 速度 | 准确率 |
|---|---|---|---|---|
| tiny | 39M | 1GB | ⚡⚡⚡ | 一般 |
| base | 74M | 1GB | ⚡⚡ | 还行 |
| small | 244M | 2GB | ⚡ | 良好 |
| medium | 769M | 5GB | 中等 | 很好 |
| large-v3 | 1.55B | 10GB | 慢 | 🥇 最佳 |
🚀 方案一:Python 原生
import whisper
# 加载模型(首次会自动下载)
model = whisper.load_model("large-v3")
# 转录音频文件
result = model.transcribe("audio.mp3", language="zh")
print(result["text"])
⚡ 方案二:faster-whisper(推荐)
基于 CTranslate2,速度提升 4倍,显存占用减半。
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", language="zh")
for segment in segments:
print(f"[{segment.start:.1f}s -> {segment.end:.1f}s] {segment.text}")
📝 批量转写 + 字幕生成
import glob, os
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda")
for audio_file in glob.glob("*.mp3"):
segments, _ = model.transcribe(audio_file, language="zh")
# 生成 SRT 字幕
srt_file = audio_file.rsplit(".", 1)[0] + ".srt"
with open(srt_file, "w") as f:
for i, seg in enumerate(segments, 1):
start = f"{int(seg.start//3600):02d}:{int(seg.start%3600//60):02d}:{seg.start%60:06.3f}".replace(".", ",")
end = f"{int(seg.end//3600):02d}:{int(seg.end%3600//60):02d}:{seg.end%60:06.3f}".replace(".", ",")
f.write(f"{i}
{start} --> {end}
{seg.text}
")
print(f"✅ {srt_file}")
🎯 总结
Whisper 是最可靠的本地语音识别方案。推荐用 faster-whisper + large-v3 组合,准确率高、速度快。完全免费,替代讯飞/腾讯付费API。

发表回复