(Flask) Файл создается два раза но отправляется только один раз
Вообщем, делаю tts через flask. Использую edge-tts.
Вот код:
from flask import Flask, request, send_file, make_response
import os
import subprocess
import sys
import tempfile
import io
app = Flask(__name__)
@app.route('/', methods=['GET'])
def tts() -> None:
TEXT = request.args.get('text', default = 'Error')
VOICE = request.args.get('voice', default = "ru-RU-DmitryNeural")
keep = os.environ.get("EDGE_PLAYBACK_KEEP_TEMP") is not None
mp3_fname = os.environ.get("EDGE_PLAYBACK_MP3_FILE")
return_data = io.BytesIO()
media = None
try:
if not mp3_fname:
media = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
media.close()
mp3_fname = media.name
print(f"Media file: {mp3_fname}")
with subprocess.Popen(
[
"edge-tts",
f"--text={TEXT}",
f"--voice={VOICE}",
f"--write-media={mp3_fname}",
]
+ sys.argv[1:]
) as process:
process.communicate()
with open(mp3_fname, 'rb') as fo:
return_data.write(fo.read())
finally:
if keep:
print(f"\nKeeping temporary files: {mp3_fname}")
else:
if mp3_fname is not None and os.path.exists(mp3_fname):
os.unlink(mp3_fname)
return send_file(return_data, mimetype="audio/wav")
if __name__ == '__main__':
app.run(host="0.0.0.0")
Вот ответ:
Media file: C:\Users\Morgan\AppData\Local\Temp\tmpzhvy7l7m.mp3
WEBVTT
00:00:00.100 --> 00:00:01.087
hello world
127.0.0.1 - - [23/Jun/2023 01:17:20] "GET /?text=hello%20world&voice=en-GB-SoniaNeural HTTP/1.1" 200 -
Media file: C:\Users\Morgan\AppData\Local\Temp\tmp33ovjt0l.mp3
WEBVTT
00:00:00.100 --> 00:00:01.087
hello world
127.0.0.1 - - [23/Jun/2023 01:17:21] "GET /?text=hello%20world&voice=en-GB-SoniaNeural HTTP/1.1" 206 -