Whisper 本地语音转文字完全指南:免费替代讯飞/腾讯

Whisper 本地语音转文字完全指南:免费替代讯飞/腾讯

OpenAI 的 Whisper 是目前最强的开源语音识别模型,支持 99 种语言,准确率媲美商业方案。完全本地运行,数据不出电脑,隐私无忧。

📊 版本选择

版本参数量显存需求速度准确率
tiny39M1GB⚡⚡⚡一般
base74M1GB⚡⚡还行
small244M2GB良好
medium769M5GB中等很好
large-v31.55B10GB🥇 最佳

🚀 方案一: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。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注