Ressourcen · Sprach-API
Sprach-API-Dokumentation
Referenz in Produktionsqualität für Echtzeit-Sprachausführung, Streaming-Ereignisse, Unterbrechungsablauf, Header und Fehlersemantik.
Endpunkte
POST /api/v1/voice/chat/metaPOST /api/v1/voice/chatPOST /api/v1/voice/interrupt/{session_id}WS /api/v1/voice/wsErforderliche Header
- Authorization: Bearer [token] oder API-Schlüssel-Authentifizierung
- Content-Type: application/json
- X-Scope-Type: persönlich | Arbeitsbereich
- X-Workspace-ID: erforderlich, wenn der Bereich 'workspace' ist
Anfragekörper
{
"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"
}
}Antwortkörper
{
"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
}
}Streaming-Ereignisse
- session.started — Sprachsitzung initialisiert
- stt.partial — teilweiser Transkriptionsabschnitt
- llm.delta — inkrementelle Text-Token des Modells
- tts.chunk — erzeugter Audioabschnitt
- session.completed — finale Antwort + Nutzung
Unterbrechungsablauf
Interrupt stoppt die laufende Sprachgenerierung für eine bestimmte Sitzung und gibt den aktiven Ausführungsweg sicher frei.
POST /api/v1/voice/interrupt/{session_id}
{
"reason": "user_barge_in"
}Audioformate
- Empfohlene Eingabe: WAV (PCM16, Mono, 16 kHz).
- Nicht-WAV-Eingaben können vor dem STT konvertiert werden.
- Das Ausgabeformat hängt vom Anbieter und den Laufzeiteinstellungen ab.
- Bei großen Payloads kann ein 413-Statuscode zurückgegeben werden.
Metadaten-Header
X-Trace-IDX-Session-IDX-STT-Time-MSX-LLM-Time-MSX-TTS-Time-MS
Fehlermodelle
400
Ungültige Anforderungsdaten oder fehlende Felder.
401
Fehlende oder ungültige Authentifizierung.
403
Scope/Berechtigung nicht zulässig.
409
Sitzung bereits in Bearbeitung (Sperrkonflikt).
413
Audio-Payload zu groß.
415
Nicht unterstützter Medien-/Inhaltstyp.
422
Validierungsfehler im Body oder in den Headern.
429
Rate-Limit überschritten.
503
Anbieter nicht verfügbar oder Systemüberlastung.
Beispiele
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
}'