本地Whisper部署的三个大坑:模型格式、路径配置、模型选择

 

本地Whisper部署看起来简单,实际踩了三个坑:模型格式不兼容、路径找不到、不知道用哪个模型。花了两天才跑通,我把踩坑过程记录下来,希望能帮到其他人。

坑1:模型格式不兼容——“Invalid model size”

用faster-whisper加载ggml-base.bin,报错:

text
RuntimeError: Invalid model size

根本原因:

ggml-base.bin是whisper.cpp的模型格式,faster-whisper读不了。虽然都是Whisper,但不同实现用了不同的模型格式,不能混用。

解决方案:

用faster-whisper时,不要用本地文件路径,直接用模型名让它自动下载:

python
from faster_whisper import WhisperModel

# ✅ 正确:用模型名让faster-whisper自动下载
model = WhisperModel("base", device="cpu", compute_type="int8")

# ❌ 错误:ggml-base.bin是whisper.cpp的格式,faster-whisper读不了
# model = WhisperModel("ggml-base.bin", device="cpu")

坑2:模型文件路径错误——部署后找不到文件

本地开发时,用相对路径加载模型没问题。部署到ECS后,路径找不到,程序崩溃。

根本原因:

本地路径是./models/whisper/,但Docker容器里目录结构变了,相对路径失效。

解决方案:

改用绝对路径或环境变量:

python
import os

# 方案一:环境变量
model_path = os.getenv('WHISPER_MODEL_PATH', '/app/models/whisper')

# 方案二:基于当前文件路径计算
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
model_path = os.path.join(BASE_DIR, 'models', 'whisper')

# Docker部署时挂载模型目录
# docker run -v /host/models/whisper:/app/models/whisper ...

坑3:用哪个模型?——选型对比

 
模型大小准确率速度适用场景
tiny ~75MB 一般 极快 实时流式
base ~150MB 中等 日常测试
small ~500MB 较好 中等 有清晰口音的录音
medium ~1.5GB 多人会议、嘈杂环境
large ~3GB 最好 很慢 要求高准确率的场景

我的选择:base模型

理由:

  • 个人项目服务器只有2核2G,large模型根本跑不动

  • base模型150MB,2G内存能跑,准确率够用

  • 如果录音有口音或噪声,可以后续升级到small

踩坑总结:

  • 不同Whisper实现的模型格式不互通,搞清楚再用。

  • 路径问题在本地可能不出现,部署时一定会遇到,提前用环境变量配置。

  • 模型选型要看服务器配置,不要盲目追求大模型。

posted @ 2026-06-26 16:21  竹雨禅月  阅读(57)  评论(0)    收藏  举报