#!/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/', 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)