.. note::
Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l'univers du Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi rejoindre ?**
- **Support d'experts** : Résolvez les problèmes post-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aperçus exclusifs.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et concours** : Participez à des concours et promotions spéciales.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui !
.. _py_stt:
15. STT (Speech-to-Text)
==============================================
Cet exemple montre comment utiliser le module STT (Speech-to-Text) sur
PiCrawler. Le robot écoute votre voix via le microphone intégré et la
convertit en texte en temps réel.
**Exécuter le code**
.. raw:: html
.. code-block::
cd ~/picrawler/examples
sudo python3 15_stt.py
Après avoir exécuté le programme, vous verrez le paramètre de langue et une
invite. Le robot commence à écouter — parlez dans le microphone et le texte
reconnu sera affiché dans le terminal.
Si aucune parole n'est détectée, ``(no speech detected)`` s'affiche. Appuyez
sur **Ctrl+C** pour quitter.
**Avant de commencer**
Assurez-vous d'avoir terminé :
* :ref:`install_all_modules` — Installez les modules ``robot-hat``,
``vilib``, ``picrawler``, puis exécutez le script ``i2samp.sh``.
**Code**
.. note::
Vous pouvez **Modifier/Réinitialiser/Copier/Exécuter/Arrêter** le code
ci-dessous. Mais avant cela, vous devez aller dans le chemin du code source
comme ``picrawler\examples``. Après avoir modifié le code, vous pouvez
l'exécuter directement pour voir l'effet.
.. raw:: html
.. code-block:: python
#!/usr/bin/env python3
from robot_hat.stt import STT
# Démo de reconnaissance vocale utilisant le module STT de sunfounder_voice_assistant
# Ctrl+C pour quitter
# Configurer la langue : "en-us", "zh-cn", "fr-fr", etc.
LANGUAGE = "en-us"
def main():
print("=== Démo PiCrawler Speech-to-Text ===")
print(f"Langue : {LANGUAGE}")
print("Ctrl+C pour quitter")
print()
stt = STT(language=LANGUAGE)
try:
while True:
print("Écoute... (parlez maintenant)")
text = stt.listen()
if text:
print(f">>> {text}")
else:
print("(aucune parole détectée)")
except KeyboardInterrupt:
print("\nFermeture...")
if __name__ == "__main__":
main()
**Comment ça fonctionne ?**
#. Importation du module STT
.. code-block:: python
from robot_hat.stt import STT
La classe ``STT`` fait partie du paquet ``robot_hat``. Elle gère toute la
capture audio de bas niveau et le traitement de la reconnaissance vocale.
#. Définition de la langue
.. code-block:: python
LANGUAGE = "en-us"
La variable ``LANGUAGE`` configure la langue de reconnaissance. Vous pouvez
la modifier pour d'autres codes pris en charge comme ``"zh-cn"`` (chinois)
ou ``"fr-fr"`` (français) selon vos besoins.
#. Création de l'instance STT
.. code-block:: python
stt = STT(language=LANGUAGE)
Cela crée un objet STT configuré pour la langue choisie. L'objet initialise
le microphone et le moteur de reconnaissance vocale.
#. La boucle d'écoute
.. code-block:: python
while True:
print("Écoute... (parlez maintenant)")
text = stt.listen()
if text:
print(f">>> {text}")
else:
print("(aucune parole détectée)")
Le programme exécute une boucle infinie où chaque itération :
- Invite l'utilisateur à parler.
- Appelle ``stt.listen()`` qui bloque jusqu'à ce que la parole soit détectée
et traitée.
- Renvoie le texte reconnu sous forme de chaîne, ou ``None`` / vide si rien
n'a été compris.
- Affiche le résultat dans le terminal.
#. Sortie propre
.. code-block:: python
except KeyboardInterrupt:
print("\nFermeture...")
Appuyer sur **Ctrl+C** déclenche un ``KeyboardInterrupt``, qui est capturé
pour afficher un message de sortie et terminer le programme proprement.