Risorse · API vocale
Documentazione API vocale
Riferimento pronto per la produzione per l'esecuzione vocale in tempo reale, eventi in streaming, flusso di interruzione, intestazioni e semantica degli errori.
Endpoint
POST /api/v1/voice/chat/metaPOST /api/v1/voice/chatPOST /api/v1/voice/interrupt/{session_id}WS /api/v1/voice/wsIntestazioni richieste
- Authorization: Bearer [token] o autenticazione con API key
- Content-Type: application/json
- X-Scope-Type: personale | workspace
- X-Workspace-ID: richiesto quando lo scope è workspace
Corpo della richiesta
{
"message": "Book a follow-up call tomorrow",
"session_id": "sess_123",
"stream": true,
"voice": {
"input_format": "wav",
"output_format": "wav",
"sample_rate": 16000
},
"metadata": {
"lang": "en",
"client": "web"
}
}Corpo della risposta
{
"success": true,
"session_id": "sess_123",
"content": "Sure — I scheduled a follow-up for tomorrow.",
"provider": "openai",
"usage": {
"input_tokens": 210,
"output_tokens": 96
},
"metadata": {
"latency_ms": 842
}
}Eventi in streaming
- session.started — sessione vocale inizializzata
- stt.partial — frammento di trascrizione parziale
- llm.delta — token di testo incrementali del modello
- tts.chunk — blocco audio prodotto
- session.completed — risposta finale + utilizzo
Flusso di interruzione
L'interrupt interrompe la generazione vocale in corso per una sessione specifica e rilascia in modo sicuro il percorso di esecuzione attivo.
POST /api/v1/voice/interrupt/{session_id}
{
"reason": "user_barge_in"
}Formati audio
- Input consigliato: WAV (PCM16, mono, 16kHz).
- Gli input non WAV possono essere convertiti prima dello STT.
- Il formato di output dipende dal provider e dalle impostazioni di runtime.
- Payload di grandi dimensioni possono restituire 413.
Intestazioni dei metadati
X-Trace-IDX-Session-IDX-STT-Time-MSX-LLM-Time-MSX-TTS-Time-MS
Modelli di errore
400
Payload della richiesta non valido o campi mancanti.
401
Autenticazione mancante o non valida.
403
Ambito/permesso non consentito.
409
Sessione già in elaborazione (conflitto di blocco).
413
Payload audio troppo grande.
415
Tipo di media/contenuto non supportato.
422
Errore di validazione nel corpo o nelle intestazioni.
429
Limite di richieste superato.
503
Provider non disponibile o sistema sovraccarico.
Esempi
curl -X POST "/api/v1/voice/chat" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "X-Scope-Type: personal" \
-d '{
"message":"Summarize this call",
"session_id":"sess_123",
"stream":false
}'