.. 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_tts: 16. TTS (Text-to-Speech) ============================================== Cet exemple montre comment utiliser le module TTS (Text-to-Speech) pour faire parler PiCrawler. Il prend en charge deux moteurs : **Piper** (TTS neuronal de haute qualité) et **Espeak** (TTS classique léger). Tapez n'importe quel texte et le robot le lira à haute voix. **Exécuter le code** .. raw:: html .. code-block:: cd ~/picrawler/examples sudo python3 16_tts.py Après avoir exécuté le programme, le type de moteur et le modèle sont affichés. Tapez n'importe quelle phrase et appuyez sur **Entrée** — le robot la prononce. Tapez ``quit`` pour quitter, ou appuyez sur **Ctrl+C**. **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.tts import Piper, Espeak # Démo Text-to-Speech utilisant le module TTS de robot_hat # Ctrl+C pour quitter # Définir USE_PIPER=True pour un TTS neuronal de haute qualité (Piper), False pour Espeak USE_PIPER = True # Modèle Piper : "en_US-ryan-low" (anglais), "zh_CN-huayan-x_low" (chinois) # Pour le français : "fr_FR-siwis-medium" voir |link_piper_voice| TTS_MODEL = "en_US-ryan-low" def main(): print("=== Démo PiCrawler Text-to-Speech ===") if USE_PIPER: print(f"Moteur : Piper ({TTS_MODEL})") tts = Piper(model=TTS_MODEL) else: print("Moteur : Espeak") tts = Espeak() print("Tapez le texte à prononcer, ou 'quit' pour quitter") print() try: while True: text = input("Texte à prononcer : ").strip() if text.lower() == 'quit': break if text: print(f"Prononciation : {text}") tts.say(text) except KeyboardInterrupt: print("\nFermeture...") if __name__ == "__main__": main() **Comment ça fonctionne ?** #. Deux moteurs TTS disponibles .. code-block:: python from robot_hat.tts import Piper, Espeak Le paquet ``robot_hat`` fournit deux moteurs TTS : - **Piper** : Un moteur basé sur un réseau neuronal qui produit une parole naturelle de haute qualité. Nécessite un fichier de modèle vocal. - **Espeak** : Un moteur léger basé sur des règles qui fonctionne avec des ressources minimales. #. Choix du moteur et du modèle .. code-block:: python USE_PIPER = True TTS_MODEL = "en_US-ryan-low" Définissez ``USE_PIPER`` sur ``True`` pour Piper ou ``False`` pour Espeak. Lors de l'utilisation de Piper, ``TTS_MODEL`` sélectionne la voix. Modèles courants : - ``"en_US-ryan-low"`` — Voix masculine anglaise américaine - ``"zh_CN-huayan-x_low"`` — Voix féminine chinoise - ``"fr_FR-siwis-medium"`` — Voix française (voir |link_piper_voice|) #. Création de l'instance TTS .. code-block:: python if USE_PIPER: tts = Piper(model=TTS_MODEL) else: tts = Espeak() Selon le drapeau ``USE_PIPER``, le moteur approprié est instancié. Les deux moteurs partagent la même interface ``say()``, donc changer de moteur ne nécessite aucune autre modification de code. #. La boucle de saisie .. code-block:: python while True: text = input("Texte à prononcer : ").strip() if text.lower() == 'quit': break if text: print(f"Prononciation : {text}") tts.say(text) Le programme vous invite à saisir du texte : - Tapez n'importe quelle phrase et appuyez sur **Entrée** pour faire parler le robot. - Tapez ``quit`` pour quitter la boucle. - Appuyez à tout moment sur **Ctrl+C** pour interrompre. #. Contraste avec STT Cette leçon est le complément de :ref:`py_stt`. Ensemble, STT (reconnaissance vocale) et TTS (synthèse vocale) forment les moitiés d'entrée et de sortie d'une interface vocale pour PiCrawler.