Riepilogo Webinar: Dai una voce naturale al tuo chatbot testuale
- Pubblicato
- Ultimo aggiornamento
AscoltaAscolta questo articolo
Gli agent chat sono diventati un elemento standard dello stack software aziendale. La maggior parte delle aziende ne ha uno o ne sta sviluppando uno. In meno hanno capito cosa succede quando un utente preferisce semplicemente parlare.
La voce cambia l'interazione in modi che vanno oltre la comodità. Gli utenti esprimono frustrazione, urgenza e confusione attraverso il tono, elementi che il testo elimina completamente. Un cliente che scrive "il mio ordine non è arrivato" e uno che lo dice con ansia percepibile stanno inviando segnali diversi e l'agente che può leggere solo la trascrizione lavora con metà delle informazioni.
La domanda che la maggior parte dei team si pone ora non è se aggiungere la voce, ma come farlo senza ricostruire tutto ciò che già funziona.
Nel Workshop dal vivo: dai al tuo chatbot testuale una voce dal suono umano, Paul Asjes (Developer Experience), Bhargavi Bhatt (Customer Experience) e Fergal Burnett (Product Marketing, ElevenAPI) hanno illustrato le realtà tecniche dell'aggiunta della voce a un agente esistente e il funzionamento concreto di un'integrazione.
Perché sviluppare con la voce è più difficile di quanto sembri
Una delle principali sfide è la gestione dei turni di parola. Le persone sanno quando qualcuno ha finito di parlare grazie all'intonazione, al ritmo e al contesto. Il rilevamento dell'attività vocale (l'approccio standard), invece, rileva solo il silenzio.
Il risultato è spesso un sistema che tratta ogni pausa come un invito a parlare: interrompe, taglia il discorso a metà e risponde alle esitazioni naturali come se fossero frasi complete.
È funzionale dal punto di vista tecnico, ma non dal punto di vista conversazionale.
Il contesto è l'altra metà del problema. Passare la cronologia della conversazione a un LLM a ogni turno è necessario, ma non sufficiente. Le stesse parole assumono significati diversi a seconda di come vengono pronunciate: "sto bene" detto con sollievo e "sto bene" detto con frustrazione producono la stessa trascrizione, ma un'interazione diversa. Un sistema vocale che ignora questa dimensione suonerà sempre leggermente fuori luogo, indipendentemente dalla qualità dei singoli modelli.
C'è anche il sovraccarico di sviluppo. I team che gestiscono autonomamente l'orchestrazione vocale devono mantenere nel tempo la logica per i turni di parola, la gestione delle interruzioni e l'analisi della latenza. Non è un'implementazione una tantum.
Come aggiungere la voce a un agente esistente
L'approccio più lineare è un'architettura con due WebSocket.
- Una connessione viene stabilita tra il client e l'API ElevenLabs, e un'altra tra il tuo server e l'API ElevenLabs
- L'utente parla nel microfono, l'audio viene inviato all'API ElevenLabs, dove viene trascritto e inoltrato al tuo server
- Il tuo server fornisce all'LLM l'intera cronologia della conversazione ricevuta dall'API ElevenLabs e la risposta in streaming torna indietro per la sintesi audio
- Questo può iniziare prima che l'LLM abbia finito di generare, mantenendo bassa la latenza del primo byte
Il punto chiave dell'integrazione è il metodo onTranscript , che viene attivato alla fine di ogni turno e passa all'LLM l'intera cronologia della conversazione.
Un contextualUpdate all'avvio della sessione trasferisce ciò che è accaduto nella parte testuale della conversazione prima che l'utente passasse alla voce. Questo consente a un unico agente di operare in entrambe le modalità senza perdere il contesto.

Alcuni aspetti da tenere presenti durante lo sviluppo:
- La scelta dell'LLM conta più nella voce che nella chat. I modelli con ragionamento approfondito introducono pause che nell'audio risultano esitazioni innaturali, anche se la qualità della risposta è superiore. Per la voce in tempo reale, i modelli più veloci offrono quasi sempre una migliore qualità percepita.
- Per l'audio, preferisci WebRTC ai WebSocket. WebRTC include l'annullamento dell'eco e del rumore, particolarmente importante sui dispositivi mobili o in ambienti rumorosi. Usare i WebSocket per il trasporto audio significa dover gestire questi aspetti autonomamente.
- Non chiedere agli utenti di selezionare una lingua. Interrompe il flusso della conversazione. Rilevare la lingua nei primi secondi di parlato e mantenerla è un approccio migliore e consente di cambiare lingua in modo naturale, senza che l'utente debba fare nulla.
- Tieni separato il modello per la gestione dei turni di parola dall'LLM. Usare l'LLM per decidere quando un utente ha finito di parlare aggiunge latenza e costi a ogni turno. Un modello dedicato alla gestione dei turni di parola se ne occupa più velocemente e con maggiore precisione, e vale la pena trattarlo come un componente distinto dell'architettura.
Quanta infrastruttura gestire internamente
La risposta giusta dipende da ciò che già esiste. Se hai un agente chat funzionante, aggiungervi un livello vocale, mantenendo intatti LLM, orchestrazione e logica aziendale, è di solito il percorso più rapido e meno rischioso.
Non devi ricostruire nulla. Stai aggiungendo un'interfaccia audio a qualcosa che già funziona.
Se le esigenze includono telefonia, gestione dei canali di deployment, test integrati e analisi, ha senso affidare una parte maggiore dello stack a una piattaforma per agenti vocali. I due approcci non si escludono a vicenda: i team possono iniziare con un livello vocale leggero e aggiungere le funzionalità della piattaforma man mano che il caso d'uso matura.
Demo: aggiungere la voce a un chatbot esistente
Questa demo segue un utente nel pieno di una conversazione con un chatbot testuale per la pianificazione di viaggi, a cui chiede consigli su quartieri e ristoranti per un viaggio in Giappone.
Cosa abbiamo visto:
- Il chatbot è stato esteso con un livello vocale senza apportare modifiche all'agente sottostante.
- L'utente è passato dalla digitazione alla voce a metà conversazione e l'agente ha mantenuto il contesto completo in entrambe le modalità.
- L'utente ha parlato in olandese; l'agente ha rilevato automaticamente il cambio di lingua
- Quando l'agente è stato interrotto e gli è stato chiesto di tornare all'inglese a metà frase, lo ha fatto e ha concluso la risposta con un leggero accento olandese, senza che gli fosse richiesto.
- Durante tutta la conversazione, il rilevamento delle interruzioni ha consentito all'utente di sovrapporsi naturalmente all'agente senza che quest'ultimo completasse il proprio turno.
Perché è importante:
La demo non mostrava un agente vocale creato appositamente. Mostrava un agente testuale già funzionante, con un livello vocale aggiunto sopra. La gestione del contesto, il rilevamento della lingua e il comportamento in caso di interruzione provenivano tutti dal livello vocale; l'agente testuale sottostante non è stato modificato.
Guarda la sessione completa
Guarda il webinar completo qui.
.webp&w=3840&q=80)



