File size: 4,394 Bytes
2d194da
2719229
0f71086
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e59defd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8cfacb8
e59defd
0f71086
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/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)