vozcontrolESP32_1.py
import speech_recognition as sr
import compara
# Initialize recognizer
r = sr.Recognizer()
# Use microphone as source
with sr.Microphone() as source:
print("Dime que necesitas...")
# Adjust for ambient noise
r.adjust_for_ambient_noise(source)
# Listen for audio input
audio = r.listen(source)
try:
# Convert audio to text
text = r.recognize_google(audio, language="es-ES")
print("He entendido: {text}")
keyword=text.lower()
compara.comprobar(keyword)
except sr.UnknownValueError:
print("Sorry, I could not understand what you said.")
except sr.RequestError as e:
print(f"Could not request results from Google Speech Recognition service; {e}")
compara.py
from enviaCodigo import run_micropython_code
port = "/dev/tty.usbserial-0001"
def comprobar(palabra):
#Comprobar si reconoce una instruccion
if palabra == 'apaga el led':
print('entiendo que apague el led')
run_micropython_code(port, apagaLed)
elif palabra == 'enciende el led':
print('entiendo que encienda el led')
run_micropython_code(port, enciendeLed)
else:
print('lo siento, no he entendido la instruccion')
def apagaLed():
return '''
from machine import Pin
led=Pin(14, Pin.OUT)
led.off()
'''
def enciendeLed():
return '''
from machine import Pin
led=Pin(14, Pin.OUT)
led.on()
'''
enviaCodigo.py
import serial
import time
def run_micropython_code(port, main3):
leerparaESP32=main3()
with serial.Serial(port, 115200, timeout=1) as ser:
ser.write(b'\x03') # Envía un Ctrl-C para interrumpir cualquier programa en ejecución
time.sleep(0.5)
ser.write(b'\r\x01') # Ingresa al modo raw REPL
ser.write(b'\x04') # Envía un Ctrl-D para hacer un soft reset
time.sleep(0.5)
ser.write(leerparaESP32.encode('utf-8')) # Envía el código MicroPython
ser.write(b'\x04') # Envía un Ctrl-D para ejecutar el código
time.sleep(0.5)
while True:
output = ser.readline().decode('utf-8').strip()
if output == "":
break
print(output)
ser.write(b'\r\x02') # Sale del modo raw REPL
Deja una respuesta Cancelar la respuesta