ASRinServer / main.py
JPLTedCas's picture
Upload 3 files
abc40d6
raw
history blame
No virus
3.44 kB
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)