Note

Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder sur Facebook ! Approfondissez vos connaissances sur Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous 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.

  • Apprenez et partagez : É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 aux aperçus.

  • Remises spéciales : Profitez de remises exclusives sur nos nouveaux produits.

  • Promotions festives et cadeaux : Participez à des concours et des promotions de vacances.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [here] et rejoignez-nous dès aujourd’hui !

14. TTS avec Espeak et Pico2Wave

Dans cette leçon, nous allons utiliser deux moteurs de synthèse vocale (TTS) intégrés sur Raspberry Pi — Espeak et Pico2Wave — pour faire parler le Pidog.

Ces deux moteurs sont simples et fonctionnent hors ligne, mais ils sonnent assez différemment :

  • Espeak : très léger et rapide, mais la voix est robotique. Vous pouvez ajuster la vitesse, la hauteur et le volume.

  • Pico2Wave : produit une voix plus douce et plus naturelle qu’Espeak, mais offre moins d’options de configuration.

Vous entendrez la différence en termes de qualité vocale et de fonctionnalités.


Avant de commencer

Assurez-vous d’avoir terminé :

Test d’Espeak

Espeak est un moteur TTS léger inclus dans Raspberry Pi OS. Sa voix sonne de manière robotique, mais il est hautement configurable : vous pouvez ajuster le volume, la hauteur, la vitesse, etc.

Étapes pour essayer :

  • Créez un nouveau fichier avec la commande :

    cd ~/pidog/examples
    sudo nano test_tts_espeak.py
    
  • Copiez-y ensuite le code d’exemple. Appuyez sur Ctrl+X, puis Y, et enfin Enter pour enregistrer et quitter.

    from pidog.tts import Espeak
    
    tts = Espeak()
    
    # Optional voice tuning
    # tts.set_amp(100)   # 0 to 200
    # tts.set_speed(150) # 80 to 260
    # tts.set_gap(5)     # 0 to 200
    # tts.set_pitch(50)  # 0 to 99
    
    # Quick hello (sanity check)
    tts.say("Hello! I'm Espeak TTS.")
    
  • Exécutez le programme avec :

    sudo python3 test_tts_espeak.py
    
  • Vous devriez entendre le Pidog dire : « Hello! I’m Espeak TTS. »

  • Décommentez les lignes de réglage vocal dans le code pour expérimenter comment amp, speed, gap et pitch affectent le son.


Test de Pico2Wave

Pico2Wave produit une voix plus naturelle, plus humaine qu’Espeak. Il est plus simple à utiliser mais moins flexible — vous ne pouvez changer que la langue, pas la hauteur ni la vitesse.

Étapes pour essayer :

  • Créez un nouveau fichier avec la commande :

    cd ~/pidog/examples
    sudo nano test_tts_pico2wave.py
    
  • Copiez-y ensuite le code d’exemple. Appuyez sur Ctrl+X, puis Y, et enfin Enter pour enregistrer et quitter.

    from pidog.tts import Pico2Wave
    
    tts = Pico2Wave()
    
    tts.set_lang('en-US')  # en-US, en-GB, de-DE, es-ES, fr-FR, it-IT
    
    # Quick hello (sanity check)
    tts.say("Hello! I'm Pico2Wave TTS.")
    
  • Exécutez le programme avec :

    sudo python3 test_tts_pico2wave.py
    
  • Vous devriez entendre le Pidog dire : « Hello! I’m Pico2Wave TTS. »

  • Essayez de changer la langue (par exemple, es-ES pour l’espagnol) et écoutez la différence.


Dépannage

  • Aucun son lors de l’exécution d’Espeak ou Pico2Wave

    • Vérifiez que vos haut-parleurs/casques sont connectés et que le volume n’est pas muet.

    • Effectuez un test rapide dans le terminal :

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

    Si vous n’entendez rien, le problème vient de la sortie audio, pas de votre code Python.

  • La voix d’Espeak semble trop rapide ou trop robotique

    • Essayez d’ajuster les paramètres dans votre code :

      tts.set_speed(120)   # slower
      tts.set_pitch(60)    # different pitch
      
  • Permission refusée lors de l’exécution du code

    • Essayez d’exécuter avec sudo :

      sudo python3 test_tts_espeak.py
      

Comparaison : Espeak vs Pico2Wave

Fonctionnalité

Espeak

Pico2Wave

Qualité vocale

Robotique, synthétique

Plus naturelle, humaine

Langues

Anglais par défaut

Moins, mais les courantes

Réglable

Oui (vitesse, hauteur, etc.)

Non (langue uniquement)

Performances

Très rapide, léger

Légèrement plus lent, plus lourd