Blog de Contraslash (Legacy)

Un jarvis simple en Python

February 06, 2017

Un jarvis simple en Python

Siempre mi motivación principal para estudiar programación fueron los agentes conversacionales, y creo que mi sueño se volvió parcialmente realidad en el momento que entregué mi tesis de pregrado.

Explorando la red me encontré con este artículo de FossBytes donde crean un simple asistente conversacional que repite lo que entiende. Debo aclarar que funciona para inglés y que debería realizar unas configuraciones extras para que realice el mismo proceso en español, pero eso no será hoy. Por lo pronto los dejo con el código fuente, y un enlace al repositorio donde posiblemente en unos cuantos días encontrarán el código ajustado para el español

import speech_recognition
import pyespeak


speech_engine = pyespeak.ESpeak()


def speak(text):
    speech_engine.say(text)


print("starting recognizer")
recognizer = speech_recognition.Recognizer()
print("recognizer started")


def listen():
    with speech_recognition.Microphone() as source:
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)

    try:
        return recognizer.recognize_sphinx(audio)
    except speech_recognition.UnknownValueError:
        print("Could not understand audio")
    except speech_recognition.RequestError as e:
        print("Recog Error; {0}".format(e))

    return ""

speak("Say something!")
speak("I heard you say " + listen())

Para tener este código funcional recomendamos clonar este repositorio, instalar espeak

Para mac, la mejor manera de tener espeak funcionando es usando este repositorio

y ejecutar el siguiente código

pip install -r requirements.txt
git clone https://github.com/relsi/python-espeak
cd python-espeak
make install

cd ..
mkdir pyespeak
cp python-espeak/espeak/* pyespeak