Programación

Tutorial: Convertir voz a texto desde Python usando speechrecognition

Anuncios

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")
Avatar photo
Sobre el autor

Julio Del Angel

Redactor en Facialix

Ingeniero en Sistemas, egresado del Instituto Tecnológico Superior de Pánuco (TecNM), Veracruz. Especializado en desarrollo de software, tecnología e inteligencia artificial. Fundador y editor de Facialix, donde analiza noticias, avances científicos y oportunidades educativas.

Ver todos sus artículos →

Deja un comentario