ASRinServer / app.py
LeireTedCas's picture
Update app.py
e59defd
raw
history blame
4.39 kB
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#from asyncio.windows_events import NULL
#from cgitb import text
from flask import Flask, jsonify, session
from flask import request
from flask import render_template
import speech_recognition as sr
from werkzeug.datastructures import FileStorage
import os
import sys
from flask_caching import Cache
#from flask_socketio import SocketIO
app = Flask(__name__)
#socketio = SocketIO(app)
semaforo=False
app.config['CACHE_TYPE'] = 'simple'
cache = Cache(app)
r = sr.Recognizer()
condition = ""
app.secret_key = 'clave'
@app.route("/", methods=['POST', 'GET'])
def index():
r = sr.Recognizer()
global condition
print(condition)
print("vacio")
#if recognized_text == "No se pudo reconocer el audio":
#recognized_text = ""
recognized_text = "" # Valor predeterminado
texto_imprimir = ""
activado = False
#condition = False
if request.method == "POST":
print("ondo ondo")
if recognized_text == "No se pudo reconocer el audio":
#print(recognized_text)
recognized_text=""
f = request.files['audio_data']
# Cargar el archivo adjunto directamente
with sr.AudioFile(f) as source:
audio_data = r.record(source)
# Realizar el reconocimiento de voz
try:
recognized_text = r.recognize_google(audio_data, language='es-ES')
palabras = recognized_text.lower().split()
for palabra in palabras:
if palabra == "activar":
print("activado")
condition = 1
activado = True
#texto_imprimir = recognized_text
#return render_template('index.html', recognized_text=recognized_text, condition=condition)
#condition = True
elif palabra == "desactivar":
condition = 0
activado = False
texto_imprimir = ""
#condition = False
#return render_template('index.html', recognized_text=recognized_text, condition=condition)
if activado:
texto_imprimir += palabra + " "
except sr.UnknownValueError:
recognized_text = "No se pudo reconocer el audio"
#print(recognized_text)
#condition = False
except sr.RequestError as e:
recognized_text = f"Error en la solicitud: {str(e)}"
#condition = False
#print(recognized_text)
if condition is None:
condition = 0
print(condition)
session['condition'] = condition
print("intento")
#else:
##########################################################################################
query=recognized_text
print("TEXTO")
#print(query)
print (texto_imprimir)
return render_template('index.html', condition=condition, texto_imprimir=texto_imprimir)
#return render_template('index.html', recognized_text=recognized_text, condition=condition, texto_imprimir=texto_imprimir)
#@socketio.on('update_condition')
#def handle_condition_update(condition):
# Procesar y actualizar la condici贸n seg煤n sea necesario
# Puedes emitir la nueva condici贸n a todos los clientes conectados
# socketio.emit('update_condition', condition, broadcast=True)
#@app.route('/obtener_contenido',methods=['GET'])
#def obtener_contenido():
# print("ha entrao bien en def")
# condition = session.get('condition','Valor predeterminado si no hay valor en la sesion')
# print(condition)
# return jsonify({'condition':condition})
@app.route('/set_condition/<condition>', methods=['GET'])
def set_condition(condition):
response = jsonify({'condition': condition})
response.set_cookie('condition', condition)
return response
@app.route('/get_condition', methods=['GET'])
def get_condition():
condition = request.cookies.get('condition', 'Valor predeterminado si no hay valor en la cookie')
print(condition)
return jsonify({'condition': condition})
if __name__ == "__main__":
app.run(host='0.0.0.0', port=7860,debug=True)
#f __name__ == '__main__':
# socketio.run(app, host='0.0.0.0', port=7860, debug=True)