-1

我正在尝试在flask-python中制作一个应用程序,该应用程序使用json post使用gtts google library作为答案发送音频,但我的方法不起作用。我的代码如下。

from gtts import gTTS
from flask import Flask, send_file, request



app = Flask(__name__)

@app.route("/")
def t2s():
    text = request.get_json()
    obj = gTTS(text = text, slow = False, lang = 'en')    
    obj.save('audio.wav')
    return send_file('audio.wav')


if __name__ == "__main__":
    app.run(port=3000  , debug=True, use_reloader=True, host='0.0.0.0') 

有什么建议吗?,我正在使用邮递员。

非常感谢可能的帮助

4

1 回答 1

2

Flask默认情况下不会收到POST请求,您必须使用methods=['POST', 'GET']

from gtts import gTTS
from flask import Flask, send_file, request

app = Flask(__name__)

@app.route("/", methods=['POST', 'GET'])
def t2s():
    text = request.get_json()
    print(text)
    obj = gTTS(text = text, slow = False, lang = 'en')    
    obj.save('audio.wav')
    return send_file('audio.wav')

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

并测试(mplayer在 Linux 上使用):

import requests
import os

data = 'Hello World'

r = requests.post('http://127.0.0.1:3000/', json=data)

open('output.wav', 'wb').write(r.content)

os.system('mplayer output.wav')
于 2019-12-11T22:13:52.420 回答