Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Voice Live
Die Voice Live API bietet Echtzeit-bidirektionale Kommunikation für sprachgestützte Anwendungen über WebSocket-Verbindungen. Diese API unterstützt fortschrittliche Funktionen wie Spracherkennung, Text-zu-Sprach-Synthese, Avatar-Streaming, Animationsdaten und umfassende Audioverarbeitungsfunktionen.
Die API verwendet JSON-formatierte Ereignisse, die über WebSocket-Verbindungen gesendet werden, um Gespräche, Audiostreams, Avatar-Interaktionen und Echtzeitantworten zu verwalten. Ereignisse werden in Client-Events (vom Client zum Server gesendet) und Server-Events (vom Server zu Client gesendet) unterteilt.
Key Features
- Echtzeit-Audioverarbeitung: Unterstützung für mehrere Audioformate, einschließlich PCM16 bei unterschiedlichen Abtastraten und G.711-Codecs
- Erweiterte Sprachoptionen: OpenAI-Stimmen, Azure benutzerdefinierte Stimmen, Azure Standardstimmen und Azure persönliche Stimmen
- Avatar-Integration: WebRTC-basiertes Avatar-Streaming mit Video, Animation und Blendshapes
- Intelligente Dreherkennung: Mehrere VAD-Optionen, darunter Azure semantisches VAD und serverseitige Erkennung
- Audio-Verbesserung: Eingebaute Rauschunterdrückung und Echounterdrückung
- Function Calling: Tool-Integration für verbesserte Konversationsmöglichkeiten
- Flexible Sitzungsverwaltung: Konfigurierbare Ausgabemodalitäten, Anweisungen und Antwortparameter
Client Events
Die Voice Live API unterstützt folgende Client-Events, die vom Client an den Server gesendet werden können:
| Event | Description |
|---|---|
| session.update | Aktualisieren Sie die Sitzungskonfiguration einschließlich Sprache, Ausgabemodalitäten, Zugerkennung und weiteren Einstellungen |
| session.avatar.connect | Stellen Sie eine Avatarverbindung her, indem Sie Client-SDP für WebRTC-Verhandlungen bereitstellen |
| input_audio_buffer.append | Audiobytes an den Eingabe-Audiopuffer anfügen |
| input_audio_buffer.commit | Commit den Eingangs-Audiopuffer zur Verarbeitung |
| input_audio_buffer.clear | Lösche den Eingangs-Audiopuffer |
| conversation.item.create | Füge einen neuen Gegenstand zum Gesprächskontext hinzu |
| conversation.item.retrieve | Holen Sie sich einen bestimmten Gegenstand aus dem Gespräch ab |
| conversation.item.truncate | Eine Assistenten-Audionachricht abschneiden |
| conversation.item.delete | Entferne einen Gegenstand aus dem Gespräch |
| response.create | Weisen Sie den Server an, eine Antwort mittels Modellinferenz zu erstellen |
| response.cancel | Eine laufende Antwort abbrechen |
session.update
Aktualisieren Sie die Konfiguration der Sitzung. Dieses Ereignis kann jederzeit gesendet werden, um Einstellungen wie Sprache, Ausgabemodalitäten, Zugerkennung, Werkzeuge und andere Sitzungsparameter zu ändern. Beachte, dass eine Sitzung, sobald sie mit einem bestimmten Modell initialisiert wurde, nicht mehr in ein anderes Modell geändert werden kann.
Event Structure
{
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": {
"type": "openai",
"name": "alloy"
},
"instructions": "You are a helpful assistant. Be concise and friendly.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "session.update" |
| session | RealtimeRequestSession | Sitzungskonfigurationsobjekt mit Feldern zum Aktualisieren |
Beispiel mit Azure Custom Voice
{
"type": "session.update",
"session": {
"voice": {
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful"
},
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"avatar": {
"character": "lisa",
"customized": false,
"video": {
"resolution": {
"width": 1920,
"height": 1080
},
"bitrate": 2000000
}
}
}
}
session.avatar.connect
Stellen Sie eine Avatarverbindung her, indem Sie das SDP-Angebot (Session Description Protocol) des Kunden für WebRTC-Medienverhandlungen bereitstellen. Dieses Ereignis ist erforderlich, wenn Avatar-Funktionen verwendet werden.
Event Structure
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "session.avatar.connect" |
| client_sdp | string | Das SDP-Angebot des Kunden für die WebRTC-Verbindungseinrichtung, codiert mit base64 |
input_audio_buffer.append
Fügen Sie Audiobytes dem Eingabe-Audiopuffer hinzu.
Event Structure
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "input_audio_buffer.append" |
| audio | string | Base64-kodierte Audiodaten |
input_audio_buffer.commit
Committen Sie den Eingangs-Audiopuffer zur Verarbeitung.
Event Structure
{
"type": "input_audio_buffer.commit"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "input_audio_buffer.commit" |
input_audio_buffer.clear
Lösche den Eingangs-Audiopuffer.
Event Structure
{
"type": "input_audio_buffer.clear"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "input_audio_buffer.clear" |
conversation.item.create
Füge einen neuen Gegenstand zum Gesprächskontext hinzu. Dies kann Nachrichten, Funktionsaufrufe und Funktionsaufrufantworten umfassen. Punkte können an bestimmten Stellen im Gesprächsverlauf eingefügt werden.
Event Structure
{
"type": "conversation.item.create",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.create" |
| previous_item_id | string | Optional. ID des Gegenstands, nach dem man diesen Einsatz einfügen soll. Falls nicht angegeben, fügt es am Ende hinzu |
| item | RealtimeConversationRequestItem | Der Punkt, den man zur Diskussion hinzufügen möchte |
Beispiel mit Audio-Inhalten
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Beispiel mit Function Call-Ausgabe
{
"type": "conversation.item.create",
"item": {
"type": "function_call_output",
"call_id": "call_123",
"output": "{\"location\": \"San Francisco\", \"temperature\": \"70\"}"
}
}
Beispiel mit MCP-Genehmigungsantwort
{
"type": "conversation.item.create",
"item": {
"type": "mcp_approval_response",
"approval_request_id": "mcp_approval_req_456",
"approve": true,
}
}
conversation.item.retrieve
Rufen Sie einen bestimmten Gegenstand aus dem Gesprächsverlauf ab. Dies ist nützlich, um verarbeitete Audioaufnahmen nach Rauschunterdrückung und VAD zu inspizieren.
Event Structure
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.retrieve" |
| item_id | string | Die ID des zu holenden Gegenstands |
conversation.item.truncate
Kürze den Audioinhalt einer Assistentennachricht. Dies ist nützlich, um die Wiedergabe an einem bestimmten Punkt zu stoppen und das Verständnis des Servers mit dem Zustand des Clients zu synchronisieren.
Event Structure
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.truncate" |
| item_id | string | Die ID des Assistenten-Nachrichtenelements zum Abschneiden |
| content_index | integer | Der Index des Inhalts ist zum Abkürzen |
| audio_end_ms | integer | Die Dauer, bis zu der das Audio gekürzt werden kann, in Millisekunden |
conversation.item.delete
Entferne einen Punkt aus dem Gesprächsverlauf.
Event Structure
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.delete" |
| item_id | string | Die ID des zu löschenden Objekts |
response.create
Weist den Server an, eine Antwort über Modellinferenz zu erstellen. Dieses Ereignis kann eine reaktionsspezifische Konfiguration spezifizieren, die die Sitzungsstandardeinstellungen überschreibt.
Event Structure
{
"type": "response.create",
"response": {
"modalities": ["text", "audio"],
"instructions": "Be extra helpful and detailed.",
"voice": {
"type": "openai",
"name": "alloy"
},
"output_audio_format": "pcm16",
"temperature": 0.7,
"max_response_output_tokens": 1000
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.create" |
| response | RealtimeResponseOptions | Optionale Antwortkonfiguration, die die Session-Standardwerte überschreibt |
Beispiel mit Tool Choice
{
"type": "response.create",
"response": {
"modalities": ["text"],
"tools": [
{
"type": "function",
"name": "get_current_time",
"description": "Get the current time",
"parameters": {
"type": "object",
"properties": {}
}
}
],
"tool_choice": "get_current_time",
"temperature": 0.3
}
}
Beispiel mit Animation
{
"type": "response.create",
"response": {
"modalities": ["audio", "animation"],
"animation": {
"model_name": "default",
"outputs": ["blendshapes", "viseme_id"]
},
"voice": {
"type": "azure-custom",
"name": "my-expressive-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"style": "excited"
}
}
}
response.cancel
Stornieren Sie eine laufende Antwort. Dadurch wird sofort die Antwortgenerierung und die zugehörige Audioausgabe gestoppt.
Event Structure
{
"type": "response.cancel"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.cancel" |
input_audio_buffer.append
Das Client-Event input_audio_buffer.append wird verwendet, um Audiobytes an den Eingabe-Audiopuffer anzuhängen. Der Audiopuffer ist ein temporärer Speicher, auf den du schreiben und später committen kannst.
Im Server VAD (Voice Activity Detection)-Modus wird der Audiopuffer verwendet, um Sprache zu erkennen, und der Server entscheidet, wann er commitet. Wenn das Server-VAD deaktiviert ist, kann der Client wählen, wie viel Audio in jedem Ereignis bis zu maximal 15 MiB eingefügt werden soll. Zum Beispiel kann das Streamen kleinerer Abschnitte vom Client das VAD ermöglichen, reaktionsschneller zu werden.
Im Gegensatz zu den meisten anderen Client-Events sendet der Server keine Bestätigungsantwort an das Client-Event input_audio_buffer.append .
Event structure
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.append. |
| audio | string | Base64-codierte Audiobytes. Dieser Wert muss im vom Feld input_audio_format in der Sitzungskonfiguration angegebenen Format sein. |
input_audio_buffer.clear
Das Client-Event input_audio_buffer.clear wird verwendet, um die Audiobytes im Puffer zu löschen.
Der Server antwortet mit einem input_audio_buffer.cleared Ereignis.
Event structure
{
"type": "input_audio_buffer.clear"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.clear. |
input_audio_buffer.commit
Das Client-Event input_audio_buffer.commit wird verwendet, um den Audiopuffer der Benutzereingabe zu committen, der ein neues Benutzernachrichtenelement in der Konversation erstellt. Audio wird transkribiert, wenn input_audio_transcription es für die Sitzung konfiguriert ist.
Im Server-VAD-Modus muss der Client dieses Ereignis nicht senden, sondern der Server comminiert automatisch den Audiopuffer. Ohne Server-VAD muss der Client den Audiopuffer committen, um ein Benutzernachrichtenelement zu erstellen. Dieses Client-Ereignis erzeugt einen Fehler, wenn der Eingangs-Audiopuffer leer ist.
Das Committing des Eingangs-Audiopuffers erzeugt keine Reaktion vom Modell.
Der Server antwortet mit einem input_audio_buffer.committed Ereignis.
Event structure
{
"type": "input_audio_buffer.commit"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.commit. |
Server Events
Die Voice Live API sendet folgende Serverereignisse, um Status, Antworten und Daten an den Client zu kommunizieren:
| Event | Description |
|---|---|
| error | Zeigt an, dass während der Verarbeitung ein Fehler aufgetreten ist |
| warning | Zeigt eine Warnung an, die den Gesprächsfluss nicht unterbricht |
| session.created | Gesendet, wenn eine neue Sitzung erfolgreich eingerichtet wurde |
| session.updated | Gesendet, wenn die Sitzungskonfiguration aktualisiert wird |
| session.avatar.connecting | Zeigt an, dass eine WebRTC-Verbindung zum Avatar hergestellt wird. |
| conversation.item.created | Gesendet, wenn ein neuer Eintrag zum Gespräch hinzugefügt wird |
| conversation.item.retrieved | Antwort auf conversation.item.retrieve-Anfrage |
| conversation.item.truncated | Bestätigt die Punktabschneidung |
| conversation.item.deleted | Bestätigt die Löschung des Elements |
| conversation.item.input_audio_transcription.completed | Die Eingabe-Audiotranskription ist abgeschlossen |
| conversation.item.input_audio_transcription.delta | Audio-Transkription mit Streaming-Eingabe |
| conversation.item.input_audio_transcription.failed | Eingabe-Audio-Transkription fehlschlug |
| input_audio_buffer.committed | Der Eingangs-Audiopuffer diente der Verarbeitung |
| input_audio_buffer.cleared | Der Eingangs-Audiopuffer wurde gelöscht |
| input_audio_buffer.speech_started | Sprache im Eingangs-Audiopuffer (VAD) erkannt |
| input_audio_buffer.speech_stopped | Sprachending im Eingangs-Audiopuffer (VAD) |
| response.created | Eine neue Reaktionsgeneration hat begonnen |
| response.done | Die Antwortgenerierung ist abgeschlossen |
| response.output_item.added | Neuer Ausgabepunkt zur Antwort hinzugefügt |
| response.output_item.done | Das Ausgabeobjekt ist vollständig |
| response.content_part.added | Neuer Inhaltsteil zum Ausgabeobjekt hinzugefügt |
| response.content_part.done | Der inhaltliche Teil ist abgeschlossen |
| response.text.delta | Streaming-Textinhalte aus dem Modell |
| response.text.done | Der Textinhalt ist vollständig |
| response.audio_transcript.delta | Audiotranskript im Streaming |
| response.audio_transcript.done | Audio-Transkript ist vollständig |
| response.audio.delta | Audio-Streaming-Inhalte aus dem Modell |
| response.audio.done | Die Audioinhalte sind vollständig |
| response.animation_blendshapes.delta | Streaming-Animations-Blendshapes-Daten |
| response.animation_blendshapes.done | Animations-Blendshapes-Daten sind vollständig |
| response.audio_timestamp.delta | Streaming-Audio-Zeitstempelinformationen |
| response.audio_timestamp.done | Audio-Zeitstempelinformationen sind vollständig |
| response.animation_viseme.delta | Streaming-Animationsvisem-Daten |
| response.animation_viseme.done | Die Animationsviseme-Daten sind vollständig |
| response.function_call_arguments.delta | Streaming-Funktionsaufrufargumente |
| response.function_call_arguments.done | Funktionsaufrufargumente sind vollständig |
| mcp_list_tools.in_progress | Die Auflistung der MCP-Werkzeuge ist in Arbeit |
| mcp_list_tools.completed | Die Auflistung der MCP-Werkzeuge ist abgeschlossen |
| mcp_list_tools.failed | Die MCP-Werkzeugliste ist gescheitert |
| response.mcp_call_arguments.delta | Streaming von MCP-Aufrufargumenten |
| response.mcp_call_arguments.done | MCP-Aufrufargumente sind vollständig |
| response.mcp_call.in_progress | Der MCP-Anruf ist im Gange |
| response.mcp_call.completed | MCP-Anruf ist abgeschlossen |
| response.mcp_call.failed | MCP-Anruf ist fehlgeschlagen |
session.created
Gesendet, wenn eine neue Sitzung erfolgreich eingerichtet wurde. Dies ist das erste Ereignis, das nach der Verbindung zur API empfangen wird.
Event Structure
{
"type": "session.created",
"session": {
"id": "sess_ABC123DEF456",
"object": "realtime.session",
"model": "gpt-realtime",
"modalities": ["text", "audio"],
"instructions": "You are a helpful assistant.",
"voice": {
"type": "openai",
"name": "alloy"
},
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "session.created" |
| session | RealtimeResponseSession | Das erstellte Session-Objekt |
session.updated
Gesendet, wenn die Sitzungskonfiguration als Reaktion auf ein session.update Client-Ereignis erfolgreich aktualisiert wurde.
Event Structure
{
"type": "session.updated",
"session": {
"id": "sess_ABC123DEF456",
"voice": {
"type": "azure-custom",
"name": "my-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012"
},
"temperature": 0.7,
"avatar": {
"character": "lisa",
"customized": false
}
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "session.updated" |
| session | RealtimeResponseSession | Das aktualisierte Sitzungsobjekt |
session.avatar.connecting
Zeigt an, dass eine Avatar-WebRTC-Verbindung hergestellt wird. Dieses Ereignis wird als Antwort auf ein session.avatar.connect Kundenereignis gesendet.
Event Structure
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "session.avatar.connecting" |
conversation.item.created
Gesendet, wenn ein neuer Punkt zur Konversation hinzugefügt wird, entweder über ein Kundenereignis conversation.item.create oder automatisch während der Antwortgenerierung.
Event Structure
{
"type": "conversation.item.created",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.created" |
| previous_item_id | string | ID des Gegenstands, nach dem dieser Gegenstand eingesetzt wurde |
| item | RealtimeConversationResponseItem | Das erstellte Gesprächselement |
Beispiel mit Audio-Item
{
"type": "conversation.item.created",
"item": {
"id": "item_GHI789",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": null,
"transcript": "What's the weather like today?"
}
]
}
}
conversation.item.retrieved
Gesendet als Antwort auf ein conversation.item.retrieve Kundenereignis und liefert das gewünschte Gesprächsobjekt.
Event Structure
{
"type": "conversation.item.retrieved",
"item": {
"id": "item_ABC123",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.retrieved" |
| item | RealtimeConversationResponseItem | Das wiederholte Gesprächsobjekt |
conversation.item.truncated
Das Server-Event conversation.item.truncated wird zurückgegeben, wenn der Client ein früheres Assistant-Audio-Message-Element mit einem Ereignis abschneidet conversation.item.truncate . Dieses Ereignis wird verwendet, um das Verständnis des Tons durch den Server mit der Wiedergabe des Clients zu synchronisieren.
Dieses Ereignis kürzt das Audio und entfernt das serverseitige Texttranskript, um sicherzustellen, dass kein Text im Kontext vorhanden ist, von dem der Nutzer nichts weiß.
Event structure
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein conversation.item.truncated. |
| item_id | string | Die ID des Assistenten-Nachrichtenelements, das abgeschnitten wurde. |
| content_index | integer | Der Index des Inhaltsteils, der gekürzt wurde. |
| audio_end_ms | integer | Die Dauer, bis zu der das Audio verkürzt wurde, in Millisekunden. |
conversation.item.deleted
Gesendet als Antwort auf ein conversation.item.delete Kundenereignis, das bestätigt, dass der angegebene Punkt aus dem Gespräch entfernt wurde.
Event Structure
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "conversation.item.deleted" |
| item_id | string | ID des gelöschten Gegenstands |
response.created
Gesendet, wenn eine neue Antwortgenerierung beginnt. Dies ist das erste Ereignis in einer Reaktionssequenz.
Event Structure
{
"type": "response.created",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "in_progress",
"status_details": null,
"output": [],
"usage": {
"total_tokens": 0,
"input_tokens": 0,
"output_tokens": 0
}
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.created" |
| response | RealtimeResponse | Das erstellte Antwortobjekt |
response.done
Gesendet, wenn die Antwortgenerierung abgeschlossen ist. Dieses Ereignis enthält die endgültige Antwort mit allen Ausgabeeinträgen und Nutzungsstatistiken.
Event Structure
{
"type": "response.done",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "completed",
"status_details": null,
"output": [
{
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
],
"usage": {
"total_tokens": 87,
"input_tokens": 52,
"output_tokens": 35,
"input_token_details": {
"cached_tokens": 0,
"text_tokens": 45,
"audio_tokens": 7
},
"output_token_details": {
"text_tokens": 15,
"audio_tokens": 20
}
}
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.done" |
| response | RealtimeResponse | Das Objekt der abgeschlossenen Antwort |
response.output_item.added
Gesendet, wenn während der Generierung ein neues Ausgabeelement zur Antwort hinzugefügt wird.
Event Structure
{
"type": "response.output_item.added",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "in_progress",
"role": "assistant",
"content": []
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.output_item.added" |
| response_id | string | ID der Antwort, zu der dieser Beitrag gehört |
| output_index | integer | Index des Elements im Ausgabearray der Antwort |
| item | RealtimeConversationResponseItem | Das hinzugefügte Ausgabeelement |
response.output_item.done
Gesendet, wenn ein Ausgabepunkt abgeschlossen ist.
Event Structure
{
"type": "response.output_item.done",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
]
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.output_item.done" |
| response_id | string | ID der Antwort, zu der dieser Beitrag gehört |
| output_index | integer | Index des Elements im Ausgabearray der Antwort |
| item | RealtimeConversationResponseItem | Das abgeschlossene Ausgabeelement |
response.content_part.added
Das Server-Ereignis response.content_part.added wird zurückgegeben, wenn während der Antwortgenerierung ein neuer Inhaltsteil zu einem Assistant-Nachrichtenelement hinzugefügt wird.
Event Structure
{
"type": "response.content_part.added",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": ""
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.content_part.added" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Artikels, zu dem dieser Inhaltsteil gehört |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index dieses Inhaltsteils im Artikel |
| part | RealtimeContentPart | Der Inhaltsteil, der hinzugefügt wurde |
response.content_part.done
Das Server-Event response.content_part.done wird zurückgegeben, wenn ein Inhaltsteil in einem Assistant-Nachrichtenelement gestreamt wird.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event Structure
{
"type": "response.content_part.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.content_part.done" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Artikels, zu dem dieser Inhaltsteil gehört |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index dieses Inhaltsteils im Artikel |
| part | RealtimeContentPart | Der Teil mit den fertigen Inhalten |
response.text.delta
Streamende Textinhalte vom Modell. Wird schrittweise gesendet, während das Modell Text erzeugt.
Event Structure
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.text.delta" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| delta | string | Inkrementeller Textinhalt |
response.text.done
Gesendet, wenn die Textinhaltserstellung abgeschlossen ist.
Event Structure
{
"type": "response.text.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.text.done" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| text | string | Der vollständige Textinhalt |
response.audio.delta
Audio-Inhalte vom Modell werden gestreamt. Audio wird als base64-kodierte Daten bereitgestellt.
Event Structure
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.audio.delta" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| delta | string | Base64-kodierter Audio-Datenblock |
response.audio.done
Gesendet, wenn die Audio-Generierung abgeschlossen ist.
Event Structure
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.audio.done" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
response.audio_transcript.delta
Streaming-Transkript der generierten Audioinhalte.
Event Structure
{
"type": "response.audio_transcript.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm doing"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.audio_transcript.delta" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| delta | string | Inkrementeller Transkripttext |
response.audio_transcript.done
Gesendet, wenn die Audiotranskripterstellung abgeschlossen ist.
Event Structure
{
"type": "response.audio_transcript.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "response.audio_transcript.done" |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| transcript | string | Der vollständige Text des Transkripts |
conversation.item.input_audio_transcription.completed
Das Server-Event conversation.item.input_audio_transcription.completed ist das Ergebnis der Audiotranskription für Sprache, die in den Audiopuffer geschrieben wurde.
Die Transkription beginnt, wenn der Eingabe-Audiopuffer vom Client oder Server (im Modus server_vad ) ausgeführt wird. Die Transkription läuft asynchron mit der Antworterstellung ab, sodass dieses Ereignis vor oder nach den Reaktionsereignissen auftreten kann.
Echtzeit-API-Modelle akzeptieren Audio nativ, sodass die Eingabetranskription ein separater Prozess ist, der auf einem separaten Spracherkennungsmodell wie whisper-1ausgeführt wird. Daher kann das Transkript etwas von der Interpretation des Modells abweichen und sollte als grobe Orientierung behandelt werden.
Event structure
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein conversation.item.input_audio_transcription.completed. |
| item_id | string | Die ID des Benutzernachrichtenelements mit dem Audio. |
| content_index | integer | Der Index des Inhaltsteils, der das Audio enthält. |
| transcript | string | Der transkribierte Text. |
conversation.item.input_audio_transcription.delta
Das Serverereignis conversation.item.input_audio_transcription.delta wird zurückgegeben, wenn die Eingabe-Audiotranskription konfiguriert wird und eine Transkriptionsanfrage für eine Benutzernachricht im Gange ist. Diese Veranstaltung liefert teilweise Transkriptionsergebnisse, sobald sie verfügbar sind.
Event structure
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein conversation.item.input_audio_transcription.delta. |
| item_id | string | Die ID des Benutzernachrichtenelements. |
| content_index | integer | Der Index des Inhaltsteils, der das Audio enthält. |
| delta | string | Der inkrementelle Transkriptionstext. |
conversation.item.input_audio_transcription.failed
Das Serverereignis conversation.item.input_audio_transcription.failed wird zurückgegeben, wenn die Eingabe-Audiotranskription konfiguriert wird und eine Transkriptionsanfrage für eine Benutzernachricht fehlschlägt. Dieses Ereignis ist von anderen error Ereignissen getrennt, sodass der Kunde das zugehörige Element identifizieren kann.
Event structure
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein conversation.item.input_audio_transcription.failed. |
| item_id | string | Die ID des Benutzernachrichtenelements. |
| content_index | integer | Der Index des Inhaltsteils, der das Audio enthält. |
| error | object | Details zum Transkriptionsfehler. Siehe verschachtelte Eigenschaften in der nächsten Tabelle. |
Error properties
| Field | Type | Description |
|---|---|---|
| type | string | Die Art von Fehler. |
| code | string | Fehlercode, falls vorhanden. |
| message | string | Eine für Menschen lesbare Fehlermeldung. |
| param | string | Parameter, der mit dem Fehler zusammenhängt, falls vorhanden. |
response.animation_blendshapes.delta
Das Server-Event response.animation_blendshapes.delta wird zurückgegeben, wenn das Modell als Teil einer Antwort Animations-Blendshapes-Daten erzeugt. Dieses Ereignis liefert inkrementelle Blendshapes-Daten, sobald sie verfügbar sind.
Event structure
{
"type": "response.animation_blendshapes.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"frame_index": 0,
"frames": [
[0.0, 0.1, 0.2, ..., 1.0]
...
]
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.animation_blendshapes.delta. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| frame_index | integer | Index des ersten Frames in diesem Frame-Batch |
| frames | Array von Array von Float | Array von Blendshape-Frames, jedes Frame ist ein Array von Blendshape-Werten |
response.animation_blendshapes.done
Das Serverereignis response.animation_blendshapes.done wird zurückgegeben, wenn das Modell die Animations-Blendshapes-Daten als Teil einer Antwort generiert hat.
Event structure
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.animation_blendshapes.done. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
response.audio_timestamp.delta
Das Serverereignis response.audio_timestamp.delta wird zurückgegeben, wenn das Modell Audio-Zeitstempeldaten als Teil einer Antwort erzeugt. Dieses Ereignis liefert inkrementelle Zeitstempeldaten für die Ausrichtung von Audio und Text, sobald sie verfügbar sind.
Event structure
{
"type": "response.audio_timestamp.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"audio_duration_ms": 500,
"text": "Hello",
"timestamp_type": "word"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio_timestamp.delta. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| audio_offset_ms | integer | Audio versetzt sich in Millisekunden ab dem Beginn des Audios |
| audio_duration_ms | integer | Dauer des Audiosegments in Millisekunden |
| text | string | Der Textabschnitt, der diesem Audio-Zeitstempel entspricht |
| timestamp_type | string | Die Art des Zeitstempels, derzeit nur "Wort", wird unterstützt |
response.audio_timestamp.done
Gesendet, wenn die Erstellung des Audio-Zeitstempels abgeschlossen ist.
Event Structure
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio_timestamp.done. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
response.animation_viseme.delta
Das Serverereignis response.animation_viseme.delta wird zurückgegeben, wenn das Modell Animationsviseme-Daten als Teil einer Antwort erzeugt. Dieses Ereignis liefert inkrementelle Visem-Daten, sobald sie verfügbar sind.
Event Structure
{
"type": "response.animation_viseme.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"viseme_id": 1
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.animation_viseme.delta. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
| audio_offset_ms | integer | Audio versetzt sich in Millisekunden ab dem Beginn des Audios |
| viseme_id | integer | Die Visem-ID entspricht der Mundform für die Animation |
response.animation_viseme.done
Das Serverereignis response.animation_viseme.done wird zurückgegeben, wenn das Modell die Generierung von Animationsviseme-Daten als Teil einer Antwort abgeschlossen hat.
Event Structure
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.animation_viseme.done. |
| response_id | string | ID der Antwort |
| item_id | string | ID des Gegenstands |
| output_index | integer | Index des Punkts in der Antwort |
| content_index | integer | Index des Inhaltsteils |
error
Das Serverereignis error wird zurückgegeben, wenn ein Fehler auftritt, was ein Client- oder Serverproblem sein kann. Die meisten Fehler sind wiederherstellbar und die Sitzung bleibt offen.
Event structure
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein error. |
| error | object | Details des Fehlers. Siehe verschachtelte Eigenschaften in der nächsten Tabelle. |
Error properties
| Field | Type | Description |
|---|---|---|
| type | string | Die Art von Fehler. Zum Beispiel sind "invalid_request_error" und "server_error" Fehlertypen. |
| code | string | Fehlercode, falls vorhanden. |
| message | string | Eine für Menschen lesbare Fehlermeldung. |
| param | string | Parameter, der mit dem Fehler zusammenhängt, falls vorhanden. |
| event_id | string | Die ID des Client-Ereignisses, das den Fehler verursacht hat, falls zutreffend. |
warning
Das Serverereignis warning wird zurückgegeben, wenn eine Warnung auftritt, die den Gesprächsfluss nicht unterbricht. Die Warnungen sind informativ und die Sitzung läuft wie gewohnt weiter.
Event structure
{
"type": "warning",
"warning": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein warning. |
| warning | object | Details der Warnung. Siehe verschachtelte Eigenschaften in der nächsten Tabelle. |
Warning properties
| Field | Type | Description |
|---|---|---|
| message | string | Eine für Menschen lesbare Warnmeldung. |
| code | string | Optional. Warncode, falls vorhanden. |
| param | string | Optional. Parameter, der mit der Warnung zusammenhängt, falls vorhanden. |
input_audio_buffer.cleared
Das Serverereignis input_audio_buffer.cleared wird zurückgegeben, wenn der Client den Eingabe-Audiopuffer mit einem Ereignis input_audio_buffer.clear löscht.
Event structure
{
"type": "input_audio_buffer.cleared"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.cleared. |
input_audio_buffer.committed
Das Server-Event input_audio_buffer.committed wird zurückgegeben, wenn ein Eingabe-Audiopuffer entweder vom Client oder automatisch im Server-VAD-Modus eingetragen wird. Die Eigenschaft item_id ist die ID des erstellten Benutzernachrichtenelements. So wird auch ein conversation.item.created Ereignis an den Kunden gesendet.
Event structure
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.committed. |
| previous_item_id | string | Die ID des vorherigen Elements, nach dem der neue Punkt eingefügt wird. |
| item_id | string | Die ID des erstellten Benutzernachrichtenelements. |
input_audio_buffer.speech_started
Das Serverereignis input_audio_buffer.speech_started wird im server_vad Modus zurückgegeben, wenn Sprache im Audiopuffer erkannt wird. Dieses Ereignis kann jedes Mal auftreten, wenn Audio dem Puffer hinzugefügt wird (es sei denn, Sprache wird bereits erkannt).
Note
Der Client möchte dieses Ereignis nutzen, um die Audiowiedergabe zu unterbrechen oder dem Nutzer visuelles Feedback zu geben.
Der Klient sollte damit rechnen, ein input_audio_buffer.speech_stopped Ereignis zu erhalten, wenn die Sprache stoppt. Die Eigenschaft item_id ist die ID des Benutzernachrichtenelements, das erstellt wird, wenn die Sprache stoppt. Dies item_id ist auch im input_audio_buffer.speech_stopped Ereignis enthalten, es sei denn, der Client committiert den Audiopuffer während der VAD-Aktivierung manuell.
Event structure
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.speech_started. |
| audio_start_ms | integer | Millisekunden ab dem Beginn aller während der Sitzung in den Puffer geschriebenen Audio, als die Sprache erstmals erkannt wurde. Diese Eigenschaft entspricht dem Beginn des an das Modell gesendeten Audios und schließt somit das in der Sitzung konfigurierte Elemente prefix_padding_ms ein. |
| item_id | string | Die ID des Benutzernachrichtenelements, das erstellt wird, wenn die Sprache stoppt. |
input_audio_buffer.speech_stopped
Das Serverereignis input_audio_buffer.speech_stopped wird im server_vad Modus zurückgegeben, wenn der Server das Ende der Sprache im Audiopuffer erkennt.
Der Server sendet außerdem ein conversation.item.created Ereignis mit dem Benutzernachrichtenelement, das aus dem Audiopuffer erstellt wird.
Event structure
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein input_audio_buffer.speech_stopped. |
| audio_end_ms | integer | Millisekunden seit Beginn der Sitzung, als die Sprache aufhörte. Diese Eigenschaft entspricht dem Ende des an das Modell gesendeten Audios und schließt somit das in der Sitzung konfigurierte Elemente min_silence_duration_ms ein. |
| item_id | string | Die ID des erstellten Benutzernachrichtenelements. |
rate_limits.updated
Das Serverereignis rate_limits.updated wird zu Beginn einer Antwort ausgesendet, um die aktualisierten Rate-Limits anzuzeigen.
Wenn eine Antwort erstellt wird, werden einige Token für die Ausgabetoken reserviert. Die hier gezeigten Tarifgrenzen spiegeln diese Reservierung wider, die dann entsprechend angepasst wird, sobald die Antwort abgeschlossen ist.
Event structure
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein rate_limits.updated. |
| rate_limits | Array von RealtimeRateLimitsItem | Die Liste der Informationen zum Tariflimit. |
response.audio.delta
Das Server-Event response.audio.delta wird zurückgegeben, wenn das modellgenerierte Audio aktualisiert wird.
Event structure
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio.delta. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
| delta | string | Base64-codierte Audiodaten-Delta. |
response.audio.done
Das Serverereignis response.audio.done wird zurückgegeben, wenn das modellgenerierte Audio abgeschlossen ist.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event structure
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio.done. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
response.audio_transcript.delta
Das Serverereignis response.audio_transcript.delta wird zurückgegeben, wenn die modellgenerierte Transkription der Audioausgabe aktualisiert wird.
Event structure
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio_transcript.delta. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
| delta | string | Das Transkript-Delta. |
response.audio_transcript.done
Das Serverereignis response.audio_transcript.done wird zurückgegeben, wenn die modellgenerierte Transkription der Audioausgabe gestreamt wurde.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event structure
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.audio_transcript.done. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
| transcript | string | Das endgültige Transkript der Audioaufnahme. |
response.function_call_arguments.delta
Das Server-Event response.function_call_arguments.delta wird zurückgegeben, wenn die modellgenerierten Funktionsaufruf-Argumente aktualisiert werden.
Event structure
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.function_call_arguments.delta. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Die ID des Funktionsaufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| call_id | string | Die ID des Funktionsaufrufs. |
| delta | string | Die Argumente deltan als JSON-String. |
response.function_call_arguments.done
Das Serverereignis response.function_call_arguments.done wird zurückgegeben, wenn die vom Modell generierten Funktionsaufruf-Argumente mit dem Streaming abgeschlossen sind.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event structure
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.function_call_arguments.done. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Die ID des Funktionsaufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| call_id | string | Die ID des Funktionsaufrufs. |
| arguments | string | Die abschließenden Argumente als JSON-String. |
mcp_list_tools.in_progress
Das Server-Event mcp_list_tools.in_progress wird zurückgegeben, wenn der Dienst beginnt, verfügbare Werkzeuge von einem MCP-Server aufzulisten.
Event structure
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein mcp_list_tools.in_progress. |
| item_id | string | Die ID des MCP-Listentools, das gerade verarbeitet wird. |
mcp_list_tools.completed
Das Server-Event mcp_list_tools.completed wird zurückgegeben, wenn der Dienst die verfügbaren Werkzeuge eines MCP-Servers auflistet.
Event structure
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein mcp_list_tools.completed. |
| item_id | string | Die ID des MCP-Listentools, das gerade verarbeitet wird. |
mcp_list_tools.failed
Das Serverereignis mcp_list_tools.failed wird zurückgegeben, wenn der Dienst nicht die verfügbaren Werkzeuge eines MCP-Servers auflistet.
Event structure
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein mcp_list_tools.failed. |
| item_id | string | Die ID des MCP-Listentools, das gerade verarbeitet wird. |
response.mcp_call_arguments.delta
Das Serverereignis response.mcp_call_arguments.delta wird zurückgegeben, wenn die vom Modell generierten MCP-Toolaufruf-Argumente aktualisiert werden.
Event structure
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.mcp_call_arguments.delta. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Die ID des MCP-Tool-Aufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| delta | string | Die Argumente deltan als JSON-String. |
response.mcp_call_arguments.done
Das Serverereignis response.mcp_call_arguments.done wird zurückgegeben, wenn die vom Modell generierten MCP-Tool-Aufrufargumente mit dem Streaming abgeschlossen sind.
Event structure
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.mcp_call_arguments.done. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Die ID des MCP-Tool-Aufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| arguments | string | Die abschließenden Argumente als JSON-String. |
response.mcp_call.in_progress
Das Serverereignis response.mcp_call.in_progress wird zurückgegeben, wenn ein MCP-Tool-Aufruf mit der Verarbeitung beginnt.
Event structure
{
"type": "response.mcp_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.mcp_call.in_progress. |
| item_id | string | Die ID des MCP-Tool-Aufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
response.mcp_call.completed
Das Server-Event response.mcp_call.completed wird zurückgegeben, wenn ein MCP-Tool-Aufruf erfolgreich abgeschlossen ist.
Event structure
{
"type": "response.mcp_call.completed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.mcp_call.completed. |
| item_id | string | Die ID des MCP-Tool-Aufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
response.mcp_call.failed
Das Server-Event response.mcp_call.failed wird zurückgegeben, wenn ein MCP-Tool-Aufruf fehlschlägt.
Event structure
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.mcp_call.failed. |
| item_id | string | Die ID des MCP-Tool-Aufruf-Elements. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
response.output_item.added
Das Server-Event response.output_item.added wird zurückgegeben, wenn während der Antwortgenerierung ein neues Element erstellt wird.
Event structure
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.output_item.added. |
| response_id | string | Die ID der Antwort, zu der der Gegenstand gehört. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| item | RealtimeConversationResponseItem | Der hinzugefügte Gegenstand. |
response.output_item.done
Das Server-Event response.output_item.done wird zurückgegeben, wenn ein Item das Streaming beendet hat.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event structure
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.output_item.done. |
| response_id | string | Die ID der Antwort, zu der der Gegenstand gehört. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| item | RealtimeConversationResponseItem | Das Item, das gestreamt wird. |
response.text.delta
Das Serverereignis response.text.delta wird zurückgegeben, wenn der modellgenerierte Text aktualisiert wird. Der Text entspricht dem text Inhaltsteil eines Assistant-Nachrichtenelements.
Event structure
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.text.delta. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
| delta | string | Der Text-Delta. |
response.text.done
Das Server-Event response.text.done wird zurückgegeben, wenn der modellgenerierte Text mit dem Streaming abgeschlossen ist. Der Text entspricht dem text Inhaltsteil eines Assistant-Nachrichtenelements.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Event structure
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Properties
| Field | Type | Description |
|---|---|---|
| type | string | Der Ereignistyp muss sein response.text.done. |
| response_id | string | Die ID der Antwort. |
| item_id | string | Der Ausweis des Gegenstands. |
| output_index | integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | integer | Der Index des Inhalts ist Teil des Inhalts-Arrays des Artikels. |
| text | string | Der endgültige Textinhalt. |
Components
Audio Formats
RealtimeAudioFormat
Basis-Audioformat, das für den Eingabeton verwendet wird.
Allowed Values:
-
pcm16- 16-Bit-PCM-Audioformat -
g711_ulaw- G.711 μ-Law Audioformat -
g711_alaw- G.711 A-Law Audioformat
RealtimeOutputAudioFormat
Das Audioformat wird für die Ausgabe von Audio mit bestimmten Abtastraten verwendet.
Allowed Values:
-
pcm16- 16-Bit-PCM-Audioformat mit Standardabtastrate (24 kHz) -
pcm16_8000hz- 16-Bit-PCM-Audioformat mit 8 kHz Abtastrate -
pcm16_16000hz- 16-Bit-PCM-Audioformat mit 16 kHz Abtastrate -
g711_ulaw- G.711 μ-Law (mu-law) Audioformat mit 8 kHz Abtastrate -
g711_alaw- G.711 A-Law Audioformat mit 8 kHz Abtastrate
RealtimeAudioInputTranscriptionSettings
Konfiguration für Eingabe-Audio-Transkription.
| Field | Type | Description |
|---|---|---|
| model | string | Das Transkriptionsmodell. Unterstützt mit gpt-realtime und gpt-realtime-mini:whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, . gpt-4o-transcribe-diarizeUnterstützt mit allen anderen Modellen und Agenten: azure-speech, mai-transcribe-1 (Vorschau) |
| language | string | Optionaler Sprachcode in BCP-47 (zum Beispiel en-US), oder ISO-639-1 (zum Beispiel en), oder in mehreren Sprachen mit automatischer Erkennung (zum Beispiel en,zh).Siehe Azure Sprach-zu-Text-unterstützte Sprachen für die empfohlene Verwendung dieser Einstellung. |
| custom_speech | object | Optionale Konfiguration für benutzerdefinierte Sprachmodelle, nur gültig für azure-speech Modelle. |
| phrase_list | string[] | Optionale Liste von Phrasenhinweisen zur Verzerrungserkennung, gilt nur für azure-speech das Modell. |
| prompt | string | Optionaler Prompttext zur Anleitung der Transkription, gilt nur für whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe und gpt-4o-transcribe-diarize Modelle. |
RealtimeInputAudioNoiseReductionSettings
Dies kann sein:
RealtimeOpenAINoiseReduction
OpenAI Rauschunterdrückungskonfiguration mit explizitem Typfeld, nur verfügbar für gpt-realtime und gpt-realtime-mini Modelle.
| Field | Type | Description |
|---|---|---|
| type | string |
near_field Oder far_field |
RealtimeAzureDeepNoiseSuppression
Konfiguration zur Rauschreduktion des Eingangs-Audios.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure_deep_noise_suppression" |
RealtimeInputAudioEchoCancellationSettings
Echo-Unterdrückungskonfiguration für serverseitige Audioverarbeitung.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "server_echo_cancellation" |
Voice Configuration
RealtimeVoice
Vereinigung aller unterstützten Sprachkonfigurationen.
Dies kann sein:
RealtimeOpenAIVoice
OpenAI-Sprachkonfiguration mit explizitem Typfeld.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "openai" |
| name | string | OpenAI-Sprachname: alloy, ash, , coralballad, echo, sage, , verseshimmermarin, ,cedar |
RealtimeAzureVoice
Base für Azure Sprachkonfigurationen. Dies ist eine diskriminierte Vereinigung mit verschiedenen Typen:
RealtimeAzureStandardVoice
Azure Standard Voice Configuration.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure-standard" |
| name | string | Sprachname (darf nicht leer sein) |
| temperature | number | Optional. Temperatur zwischen 0,0 und 1,0 |
| custom_lexicon_url | string | Optional. URL zum benutzerdefinierten Lexikon |
| custom_text_normalization_url | string | Optional. URL zur benutzerdefinierten Textnormalisierung |
| prefer_locales | string[] | Optional. Preferred locales Bevorzugte Orte verändern die Akzente der Sprachen. Wenn der Wert nicht gesetzt ist, verwendet TTS den Standardakzent jeder Sprache. zum Beispiel verwendet TTS beim Sprechen von Englisch den amerikanischen englischen Akzent. Und wenn man Spanisch spricht, verwendet er den mexikanischen spanischen Akzent. Wenn das prefer_locales auf ["en-GB", "es-ES"]gesetzt wird, ist der englische Akzent britisches Englisch und der spanische Akzent europäisch-spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| locale | string | Optional. Locale specification Ersetze den Standort für TTS-Ausgabe. Wenn es nicht gesetzt ist, wird TTS immer den angegebenen Ort zum Sprechen verwenden. Zum Beispiel, setze Locale auf en-US, TTS verwendet immer den amerikanischen englischen Akzent, um den Textinhalt zu sprechen, selbst wenn der Text in einer anderen Sprache ist. Und TTS gibt Stille aus, wenn der Textinhalt auf Chinesisch ist. |
| style | string | Optional. Voice style |
| pitch | string | Optional. Pitch adjustment |
| rate | string | Optional. Anpassung der Sprachfrequenz |
| volume | string | Optional. Volume adjustment |
RealtimeAzureCustomVoice
Azure benutzerdefinierte Sprachkonfiguration (bevorzugt für benutzerdefinierte Stimmen).
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure-custom" |
| name | string | Sprachname (darf nicht leer sein) |
| endpoint_id | string | Endpunkt-ID (darf nicht leer sein) |
| temperature | number | Optional. Temperatur zwischen 0,0 und 1,0 |
| custom_lexicon_url | string | Optional. URL zum benutzerdefinierten Lexikon |
| custom_text_normalization_url | string | Optional. URL zur benutzerdefinierten Textnormalisierung |
| prefer_locales | string[] | Optional. Preferred locales Bevorzugte Orte verändern die Akzente der Sprachen. Wenn der Wert nicht gesetzt ist, verwendet TTS den Standardakzent jeder Sprache. Zum Beispiel verwendet TTS beim Sprechen von Englisch den amerikanischen Englischakzent. Und wenn man Spanisch spricht, verwendet er den mexikanischen spanischen Akzent. Wenn das prefer_locales auf ["en-GB", "es-ES"]gesetzt wird, ist der englische Akzent britisches Englisch und der spanische Akzent europäisch-spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| locale | string | Optional. Locale specification Ersetze den Standort für TTS-Ausgabe. Wenn es nicht gesetzt ist, wird TTS immer den angegebenen Ort zum Sprechen verwenden. Zum Beispiel setzt man Locale auf en-US, verwendet TTS immer den amerikanisch-englischen Akzent, um den Textinhalt zu sprechen, selbst wenn der Text in einer anderen Sprache ist. Und TTS gibt Stille aus, wenn der Textinhalt auf Chinesisch ist. |
| style | string | Optional. Voice style |
| pitch | string | Optional. Pitch adjustment |
| rate | string | Optional. Anpassung der Sprachfrequenz |
| volume | string | Optional. Volume adjustment |
Example:
{
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful",
"locale": "en-US"
}
RealtimeAzurePersonalVoice
Azure Personal Voice Configuration.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure-personal" |
| name | string | Sprachname (darf nicht leer sein) |
| temperature | number | Optional. Temperatur zwischen 0,0 und 1,0 |
| model | string | Grundlegendes Basismodell: DragonLatestNeural, DragonHDOmniLatestNeural, MAI-Voice-1 |
| custom_lexicon_url | string | Optional. URL zum benutzerdefinierten Lexikon |
| custom_text_normalization_url | string | Optional. URL zur benutzerdefinierten Textnormalisierung |
| prefer_locales | string[] | Optional. Preferred locales Bevorzugte Orte ändern die Akzente der Sprachen. Wenn der Wert nicht gesetzt ist, verwendet TTS den Standardakzent jeder Sprache. Zum Beispiel verwendet TTS beim Sprechen von Englisch den amerikanischen englischen Akzent. Und wenn man Spanisch spricht, verwendet er den mexikanischen spanischen Akzent. Wenn das prefer_locales auf ["en-GB", "es-ES"]gesetzt wird, ist der englische Akzent britisches Englisch und der spanische Akzent europäisch-spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| locale | string | Optional. Locale specification Ersetze den Standort für TTS-Ausgabe. Wenn es nicht gesetzt ist, wird TTS immer den angegebenen Ort zum Sprechen verwenden. Zum Beispiel setzt man Locale auf en-US, verwendet TTS immer den amerikanisch-englischen Akzent, um den Textinhalt zu sprechen, selbst wenn der Text in einer anderen Sprache ist. Und TTS gibt Stille aus, wenn der Textinhalt auf Chinesisch ist. |
| pitch | string | Optional. Pitch adjustment |
| rate | string | Optional. Anpassung der Sprachfrequenz |
| volume | string | Optional. Volume adjustment |
Turn Detection
RealtimeTurnDetection
Konfiguration für Abbiegungserkennung. Dies ist eine diskriminierte Gewerkschaft, die mehrere VAD-Typen unterstützt.
RealtimeServerVAD
Basis-VAD-basierte Zugerkennung.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "server_vad" |
| threshold | float | Optional. Aktivierungsschwelle (0,0–1,0) (Standard: 0,5) |
| prefix_padding_ms | integer | Optional. Audio-Padding vor Sprachbeginn (Standard: 300) |
| silence_duration_ms | integer | Optional. Dauer der Stille bis zum Erkennen der Sprachbeendigung (Standard: 500) |
| speech_duration_ms | integer | Optional. Mindestsprachdauer (Standard: 200) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. End-of-Utterance-Erkennungskonfiguration |
| create_response | boolean | Optional. Aktivieren oder deaktivieren, ob eine Antwort erzeugt wird (Standard: wahr). |
| interrupt_response | boolean | Optional. Aktivieren oder deaktivieren Sie die Eindring-Unterbrechung (Standard: wahr). |
| auto_truncate | boolean | Optional. Auto-trunkieren bei Unterbrechung (Standard: falsch) |
RealtimeOpenAISemanticVAD
OpenAI semantische VAD-Konfiguration, die ein Modell verwendet, um zu bestimmen, wann der Benutzer mit dem Sprechen fertig ist. Es gibt nur Modelle und gpt-realtimegpt-realtime-mini Modelle.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "semantic_vad" |
| eagerness | string | Optional. Dies ist eine Möglichkeit, zu steuern, wie begierig das Modell ist, den Benutzer zu unterbrechen, und so die maximale Wartezeit abzustimmen. Im Transkriptionsmodus beeinflusst es, selbst wenn das Modell nicht antwortet, wie das Audio gehackt wird. Folgende Werte sind erlaubt: - auto (Standard) ist äquivalent zu medium,- low lässt den Nutzer sich Zeit zum Sprechen nehmen,- high Ich werde den Ton so schnell wie möglich abhacken.Wenn Sie möchten, dass das Modell im Gesprächsmodus häufiger antwortet oder Transkriptionsereignisse im Transkriptionsmodus schneller zurückgibt, können Sie die Eagerness auf highsetzen.Andererseits, wenn du den Nutzer im Gesprächsmodus ungestört sprechen lassen möchtest oder größere Transkriptabschnitte im Transkriptionsmodus möchtest, kannst du die Begeisterung auf stellen low. |
| create_response | boolean | Optional. Aktivieren oder deaktivieren, ob eine Antwort erzeugt wird (Standard: wahr). |
| interrupt_response | boolean | Optional. Aktivieren oder deaktivieren Sie die Eindring-Unterbrechung (Standard: wahr). |
RealtimeAzureSemanticVAD
Azure semantisches VAD, das bestimmt, wann der Benutzer mit einem semantischen Sprachmodell beginnt und spricht, was eine robustere Erkennung in rauschen Umgebungen ermöglicht.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure_semantic_vad" |
| threshold | float | Optional. Aktivierungsschwelle (Standard: 0,5) |
| prefix_padding_ms | integer | Optional. Audio-Padding vor der Sprache (Standard: 300) |
| silence_duration_ms | integer | Optional. Dauer der Stille zum Ende der Rede (Standard: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. EOU-Erkennungskonfiguration |
| speech_duration_ms | integer | Optional. Mindestsprachdauer (Standard: 80) |
| remove_filler_words | boolean | Optional. Füllwörter entfernen (Standard: falsch) |
| languages | string[] | Optional. Supports English. Andere Sprachen werden ignoriert (Standard: keine). |
| create_response | boolean | Optional. Aktivieren oder deaktivieren, ob eine Antwort erzeugt wird (Standard: wahr). |
| interrupt_response | boolean | Optional. Aktivieren oder deaktivieren Sie die Eindring-Unterbrechung (Standard: wahr). |
| auto_truncate | boolean | Optional. Auto-trunkieren bei Unterbrechung (Standard: falsch) |
RealtimeAzureSemanticVADMultilingual
Azure semantic VAD (default variant).
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "azure_semantic_vad_multilingual" |
| threshold | float | Optional. Aktivierungsschwelle (Standard: 0,5) |
| prefix_padding_ms | integer | Optional. Audio-Padding vor der Sprache (Standard: 300) |
| silence_duration_ms | integer | Optional. Dauer der Stille zum Ende der Rede (Standard: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. EOU-Erkennungskonfiguration |
| speech_duration_ms | integer | Optional. Mindestsprachdauer (Standard: 80) |
| remove_filler_words | boolean | Optional. Füllwörter entfernen (Standard: falsch) |
| languages | string[] | Optional. Unterstützt Englisch, Spanisch, Französisch, Italienisch, Deutsch (DE), Japanisch, Portugiesisch, Chinesisch, Koreanisch, Hindi. Andere Sprachen werden ignoriert (Standard: keine). |
| create_response | boolean | Optional. Aktivieren oder deaktivieren, ob eine Antwort erzeugt wird (Standard: wahr). |
| interrupt_response | boolean | Optional. Aktivieren oder deaktivieren Sie die Eindring-Unterbrechung (Standard: wahr). |
| auto_truncate | boolean | Optional. Auto-trunkieren bei Unterbrechung (Standard: falsch) |
RealtimeEOUDetection
Azure End-of-Utterance (EOU) konnte anzeigen, wann der Endnutzer aufhörte zu sprechen, während natürliche Pausen erlaubt wurden. Die End-of-Utterance-Erkennung kann vorzeitige End-of-Turn-Signale erheblich reduzieren, ohne benutzerwahrnehmbare Latenz hinzuzufügen.
| Field | Type | Description |
|---|---|---|
| model | string | Könnte semantic_detection_v1 Englisch unterstützen oder semantic_detection_v1_multilingual Englisch, Spanisch, Französisch, Italienisch, Deutsch (DE), Japanisch, Portugiesisch, Chinesisch, Koreanisch, Hindi unterstützen |
| threshold_level | string | Optional. Der Erkennungsschwellenwert (low, medium, high und default), die Standardeinstellung entspricht medium der Einstellung. Bei einer niedrigeren Einstellung ist die Wahrscheinlichkeit, dass der Satz vollständig ist, höher. |
| timeout_ms | number | Optional. Maximale Zeit in Millisekunden, um auf mehr Nutzersprache zu warten. Standardmäßig 1000 ms. |
Avatar Configuration
RealtimeAvatarConfig
Konfiguration für Avatar-Streaming und Verhalten.
| Field | Type | Description |
|---|---|---|
| ice_servers | RealtimeIceServer[] | Optional. ICE-Server für WebRTC |
| character | string | Charaktername oder ID des Avatars |
| style | string | Optional. Avatar-Stil (emotionaler Ton, Sprechstil) |
| customized | boolean | Ob der Avatar individuell angepasst ist |
| video | RealtimeVideoParams | Optional. Video configuration |
| scene | RealtimeAvatarScene | Optional. Konfiguration für den Zoomlevel, die Position, die Rotation und die Bewegungsamplitude des Avatars im Videobild |
| output_protocol | string | Optional. Ausgabeprotokoll für Avatar-Streaming. Standardmäßig ist webrtc |
| output_audit_audio | boolean | Optional. Wenn aktiviert, leitet er Audit-Audio über WebSocket zur Überprüfung und Debugging weiter, selbst wenn die Avatarausgabe über WebRTC geliefert wird. Standardmäßig ist false |
RealtimeIceServer
ICE-Serverkonfiguration für WebRTC-Verbindungsverhandlung.
| Field | Type | Description |
|---|---|---|
| urls | string[] | ICE-Server-URLs (TURN oder STUN-Endpunkte) |
| username | string | Optional. Benutzername für die Authentifizierung |
| credential | string | Optional. Zugangsnachweis zur Authentifizierung |
RealtimeVideoParams
Video-Streaming-Parameter für den Avatar.
| Field | Type | Description |
|---|---|---|
| bitrate | integer | Optional. Bitrate in Bits pro Sekunde (Standard: 2000000) |
| codec | string | Optional. Videocodec, derzeit nur h264 (Standard: h264) |
| crop | RealtimeVideoCrop | Optional. Cropping settings |
| resolution | RealtimeVideoResolution | Optional. Resolution settings |
RealtimeVideoCrop
Definition von Rechtecken im Videozuschnitt.
| Field | Type | Description |
|---|---|---|
| top_left | integer[] | Obere linke Ecke [x, y], nichtnegative ganze Zahlen |
| bottom_right | integer[] | Unten rechts [x, y], nichtnegative ganze Zahlen |
RealtimeVideoResolution
Videoauflösungsspezifikation.
| Field | Type | Description |
|---|---|---|
| width | integer | Breite in Pixeln (muss 0 sein > ) |
| height | integer | Höhe in Pixeln (muss 0 sein > ) |
RealtimeAvatarScene
Konfiguration für den Zoomlevel, die Position, die Rotation und die Bewegungsamplitude des Avatars im Videobild.
| Field | Type | Description |
|---|---|---|
| zoom | number | Optional. Zoomhöhe des Avatars. Reichweite ist (0, +∞). Werte weniger als 1 Zoom heraus, Werte größer als 1 Zoom hinein. Standard ist 0 |
| position_x | number | Optional. Horizontale Position des Avatars. Die Reichweite ist [-1, 1], als Verhältnis zur Bildbreite. Negative Werte verschieben sich nach links, positive Werte bewegen sich nach rechts. Standard ist 0 |
| position_y | number | Optional. Vertikale Position des Avatars. Die Reichweite ist [-1, 1], als Verhältnis zur Bildhöhe. Negative Werte steigen, positive Werte fallen ab. Standard ist 0 |
| rotation_x | number | Optional. Drehung um die X-Achse (Pitch). Die Reichweite ist [-π, π] in Radianten. Negative Werte drehen sich nach oben, positive Werte rotieren nach unten. Standard ist 0 |
| rotation_y | number | Optional. Rotation um die Y-Achse (Gier). Die Reichweite ist [-π, π] in Radianten. Negative Werte drehen sich nach links, positive Werte drehen nach rechts. Standard ist 0 |
| rotation_z | number | Optional. Rotation um die Z-Achse (Roll). Die Reichweite ist [-π, π] in Radianten. Negative Werte drehen sich gegen den Uhrzeigersinn, positive Werte drehen sich im Uhrzeigersinn. Standard ist 0 |
| amplitude | number | Optional. Amplitude der Avatar-Bewegung. Reichweite ist (0, 1]. Werte in (0, 1) bedeuten reduzierte Amplitude, 1 bedeutet volle Amplitude. Standard ist 0 |
Animation Configuration
RealtimeAnimation
Konfiguration für Animationsausgaben, einschließlich Blendshapes und Vizeme.
| Field | Type | Description |
|---|---|---|
| model_name | string | Optional. Name des Animationsmodells (Standard: "default") |
| outputs | RealtimeAnimationOutputType[] | Optional. Ausgabetypen (Standard: ["blendshapes"]) |
RealtimeAnimationOutputType
Arten von Animationsdaten, die ausgegeben werden sollen.
Allowed Values:
-
blendshapes- Daten zu Gesichtsmischungen -
viseme_id- Viseme-Identifikatordaten
Session Configuration
RealtimeRequestSession
Sitzungskonfigurationsobjekt, das in Events verwendet session.update wird.
| Field | Type | Description |
|---|---|---|
| model | string | Optional. Modellname zur Verwendung |
| modalities | RealtimeModality[] | Optional. Die unterstützten Ausgabemodalitäten für die Sitzung. Zum Beispiel ist "Modalitäten": ["Text", "Audio"] die Standardeinstellung, die sowohl Text- als auch Audioausgabemodalitäten aktiviert. Um nur die Textausgabe zu ermöglichen, setzen Sie "Modalitäten": ["text"]. Um die Avatarausgabe zu aktivieren, setze "Modalitäten": ["text", "audio", "avatar"]. Du kannst nicht nur Audio aktivieren. |
| animation | RealtimeAnimation | Optional. Animation configuration |
| voice | RealtimeVoice | Optional. Voice configuration |
| instructions | string | Optional. Systemanweisungen für das Modell. Die Anweisungen könnten den Ausgangston steuern, wenn OpenAI-Stimmen verwendet werden, gelten aber möglicherweise nicht für Azure-Stimmen. |
| input_audio_sampling_rate | integer | Optional. Eingangs-Audio-Abtastrate in Hz (Standard: 24000 für pcm16, 8000 für g711_ulaw und g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Optional. Eingangs-Audioformat (Standard: pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Ausgabe-Audioformat (Standard: pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Konfiguration zur Rauschreduktion des Eingangs-Audios. Dies kann auf null gesetzt werden, um auszuschalten. Rauschunterdrückung filtert Audio, der dem Eingangs-Audiopuffer hinzugefügt wird, bevor er an VAD und das Modell gesendet wird. Das Filtern des Audios kann die Genauigkeit von VAD und Kurvenerkennung verbessern (Fehlalarme reduzieren) und die Leistung modellieren, indem die Wahrnehmung des Eingabetons verbessert wird. Diese Eigenschaft ist null. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Konfiguration zur Eingangs-Audio-Echo-Unterdrückung. Dies kann auf null gesetzt werden, um auszuschalten. Diese dienstseitige Echounterdrückung kann helfen, die Qualität des Eingangstons zu verbessern, indem sie den Einfluss von Echo und Nachhall reduziert. Diese Eigenschaft ist null. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Die Konfiguration für die Eingabe-Audiotranskription. Die Konfiguration ist standardmäßig null (aus). Eingabe-Audiotranskription ist nicht native im Modell, da das Modell Audio direkt konsumiert. Die Transkription läuft asynchron durch den /audio/transcriptions Endpunkt und sollte als Orientierung des eingegebenen Audioinhalts behandelt werden, statt als genau das, was das Modell gehört hat. Für zusätzliche Anleitung für den Transkriptionsservice kann der Klient optional die Sprache und den Prompt für die Transkription einstellen.Diese Eigenschaft ist null. |
| turn_detection | RealtimeTurnDetection | Die Einstellungen für die Abzugserkennung für die Sitzung. Dies kann auf null gesetzt werden, um auszuschalten. |
| tools | Array von RealtimeTool | Die Werkzeuge, die dem Modell für die Sitzung zur Verfügung stehen. |
| tool_choice | RealtimeToolChoice | Die Werkzeugwahl für die Sitzung. Erlaubte Werte: auto, none, und required. Andernfalls können Sie den Namen der zu verwendenden Funktion angeben. |
| temperature | number | Die Stichprobentemperatur für das Modell. Die erlaubten Temperaturwerte sind auf [0,6, 1,2] begrenzt. Standardmäßig auf 0,8 eingestellt. |
| max_response_output_tokens | Ganzzahl oder "Inf" | Die maximale Anzahl der Ausgabetoken pro Assistentenantwort, einschließlich Werkzeugaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken zu begrenzen. Andernfalls wird der Wert auf "inf" gesetzt, um die maximale Anzahl an Token zu ermöglichen. Zum Beispiel, um die Ausgabetoken auf 1000 zu begrenzen, setzen "max_response_output_tokens": 1000wir . Um die maximale Anzahl an Token zu ermöglichen, setze "max_response_output_tokens": "inf".Standardmäßig gilt "inf". |
| reasoning_effort | ReasoningEffort | Optional. Begrenzt den Aufwand beim Schließen bei Denkmustern. Schau dir Azure Foundry doc für weitere Details an. Eine Reduzierung des Schlussarbeitsaufwands kann zu schnelleren Antworten und weniger Token beim Schließen in einer Antwort führen. |
| avatar | RealtimeAvatarConfig | Optional. Avatar configuration |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Optional. Zeitstempeltypen für Ausgangsaudio |
RealtimeModality
Unterstützte Sitzungsausgabemodalitäten.
Allowed Values:
-
text- Textausgabe -
audio- Audioausgabe -
animation- Animationsausgabe -
avatar- Avatar-Videoausgabe
RealtimeAudioTimestampType
Ausgabe-Zeitstempeltypen, die in Audio-Antwort-Inhalten unterstützt werden.
Allowed Values:
-
word- Zeitstempel pro Wort im Ausgangsaudio
ReasoningEffort
Begrenzt den Aufwand beim Schließen bei Denkmustern. Überprüfen Sie die Modelldokumentation auf unterstützte Werte für jedes Modell. Eine Reduzierung des Schlussarbeitsaufwands kann zu schnelleren Antworten und weniger Token beim Schließen in einer Antwort führen.
Allowed Values:
-
none- Kein Überlegungsaufwand -
minimal- Minimaler Schlussaufwand -
low- Geringer Schlussarbeit – schnellere Antworten mit weniger Argumentation -
medium- Mittlerer Schlussaufwand – ausgewogen zwischen Geschwindigkeit und Denktiefe -
high- Hoher Schlussfolgerungsaufwand – gründlicheres Schließen, kann länger dauern -
xhigh- Extra hoher Schlussarbeit – maximale Denktiefe
Tool Configuration
Wir unterstützen zwei Arten von Tools: Function Calling und MCP-Tools, mit denen Sie sich mit einem MCP-Server verbinden können.
RealtimeTool
Werkzeugdefinition für das Aufrufen von Funktionen.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "function" |
| name | string | Function name |
| description | string | Funktionsbeschreibung und Nutzungsrichtlinien |
| parameters | object | Funktionsparameter als JSON-Schema-Objekt |
RealtimeToolChoice
Werkzeugauswahlstrategie.
Dies kann sein:
-
"auto"- Lass das Modell wählen -
"none"- Benutze keine Werkzeuge -
"required"- Muss ein Werkzeug benutzen -
{ "type": "function", "name": "function_name" }- Verwendung spezifischer Funktion
MCPTool
MCP-Werkzeugkonfiguration.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "mcp" |
| server_label | string | Required. Das Label des MCP-Servers. |
| server_url | string | Required. Die Server-URL des MCP-Servers. |
| allowed_tools | string[] | Optional. Die Liste der erlaubten Werkzeugnamen. Wenn nicht angegeben, sind alle Werkzeuge erlaubt. |
| headers | object | Optional. Zusätzliche Header für MCP-Anfragen. |
| authorization | string | Optional. Autorisierungstoken für MCP-Anfragen. |
| require_approval | String oder Wörterbuch | Optional. Wenn auf eine Zeichenkette gesetzt, muss der Wert oder alwaysseinnever. Wenn es auf ein Wörterbuch gesetzt ist, muss es im Format {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}sein. Der Standardwert ist always. Wenn auf alwaysgesetzt ist, benötigt die Werkzeugausführung eine Genehmigung, mcp_approval_request wird an den Client gesendet, wenn das MCP-Argument abgeschlossen ist, und wird erst ausgeführt, wenn mcp_approval_response mit approve=true empfangen wird. Wenn auf nevergesetzt ist, wird das Werkzeug automatisch ohne Genehmigung ausgeführt. |
RealtimeConversationResponseItem
Dies ist ein Union-Typ, der einer der folgenden sein kann:
RealtimeConversationUserMessageItem
Benutzernachrichtenelement.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "message" |
| object | string | Muss sein "conversation.item" |
| role | string | Muss sein "user" |
| content | RealtimeInputTextContentPart | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeConversationAssistantMessageItem
Assistentennachricht.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "message" |
| object | string | Muss sein "conversation.item" |
| role | string | Muss sein "assistant" |
| content | RealtimeOutputTextContentPart[] oder RealtimeOutputAudioContentPart[] | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeConversationSystemMessageItem
Systemnachrichtenelement.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "message" |
| object | string | Muss sein "conversation.item" |
| role | string | Muss sein "system" |
| content | RealtimeInputTextContentPart[] | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeConversationFunctionCallItem
Funktionsaufruf-Anfrage-Item.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "function_call" |
| object | string | Muss sein "conversation.item" |
| name | string | Der Name der Funktion, die aufgerufen werden soll. |
| arguments | string | Die Argumente für die Funktion rufen als JSON-String auf. |
| call_id | string | Die eindeutige ID des Funktionsaufrufs. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeConversationFunctionCallOutputItem
Funktionsaufruf-Antwort-Item.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "function_call_output" |
| object | string | Muss sein "conversation.item" |
| name | string | Der Name der Veranstaltung, die genannt wurde. |
| output | string | Die Ausgabe des Funktionsaufrufs. |
| call_id | string | Die eindeutige ID des Funktionsaufrufs. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeConversationMCPListToolsItem
Antwortpunkt für MCP-Listenwerkzeuge.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "mcp_list_tools" |
| server_label | string | Das Label des MCP-Servers. |
RealtimeConversationMCPCallItem
MCP-Anrufantwort-Item.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "mcp_call" |
| server_label | string | Das Label des MCP-Servers. |
| name | string | Der Name des Werkzeugs, das man anrufen sollte. |
| approval_request_id | string | Die Genehmigungsantrags-ID für den MCP-Anruf. |
| arguments | string | Die Argumente für den MCP-Aufruf. |
| output | string | Die Ausgabe des MCP-Anrufs. |
| error | object | Der Fehler zeigt an, ob der MCP-Anruf fehlgeschlagen ist. |
RealtimeConversationMCPApprovalRequestItem
Antrag auf MCP-Genehmigung.
| Field | Type | Description |
|---|---|---|
| id | string | Die eindeutige ID des Gegenstands. |
| type | string | Muss sein "mcp_approval_request" |
| server_label | string | Das Label des MCP-Servers. |
| name | string | Der Name des Werkzeugs, das man anrufen sollte. |
| arguments | string | Die Argumente für den MCP-Aufruf. |
RealtimeItemStatus
Status der Gesprächsthemen.
Allowed Values:
-
in_progress- Derzeit in der Bearbeitung -
completed- Erfolgreich abgeschlossen -
incomplete- Unvollständig (unterbrochen oder fehlgeschlagen)
RealtimeContentPart
Inhaltsteil in einer Nachricht.
RealtimeInputTextContentPart
Textteil.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "input_text" |
| text | string | Der Textinhalt |
RealtimeOutputTextContentPart
Textteil.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "text" |
| text | string | Der Textinhalt |
RealtimeInputAudioContentPart
Audio-Content-Teil.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "input_audio" |
| audio | string | Optional. Base64-kodierte Audiodaten |
| transcript | string | Optional. Audio transcript |
RealtimeOutputAudioContentPart
Audio-Content-Teil.
| Field | Type | Description |
|---|---|---|
| type | string | Muss sein "audio" |
| audio | string | Base64-kodierte Audiodaten |
| transcript | string | Optional. Audio transcript |
Response Objects
RealtimeResponse
Antwortobjekt, das eine Modellinferenzantwort darstellt.
| Field | Type | Description |
|---|---|---|
| id | string | Optional. Response ID |
| object | string | Optional. Immer "realtime.response" |
| status | RealtimeResponseStatus | Optional. Response status |
| status_details | RealtimeResponseStatusDetails | Optional. Status details |
| output | RealtimeConversationResponseItem[] | Optional. Output items |
| usage | RealtimeUsage | Optional. Statistiken zur Nutzung von Token |
| conversation_id | string | Optional. Zugehörige Konversations-ID |
| voice | RealtimeVoice | Optional. Für die Antwort verwendete Stimme |
| modalities | string[] | Optional. Verwendete Ausgabemodalitäten |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Verwendetes Audioformat |
| temperature | number | Optional. Temperature used |
| max_response_output_tokens | Ganzzahl oder "Inf" | Optional. Maximal verwendete Token |
RealtimeResponseStatus
Reaktionsstatuswerte.
Allowed Values:
-
in_progress- Es wird eine Antwort generiert -
completed- Antwort erfolgreich abgeschlossen -
canceled- Die Antwort wurde abgesagt -
incomplete- Antwort unvollständig (unterbrochen) -
failed- Antwort fehlschlug mit Fehler auf
RealtimeUsage
Statistiken zur Token-Verwendung.
| Field | Type | Description |
|---|---|---|
| total_tokens | integer | Gesamtzahl der verwendeten Token |
| input_tokens | integer | Verwendete Eingabetoken |
| output_tokens | integer | Erzeugte Ausgabetoken |
| input_token_details | TokenDetails | Aufschlüsselung der Eingabetoken |
| output_token_details | TokenDetails | Aufschlüsselung der Ausgabetoken |
TokenDetails
Detaillierte Aufschlüsselung der Token-Verwendung.
| Field | Type | Description |
|---|---|---|
| cached_tokens | integer | Optional. Verwendete Cache-Token |
| text_tokens | integer | Optional. Verwendete Texttoken |
| audio_tokens | integer | Optional. Verwendete Audio-Tokens |
Error Handling
RealtimeErrorDetails
Fehlerinformationsobjekt.
| Field | Type | Description |
|---|---|---|
| type | string | Fehlertyp (z. B. "invalid_request_error", , "server_error") |
| code | string | Optional. Spezifischer Fehlercode |
| message | string | Für Menschen lesbare Fehlerbeschreibung |
| param | string | Optional. Parameter im Zusammenhang mit dem Fehler |
| event_id | string | Optional. ID des Client-Ereignisses, das den Fehler verursacht hat |
RealtimeConversationRequestItem
Du verwendest das Objekt, RealtimeConversationRequestItem um über das Ereignis conversation.item.create ein neues Element in der Diskussion zu erstellen.
Dies ist ein Union-Typ, der einer der folgenden sein kann:
RealtimeSystemMessageItem
Ein Systemnachrichtenelement.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: message |
| role | string | Die Rolle der Botschaft. Erlaubte Werte: system |
| content | Array von RealtimeInputTextContentPart | Der Inhalt der Nachricht. |
| id | string | Die eindeutige ID des Gegenstands. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, erzeugt der Server eine. |
RealtimeUserMessageItem
Ein Benutzernachrichtenelement.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: message |
| role | string | Die Rolle der Botschaft. Erlaubte Werte: user |
| content | Array von RealtimeInputTextContentPart oder RealtimeInputAudioContentPart | Der Inhalt der Nachricht. |
| id | string | Die eindeutige ID des Gegenstands. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, erzeugt der Server eine. |
RealtimeAssistantMessageItem
Ein Assistenten-Nachrichteneintrag.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: message |
| role | string | Die Rolle der Botschaft. Erlaubte Werte: assistant |
| content | Array von RealtimeOutputTextContentPart | Der Inhalt der Nachricht. |
RealtimeFunctionCallItem
Ein Funktionsaufruf-Item.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: function_call |
| name | string | Der Name der Funktion, die aufgerufen werden soll. |
| arguments | string | Die Argumente der Funktion rufen als JSON-String auf. |
| call_id | string | Die ID des Funktionsaufruf-Elements. |
| id | string | Die eindeutige ID des Gegenstands. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, erzeugt der Server eine. |
RealtimeFunctionCallOutputItem
Ein Funktionsaufruf für das Ausgabeobjekt.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: function_call_output |
| call_id | string | Die ID des Funktionsaufruf-Elements. |
| output | string | Die Ausgabe des Funktionsaufrufs, dies ist ein freier String mit dem Funktionsergebnis, könnte ebenfalls leer sein. |
| id | string | Die eindeutige ID des Gegenstands. Wenn der Client keine ID bereitstellt, erzeugt der Server eine. |
RealtimeMCPApprovalResponseItem
Eine MCP-Genehmigungsantwort.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: mcp_approval_response |
| approve | boolean | Ob der MCP-Antrag genehmigt wird. |
| approval_request_id | string | Der Ausweis des MCP-Genehmigungsantrags. |
| id | string | Die eindeutige ID des Gegenstands. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, erzeugt der Server eine. |
RealtimeFunctionTool
Die Definition eines Funktionswerkzeugs, wie es vom Echtzeit-Endpunkt verwendet wird.
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Werkzeugs. Erlaubte Werte: function |
| name | string | Der Name der Veranstaltung. |
| description | string | Die Beschreibung der Funktion, einschließlich Nutzungsrichtlinien. Zum Beispiel: "Verwenden Sie diese Funktion, um die aktuelle Zeit zu erhalten." |
| parameters | object | Die Parameter der Funktion in Form eines JSON-Objekts. |
RealtimeItemStatus
Allowed Values:
in_progresscompletedincomplete
RealtimeResponseAudioContentPart
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Inhalts. Erlaubte Werte: audio |
| transcript | string | Das Transkript der Audioaufnahme. Diese Eigenschaft ist null. |
RealtimeResponseFunctionCallItem
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: function_call |
| name | string | Der Name des Funktionsaufrufelements. |
| call_id | string | Die ID des Funktionsaufruf-Elements. |
| arguments | string | Die Argumente der Funktion rufen das Element auf. |
| status | RealtimeItemStatus | Der Status des Gegenstands. |
RealtimeResponseFunctionCallOutputItem
| Field | Type | Description |
|---|---|---|
| type | string | Die Art des Gegenstands. Erlaubte Werte: function_call_output |
| call_id | string | Die ID des Funktionsaufruf-Elements. |
| output | string | Die Ausgabe des Funktionsaufruf-Elements. |
RealtimeResponseOptions
| Field | Type | Description |
|---|---|---|
| modalities | array | Die Ausgabemodalitäten für die Antwort. Erlaubte Werte: text, audioZum Beispiel ist die Standardeinstellung, "modalities": ["text", "audio"] die sowohl Text- als auch Audioausgabemodalitäten ermöglicht. Um nur die Textausgabe zu aktivieren, setze "modalities": ["text"]. Du kannst nicht nur Audio aktivieren. |
| instructions | string | Die Anweisungen (die Systemnachricht) sollen die Antworten des Modells steuern. |
| voice | RealtimeVoice | Die Stimme, die für die Modellantwort der Sitzung verwendet wird. Sobald die Stimme in der Sitzung für die Audioantwort des Modells verwendet wird, kann sie nicht mehr verändert werden. |
| tools | Array von RealtimeTool | Die Werkzeuge, die dem Modell für die Sitzung zur Verfügung stehen. |
| tool_choice | RealtimeToolChoice | Die Werkzeugwahl für die Sitzung. |
| temperature | number | Die Stichprobentemperatur für das Modell. Die erlaubten Temperaturwerte sind auf [0,6, 1,2] begrenzt. Standardmäßig auf 0,8 eingestellt. |
| max_response_output_tokens | Ganzzahl oder "Inf" | Die maximale Anzahl der Ausgabetoken pro Assistentenantwort, einschließlich Werkzeugaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken zu begrenzen. Andernfalls wird der Wert auf "inf" gesetzt, um die maximale Anzahl an Token zu ermöglichen. Zum Beispiel, um die Ausgabetoken auf 1000 zu begrenzen, setzen "max_response_output_tokens": 1000wir . Um die maximale Anzahl an Token zu ermöglichen, setze "max_response_output_tokens": "inf".Standardmäßig gilt "inf". |
| reasoning_effort | ReasoningEffort | Optional. Begrenzt den Aufwand beim Schließen bei Denkmustern. Überprüfen Sie die Modelldokumentation auf unterstützte Werte für jedes Modell. Eine Reduzierung des Schlussarbeitsaufwands kann zu schnelleren Antworten und weniger Token beim Schließen in einer Antwort führen. |
| conversation | string | Kontrolliert, zu welchem Gespräch die Antwort hinzugefügt wird. Die unterstützten Werte sind auto und none.Der Wert (oder das Nichtsetzen dieser Eigenschaft auto ) stellt sicher, dass der Inhalt der Antwort zur Standardkonversion der Sitzung hinzugefügt wird.Setze diese Eigenschaft auf so, none dass eine Out-of-Band-Antwort erzeugt wird, bei der keine Elemente zur Standardkonversation hinzugefügt werden. Standardeinstellungen zu "auto" |
| metadata | map | Setze von bis zu 16 Schlüssel-Wert-Paaren, die an ein Objekt angehängt werden können. Dies kann nützlich sein, um zusätzliche Informationen über das Objekt in einem strukturierten Format zu speichern. Tasten können maximal 64 Zeichen lang sein und Werte maximal 512 Zeichen. Zum Beispiel: metadata: { topic: "classification" } |
RealtimeResponseSession
Das Objekt RealtimeResponseSession stellt eine Sitzung in der Echtzeit-API dar. Es wird in einigen Server-Events verwendet, wie zum Beispiel:
| Field | Type | Description |
|---|---|---|
| object | string | Das Session-Objekt. Erlaubte Werte: realtime.session |
| id | string | Die eindeutige ID der Sitzung. |
| model | string | Das Modell, das für die Sitzung verwendet wurde. |
| modalities | array | Die Ausgabemodalitäten für die Sitzung. Erlaubte Werte: text, audioZum Beispiel ist die Standardeinstellung, "modalities": ["text", "audio"] die sowohl Text- als auch Audioausgabemodalitäten ermöglicht. Um nur die Textausgabe zu aktivieren, setze "modalities": ["text"]. Du kannst nicht nur Audio aktivieren. |
| instructions | string | Die Anweisungen (die Systemnachricht) sollen die Text- und Audioantworten des Modells steuern. Hier sind einige Beispielanweisungen, die den Inhalt und das Format von Text- und Audioantworten steuern können: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Hier sind einige Beispielanweisungen, um das Audioverhalten zu steuern: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Auch wenn das Modell diese Anweisungen nicht immer befolgt, geben sie Hinweise auf das gewünschte Verhalten. |
| voice | RealtimeVoice | Die Stimme, die für die Modellantwort der Sitzung verwendet wird. Sobald die Stimme in der Sitzung für die Audioantwort des Modells verwendet wird, kann sie nicht mehr verändert werden. |
| input_audio_sampling_rate | integer | Die Abtastrate für das Eingangsaudio. |
| input_audio_format | RealtimeAudioFormat | Das Format für das Eingabeaudio. |
| output_audio_format | RealtimeAudioFormat | Das Format für das Ausgabe-Audio. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Die Einstellungen für die Audio-Eingabe-Transkription. Diese Eigenschaft ist null. |
| turn_detection | RealtimeTurnDetection | Die Einstellungen für die Abzugserkennung für die Sitzung. Diese Eigenschaft ist null. |
| tools | Array von RealtimeTool | Die Werkzeuge, die dem Modell für die Sitzung zur Verfügung stehen. |
| tool_choice | RealtimeToolChoice | Die Werkzeugwahl für die Sitzung. |
| temperature | number | Die Stichprobentemperatur für das Modell. Die erlaubten Temperaturwerte sind auf [0,6, 1,2] begrenzt. Standardmäßig auf 0,8 eingestellt. |
| max_response_output_tokens | Ganzzahl oder "Inf" | Die maximale Anzahl der Ausgabetoken pro Assistentenantwort, einschließlich Werkzeugaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken zu begrenzen. Andernfalls wird der Wert auf "inf" gesetzt, um die maximale Anzahl an Token zu ermöglichen. Zum Beispiel, um die Ausgabetoken auf 1000 zu begrenzen, setzen "max_response_output_tokens": 1000wir . Um die maximale Anzahl an Token zu ermöglichen, setze "max_response_output_tokens": "inf". |
RealtimeResponseStatusDetails
| Field | Type | Description |
|---|---|---|
| type | RealtimeResponseStatus | Der Status der Antwort. |
RealtimeRateLimitsItem
| Field | Type | Description |
|---|---|---|
| name | string | Der Name der Grundstücksbegrenzung, über den dieser Artikel Informationen enthält. |
| limit | integer | Das maximal konfigurierte Limit für diese Rate-Limit-Eigenschaft. |
| remaining | integer | Die verbleibende Quote steht im Rahmen des konfigurierten Limits für diese Tarifbegrenzung zur Verfügung. |
| reset_seconds | number | Die verbleibende Zeit, in Sekunden, bis diese Geschwindigkeitsbegrenzungseigenschaft zurückgesetzt wird. |
Related Resources
- Probier den Voice Live Quickstart
- Probier den Voice Live Agents Quickstart
- Weitere Informationen zur Verwendung der Voice Live-API