本地语音转文字:2026年Whisper、faster-whisper、FunASR对比

📘 教程 2026-08-07 · 更新于 2026-10-26 约 3 分钟阅读

2026本地语音转文字:Whisper重准确、faster-whisper重速度、FunASR强中文,附模型规格表与安装代码。

📜 目录

本地语音转文字:2026年Whisper、faster-whisper、FunASR对比

录音转文字这件事,云服务按小时收费,一小时的会议几毛到几块,量一大就不便宜;更麻烦的是内容要出机器,法务和医疗场景基本不能接受。本地方案现在足够好用:三个项目覆盖了准确率、速度、中文三个方向,装完就能跑,没有调用次数限制。

一、三个项目的定位

项目 GitHub 星数 定位 一句话评价
openai/whisper 111,299 原版参考实现 准确率基线,99 种语言,代码最干净
SYSTRAN/faster-whisper 26,163 CTranslate2 重实现 同样的权重,速度数倍,显存更省
modelscope/FunASR 20,824 阿里达摩院中文工具包 中文标点、时间戳开箱即用
m-bain/whisperX 24,855 加了强制对齐和说话人分离 要"谁在什么时候说了什么"就用它

星数为 2026 年 10 月统计,会持续变化。

二、模型规格与硬件门槛

Whisper 系列权重是通用的,faster-whisper 和 WhisperX 读的是同一套:

模型 参数量 显存(fp16 约) 适合
tiny 39M 1GB 以内 实时字幕草稿、树莓派
base 74M 1GB 到 2GB 语速清晰的短音频
small 244M 2GB 到 3GB 日常会议
medium 769M 5GB 到 6GB 带口音、噪声环境
large-v3 1550M 10GB 左右 质量优先,默认选它
distil-large-v3 756M 5GB 到 6GB 英文场景的速度妥协

显存数字随批量、音频长度和框架实现浮动,官方仓库有对照表,以官方说明为准。没有显卡也能跑,只是慢:CPU 上一小时音频用 large-v3 要几十分钟量级,用 small 或 int8 量化能压到十几分钟。具体快慢取决于你的 CPU 核数和音频质量,建议先拿自己的样本跑一遍再定档。

三、原版 Whisper:两条命令跑通

# 需要先装 ffmpeg(Windows 用 winget install ffmpeg,mac 用 brew install ffmpeg)
pip install -U openai-whisper

whisper meeting.mp3 --model large-v3 --language zh \
    --task transcribe --output_format srt \
    --initial_prompt "以下是普通话会议记录,涉及产品、接口和排期。"

--initial_prompt 这一步很关键:把参会人的名字、专有名词、行业术语写进去,模型会倾向用这些词,人名和缩写的错误率明显下降。

四、faster-whisper:快几倍,代码差不多

pip install -U faster-whisper
from faster_whisper import WhisperModel

model = WhisperModel("large-v3", device="cuda", compute_type="float16")
segments, info = model.transcribe(
    "meeting.mp3",
    language="zh",
    beam_size=5,
    vad_filter=True,                 # 先切掉静音,长录音提速明显
    vad_parameters={"min_silence_duration_ms": 500},
    initial_prompt="以下是普通话会议记录,涉及产品、接口和排期。",
)

for s in segments:
    print(f"[{s.start:.1f} -> {s.end:.1f}] {s.text}")

显存吃紧就把 compute_type 改成 "int8_float16" 或 "int8",精度损失很小,显存占用差不多减半。纯 CPU 用 device="cpu", compute_type="int8",比原版快得多。

五、FunASR:中文场景的实战选择

FunASR 的好处是把 VAD、识别、标点三件事串成了一条链,输出直接带标点和时间戳,不用自己后处理。

pip install -U funasr modelscope
from funasr import AutoModel

model = AutoModel(
    model="paraformer-zh",      # 中文识别主模型
    vad_model="fsmn-vad",       # 语音端点检测
    punc_model="ct-punc",       # 加标点
)

res = model.generate(
    input="meeting.wav",
    batch_size_s=300,           # 按 300 秒一批处理,长音频友好
    hotword="青鸟观察派 向量数据库 RAG",   # 热词,专有名词命中率提升明显
)
print(res[0]["text"])

模型首次运行会从 ModelScope 自动下载,几百 MB 到 1GB 多,之后就完全离线。热词(hotword)是 FunASR 对中文最实用的一项,产品名、客户名、内部黑话都能塞进去。

六、要区分说话人怎么办

Whisper 本身不分说话人。两条路:

pip install -U whisperx
whisperx meeting.mp3 --model large-v3 --language zh --diarize --min_speakers 2 --max_speakers 6

--diarize 依赖 pyannote 的说话人模型,需要在 Hugging Face 上接受模型条款并配置 token,具体步骤以 whisperx 官方文档为准。中文场景也可以直接用 FunASR 的说话人分离方案,效果依录音质量差异较大,务必先用真实录音验证。

七、怎么选

场景 选择
想最快跑通,不要折腾 原版 whisper,large-v3
长录音、有显卡、追求速度 faster-whisper + large-v3
纯中文会议、要标点和时间戳 FunASR paraformer-zh
需要说话人标签 WhisperX 或 FunASR 说话人方案
机器很弱、只做草稿 faster-whisper + small,int8

八、四个提升准确率的小动作

  1. 加 VAD:先把静音和空调噪声切掉,长录音能省一半时间,还减少空转导致的重复输出。
  2. 喂术语表:initial_prompt(Whisper)或 hotword(FunASR)里放人名和专名,比模型升级更便宜。
  3. 控制分段长度:超过 30 秒的段落容易跑偏,faster-whisper 里配合 VAD 参数把段落压到 10 到 20 秒。
  4. 做后处理替换表:把稳定出现的错词做成映射表批量替换,一次配置长期受益。

常见问题

Q:中文识别总是缺标点? A:原版 Whisper 不给标点,用 FunASR 的 punc_model,或者在提示词里加"以下是带标点的普通话记录"。

Q:为什么转写结果里有重复的整句? A:多数是模型在静音段空转。开 VAD 过滤,并把 condition_on_previous_text 设为 False 再试。

Q:本地转录一小时音频要多久? A:取决于模型和硬件。中端显卡 + large-v3 通常在几分钟量级,纯 CPU 用 large 会到几十分钟。先跑 5 分钟样本测速,再决定要不要降档。

Q:能商业使用吗? A:Whisper 权重为 MIT 许可,FunASR 为 Apache 2.0,faster-whisper 为 MIT,商用基本无障碍。具体条款以各仓库 LICENSE 为准。

注:模型规格、显存占用与许可条款以各项目官方文档为准。

相关文章

延伸阅读 · 含推广链接

免费额度适合验证想法,不适合跑常驻任务。按量付费按实际用量结算,比包年更不容易浪费。

对比按量与包年 →

相关文章
2026-08-01
AI推理(Inferencing)详解:原理与运行位置
2026-08-11
AI知识图谱2026:GraphRAG、实体抽取与真实用例
2026-08-14
代码转 AI 流程图 2026:把 Python 和 SQL 变成图表
2026-10-22
2026教师AI出卷工具:五款工具,看答案与批改怎么落地
2026-08-01
llms.txt生成器:让AI引用你内容的站点地图
2026-08-05
2026年AI问卷分析工具:Streamlit(4.5万星)+ PandasAI,几分钟分析开放式问答

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论