Note

Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Explorez plus en profondeur l’univers de 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 : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et d’aperçus exclusifs.

  • Réductions spéciales : Profitez de remises exclusives sur nos produits les plus récents.

  • Promotions festives et concours : Participez à des concours et à des promotions spéciales.

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

3. Effet Sonore

Dans cet exemple, nous utilisons les effets sonores de PiCrawler (plus précisément, ceux du Robot HAT). Cela se compose de trois parties : Musique, Son, et Texte à la parole.

Installer i2samp

Avant d’utiliser ces fonctions, commencez par activer le haut-parleur pour qu’il soit activé et puisse émettre des sons.

Exécutez i2samp.sh, ce script installera tout ce qui est nécessaire pour utiliser l’amplificateur i2s.

cd ~/picrawler/
sudo bash i2samp.sh

Plusieurs invites apparaîtront vous demandant de confirmer l’action. Répondez à toutes les invites par Y. Après avoir effectué les modifications sur le système Raspberry Pi, un redémarrage sera nécessaire pour que ces changements prennent effet.

Après le redémarrage, exécutez à nouveau le script i2samp.sh pour tester l’amplificateur. Si un son est émis par le haut-parleur, la configuration est terminée.

Exécuter le Code

cd ~/picrawler/examples
sudo python3 3_sound_effect.py

Lorsque le programme démarre, un menu de contrôle s’affiche dans le terminal.

Appuyer sur une touche déclenche immédiatement la fonction correspondante.

  • q : Active ou désactive la musique de fond.

  • 1 : Joue plusieurs effets sonores l’un après l’autre (mode bloquant).

  • 2 : Joue les mêmes effets sonores en utilisant le multithreading (mode non bloquant).

  • t : Le système prononce le mot « Hello » en utilisant la synthèse vocale.

Le programme fonctionne en continu et attend une entrée clavier.

Appuyez sur Ctrl+C pour arrêter le programme. Avant de quitter, toute musique de fond est arrêtée automatiquement.

Code

from time import sleep
import readchar
from robot_hat import Music, TTS

music = Music()
tts = TTS()

manual = '''
Press a key to trigger actions (no Enter needed):
    q: Play/Stop background music
    1: Play sound effect (blocking)
    2: Play sound effect (threading)
    t: Text to speak

    Ctrl^C: quit
'''

def main():
    print(manual)

    flag_bgm = False
    music.music_set_volume(20)
    tts.lang("en-US")

    try:
        while True:
            # Real-time key input (no Enter required)
            key = readchar.readkey().lower()

            if key == "q":
                flag_bgm = not flag_bgm
                if flag_bgm:
                    music.music_play('./musics/sports-Ahjay_Stelino.mp3')
                else:
                    music.music_stop()

            elif key == "1":
                music.sound_play('./sounds/talk1.wav')
                sleep(0.05)
                music.sound_play('./sounds/talk3.wav')
                sleep(0.05)
                music.sound_play('./sounds/sign.wav')
                sleep(0.5)

            elif key == "2":
                music.sound_play_threading('./sounds/talk1.wav')
                sleep(0.05)
                music.sound_play_threading('./sounds/talk3.wav')
                sleep(0.05)
                music.sound_play_threading('./sounds/sign.wav')
                sleep(0.5)

            elif key == "t":
                tts.say("Hello")

    except KeyboardInterrupt:
        print("\nquit")

    finally:
        # Stop music before exit to reduce error messages
        try:
            music.music_stop()
        except Exception:
            pass

if __name__ == "__main__":
    main()

Comment ça fonctionne ?

Les fonctions liées à la musique de fond comprennent :

  • music = Music() : Déclare l’objet.

  • music.music_set_volume(20) : Définit le volume, avec une plage de 0 à 100.

  • music.music_play(./musics/sports-Ahjay_Stelino.mp3) : Joue le fichier musical, ici le fichier sports-Ahjay_Stelino.mp3 situé sous le chemin ./musics.

  • music.music_stop() : Arrête la musique de fond.

Note

Vous pouvez ajouter différents effets sonores ou musiques dans les dossiers musics ou sounds via Logiciel FileZilla.

Les fonctions liées aux effets sonores comprennent :

  • music = Music()

  • music.sound_play('./sounds/talk1.wav') : Joue le fichier d’effet sonore, ici le fichier talk1.wav situé sous le chemin ./musics.

  • music.sound_play_threading('./sounds/talk1.wav') : Joue le fichier d’effet sonore en mode fil d’exécution, sans suspendre le fil principal.

Les fonctions liées au texte à la parole comprennent :

  • tts = TTS()

  • tts.say(words) : Lecture audio du texte.

  • tts.lang("en-US") : Définit la langue.

Note

Vous pouvez définir la langue en ajustant les paramètres de lang("") avec les caractères suivants.

Language

zh-CN

Mandarin (Chinois)

en-US

Anglais - États-Unis

en-GB

Anglais - Royaume-Uni

de-DE

Allemand - Allemagne

es-ES

Espagnol - Espagne

fr-FR

Français - France

it-IT

Italien - Italie