Nota

Ciao! Benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri entusiasti.

Perché unirti?

  • Supporto Esperto: Risolvi problemi post-vendita e supera le sfide tecniche con l’aiuto del nostro team e della comunità.

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

  • Anteprime Esclusive: Accedi in anticipo agli annunci dei nuovi prodotti e scopri in anteprima le novità.

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

  • Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni speciali durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [here] e unisciti oggi stesso!

14. TTS con Espeak e Pico2Wave

In questa lezione utilizzeremo due motori di sintesi vocale (TTS) integrati in Raspberry Pi — Espeak e Pico2Wave — per far parlare il Pidog.

Questi due motori sono semplici e funzionano completamente offline, ma hanno voci diverse:

  • Espeak: molto leggero e veloce, ma con una voce robotica. Puoi regolare velocità, tono e volume.

  • Pico2Wave: produce una voce più fluida e naturale rispetto a Espeak, ma con meno opzioni di configurazione.

Sentirai la differenza in termini di qualità vocale e funzionalità.


Prima di iniziare

Assicurati di aver completato:

Testare Espeak

Espeak è un motore TTS leggero incluso in Raspberry Pi OS. La sua voce è robotica, ma è altamente configurabile: puoi modificare volume, tono, velocità e altro.

Passaggi per provarlo:

  • Crea un nuovo file con il comando:

    cd ~/pidog/examples
    sudo nano test_tts_espeak.py
    
  • Copia il codice di esempio al suo interno. Premi Ctrl+X, poi Y e infine Enter per salvare ed uscire.

    from pidog.tts import Espeak
    
    tts = Espeak()
    
    # Impostazioni opzionali della voce
    # tts.set_amp(100)   # 0 a 200
    # tts.set_speed(150) # 80 a 260
    # tts.set_gap(5)     # 0 a 200
    # tts.set_pitch(50)  # 0 a 99
    
    # Saluto veloce (verifica funzionamento)
    tts.say("Hello! I'm Espeak TTS.")
    
  • Esegui il programma con:

    sudo python3 test_tts_espeak.py
    
  • Dovresti sentire il Pidog dire: “Hello! I’m Espeak TTS.”

  • Decommenta le righe di configurazione della voce nel codice per sperimentare come amp, speed, gap e pitch influenzano il suono.


Testare Pico2Wave

Pico2Wave produce una voce più naturale e umana rispetto a Espeak. È più semplice da usare ma meno flessibile: puoi solo cambiare la lingua, non tono o velocità.

Passaggi per provarlo:

  • Crea un nuovo file con il comando:

    cd ~/pidog/examples
    sudo nano test_tts_pico2wave.py
    
  • Copia il codice di esempio al suo interno. Premi Ctrl+X, poi Y e infine Enter per salvare ed uscire.

    from pidog.tts import Pico2Wave
    
    tts = Pico2Wave()
    
    tts.set_lang('en-US')  # en-US, en-GB, de-DE, es-ES, fr-FR, it-IT
    
    # Saluto veloce (verifica funzionamento)
    tts.say("Hello! I'm Pico2Wave TTS.")
    
  • Esegui il programma con:

    sudo python3 test_tts_pico2wave.py
    
  • Dovresti sentire il Pidog dire: “Hello! I’m Pico2Wave TTS.”

  • Prova a cambiare lingua (ad esempio es-ES per spagnolo) e ascolta la differenza.


Risoluzione dei problemi

  • Nessun suono con Espeak o Pico2Wave

    • Controlla che gli altoparlanti o le cuffie siano collegati e che il volume non sia disattivato.

    • Esegui un test rapido nel terminale:

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

    Se non senti nulla, il problema riguarda l’uscita audio e non il tuo codice Python.

  • La voce di Espeak è troppo veloce o troppo robotica

    • Prova a regolare i parametri nel codice:

      tts.set_speed(120)   # più lento
      tts.set_pitch(60)    # tono diverso
      
  • Permesso negato durante l’esecuzione del codice

    • Prova a eseguire con sudo:

      sudo python3 test_tts_espeak.py
      

Confronto: Espeak vs Pico2Wave

Funzionalità

Espeak

Pico2Wave

Qualità vocale

Robotica, sintetica

Più naturale, simile a una voce umana

Lingue

Inglese predefinito

Meno lingue, ma quelle principali

Personalizzazione

Sì (velocità, tono, ecc.)

No (solo lingua)

Prestazioni

Molto veloce e leggero

Leggermente più lento e pesante