El principal medio de comunicación de los seres vivos es a través de los sonidos, dicho sea de paso, la voz es el medio base de la comunicación humana.

A su vez, el ser humano debe poder comunicarse con los equipos electrónicos y de cómputo, con ello se usan los botones, pantallas de visualización, teclados, mouse, etc.

Pero pueden existir situaciones donde sea más rápido y factible entablar una comunicación verbal para dictar órdenes a una computadora o sistema.

Es mucho más sencillo darle la orden de voz a una computadora, por ejemplo, de buscar en Google “Busca recetas de cocina” que tener que abrir el navegador y teclear el comando de búsqueda.

La tecnología de reconocimiento o detección de voz es la encargada de leer datos de audio e identificar frases humanas en ellas, para después convertirlas en texto y comandos leíbles para una computadora.

Diversos sistemas de asistentes virtuales hacen uso de esta tecnología para entender las ordenes que les damos.

Lejano a lo que podrías imaginar, este tipo de tecnología es fácil de implementar en Python, y aquí te decimos como.

Instalación

Primero debemos instalar el módulo de reconocimiento de voz de Python, usando el siguiente comando:

pip install speechrecognition

También debemos instalar otro par de bibliotecas más, encargadas del proceso de escucha del audio:

pip install  pyaudio

pip install pyttsx3

Código

A continuación, te presentamos el código completo para convertir voz a texto, incluso a viceversa.

import speech_recognition as sr
import pyttsx3

r = sr.Recognizer()

def SpeakText(command):
    # Inicializamos el proceso de salida de texto a voz
    engine = pyttsx3.init()
    engine.say(command)
    engine.runAndWait()

# En este ciclo esperaremos la entrada de audio a convertir
while (1):

    # Añadimos un try-except en caso de surgir errores
    try:
        # Usamos el microfono para recuperar voz
        with sr.Microphone() as source2:
            # Obtenemos el audio
            r.adjust_for_ambient_noise(source2, duration=0.2)
            audio2 = r.listen(source2)
            # Ahora, usamos speech_recognition para convertir el audio a texto
            MyText = r.recognize_google(audio2)
            MyText = MyText.lower()
            print("Intentaste decir: " + MyText)
            # Podemos convertir el texto a voz de nueva cuenta.
            SpeakText(MyText)

    except sr.RequestError as e:
        print("No existen resultados; {0}".format(e))

    except sr.UnknownValueError:
        print("Error desconocido")

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.