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

Flask接收WAV文件后如何用librosa加载?解决加载报错问题

Flask接收WAV文件后用librosa加载的报错解决办法

直接用librosa.load()加载Flask的FileStorage对象会报错,因为它只接受文件路径、字节串(但会被当作路径解析)或类文件对象。你之前用read()得到字节串后报错,是因为librosa把字节串当成了文件路径去处理,自然不符合要求。

正确的做法是把FileStorage对象转换成类文件对象(比如BytesIO),让librosa可以直接读取:

from flask import request
from io import BytesIO
import librosa

# 获取前端传来的FileStorage对象
audio_file = request.files.get('file')
# 将文件内容读取为字节流,并用BytesIO包装成类文件对象
audio_stream = BytesIO(audio_file.read())
# 用librosa加载这个类文件对象
data, sampling_rate = librosa.load(audio_stream)

原理:BytesIO会把字节数据包装成一个具备文件操作接口的对象,完全符合librosa.load()对输入的要求,这样就能正常解析WAV文件内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:50:27