Riepilogo Webinar: Dai una voce naturale al tuo chatbot testuale
- Pubblicato
- Ultimo aggiornamento
AscoltaAscolta questo articolo
Gli agent di chat sono diventati una componente standard dello stack software aziendale. La maggior parte delle aziende ne ha uno o ne sta creando uno. Ciò che in meno hanno capito è cosa succede quando un utente preferisce semplicemente parlare.
La voce cambia l'interazione in modi che contano ben oltre la comodità. Gli utenti esprimono frustrazione, urgenza e confusione attraverso il tono, aspetti 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: l'agente che può solo leggere la trascrizione lavora con appena metà delle informazioni.
La domanda che la maggior parte dei team si pone oggi 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 umana, Paul Asjes (Developer Experience), Bhargavi Bhatt (Customer Experience) e Fergal Burnett (Product Marketing, ElevenAPI) hanno illustrato gli aspetti tecnici dell'aggiunta della voce a un agente esistente e l'aspetto concreto di un'integrazione funzionante.
Perché creare con la voce è più difficile di quanto sembri
Una delle sfide principali è la gestione dei turni di parola. Gli esseri umani capiscono quando qualcuno ha finito di parlare grazie a intonazione, ritmo e contesto. Il rilevamento dell'attività vocale (l'approccio standard), invece, rileva solo il silenzio.
Il risultato è spesso un sistema che interpreta ogni pausa come un invito a parlare: interrompe, tronca le frasi a metà e reagisce alle esitazioni naturali come se fossero frasi complete.
Dal punto di vista tecnico funziona, ma nelle conversazioni no.
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 hanno la stessa trascrizione, ma l'interazione è diversa. Un sistema vocale che ignora questa dimensione suonerà sempre leggermente fuori tono, indipendentemente dalle capacità dei singoli modelli.
C'è anche il carico di lavoro ingegneristico. I team che gestiscono internamente l'orchestrazione vocale devono continuare a mantenere la logica dei turni di parola, la gestione delle interruzioni e la profilazione 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 è tra il client e l'API di ElevenLabs, l'altra tra il tuo server e l'API di ElevenLabs
- L'utente parla nel microfono, l'audio viene inviato all'API di ElevenLabs, dove viene trascritto e inoltrato al tuo server
- Il tuo server fornisce all'LLM l'intera cronologia della conversazione ricevuta dall'API di ElevenLabs e la risposta in streaming torna indietro per la sintesi audio
- Questo processo può iniziare prima che l'LLM abbia terminato la generazione, mantenendo bassa la latenza al primo byte
Il punto chiave dell'integrazione è il metodo onTranscript , che viene attivato alla fine di ogni turno e passa all'LLM la cronologia completa della conversazione.
Un contextualUpdate all'avvio della sessione trasferisce quanto accaduto nella parte testuale della conversazione prima che l'utente passasse alla voce. È questo che consente a un unico agente di funzionare 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 di ragionamento approfondito introducono pause che nell'audio risultano esitazioni innaturali, anche se la qualità della risposta è maggiore. Per la voce in tempo reale, i modelli più veloci vincono quasi sempre in termini di qualità percepita.
- Per l'audio, scegli WebRTC invece di WebSocket. WebRTC include la cancellazione dell'eco e del rumore, particolarmente importante su dispositivi mobili o in ambienti rumorosi. Usare 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 bloccarla è un approccio migliore, che consente anche di passare fluidamente da una lingua all'altra senza richiedere alcuna azione all'utente.
- Separa il modello di gestione dei turni di parola dall'LLM. Usare l'LLM per stabilire quando un utente ha finito di parlare aggiunge latenza e costi a ogni turno. Un modello dedicato alla gestione dei turni di parola lo fa in modo più rapido e preciso, e vale la pena trattarlo come un componente distinto dell'architettura.
Quanta infrastruttura gestire internamente
La risposta giusta dipende da ciò che esiste già. Se hai un agente di chat funzionante, aggiungervi un livello vocale, mantenendo intatti LLM, orchestrazione e logica di business, è in genere il percorso più rapido e meno rischioso.
Non devi ricostruire nulla. Stai aggiungendo un'interfaccia audio a qualcosa che già funziona.
Se i requisiti includono telefonia, gestione dei canali di deployment, test integrati e analytics, ha senso affidare una parte maggiore dello stack a una piattaforma di agenti vocali. I due approcci non si escludono a vicenda: i team possono iniziare con un livello vocale leggero e aggiungere 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 mezzo di una conversazione con un chatbot testuale per la pianificazione di viaggi, a cui chiede consigli su quartieri e cibo per un viaggio in Giappone.
Cosa abbiamo visto:
- Il chatbot è stato esteso con un livello vocale senza modificare l'agente sottostante.
- L'utente è passato dalla digitazione alla voce nel mezzo della 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 venisse richiesto.
- Durante tutta la conversazione, il rilevamento delle interruzioni ha consentito all'utente di parlare naturalmente sopra l'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, a cui era stato aggiunto un livello vocale. 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)




