🧪 Stanno arrivando nuovi tutorial — dal braccio robotico al sensore
Vai al contenuto
Acquista questo prodottoNegozio ufficialeSito ufficiale

Capitolo 9: Dialogo vocale (XiaoZhi AI) ​

Acquista nel negozio

Obiettivo del capitolo: collegarsi al servizio cloud XiaoZhi AI e conversare a voce in modo naturale con NanoCam.

Informazioni su questo capitolo ​

Questo capitolo riguarda la modalità XiaoZhi AI (ai_mode:6). Importante: la modalità 6 (dialogo vocale) e la modalità 7 (ESP-Claw) condividono lo stesso firmware (nanocam_espclaw/); all'avvio il dispositivo carica semplicemente un insieme diverso di strumenti MCP in base al valore di ai_mode memorizzato nella NVS.

AspettoXiaoZhi AI (mode 6)ESP-Claw (mode 7)
Dialogo vocale✅ ASR→LLM→TTS✅ Stessa pipeline vocale
Strumenti MCPStrumenti generici (volume / foto, ecc.)Strumenti generici + 5 strumenti dedicati all'hardware
Comprensione visivaself.camera.take_photoself.camera.inspect_image (visione multimodale)
Controllo LED❌✅ Regolazione vocale del colore
Scenari d'usoDialogo IA generico, educazione per bambiniControllo hardware, ispezione visiva, domotica

Questo capitolo si concentra sulla funzionalità principale di dialogo vocale di XiaoZhi AI (modalità 6). Per conoscere le capacità di controllo hardware di ESP-Claw, leggi il Capitolo 11: Controllo vocale ESP-Claw.

Funzionamento ​

NanoCam integra il framework open source XiaoZhi AI e, tramite i protocolli WebSocket / MQTT, si connette al server LLM per realizzare una pipeline completa di interazione vocale:

Plain
L'utente parla → acquisizione dal microfono ES8311 → codifica Opus
  → WebSocket → riconoscimento vocale ASR nel cloud
  → generazione della risposta da parte del modello LLM
  → sintesi vocale TTS → decodifica Opus
  → amplificatore NS4150B → riproduzione dallo speaker

Progettazione full-duplex: l'utente può interrompere direttamente l'AI mentre parla (barge-in), per un'esperienza simile a una conversazione con una persona reale.

Requisiti hardware ​

Questo capitolo riguarda le funzionalità audio e richiede il seguente hardware:

  • Scheda core NanoCam (con ES8311 Codec + microfono AP2718AT)
  • Scheda base NanoCam (con amplificatore NS4150B + CH340K)
  • Altoparlante (da collegare al connettore altoparlante della scheda base, VON/VOP)

È possibile eseguire i test anche con la sola scheda core (ascolto tramite l'uscita cuffie di ES8311). Il microfono è un MEMS in silicio analogico AP2718AT, collegato al pin MIC1P di ES8311 tramite il condensatore di disaccoppiamento C26.

Procedura ​

9.1 Flashare il firmware XiaoZhi AI ​

XiaoZhi AI utilizza il progetto firmware indipendente nanocam_espclaw/:

Bash
cd nanocam_espclaw
idf.py set-target esp32s3
idf.py build
idf.py -p COMx flash monitor

All'avvio la modalità predefinita è quella di XiaoZhi AI.

9.2 Connettersi al servizio cloud xiaozhi.me ​

NanoCam è configurato in fabbrica per connettersi al servizio cloud ufficiale xiaozhi.me (gratuito): non serve un server proprio.

  1. Registra un account su xiaozhi.me
  2. All'accensione il dispositivo annuncia automaticamente un codice di attivazione di 6 cifre
  3. Inserisci il codice di attivazione nella console di xiaozhi.me → associa il dispositivo
  4. Seleziona il modello LLM nella console (Qwen / DeepSeek ecc.) L'attivazione è necessaria una sola volta; dalle successive accensioni la connessione è automatica.

9.3 Prima conversazione ​

Dopo aver udito il segnale acustico puoi iniziare a conversare:

Plain
Tu: "你好小智, com'è il tempo oggi?"
NanoCam: "Fammi controllare il meteo di oggi..."

La parola di attivazione è "你好小智" (predefinita).

9.4 Scenari di conversazione comuni ​

Plain
💬 "Racconta una barzelletta" → risposta vocale dell'AI
💬 "Impostami una sveglia da 5 minuti" → funzione sveglia
💬 "Che ore sono" → annuncio dell'ora
💬 "Riproduci musica leggera" → riproduzione musicale in streaming
💬 "Cos'è un buco nero" → domande di cultura generale

Server self-hosted (opzionale) ​

Se hai esigenze di privacy o desideri utilizzare un LLM self-hosted, puoi distribuire il server open source XiaoZhi AI:

Bash
git clone https://github.com/xinnan-tech/xiaozhi-esp32-server
cd xiaozhi-esp32-server
pip install -r requirements.txt
python app.py

L'indirizzo del server utilizzato dal firmware viene fornito tramite il sistema OTA (CONFIG_OTA_URL in sdkconfig); all'accensione il dispositivo richiede automaticamente l'indirizzo del server.

XiaoZhi AI utilizza il server open source XiaoZhi AI (protocollo proprietario WebSocket + pipeline ASR/LLM/TTS). Nella modalità ESP-Claw, che si basa su di esso, la funzionalità di analisi visiva viene configurata dal server durante la fase di handshake MCP, che invia l'URL e il token della Vision API: il firmware non deve configurarli da solo.

Risoluzione dei problemi ​

SintomoCausa possibileSoluzione
Nessun suonoAltoparlante non collegatoControlla il connettore dell'altoparlante sulla scheda base
Riconoscimento vocale imprecisoRumore ambientale eccessivoParla vicino al microfono (distanza < 1m)
Impossibile connettersiWiFi non configuratoConfigura prima la rete via seriale con sta_ssid:xxx
Nessun codice di attivazionePrimo avvio non completatoAttendi 30 secondi: il dispositivo lo annuncerà automaticamente
Risposte molto lenteLatenza del server LLMSu xiaozhi.me scegli un modello più veloce, oppure usa un server autogestito

Per tutti i comandi, compresa la configurazione di rete via seriale, vedi il manuale del protocollo seriale.

Capitolo successivo: Capitolo 10: Comprensione visiva con IA