Spaces:
Sleeping
Sleeping
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) |