Note
Bienvenue sur la communauté Facebook SunFounder Raspberry Pi, Arduino & ESP32 !
Obtenez du support technique et de l’aide au dépannage.
Apprenez et partagez des projets, des astuces et des tutoriels.
Accédez en avant-première aux aperçus et mises à jour des produits.
Profitez de réductions exclusives et de cadeaux.
👉 Rejoignez-nous ici : [here]
1. 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 Pironman 5 Pro MAX.
Ces deux moteurs sont simples et fonctionnent hors ligne, mais leur son est assez différent :
Espeak : très léger et rapide, mais la voix est robotique. Vous pouvez ajuster la vitesse, la hauteur tonale et le volume.
Pico2Wave : produit une voix plus douce et plus naturelle qu’Espeak, mais offre moins d’options de configuration.
Vous remarquerez la différence en termes de qualité vocale et de fonctionnalités.
1. Tester 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 tonale, la vitesse, et plus encore.
Exécuter le programme
cd ~/sunfounder-voice-assistant/examples sudo python3 tts_espeak.py
Vous devriez entendre le Pironman 5 Pro MAX dire : « Hello! I’m Espeak TTS. »
Essayez de modifier les paramètres de réglage dans le code pour expérimenter comment
amp,speed,gapetpitchaffectent le son.
Code
from sunfounder_voice_assistant.tts import Espeak
# Créer une instance TTS Espeak
tts = Espeak()
# Définir l'amplitude 0-200, valeur par défaut 100
tts.set_amp(200)
# Définir la vitesse 80-260, valeur par défaut 150
tts.set_speed(150)
# Définir l'écart entre les mots 0-200, valeur par défaut 1
tts.set_gap(1)
# Définir la hauteur tonale 0-99, valeur par défaut 80
tts.set_pitch(80)
tts.say("Hello! I'm Espeak TTS.")
Explication du code :
tts.set_amp()— Contrôle le volume (0–200).tts.set_speed()— Ajuste la vitesse de parole (80–260).tts.set_gap()— Définit l’écart entre les mots (0–200).tts.set_pitch()— Définit la hauteur tonale (0–99).tts.say()— Convertit le texte en parole et le lit.
💡 Astuce : Essayez d’augmenter la hauteur tonale et la vitesse pour rendre la voix du robot plus joyeuse, ou de les baisser pour la rendre plus sérieuse.
2. Tester Pico2Wave
Pico2Wave produit une voix plus naturelle et humaine par rapport à Espeak. Il est très facile à utiliser, mais moins flexible — vous ne pouvez changer que la langue, pas la hauteur tonale, la vitesse ou le volume. Cela rend Pico2Wave un excellent choix lorsque vous voulez une parole claire et fluide sans trop de configuration.
Exécuter le programme
cd ~/sunfounder-voice-assistant/examples sudo python3 tts_pico2wave.py
Vous devriez entendre le Pironman 5 Pro MAX dire : « Hello! I’m Pico2Wave TTS. »
Essayez de changer la langue (par exemple,
es-ESpour l’espagnol) et écoutez comment la voix change.
Code
from sunfounder_voice_assistant.tts import Pico2Wave
# Créer une instance TTS Pico2Wave
tts = Pico2Wave()
# Définir la langue
tts.set_lang('en-US') # en-US, en-GB, de-DE, es-ES, fr-FR, it-IT
# Bonjour rapide (vérification de base)
tts.say("Hello! I'm Pico2Wave TTS.")
Explication du code :
tts.set_lang()— Définit la langue de sortie pour la synthèse vocale.en-US(par défaut)en-GBde-DEes-ESfr-FRit-IT
tts.say()— Convertit le texte en parole et le lit immédiatement.
Dépannage
Pas de son lors de l’exécution d’Espeak ou Pico2Wave
Vérifiez que vos haut-parleurs/casque sont connectés et que le volume n’est pas en sourdine.
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 sonne trop rapide ou trop robotique
Essayez d’ajuster les paramètres dans votre code :
tts.set_speed(120) # plus lent tts.set_pitch(60) # hauteur tonale différente
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 courantes |
Ajustable |
Oui (vitesse, hauteur tonale, etc.) |
Non (seulement la langue) |
Performance |
Très rapide, léger |
Légèrement plus lent, plus lourd |