Speech Engine
Panoramica
ElevenLabs Speech Engine aggiunge funzionalità vocali a qualsiasi agente chat. ElevenLabs gestisce speech-to-text e text-to-speech, mentre il tuo server fornisce la logica dell’LLM. L’SDK gestisce il ciclo di vita della connessione, l’alternanza dei turni e il rilevamento delle interruzioni, così puoi concentrarti sul comportamento del tuo agente.
Come funziona
Speech Engine collega il tuo server a ElevenLabs tramite WebSocket. Ogni connessione rappresenta una conversazione.
- Un utente parla nel browser. ElevenLabs acquisisce l’audio e lo trascrive.
- La trascrizione viene inviata al tuo server insieme alla cronologia completa della conversazione.
- Il tuo server passa la trascrizione al tuo LLM e trasmette la risposta in streaming.
- ElevenLabs converte il testo in voce e lo riproduce nel browser.
Quando usare Speech Engine
Speech Engine è pensato per gli sviluppatori che vogliono usare il proprio LLM e controllare la logica della conversazione sul proprio server. Usalo quando hai bisogno di:
- Aggiungere la voce a un agente chat testuale esistente
- Usare un LLM specifico, un modello sottoposto a fine-tuning o una pipeline di inferenza personalizzata
- Mantenere il pieno controllo sul routing delle conversazioni, sulla gestione del contesto e sulle chiamate agli strumenti
- Integrare la voce in un’applicazione server esistente (Express, FastAPI ecc.)
Se vuoi una soluzione completamente fornita da ElevenLabs, con LLM, knowledge base e strumenti inclusi, usa invece ElevenAgents.
Funzionalità principali
- Qualsiasi LLM - usa OpenAI, Anthropic, Google Gemini o qualsiasi modello che produca testo. L’SDK estrae automaticamente il testo dai formati di streaming di OpenAI, Anthropic e Gemini.
- Gestione delle interruzioni - quando l’utente parla durante una risposta, l’SDK annulla automaticamente la richiesta LLM in corso tramite un
AbortSignal(TypeScript) o l’annullamento dell’attività (Python). - Streaming - le risposte vengono trasmesse in streaming al browser man mano che vengono generate. Passa una stringa, un iterabile asincrono o un oggetto stream LLM nativo.
- Alternanza dei turni - l’SDK gestisce i turni della conversazione, quindi il tuo server deve rispondere solo alle trascrizioni.
Durata della conversazione
Speech Engine supporta conversazioni fino a 40 minuti (2.400 secondi). Per impostazione predefinita, una
conversazione termina dopo 600 secondi (10 minuti). Per consentire conversazioni più lunghe, aumenta
conversation.max_duration_seconds nell’API oppure Durata massima della conversazione nella scheda
Avanzate della dashboard. Consulta
Configurare la durata massima della conversazione.
Se hai bisogno di conversazioni più lunghe di 40 minuti, contatta il nostro team.
Allowlist IP
Se il tuo server è protetto da un firewall o usa controlli di accesso basati su IP, puoi inserire in allowlist gli IP di uscita statici da cui hanno origine le connessioni WebSocket di ElevenLabs. Consulta Allowlist IP per l’elenco completo degli indirizzi IP.
L’allowlist IP garantisce che il tuo server accetti connessioni WebSocket solo dai sistemi di ElevenLabs.
Domande frequenti
Quali LLM sono supportati?
Qualsiasi LLM che produca testo. L’SDK include l’estrazione integrata degli stream per OpenAI (Responses API e Chat Completions API), Anthropic Messages API e Google Gemini API. Per altri provider, passa una stringa semplice o un iterabile asincrono di blocchi di stringhe.
Qual è la differenza tra Speech Engine ed ElevenAgents?
ElevenAgents è una piattaforma completamente fornita da ElevenLabs, che include LLM, knowledge base e strumenti. Speech Engine è pensato per gli sviluppatori che vogliono usare il proprio LLM e controllare la logica della conversazione sul proprio server.
Quali framework server sono supportati?
In TypeScript, puoi collegare Speech Engine a qualsiasi server HTTP Node.js (Express, Fastify o
semplice http.createServer()), oppure eseguire un server WebSocket standalone. In Python, l’SDK fornisce
un server standalone tramite engine.serve(), oppure puoi integrarlo con FastAPI, Starlette o qualsiasi
framework ASGI usando engine.create_session().