使用 Flask 使用 json 重现音频

Using Flask to reproduce an audio using json

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

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') 

有什么建议吗?我正在使用 postman.

非常感谢您的帮助

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) 

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

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')