Nota

Hola, ¡bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete aún más en el mundo de Raspberry Pi, Arduino y ESP32 con otros apasionados.

¿Por qué unirse?

  • Soporte de Expertos: Resuelve problemas post-venta 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 los anuncios de nuevos productos y a vistas previas.

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

  • Promociones y Sorteos Festivos: Participa en sorteos y promociones especiales durante las festividades.

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

14. TTS con Espeak y Pico2Wave

En esta lección, usaremos dos motores integrados de texto a voz (TTS) en Raspberry Pi — Espeak y Pico2Wave — para hacer que el Pidog hable.

Estos dos motores son simples y funcionan sin conexión, pero suenan bastante diferentes:

  • Espeak: muy ligero y rápido, pero la voz es robótica. Puedes ajustar la velocidad, el tono y el volumen.

  • Pico2Wave: produce una voz más suave y natural que Espeak, pero ofrece menos opciones de configuración.

Podrás notar la diferencia en la calidad de voz y en las características.


Antes de Comenzar

Asegúrate de haber completado:

Probar Espeak

Espeak es un motor de TTS ligero incluido en Raspberry Pi OS. Su voz suena robótica, pero es altamente configurable: puedes ajustar el volumen, tono, velocidad y más.

Pasos para probarlo:

  • Crea un nuevo archivo con el comando:

    cd ~/pidog/examples
    sudo nano test_tts_espeak.py
    
  • Luego copia el código de ejemplo en él. Presiona Ctrl+X, luego Y y finalmente Enter para guardar y salir.

    from pidog.tts import Espeak
    
    tts = Espeak()
    
    # Ajustes opcionales de voz
    # tts.set_amp(100)   # 0 a 200
    # tts.set_speed(150) # 80 a 260
    # tts.set_gap(5)     # 0 a 200
    # tts.set_pitch(50)  # 0 a 99
    
    # Saludo rápido (prueba básica)
    tts.say("Hello! I'm Espeak TTS.")
    
  • Ejecuta el programa con:

    sudo python3 test_tts_espeak.py
    
  • Deberías escuchar al Pidog decir: “Hello! I’m Espeak TTS.”

  • Descomenta las líneas de ajuste de voz en el código para experimentar cómo amp, speed, gap y pitch afectan el sonido.


Probar Pico2Wave

Pico2Wave produce una voz más natural y humana que Espeak. Es más simple de usar pero menos flexible: solo puedes cambiar el idioma, no el tono ni la velocidad.

Pasos para probarlo:

  • Crea un nuevo archivo con el comando:

    cd ~/pidog/examples
    sudo nano test_tts_pico2wave.py
    
  • Luego copia el código de ejemplo en él. Presiona Ctrl+X, luego Y y finalmente Enter para guardar y salir.

    from pidog.tts import Pico2Wave
    
    tts = Pico2Wave()
    
    tts.set_lang('en-US')  # en-US, en-GB, de-DE, es-ES, fr-FR, it-IT
    
    # Saludo rápido (prueba básica)
    tts.say("Hello! I'm Pico2Wave TTS.")
    
  • Ejecuta el programa con:

    sudo python3 test_tts_pico2wave.py
    
  • Deberías escuchar al Pidog decir: “Hello! I’m Pico2Wave TTS.”

  • Prueba cambiando el idioma (por ejemplo, es-ES para español) y escucha la diferencia.


Solución de Problemas

  • No hay sonido al usar Espeak o Pico2Wave

    • Verifica que tus altavoces o auriculares estén conectados y que el volumen no esté silenciado.

    • Realiza una prueba rápida en la terminal:

      espeak "Hello world"
      pico2wave -w test.wav "Hello world" && aplay test.wav
      

    Si no escuchas nada, el problema está en la salida de audio, no en tu código de Python.

  • La voz de Espeak suena demasiado rápida o robótica

    • Intenta ajustar los parámetros en tu código:

      tts.set_speed(120)   # más lento
      tts.set_pitch(60)    # tono diferente
      
  • “Permission denied” al ejecutar el código

    • Intenta ejecutar con sudo:

      sudo python3 test_tts_espeak.py
      

Comparación: Espeak vs Pico2Wave

Característica

Espeak

Pico2Wave

Calidad de voz

Robótica, sintética

Más natural, tipo humano

Idiomas

Inglés por defecto

Menos idiomas, pero comunes

Ajustable

Sí (velocidad, tono, etc.)

No (solo idioma)

Rendimiento

Muy rápido y ligero

Un poco más lento y pesado