Nota

Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirti a noi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.

  • Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa a promozioni e concorsi durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca [qui] e unisciti oggi stesso!

3. Effetti Sonori

In questo esempio utilizziamo gli effetti sonori di PiCrawler (più precisamente del Robot HAT). È composto da tre parti: Musica, Suono e Text-to-Speech.

Installa i2samp

Prima di utilizzare queste funzioni, attiva il diffusore in modo che venga abilitato e possa emettere suoni.

Esegui i2samp.sh per installare tutto ciò che è necessario per utilizzare l’amplificatore i2s.

cd ~/picrawler/
sudo bash i2samp.sh

Durante l’esecuzione appariranno diversi prompt che richiedono conferma. Rispondi a tutti i prompt con Y. Dopo aver applicato le modifiche al sistema Raspberry Pi, sarà necessario riavviare il computer affinché queste modifiche abbiano effetto.

Dopo il riavvio, esegui di nuovo lo script i2samp.sh per testare l’amplificatore. Se il diffusore emette correttamente un suono, la configurazione è completa.

Esegui il Codice

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

Quando il programma si avvia, nel terminale viene visualizzato un menu di controllo.

Premendo un tasto viene immediatamente attivata la funzione corrispondente.

  • q: Attiva o disattiva la musica di sottofondo.

  • 1: Riproduce diversi effetti sonori uno dopo l’altro (modalità bloccante).

  • 2: Riproduce gli stessi effetti sonori utilizzando il threading (modalità non bloccante).

  • t: Il sistema pronuncia la parola «Hello» utilizzando il text-to-speech.

Il programma continua a funzionare e resta in attesa dell’input da tastiera.

Premi Ctrl+C per interrompere il programma. Prima di uscire, qualsiasi musica di sottofondo viene interrotta automaticamente.

Codice

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()

Come funziona?

Le funzioni relative alla musica di sottofondo includono:

  • music = Music(): Dichiarare l’oggetto.

  • music.music_set_volume(20): Imposta il volume, l’intervallo è 0~100.

  • music.music_play(./musics/sports-Ahjay_Stelino.mp3): Riproduce il file musicale, in questo caso sports-Ahjay_Stelino.mp3 nel percorso ./musics.

  • music.music_stop(): Interrompe la riproduzione della musica di sottofondo.

Nota

Puoi aggiungere diversi effetti sonori o musica alle cartelle musics o sounds tramite Software FileZilla.

Le funzioni relative agli effetti sonori includono:

  • music = Music()

  • music.sound_play('./sounds/talk1.wav'): Riproduce il file dell’effetto sonoro, in questo caso talk1.wav nel percorso ./sounds.

  • music.sound_play_threading('./sounds/talk1.wav'): Riproduce il file dell’effetto sonoro in modalità thread senza sospendere il thread principale.

Le funzioni relative a Text-to-Speech includono:

  • tts = TTS()

  • tts.say(words): Testo in audio.

  • tts.lang("en-US"): Imposta la lingua.

Nota

Imposta la lingua utilizzando i parametri di lang("") con i seguenti valori:

Language

zh-CN

Mandarino (Cinese)

en-US

Inglese-Statunitense

en-GB

Inglese-Britannico

de-DE

Tedesco

es-ES

Spagnolo

fr-FR

Francese

it-IT

Italiano