File size: 3,442 Bytes
abc40d6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from flask import Flask, render_template
from flask_socketio import SocketIO
import speech_recognition as sr

app = Flask(__name__)
socketio = SocketIO(app)

@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('message')
def handle_message(message):
    print(f'Received: {message}')
    socketio.emit('response', message)

@socketio.on('recognize_speech')
def recognize_speech():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Escuchando...")
        audio = r.listen(source)
        try:
            recognized_text = r.recognize_google(audio, language='es-ES')
            print(f"Texto reconocido: {recognized_text}")
            socketio.emit('response', recognized_text)
        except sr.UnknownValueError:
            print("No se pudo reconocer el audio")
        except sr.RequestError as e:
            print(f"Error en la solicitud a Google: {e}")

if __name__ == '__main__':
    socketio.run(app)



















#from flask import Flask, render_template
##from deepgram import Deepgram
#from dotenv import load_dotenv
#import os
#import asyncio
#from aiohttp import web
#from aiohttp_wsgi import WSGIHandler

#from typing import Dict, Callable


#load_dotenv()

#app = Flask('aioflask')

##dg_client = Deepgram(os.getenv('DEEPGRAM_API_KEY'))

#async def process_audio(fast_socket: web.WebSocketResponse):
#    async def get_transcript(data: Dict) -> None:
#        if 'channel' in data:
#            transcript = data['channel']['alternatives'][0]['transcript']
        
#            if transcript:
#                await fast_socket.send_str(transcript)

#    deepgram_socket = await connect_to_deepgram(get_transcript)
#    #########################################
#    #r = sr.Recognizer()
#    #with sr.Microphone() as source:
#    #    print("Listening...")
#    #    r.pause_threshold = 1
#    #    audio = r.adjust_for_ambient_noise(source)
#    #    audio = r.listen(source)
#    #try:
#    #    print("Recognizing...")
#    #    query = r.recognize_google(get_transcript, language='es-ES')
#    #    print(f"User said: {query}\n")
#    #except Exception as e:
#    #    print(e)
#    #    print("Unable to Recognize your voice.")
#    #    return "none"




#    ########################################
#    return deepgram_socket

#async def connect_to_deepgram(transcript_received_handler: Callable[[Dict], None]) -> str:
#    try:
#        socket = await dg_client.transcription.live({'punctuate': True, 'interim_results': False})
#        socket.registerHandler(socket.event.CLOSE, lambda c: print(f'Connection closed with code {c}.'))
#        socket.registerHandler(socket.event.TRANSCRIPT_RECEIVED, transcript_received_handler)

#        return socket
#    except Exception as e:
#        raise Exception(f'Could not open socket: {e}')

#@app.route('/')
#def index():
#    return render_template('index.html')

#async def socket(request):
#    ws = web.WebSocketResponse()
#    await ws.prepare(request) 

#    deepgram_socket = await process_audio(ws)

#    while True:
#        data = await ws.receive_bytes()
#        deepgram_socket.send(data)

  

#if __name__ == "__main__":
#    loop = asyncio.get_event_loop()
#    aio_app = web.Application()
#    wsgi = WSGIHandler(app)
#    aio_app.router.add_route('*', '/{path_info: *}', wsgi.handle_request)
#    aio_app.router.add_route('GET', '/listen', socket)
#    web.run_app(aio_app, port=5555)