.. note::
Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Esplora a fondo Raspberry Pi, Arduino ed ESP32 insieme ad 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 suggerimenti e tutorial per migliorare le tue competenze.
- **Anteprime esclusive**: Accedi in anteprima agli annunci di nuovi prodotti.
- **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni festive e giveaway**: Partecipa a concorsi e promozioni speciali.
👉 Sei pronto a esplorare e creare con noi? Clicca [|link_sf_facebook|] e unisciti subito!
.. _py_stt:
15. STT (Speech-to-Text)
==============================================
Questo esempio mostra come utilizzare il modulo STT (Speech-to-Text) su
PiCrawler. Il robot ascolta la tua voce attraverso il microfono integrato
e la converte in testo in tempo reale.
**Esegui il codice**
.. raw:: html
.. code-block::
cd ~/picrawler/examples
sudo python3 15_stt.py
Dopo aver eseguito il programma, vedrai l'impostazione della lingua e un
prompt. Il robot inizia ad ascoltare — parla nel microfono e il testo
riconosciuto verrà stampato nel terminale.
Se non viene rilevata alcuna voce, viene mostrato ``(no speech detected)``.
Premi **Ctrl+C** per uscire.
**Prima di iniziare**
Assicurati di aver completato:
* :ref:`install_all_modules` — Installa i moduli ``robot-hat``, ``vilib``,
``picrawler``, quindi esegui lo script ``i2samp.sh``.
**Codice**
.. note::
Puoi **Modificare/Reimpostare/Copiare/Eseguire/Fermare** il codice qui
sotto. Ma prima, devi andare nel percorso del codice sorgente come
``picrawler\examples``. Dopo aver modificato il codice, puoi eseguirlo
direttamente per vedere l'effetto.
.. raw:: html
.. code-block:: python
#!/usr/bin/env python3
from robot_hat.stt import STT
# Demo di riconoscimento vocale con il modulo STT di sunfounder_voice_assistant
# Ctrl+C per uscire
# Configura lingua: "en-us", "zh-cn", "it-it", ecc.
LANGUAGE = "en-us"
def main():
print("=== Demo PiCrawler Speech-to-Text ===")
print(f"Lingua: {LANGUAGE}")
print("Ctrl+C per uscire")
print()
stt = STT(language=LANGUAGE)
try:
while True:
print("In ascolto... (parla ora)")
text = stt.listen()
if text:
print(f">>> {text}")
else:
print("(nessuna voce rilevata)")
except KeyboardInterrupt:
print("\nUscita...")
if __name__ == "__main__":
main()
**Come funziona?**
#. Importazione del modulo STT
.. code-block:: python
from robot_hat.stt import STT
La classe ``STT`` fa parte del pacchetto ``robot_hat``. Gestisce tutta la
cattura audio di basso livello e l'elaborazione del riconoscimento vocale.
#. Impostazione della lingua
.. code-block:: python
LANGUAGE = "en-us"
La variabile ``LANGUAGE`` configura la lingua di riconoscimento. Puoi
cambiarla con altri codici supportati come ``"zh-cn"`` (cinese) o
``"it-it"`` (italiano) in base alle tue esigenze.
#. Creazione dell'istanza STT
.. code-block:: python
stt = STT(language=LANGUAGE)
Questo crea un oggetto STT configurato per la lingua scelta. L'oggetto
inizializza il microfono e il motore di riconoscimento vocale.
#. Il ciclo di ascolto
.. code-block:: python
while True:
print("In ascolto... (parla ora)")
text = stt.listen()
if text:
print(f">>> {text}")
else:
print("(nessuna voce rilevata)")
Il programma esegue un ciclo infinito dove ogni iterazione:
- Invita l'utente a parlare.
- Chiama ``stt.listen()`` che si blocca finché la voce non viene rilevata
ed elaborata.
- Restituisce il testo riconosciuto come stringa, o ``None`` / vuoto se
non è stato compreso nulla.
- Stampa il risultato nel terminale.
#. Uscita controllata
.. code-block:: python
except KeyboardInterrupt:
print("\nUscita...")
Premere **Ctrl+C** genera un ``KeyboardInterrupt``, che viene catturato per
stampare un messaggio di uscita e terminare il programma in modo pulito.