首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将音频文件和文本发送到flask api,但收到400错误请求错误

尝试将音频文件和文本发送到flask api,但收到400错误请求错误
EN

Stack Overflow用户
提问于 2021-08-27 00:57:37
回答 1查看 176关注 0票数 0

因此,我尝试将音频文件和文本作为参数发送到flask api,当我通过postman发送它们时,它工作得很好,但当我通过python代码发布它时,我得到了一个糟糕的请求错误。下面是我的python代码:

代码语言:javascript
复制
import requests
import json
url= 'http://192.168.100.14:8000/v1/translate'
with open('/home/faizi/ai-chatbot-with-voice-driven-facial-animation/01_smalltalk_bot/game.wav', 'rb') as file:

 files = {'input_file': file}
 d = {"text":"hello, my name is faizan"}    
 req = requests.post(url, files=files, json=d)
 print(req.status_code)
 print(req.text)

下面是我的flask api:

代码语言:javascript
复制
from flask import Flask
from flask_cors import cross_origin
from flask import Blueprint, request, Response
import json
from Voice_Cloning_Module import demo_cli
from flask import send_file

app = Flask("foo")

@app.route('/v1/translate', methods=['POST', 'OPTIONS'])
@cross_origin()
def translate_mbart():
  data = request.get_json()
  audio_file = request.files['input_file']
  audio_file.save("./bufferaudiofile/"+audio_file.filename)
  text = request.form['text']
  returnedfile = demo_cli.clone(text,"./bufferaudiofile/"+audio_file.filename)
  path_to_clonefile = returnedfile
  return send_file(
    path_to_clonefile,
    mimetype="audio/wav",
    as_attachment=True,
    attachment_filename="test.wav")






 if __name__ == '__main__':
   app.run(host='0.0.0.0', port=8000)

我收到400个错误的请求,我不明白是什么问题,它在邮递员中工作正常

EN

回答 1

Stack Overflow用户

发布于 2021-08-27 02:22:39

我使用下面的代码成功地发送了一个wav文件。我建议将其剥离到最基本的部分,并专注于接收文件,以确保没有其他因素导致问题。

接口

代码语言:javascript
复制
from flask import Flask
from flask import request
import json

app = Flask(__name__)

@app.route('/main', methods=['POST', 'OPTIONS'])
def main():

    file = request.files['file']
    print(file)

    return { "ok": True }

if __name__ == '__main__':
    app.run(host = 'localhost', port = 8000)

和请求:

代码语言:javascript
复制
import requests
import json

url = 'http://localhost:8000/main'

with open('test_file.wav', 'rb') as wav:

    files = { "file": wav }
    d = { "body" : "Foo Bar" }

    req = requests.post(url, files=files, json=d)

    print(req.status_code)
    print(req.text)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68946864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档