Un modello speech-to-speech sente audio e risponde in audio: un unico modello ascolta, ragiona e parla. Un agente vocale a cascata divide il lavoro in tre: la trascrizione (STT) registra ciò che dice chi chiama, un modello linguistico di grandi dimensioni (LLM) decide cosa rispondere e la sintesi vocale (TTS) lo pronuncia. Sono due modi di costruire un agente vocale, e la scelta determina quanto risponde in fretta, quanto costa, quali voci può usare e quanto di ogni chiamata puoi esaminare dopo.
In breve: lo speech-to-speech è la strada più rapida verso una demo. Una cascata è più adatta quando l’agente deve fare qualcosa, come consultare un ordine, ripetere un numero di polizza o seguire uno script approvato dal team compliance. Il divario di latenza che un tempo decideva la questione si è quasi chiuso.
Se cercavi la conversione vocale (trasformare una voce in un’altra), è un altro strumento. Vedi conversione vocale.
Le tre architetture
| Architettura | Cosa gira | Esempi |
|---|---|---|
| Cascata (STT → LLM → TTS) | Tre modelli, in streaming l’uno nell’altro | Qualsiasi STT, LLM e TTS; Cartesia Managed Agents |
| Speech-to-speech nativo | Un modello, entra audio ed esce audio | gpt-realtime-2, Gemini 3.8 Live, Qwen3.8 Omni Flash Realtime |
| Livello vocale con delega | Un modello vocale per la conversazione e uno testuale per ragionamento e strumenti | OpenAI GPT-Live 1 |
La stessa guida agli agenti vocali di OpenAI elenca tutte e tre e descrive la cascata come la strada da seguire quando vuoi «ispezionare o trasformare il testo» tra una fase e l’altra. È un buon riassunto del compromesso in una riga.
Latenza: cosa mostrano i benchmark
Il numero che conta è la pausa che sente chi chiama: dal momento in cui smette di parlare al primo suono della risposta. Coval misura esattamente questo per i modelli speech-to-speech, dalle registrazioni delle chiamate e non dagli eventi del fornitore, con le stesse chiamate simulate a più turni per ogni modello. La sua classifica a 30 giorni al 16 ottobre 2026:
| Modello (classifica S2S di Coval) | Mediana | P95 | Campioni |
|---|---|---|---|
| Gemini 3.8 Live | 1.000 ms | 1.192 ms | 50 |
| GPT-Live 1 | 1.163 ms | 1.572 ms | 290 |
| Gemini 3.1 Flash Live (preview) | 1.175 ms | 1.375 ms | 290 |
| GPT Realtime 2 | 1.420 ms | 1.944 ms | 290 |
| Qwen3.8 Omni Flash Realtime | 1.450 ms | 1.526 ms | 79 |
Quindi «un modello, nessun passaggio» non significa istantaneo. Ogni turno deve comunque capire che chi chiama ha finito, ragionare e generare audio token per token, solo dentro un unico modello.
Una cascata si somma in modo diverso. La pausa è il rilevamento del turno, più il tempo al primo token dell’LLM, più il tempo al primo audio del TTS, più i passaggi di rete tra loro. Uno studio del 2026 che ha costruito una cascata da zero ha stimato una mediana di 958 ms end-to-end con un LLM in cloud e misurato 755 ms dalla trascrizione finale al primo audio. La conclusione: la cascata in streaming «resta l’architettura pratica» per agenti self-hosted con chiamate di funzione.
Dove una cascata perde tempo:
- Rilevamento del turno. Un timer di silenzio che aspetta 700 ms per essere sicuro che chi chiama abbia finito costa 700 ms a ogni turno. Il rilevamento semantico, che valuta se la frase è completa, può decidere prima. Ink-2 emette un evento
turn.eager_endquando chi chiama ha probabilmente finito, così l’LLM parte prima, e unturn.resumese non era così. - Niente streaming. Se l’LLM completa tutta la risposta prima che parta il TTS, aggiungi alla pausa l’intero tempo di generazione. Invia i token al TTS frase per frase.
- L’LLM stesso. Il tempo al primo token è di solito la fase più lunga e meno prevedibile. Lo studio citato ha osservato da 278 a 784 ms con uno stesso modello in cloud.
La fase TTS è la più facile da ridurre. Sonic restituisce il primo audio in meno di 90 ms, lasciando quasi tutto il margine al modello che ragiona.
Qualunque architettura scegli, valutala al P95, non alla mediana. Una conversazione ha decine di turni, quindi il turno lento su venti è quello che sente ogni persona che chiama. La nostra guida alla latenza P95 spiega perché.
Costo: tre contatori diversi
Le API speech-to-speech non fatturano allo stesso modo, quindi confronta su una chiamata realistica, non su un listino.
- OpenAI gpt-realtime-2 fattura token: 32 $ per milione di token audio in ingresso e 64 $ per milione di token audio in uscita, più 4 $ e 24 $ per milione per il testo (prezzi OpenAI). L’audio di chi chiama vale un token ogni 100 ms e quello del modello un token ogni 50 ms, quindi un minuto di parlato di chi chiama sono 600 token in ingresso (0,019 $) e un minuto di parlato dell’agente sono 1.200 token in uscita (0,077 $). Il problema è nella guida ai costi: «L’intera conversazione viene inviata al modello a ogni risposta.» Il turno 20 ripaga i turni da 1 a 19, alla tariffa in cache di 0,40 $ per milione dove la cache si applica.
- Gemini 3.8 Live fattura l’audio al minuto: circa 0,005 $ al minuto in ingresso e 0,018 $ al minuto in uscita, più 0,75 $ e 4,50 $ per milione di token di testo (prezzi Gemini).
- OpenAI GPT-Live 1 fattura il tempo di sessione: 0,05 $ al minuto, al secondo, compreso il tempo in cui entrambe le parti tacciono. Il modello di backend che ragiona si paga a parte.
Una cascata fattura ogni fase con il suo contatore: STT per minuto di audio, LLM per token di testo, TTS per carattere. I token di testo costano molto meno di quelli audio, e l’LLM vede solo la trascrizione, non l’audio. Cartesia Managed Agents applica un’unica tariffa, 0,06 $ al minuto, per riconoscimento vocale, esecuzione dell’agente e voci Sonic insieme.
Controllo: cosa puoi vedere e cambiare
È qui che le due architetture si separano di più, ed è qui che la maggior parte dei team in produzione decide.
In una cascata, ogni fase lascia del testo. Hai la trascrizione su cui ha ragionato l’LLM, il testo che ha deciso di dire e l’audio. Quando una chiamata va storta puoi capire quale fase ha sbagliato: chi chiama ha detto «quindici» e l’STT ha sentito «cinquanta», oppure l’LLM si è inventato una politica di rimborso, oppure il TTS ha letto male «Dr.». Puoi correggere una fase senza riaddestrare o sostituire le altre:
- aggiungere termini di settore al modello STT (Ink-2 accetta fino a 100 keyterms per sessione)
- cambiare LLM quando ne esce uno migliore, o mandare i turni difficili a uno più grande
- applicare controlli al testo dell’LLM prima che qualcuno lo senta
- correggere le pronunce nel livello TTS con un dizionario
In un modello speech-to-speech, il ragionamento avviene sull’audio. Le trascrizioni sono un output secondario da attivare, come output_audio_transcription in Gemini Live, non il testo su cui il modello ha ragionato. Modifichi il comportamento con il prompt e le impostazioni di sessione. Non puoi cambiare il modello linguistico, perché è lui il modello linguistico.
La delega è la risposta di OpenAI. GPT-Live porta avanti la conversazione mentre un backend scelto da te ragiona ed esegue gli strumenti, e «gli utenti possono continuare a parlare mentre il backend lavora». La voce arriva comunque dal modello di OpenAI, e paghi entrambi.
Voci e lingue
Un modello speech-to-speech parla con le voci che ha di serie. Una cascata può usare qualsiasi voce TTS, compresa una voce clonata adatta al tuo marchio, e qualsiasi lingua coperta dai tuoi modelli TTS e STT. Sonic copre 44 lingue con un unico modello e legge numeri di telefono, indirizzi e codici come li direbbe una persona.
I fornitori di speech-to-speech puntano sulla prosodia: un modello che sente il tono di chi chiama può rispondere a tono, più piano se è irritato e più in fretta se ha fretta. Una cascata trasmette il tono attraverso il testo. L’LLM sceglie un’emozione o una velocità per ogni risposta e il modello TTS la rende. Sonic accetta controlli di emozione e velocità a ogni richiesta, così l’intonazione è qualcosa che imposti e puoi testare, non qualcosa che il modello improvvisa.
Quale scegliere
Scegli un modello speech-to-speech quando:
- vuoi un prototipo funzionante entro oggi pomeriggio con una sola chiave API
- l’agente si limita a conversare: niente strumenti, niente archivi, nessun numero da azzeccare
- ti bastano le voci integrate del modello e non ti serve una trascrizione del suo ragionamento
Scegli una cascata quando:
- l’agente chiama strumenti, consulta archivi o incassa pagamenti
- ti serve una trascrizione di cosa ha sentito l’agente e perché ha risposto così, per compliance o debug
- nomi, numeri, codici e indirizzi devono uscire giusti
- vuoi un LLM specifico, o la libertà di cambiarlo
- ti servono una voce di marchio, una voce clonata o una lingua che i modelli speech-to-speech non coprono
La maggior parte degli agenti telefonici di assistenza clienti rientra nel secondo elenco. È il lavoro per cui è nato Managed Agents: Ink-2, l’LLM che scegli e Sonic 3.6 girano come un unico pipeline in streaming, con turni e interruzioni gestiti per te, così hai il controllo di una cascata senza mettere insieme tre fornitori. Creane uno nel playground e cronometralo rispetto ai numeri qui sopra.
Come fare un test prima di decidere
Fai passare la stessa chiamata con copione di venti turni da ogni opzione e registrala. Misura dalla fine del parlato di chi chiama al primo suono udibile di ogni risposta, come fa Coval, e riporta mediana, P95 e numero di turni. Includi turni con una chiamata a uno strumento: è lì che rallentano entrambe le architetture. Poi ascolta le registrazioni: conta i numeri capiti male, i nomi sbagliati e le risposte che si sovrappongono a chi chiama. Questi errori costano più di 200 ms.