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/meta
POST /api/v1/voice/chat
POST /api/v1/voice/interrupt/{session_id}
WS /api/v1/voice/ws

Erforderliche 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
  }'