Nota

Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. ¡Explora más a fondo Raspberry Pi, Arduino y ESP32 con otros entusiastas!

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y vistas previas.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo.

15. STT (Speech-to-Text)

Este ejemplo demuestra cómo usar el módulo STT (Speech-to-Text) en PiCrawler. El robot escucha su voz a través del micrófono integrado y la convierte en texto en tiempo real.

Ejecutar el código

cd ~/picrawler/examples
sudo python3 15_stt.py

Después de ejecutar el programa, verá la configuración de idioma y un aviso. El robot comienza a escuchar — hable por el micrófono y el texto reconocido se imprimirá en el terminal.

Si no se detecta voz, se muestra (no speech detected). Presione Ctrl+C para salir.

Antes de comenzar

Asegúrese de haber completado:

Código

Nota

Puede Modificar/Restablecer/Copiar/Ejecutar/Detener el código siguiente. Pero antes, debe ir a la ruta del código fuente como picrawler\examples. Después de modificar el código, puede ejecutarlo directamente para ver el efecto.

#!/usr/bin/env python3
from robot_hat.stt import STT

# Demo de reconocimiento de voz usando el módulo STT de sunfounder_voice_assistant
# Ctrl+C para salir

# Configurar idioma: "en-us", "zh-cn", "es-es", etc.
LANGUAGE = "en-us"

def main():
    print("=== Demo PiCrawler Speech-to-Text ===")
    print(f"Idioma: {LANGUAGE}")
    print("Ctrl+C para salir")
    print()

    stt = STT(language=LANGUAGE)

    try:
        while True:
            print("Escuchando... (hable ahora)")
            text = stt.listen()
            if text:
                print(f">>> {text}")
            else:
                print("(no se detectó voz)")
    except KeyboardInterrupt:
        print("\nSaliendo...")

if __name__ == "__main__":
    main()

¿Cómo funciona?

  1. Importando el módulo STT

    from robot_hat.stt import STT
    

    La clase STT es parte del paquete robot_hat. Maneja toda la captura de audio de bajo nivel y el procesamiento de reconocimiento de voz.

  2. Configurando el idioma

    LANGUAGE = "en-us"
    

    La variable LANGUAGE configura el idioma de reconocimiento. Puede cambiarla a otros códigos compatibles como "zh-cn" (chino) o "es-es" (español) según sus necesidades.

  3. Creando la instancia STT

    stt = STT(language=LANGUAGE)
    

    Esto crea un objeto STT configurado para el idioma elegido. El objeto inicializa el micrófono y el motor de reconocimiento de voz.

  4. El bucle de escucha

    while True:
        print("Escuchando... (hable ahora)")
        text = stt.listen()
        if text:
            print(f">>> {text}")
        else:
            print("(no se detectó voz)")
    

    El programa ejecuta un bucle infinito donde cada iteración:

    • Solicita al usuario que hable.

    • Llama a stt.listen() que se bloquea hasta que se detecta y procesa la voz.

    • Devuelve el texto reconocido como cadena, o None / vacío si no se entendió nada.

    • Imprime el resultado en el terminal.

  5. Salida controlada

    except KeyboardInterrupt:
        print("\nSaliendo...")
    

    Presionar Ctrl+C genera un KeyboardInterrupt, que se captura para imprimir un mensaje de salida y terminar el programa limpiamente.