Nota tecnica: un assistente vocale AI che richiama in pochi secondi
Anatomia tecnica di un agente vocale dimostrativo: l'architettura a quattro stadi, il budget di latenza e le sfide difficili come il barge-in.

Un assistente vocale che funziona bene sembra banale a chi lo ascolta: chiama, parla, capisce, risponde. È proprio quando sembra banale che l'ingegneria sotto ha fatto il suo lavoro. Questa è una nota tecnica su un agente vocale dimostrativo, costruito per esplorare un problema concreto: trasformare un evento applicativo in una chiamata in uscita nel giro di pochi secondi, con una conversazione che non sembri un risponditore automatico.
Il problema
La premessa tecnica è semplice da formulare e difficile da risolvere: si può ridurre a pochi secondi il tempo fra un evento applicativo e una conversazione telefonica automatica, mantenendo una qualità di interazione accettabile?
"Utile" è la parola che alza l'asticella. Un messaggio registrato si costruisce in un pomeriggio. Un agente che ascolta, capisce una risposta non prevista, gestisce un'interruzione e sa quando è il suo turno di parlare è un problema di sistemi distribuiti in tempo reale, travestito da chiacchierata.
L'architettura a quattro stadi
Il sistema è una catena di quattro stadi, ognuno con il suo costo in millisecondi.
1. Telefonia. Uno strato di telefonia programmabile gestisce la chiamata in uscita e trasporta l'audio nei due sensi. È il binario su cui corre tutto: introduce una latenza di rete che non si può eliminare, solo assorbire.
2. Riconoscimento vocale (speech-to-text). L'audio della persona viene trascritto in testo. Qui la scelta decisiva è lo streaming: la trascrizione deve arrivare in modo incrementale, parola dopo parola, mentre la persona parla ancora. Aspettare la fine della frase per iniziare a trascrivere aggiunge un ritardo che si sente.
3. Modello linguistico (LLM). Il testo trascritto, insieme allo storico della conversazione e alle istruzioni di sistema, arriva al modello che decide cosa rispondere. Anche qui la risposta va prodotta in streaming: i primi token devono partire subito, senza attendere la frase completa.
4. Sintesi vocale (text-to-speech). Il testo della risposta torna audio. La sintesi inizia appena arrivano le prime parole dal modello, non quando la frase è finita.
Il principio che tiene insieme tutto è uno: gli stadi si sovrappongono. Mentre la persona pronuncia la coda della frase, la trascrizione è già partita; mentre il modello genera la fine della risposta, la sintesi sta già parlando. Una catena rigida, in cui ogni stadio aspetta il precedente, somma le latenze e produce silenzi imbarazzanti. Una catena a pipeline le maschera. Sopra i quattro stadi c'è un orchestratore che gestisce lo stato della conversazione e decide quando avviare, interrompere e chiudere ogni passaggio.
Le sfide difficili
L'architettura, descritta così, sembra lineare. I problemi veri arrivano dopo.
Il budget di latenza
La metrica che governa tutto non è la qualità del modello: è il tempo totale che passa da quando la persona smette di parlare a quando sente la prima parola della risposta. In una conversazione umana quella pausa è di qualche centinaio di millisecondi. Oltre, l'interlocutore percepisce esitazione; molto oltre, pensa che la linea sia caduta.
Il budget complessivo va ripartito fra i quattro stadi, e ogni stadio va trattato come una voce di un bilancio. Il riconoscimento in streaming riduce la voce dello speech-to-text. La generazione in streaming, unita a istruzioni che spingono verso risposte brevi, riduce la voce dell'LLM. La sintesi incrementale riduce quella del text-to-speech. La latenza di rete della telefonia, invece, non si comprime: si può solo evitare di sprecarla. La regola che ne è emersa: ogni stadio deve iniziare a produrre output prima che il precedente abbia finito.
Il barge-in
Le persone interrompono. È un segno di conversazione sana, non un'anomalia. Se l'agente continua a parlare sopra la persona, l'effetto è quello di un risponditore sordo. Gestire il barge-in significa rilevare che la persona ha ripreso a parlare mentre l'agente è ancora in turno, fermare subito la riproduzione, scartare la risposta in corso e ripartire dall'ascolto.
La difficoltà non è rilevare la voce: è distinguere un'interruzione reale da un "sì", "certo", "ok" detto per accompagnare l'ascolto. Tagliare la propria risposta a ogni piccolo segnale rende l'agente nervoso; ignorarli lo rende invadente. La soglia fra le due cose è uno dei punti più delicati da calibrare.
La gestione del silenzio e la fine del turno
Il problema speculare: quando la persona ha finito di parlare? Un silenzio breve può essere una pausa di pensiero in mezzo a una frase. Un silenzio più lungo è la fine del turno. Se l'agente risponde troppo presto, taglia la parola; se aspetta troppo, lascia un vuoto.
Non esiste una soglia di silenzio valida sempre. Una pausa dopo "allora, ci pensavo, e..." è diversa da una pausa dopo una frase conclusa. I segnali utili sono più d'uno: la durata del silenzio, ma anche la compiutezza grammaticale di quanto trascritto e l'intonazione finale. Combinarli dà una stima del fine turno molto più affidabile del solo cronometro.
Le frasi brevi e l'audio reale
Gran parte delle conversazioni telefoniche è fatta di frammenti: "sì", "no", "non ora", "richiamatemi dopo". Sono i casi in cui il riconoscimento vocale sbaglia di più, perché ha pochissimo contesto. E l'audio telefonico è di qualità modesta: banda stretta, rumore di fondo, compressione. Un sistema collaudato in studio, con un microfono buono, incontra la realtà solo quando esce sulla linea. Va progettato per gestire la trascrizione incerta, non per pretendere che sia perfetta.
Lezioni e limiti
Alcune conclusioni si possono generalizzare a qualunque agente vocale.
La latenza è una funzionalità. Un modello brillante con una catena lenta produce un'esperienza peggiore di un modello modesto con una catena reattiva. Il tempo di risposta non è una metrica tecnica di contorno: è la qualità percepita.
Lo streaming non è opzionale. Ogni stadio che lavora "a frase intera" rompe la pipeline e somma ritardo. Streaming end-to-end o conversazione lenta: non c'è una via di mezzo.
La conversazione vive nei bordi. L'intelligenza dell'agente non si vede quando tutto fila liscio, ma su interruzioni, esitazioni, sovrapposizioni e silenzi ambigui. È lì che si decide se sembra naturale.
Il prompt non è l'ingegneria. Decidere cosa dire è una piccola parte del lavoro. Decidere quando dirlo, quando tacere e quando fermarsi è il sistema di controllo, e sta tutto nell'orchestratore.
I limiti sono altrettanto chiari. Un agente del genere è solido sul percorso per cui è stato progettato e fragile fuori. Gestisce bene una conversazione breve e mirata; va in difficoltà su richieste lunghe, ambigue o emotivamente cariche. Non sostituisce una persona: estende un primo contatto fino a quando una persona può prenderne il posto.
Una nota etica
Un sistema che telefona con una voce dal suono naturale solleva una questione che non è tecnica. La scelta progettuale adottata, e che considero non negoziabile, è la trasparenza: l'agente dichiara fin dall'inizio di essere un assistente automatico. Non imita una persona, non lascia credere di esserlo.
È anche una posizione coerente con come va trattata in generale l'AI applicata, lo stesso principio della sicurezza dell'AI in azienda. L'articolo 50 dell'AI Act va nella stessa direzione: quando un sistema di AI è progettato per interagire direttamente con persone fisiche, queste devono essere informate che stanno interagendo con un sistema di AI, salvo che sia ovvio dal contesto.
Fonti principali
- AI Act Service Desk - articolo 50, obblighi di trasparenza
- Regolamento (UE) 2024/1689 - AI Act, testo ufficiale EUR-Lex
La fiducia, in questi sistemi, si costruisce dicendo cosa sono, non nascondendolo. Un agente vocale che dichiara la propria natura e si rivela comunque utile è un risultato migliore di uno che inganna per qualche secondo in più di attenzione.
Altri insights
Mettere in sicurezza l'AI in azienda: cosa chiede davvero l'AI Act
Dal 2 febbraio 2025 l'AI literacy è un obbligo. Per i sistemi di AI ad alto rischio, l'articolo 15 dell'AI Act mette nero su bianco accuratezza, robustezza e cybersecurity. Le minacce concrete e le difese applicabili in una PMI.
LeggiFailover automatico con HAProxy e Keepalived: guida pratica
Come eliminare il single point of failure davanti a un servizio web: due bilanciatori, un IP virtuale e un failover che avviene in pochi secondi.
LeggiAutomatizzare alerting e remediation con i workflow
Una pipeline pratica che trasforma un alert grezzo in una notifica utile e, dove ha senso, in una correzione automatica. Architettura e limiti.
Leggi