You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Whisper模型报错TypeError: expected np.ndarray (got FileStorage)求解决方案

解决Whisper报错:TypeError: expected np.ndarray (got FileStorage)

问题根源

你传给model.transcribe()的getfile是Flask的FileStorage对象,而Whisper的转录方法不支持直接处理这个类型——它只接受文件路径字符串、音频字节数据、或numpy数组作为输入。

可行解决方案

方案1:把FileStorage存成临时文件,传入路径

from flask import request
import whisper
import tempfile

model = whisper.load_model("base.en")
# 替换成你前端表单对应的文件字段名
getfile = request.files['audio_file']

# 创建临时文件保存上传的音频
with tempfile.NamedTemporaryFile(delete=False, suffix='.wav') as temp_f:
    getfile.save(temp_f.name)
    # 用临时文件路径调用转录方法
    text_audio = model.transcribe(temp_f.name, language='en', fp16=False)
    result = text_audio["text"]

方案2:直接读取FileStorage的字节数据传入

from flask import request
import whisper

model = whisper.load_model("base.en")
getfile = request.files['audio_file']

# 读取文件的字节内容
audio_data = getfile.read()
# 传入字节数据完成转录
text_audio = model.transcribe(audio_data, language='en', fp16=False)
result = text_audio["text"]

注意点

  • 要确保后端request.files[]里的字段名和前端表单的文件输入框name属性完全一致,比如前端是<input type="file" name="user_audio">,后端就得写request.files['user_audio']。
  • Whisper支持mp3、wav、m4a等主流音频格式,无需额外转码,除非你上传的是非常见格式。

内容的提问来源于stack exchange,提问作者Zubair Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:22:07