.. note::
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 [|link_sf_facebook|] y únete hoy mismo.
.. _py_stt:
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**
.. raw:: html
.. code-block::
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:
* :ref:`install_all_modules` — Instale los módulos ``robot-hat``,
``vilib``, ``picrawler``, luego ejecute el script ``i2samp.sh``.
**Código**
.. note::
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.
.. raw:: html
.. code-block:: python
#!/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?**
#. Importando el módulo STT
.. code-block:: python
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.
#. Configurando el idioma
.. code-block:: python
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.
#. Creando la instancia STT
.. code-block:: python
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.
#. El bucle de escucha
.. code-block:: python
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.
#. Salida controlada
.. code-block:: python
except KeyboardInterrupt:
print("\nSaliendo...")
Presionar **Ctrl+C** genera un ``KeyboardInterrupt``, que se captura para
imprimir un mensaje de salida y terminar el programa limpiamente.