Riferimento SDK Python
Questa pagina documenta l’API pubblica dell’SDK Python di Speech Engine (elevenlabs).
Ottenere una risorsa Speech Engine
Recupera una SpeechEngineResource tramite l’ID del motore. L’oggetto restituito offre metodi per avviare un server, verificare le richieste o creare singole sessioni.
SpeechEngineResource
Proprietà
serve
Avvia un server WebSocket indipendente. Rimane in esecuzione finché non viene arrestato.
Disabilitare l’autenticazione
Per impostazione predefinita, serve() verifica l’header X-Elevenlabs-Speech-Engine-Authorization per ogni connessione in entrata. Se il tuo server si trova dietro un livello di infrastruttura che limita già il traffico in entrata a ElevenLabs (in genere una allowlist di IP limitata agli intervalli di uscita di ElevenLabs), puoi ignorare la verifica JWT passando disable_auth=True:
Quando l’autenticazione è disabilitata, il server accetta qualsiasi client che riesca a raggiungerlo ed emette un UserWarning all’avvio.
Usa disable_auth=True soltanto se davanti al server hai una allowlist di IP, valori di header personalizzati o una restrizione equivalente
a livello di rete. Senza una di queste protezioni, chiunque su internet può aprire una
sessione e consumare le tue risorse di calcolo e la quota LLM a valle.
verify_request
Verifica che una richiesta in entrata provenga dall’API Speech Engine di ElevenLabs. Controlla che l’header X-Elevenlabs-Speech-Engine-Authorization contenga un JWT valido firmato con l’hash SHA-256 della tua chiave API.
È necessario soltanto se gestisci personalmente l’upgrade WebSocket. Quando usi serve(), la verifica viene gestita automaticamente (a meno che non sia impostato disable_auth=True).
Restituisce: bool — True se la richiesta è valida.
create_session
Racchiude un WebSocket accettato in una SpeechEngineSession. Usalo per un’integrazione personalizzata del server (ad esempio FastAPI, Starlette o gestione manuale del WebSocket).
Restituisce: SpeechEngineSession
SpeechEngineSession
Racchiude una singola connessione WebSocket. Ogni connessione rappresenta una conversazione. La sessione emette eventi per le trascrizioni e le modifiche del ciclo di vita e offre metodi per inviare risposte LLM.
Quando arriva una nuova trascrizione, il gestore della trascrizione precedente viene annullato automaticamente, interrompendo qualsiasi chiamata LLM in corso.
Proprietà
on
Registra un gestore per un evento. Restituisce la sessione per concatenare le chiamate.
off
Rimuove un gestore registrato in precedenza.
once
Registra un gestore che viene eseguito una volta, quindi si rimuove.
send_response
Invia una risposta LLM all’API Speech Engine per la sintesi Text to Speech. Deve essere chiamato all’interno di un gestore on_transcript. Se lo chiami al di fuori di un gestore, viene emesso un avviso e non viene inviato nulla.
L’SDK rileva ed estrae automaticamente il testo dai seguenti formati di streaming LLM:
run
Esegue il ciclo di ricezione finché il WebSocket non si chiude. Questo è il punto di ingresso principale dopo aver creato manualmente una sessione tramite create_session().
close
Chiude la sessione e la connessione WebSocket sottostante.
Callback
Gli argomenti keyword passati a serve(). Tutti i callback sono facoltativi. I gestori possono essere funzioni sincrone o asincrone (coroutine).
Eventi
Quando usi direttamente session.on() invece dei callback, questi sono i nomi degli eventi e le firme dei relativi gestori.
Sono disponibili costanti per i nomi degli eventi, per un utilizzo type-safe:
ConversationMessage
Un singolo messaggio nella cronologia della conversazione. La trascrizione completa viene passata a on_transcript a ogni turno.
Protocollo wire
Come riferimento, questi sono i messaggi JSON scambiati tramite la connessione WebSocket. L’SDK gestisce automaticamente la serializzazione e la deserializzazione.