audio / app.py
MiklX's picture
Update app.py
bf488ff
raw
history blame
2.29 kB
from flask import Flask, render_template, request, jsonify
from flask_cors import CORS
from gtts import gTTS
import tempfile
import os
import requests
from langdetect import detect
app = Flask(__name__)
CORS(app)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# Проверка пароля
password = request.form.get('password')
#if password != 'gg':
#return jsonify({"status": "error", "message": "Неверный пароль"})
# Получение текста из формы
input_text = request.form.get('text')
language_code = detect(input_text)
# Генерируем аудио
tts = gTTS(text=input_text, lang=language_code, slow=False)
# Создаем временный файл и сохраняем в него аудио
temp_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
temp_file_name = temp_file.name
tts.save(temp_file_name)
# Указываем URL сервера, на который хотим загрузить файл
upload_url = "https://x0.at/" # Замените на реальный URL
# Открываем временный файл для чтения бинарных данных
with open(temp_file_name, "rb") as file:
files = {"file": (os.path.basename(temp_file_name), file)}
# Выполняем POST-запрос с использованием библиотеки requests
response = requests.post(upload_url, files=files)
# Закрываем и удаляем временный файл
temp_file.close()
os.remove(temp_file_name)
# Проверяем статус код ответа
if response.status_code == 200:
uploaded_url = response.text.strip()
return jsonify({"status": "success", "url": uploaded_url})
else:
return jsonify({"status": "error", "message": "Ошибка при загрузке файла на сервер", "status_code": response.status_code})
return render_template('index.html')
if __name__ == '__main__':
app.run(host="0.0.0.0", port=7860, debug=False)