gpt4 book ai didi

python - 如何读取/处理在 POST 请求中发送到 Flask API 的音频文件?

转载 作者:行者123 更新时间:2023-12-02 23:28:45 24 4
gpt4 key购买 nike

我正在运行一个简单的 Flask 后端,它将处理带有音频文件的 HTTP 请求并读取数据。最终我想读取数据并让 ML 模型对音频数据进行推理,但第一步是简单地以正确的编码格式读取数据。

我的 Flask 应用程序代码如下:

@app.route('/api/audio', methods=['GET', 'POST'])
def get_score():
if request.method == 'POST':
length = request.content_length
content_type = request.content_type
data = request.data
return f"""Content Type is {content_type} and data is {data} \n length is {length}"""
elif request.method == 'GET':
return 'get method received'

我在客户端生成 POST 请求的测试代码如下:

def send_audio():
#print('attempting to send audio')
url = 'http://127.0.0.1:5000/api/audio'
with open('/Users/kaushikandra/laughter-detection/LaughDetection/crowd_laugh_1.wav', 'rb') as file:
data = {'uuid':'-jx-1', 'alarmType':1, 'timeDuration':10}
files = {'messageFile': file}

req = requests.post(url, files=files, json=data)
print(req.status_code)
print(req.text)

当我运行客户端脚本时,我从服务器得到以下输出。

200
Content Type is multipart/form-data; boundary=d95c72e01bdfac029b16da2b8f144cbd and data is b''
length is 129722

我可以从 200 状态代码中看出 flask 应用程序正确接收 POST 请求,但是当我尝试读取数据时,我得到一个空的 b'' 字符串。解码音频文件的正确方法是什么?还是我在客户端脚本中发送 POST 请求的方式有问题?

我查看了 StackOverflow 上的其他问题,他们提到将文件作为 POST 请求中"file"参数的一部分发送。

最佳答案

尝试使用 request.files获取您的音频文件:

@app.route('/api/audio', methods=['GET', 'POST'])
def get_score():
if request.method == 'POST':
request.files['messageFile']

如果我记得的话,request.data 只是一个空字符串。使用 request.json()request.get_json(force=True) .

关于python - 如何读取/处理在 POST 请求中发送到 Flask API 的音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58513718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com