Informations de référence sur l’API Voice Live 2025-10-01

L’API Voice Live fournit une communication bidirectionnelle en temps réel pour les applications compatibles vocales à l’aide de connexions WebSocket. Cette API prend en charge les fonctionnalités avancées, notamment la reconnaissance vocale, la synthèse vocale, la diffusion d’avatars, les données d’animation et les fonctionnalités complètes de traitement audio.

L’API utilise des événements au format JSON envoyés via des connexions WebSocket pour gérer les conversations, les flux audio, les interactions d’avatar et les réponses en temps réel. Les événements sont classés en événements clients (envoyés du client au serveur) et des événements serveur (envoyés du serveur au client).

Key Features

  • Traitement audio en temps réel : prise en charge de plusieurs formats audio, y compris PCM16 à différents taux d’échantillonnage et codecs G.711
  • Options vocales avancées : voix OpenAI, voix personnalisées Azure, voix standard Azure et voix personnelles Azure
  • Intégration d’avatar : diffusion en continu d’avatars webRTC avec vidéo, animation et blendshapes
  • Détection intelligente de tour : plusieurs options VAD, notamment la détection sémantique Azure et la détection côté serveur
  • Amélioration audio : réduction du bruit intégrée et annulation d’écho
  • Appel de fonction : Intégration d’outils pour des fonctionnalités conversationnelles améliorées
  • Gestion de session flexible : modalités de sortie configurables, instructions et paramètres de réponse

Client Events

L’API Voice Live prend en charge les événements clients suivants qui peuvent être envoyés du client au serveur :

Event Description
session.update Mettre à jour la configuration de session, notamment les modalités de voix, de sortie, la détection de tour et d’autres paramètres
session.avatar.connect Établir une connexion d’avatar en fournissant le SDP client pour la négociation WebRTC
input_audio_buffer.append Ajouter des octets audio à la mémoire tampon audio d’entrée
input_audio_buffer.commit Valider la mémoire tampon audio d’entrée pour le traitement
input_audio_buffer.clear Effacer la mémoire tampon audio d’entrée
conversation.item.create Ajouter un nouvel élément au contexte de conversation
conversation.item.retrieve Récupérer un élément spécifique de la conversation
conversation.item.truncate Tronquer un message audio assistant
conversation.item.delete Supprimer un élément de la conversation
response.create Demander au serveur de créer une réponse via l’inférence du modèle
response.cancel Annuler une réponse en cours

session.update

Mettez à jour la configuration de la session. Cet événement peut être envoyé à tout moment pour modifier des paramètres tels que la voix, les modalités de sortie, la détection de tour, les outils et d’autres paramètres de session. Notez qu’une fois qu’une session est initialisée avec un modèle particulier, elle ne peut pas être modifiée en un autre modèle.

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 Doit être "session.update"
session RealtimeRequestSession Objet de configuration de session avec des champs à mettre à jour

Exemple avec 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

Établissez une connexion d’avatar en fournissant l’offre SDP (Protocole de description de session) du client pour la négociation multimédia WebRTC. Cet événement est requis lors de l’utilisation des fonctionnalités d’avatar.

Event Structure

{
  "type": "session.avatar.connect",
  "client_sdp": "<client_sdp>"
}

Properties

Field Type Description
type string Doit être "session.avatar.connect"
client_sdp string Offre SDP du client pour l’établissement de connexions WebRTC, encodée avec base64

input_audio_buffer.append

Ajoutez des octets audio à la mémoire tampon audio d’entrée.

Event Structure

{
  "type": "input_audio_buffer.append",
  "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Properties

Field Type Description
type string Doit être "input_audio_buffer.append"
audio string Données audio encodées en base64

input_audio_buffer.commit

Validez la mémoire tampon audio d’entrée pour le traitement.

Event Structure

{
  "type": "input_audio_buffer.commit"
}

Properties

Field Type Description
type string Doit être "input_audio_buffer.commit"

input_audio_buffer.clear

Effacez la mémoire tampon audio d’entrée.

Event Structure

{
  "type": "input_audio_buffer.clear"
}

Properties

Field Type Description
type string Doit être "input_audio_buffer.clear"

conversation.item.create

Ajoutez un nouvel élément au contexte de conversation. Cela peut inclure des messages, des appels de fonction et des réponses d’appel de fonction. Les éléments peuvent être insérés à des positions spécifiques dans l’historique des conversations.

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 Doit être "conversation.item.create"
previous_item_id string Optional. ID de l’élément après lequel insérer cet élément. S’il n’est pas fourni, ajoute à la fin
item RealtimeConversationRequestItem Élément à ajouter à la conversation

Exemple avec du contenu audio

{
  "type": "conversation.item.create",
  "item": {
    "type": "message",
    "role": "user",
    "content": [
      {
        "type": "input_audio",
        "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
        "transcript": "Hello there"
      }
    ]
  }
}

Exemple avec la sortie de l’appel de fonction

{
  "type": "conversation.item.create",
  "item": {
    "type": "function_call_output",
    "call_id": "call_123",
    "output": "{\"location\": \"San Francisco\", \"temperature\": \"70\"}"
  }
}

Exemple avec la réponse d’approbation MCP

{
  "type": "conversation.item.create",
  "item": {
    "type": "mcp_approval_response",
    "approval_request_id": "mcp_approval_req_456",
    "approve": true,
  }
}

conversation.item.retrieve

Récupérez un élément spécifique à partir de l’historique des conversations. Cela est utile pour inspecter l’audio traité après l’annulation du bruit et VAD.

Event Structure

{
  "type": "conversation.item.retrieve",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Doit être "conversation.item.retrieve"
item_id string ID de l’élément à récupérer

conversation.item.truncate

Tronquer le contenu audio d’un message assistant. Cela est utile pour arrêter la lecture à un point spécifique et synchroniser la compréhension du serveur avec l’état du client.

Event Structure

{
  "type": "conversation.item.truncate",
  "item_id": "item_ABC123",
  "content_index": 0,
  "audio_end_ms": 5000
}

Properties

Field Type Description
type string Doit être "conversation.item.truncate"
item_id string ID de l’élément de message assistant à tronquer
content_index integer Index de la partie de contenu à tronquer
audio_end_ms integer Durée jusqu’à laquelle tronquer l’audio, en millisecondes

conversation.item.delete

Supprimez un élément de l’historique des conversations.

Event Structure

{
  "type": "conversation.item.delete",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Doit être "conversation.item.delete"
item_id string ID de l’élément à supprimer

response.create

Demandez au serveur de créer une réponse via l’inférence du modèle. Cet événement peut spécifier une configuration spécifique à la réponse qui remplace les valeurs par défaut de session.

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 Doit être "response.create"
response RealtimeResponseOptions Configuration de réponse facultative qui remplace les valeurs par défaut de session

Exemple avec le choix de l’outil

{
  "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
  }
}

Exemple avec 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

Annulez une réponse en cours. Cela arrête immédiatement la génération de réponse et la sortie audio associée.

Event Structure

{
  "type": "response.cancel"
}

Properties

Field Type Description
type string Doit être "response.cancel"

input_audio_buffer.append

L’événement client input_audio_buffer.append est utilisé pour ajouter des octets audio à la mémoire tampon audio d’entrée. La mémoire tampon audio est un stockage temporaire que vous pouvez écrire dans et valider ultérieurement.

En mode VAD du serveur (détection d’activité vocale), la mémoire tampon audio est utilisée pour détecter la voix et le serveur décide de la validation. Quand le VAD serveur est désactivé, le client peut choisir la quantité d’audio à placer dans chaque événement, jusqu’à un maximum de 15 Mio. Par exemple, la diffusion en continu de blocs plus petits depuis le client peut permettre au VAD d’être plus réactif.

Contrairement à la plupart des événements clients, le serveur n’envoie pas de réponse de confirmation à l’événement client input_audio_buffer.append.

Event structure

{
  "type": "input_audio_buffer.append",
  "audio": "<audio>"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.append.
audio string Octets audio codés en base64. Cette valeur doit être au format spécifié par le champ input_audio_format dans la configuration de session.

input_audio_buffer.clear

L’événement client input_audio_buffer.clear est utilisé pour effacer les octets audio dans la mémoire tampon.

Le serveur répond avec un événement input_audio_buffer.cleared.

Event structure

{
  "type": "input_audio_buffer.clear"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.clear.

input_audio_buffer.commit

L’événement client input_audio_buffer.commit est utilisé pour valider la mémoire tampon audio d’entrée utilisateur, qui crée un élément de message utilisateur dans la conversation. L’audio est transcrit si input_audio_transcription est configuré pour la session.

Lorsqu’il est en mode VAD du serveur, le client n’a pas besoin d’envoyer cet événement, le serveur valide automatiquement la mémoire tampon audio. Sans VAD serveur, le client doit valider la mémoire tampon audio pour créer un élément de message utilisateur. Cet événement client génère une erreur si la mémoire tampon audio d’entrée est vide.

La validation de la mémoire tampon audio d’entrée ne crée pas de réponse à partir du modèle.

Le serveur répond avec un événement input_audio_buffer.committed.

Event structure

{
  "type": "input_audio_buffer.commit"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.commit.

Server Events

L’API Voice Live envoie les événements de serveur suivants pour communiquer l’état, les réponses et les données au client :

Event Description
error Indique qu’une erreur s’est produite pendant le traitement
warning Indique qu’un avertissement s’est produit qui n’interrompt pas le flux de conversation
session.created Envoyé lorsqu’une nouvelle session est correctement établie
session.updated Envoyé lorsque la configuration de session est mise à jour
session.avatar.connecting Indique que la connexion WebRTC d’avatar est établie
conversation.item.created Envoyé lorsqu’un nouvel élément est ajouté à la conversation
conversation.item.retrieved Réponse à la requête conversation.item.retrieve
conversation.item.truncated Confirme la troncation d’élément
conversation.item.deleted Confirme la suppression d’élément
conversation.item.input_audio_transcription.completed La transcription audio d’entrée est terminée
conversation.item.input_audio_transcription.delta Transcription audio d’entrée en streaming
conversation.item.input_audio_transcription.failed Échec de la transcription audio d’entrée
input_audio_buffer.committed La mémoire tampon audio d’entrée était destinée au traitement
input_audio_buffer.cleared La mémoire tampon audio d’entrée a été effacée
input_audio_buffer.speech_started Reconnaissance vocale détectée dans la mémoire tampon audio d’entrée (VAD)
input_audio_buffer.speech_stopped La reconnaissance vocale s’est terminée dans la mémoire tampon audio d’entrée (VAD)
response.created La nouvelle génération de réponse a démarré
response.done La génération de réponse est terminée
response.output_item.added Nouvel élément de sortie ajouté à la réponse
response.output_item.done L’élément de sortie est terminé
response.content_part.added Nouvelle partie de contenu ajoutée à l’élément de sortie
response.content_part.done La partie contenu est terminée
response.text.delta Diffusion en continu du contenu texte à partir du modèle
response.text.done Le contenu du texte est terminé
response.audio_transcript.delta Transcription audio de diffusion en continu
response.audio_transcript.done La transcription audio est terminée
response.audio.delta Diffusion en continu du contenu audio à partir du modèle
response.audio.done Le contenu audio est complet
response.animation_blendshapes.delta Données blendshapes d’animation de streaming
response.animation_blendshapes.done Les données blendshapes d’animation sont terminées
response.audio_timestamp.delta Informations d’horodatage audio en streaming
response.audio_timestamp.done Les informations d’horodatage audio sont complètes
response.animation_viseme.delta Données de viseme d’animation de streaming
response.animation_viseme.done Les données de viseme d’animation sont terminées
response.function_call_arguments.delta Arguments d’appel de fonction de streaming
response.function_call_arguments.done Les arguments d’appel de fonction sont terminés
mcp_list_tools.in_progress La liste des outils MCP est en cours
mcp_list_tools.completed La liste des outils MCP est terminée
mcp_list_tools.failed Échec de la liste des outils MCP
response.mcp_call_arguments.delta Arguments d’appel MCP de streaming
response.mcp_call_arguments.done Les arguments d’appel MCP sont terminés
response.mcp_call.in_progress L’appel MCP est en cours
response.mcp_call.completed L’appel MCP est terminé
response.mcp_call.failed Échec de l’appel MCP

session.created

Envoyé lorsqu’une nouvelle session est correctement établie. Il s’agit du premier événement reçu après la connexion à l’API.

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 Doit être "session.created"
session RealtimeResponseSession Objet de session créé

session.updated

Envoyé lorsque la configuration de session est correctement mise à jour en réponse à un session.update événement client.

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 Doit être "session.updated"
session RealtimeResponseSession Objet de session mis à jour

session.avatar.connecting

Indique qu’une connexion WebRTC d’avatar est établie. Cet événement est envoyé en réponse à un session.avatar.connect événement client.

Event Structure

{
  "type": "session.avatar.connecting",
  "server_sdp": "<server_sdp>"
}

Properties

Field Type Description
type string Doit être "session.avatar.connecting"

conversation.item.created

Envoyé lorsqu’un nouvel élément est ajouté à la conversation, via un événement client conversation.item.create ou automatiquement pendant la génération de réponse.

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 Doit être "conversation.item.created"
previous_item_id string ID de l’élément après lequel cet élément a été inséré
item RealtimeConversationResponseItem Élément de conversation créé

Exemple avec l’élément audio

{
  "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

Envoyé en réponse à un conversation.item.retrieve événement client, en fournissant l’élément de conversation demandé.

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 Doit être "conversation.item.retrieved"
item RealtimeConversationResponseItem Élément de conversation récupéré

conversation.item.truncated

L’événement serveur conversation.item.truncated est retourné quand le client tronque un élément de message audio antérieur de l’assistant avec un événement conversation.item.truncate. Cet événement est utilisé pour synchroniser la compréhension du serveur de l’audio avec la lecture du client.

Cet événement tronque l’audio et supprime la transcription en texte du côté serveur pour faire en sorte qu’il n’y ait pas de texte dans le contexte dont l’utilisateur ne sait rien.

Event structure

{
  "type": "conversation.item.truncated",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Properties

Field Type Description
type string Le type d’événement doit être conversation.item.truncated.
item_id string ID de l’élément de message assistant tronqué.
content_index integer Index de la partie de contenu tronquée.
audio_end_ms integer Durée jusqu’à laquelle l’audio a été tronqué, en millisecondes.

conversation.item.deleted

Envoyé en réponse à un conversation.item.delete événement client, confirmant que l’élément spécifié a été supprimé de la conversation.

Event Structure

{
  "type": "conversation.item.deleted",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Doit être "conversation.item.deleted"
item_id string ID de l’élément supprimé

response.created

Envoyé lorsqu’une nouvelle génération de réponse commence. Il s’agit du premier événement d’une séquence de réponse.

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 Doit être "response.created"
response RealtimeResponse Objet réponse qui a été créé

response.done

Envoyé lorsque la génération de réponse est terminée. Cet événement contient la réponse finale avec tous les éléments de sortie et les statistiques d’utilisation.

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 Doit être "response.done"
response RealtimeResponse Objet de réponse terminé

response.output_item.added

Envoyé lorsqu’un nouvel élément de sortie est ajouté à la réponse pendant la génération.

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 Doit être "response.output_item.added"
response_id string ID de la réponse à laquelle cet élément appartient
output_index integer Index de l’élément dans le tableau de sortie de la réponse
item RealtimeConversationResponseItem Élément de sortie ajouté

response.output_item.done

Envoyé lorsqu’un élément de sortie est terminé.

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 Doit être "response.output_item.done"
response_id string ID de la réponse à laquelle cet élément appartient
output_index integer Index de l’élément dans le tableau de sortie de la réponse
item RealtimeConversationResponseItem Élément de sortie terminé

response.content_part.added

L’événement serveur response.content_part.added est retourné quand une nouvelle partie de contenu est ajoutée à un élément de message de l’assistant pendant la génération de la réponse.

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 Doit être "response.content_part.added"
response_id string ID de la réponse
item_id string ID de l’élément auquel appartient cette partie de contenu
output_index integer Index de l’élément dans la réponse
content_index integer Index de cette partie de contenu dans l’élément
part RealtimeContentPart Partie de contenu ajoutée

response.content_part.done

L’événement serveur response.content_part.done est retourné quand une partie de contenu a fait l’objet d’une diffusion en continu dans un élément de message de l’assistant.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

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 Doit être "response.content_part.done"
response_id string ID de la réponse
item_id string ID de l’élément auquel appartient cette partie de contenu
output_index integer Index de l’élément dans la réponse
content_index integer Index de cette partie de contenu dans l’élément
part RealtimeContentPart Composant de contenu terminé

response.text.delta

Diffusion en continu du contenu texte à partir du modèle. Envoyé de façon incrémentielle à mesure que le modèle génère du texte.

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 Doit être "response.text.delta"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
delta string Contenu de texte incrémentiel

response.text.done

Envoyé lorsque la génération de contenu de texte est terminée.

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 Doit être "response.text.done"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
text string Contenu de texte complet

response.audio.delta

Diffusion en continu du contenu audio à partir du modèle. L’audio est fourni en tant que données encodées en base64.

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 Doit être "response.audio.delta"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
delta string Bloc de données audio encodé en base64

response.audio.done

Envoyé lorsque la génération de contenu audio est terminée.

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 Doit être "response.audio.done"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu

response.audio_transcript.delta

Transcription de streaming du contenu audio généré.

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 Doit être "response.audio_transcript.delta"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
delta string Texte de transcription incrémentielle

response.audio_transcript.done

Envoyé lorsque la génération de transcription audio est terminée.

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 Doit être "response.audio_transcript.done"
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
transcript string Texte de transcription complet

conversation.item.input_audio_transcription.completed

L’événement serveur conversation.item.input_audio_transcription.completed est le résultat de la transcription audio pour le message écrit dans la mémoire tampon audio.

La transcription commence lorsque la mémoire tampon audio d’entrée est validée par le client ou le serveur (en mode server_vad). La transcription s’exécute de façon asynchrone avec la création de la réponse, ce qui permet à cet événement de se présenter avant ou après les événements de réponse.

Les modèles d’API en temps réel acceptent l’audio en mode natif, et par conséquent, la transcription d’entrée est un processus distinct exécuté sur un modèle de reconnaissance vocale distinct tel que whisper-1. Ainsi, la transcription peut différer un peu de l’interprétation du modèle et doit être traitée comme un guide brut.

Event structure

{
  "type": "conversation.item.input_audio_transcription.completed",
  "item_id": "<item_id>",
  "content_index": 0,
  "transcript": "<transcript>"
}

Properties

Field Type Description
type string Le type d’événement doit être conversation.item.input_audio_transcription.completed.
item_id string ID de l’élément de message utilisateur contenant l’audio.
content_index integer Index de la partie de contenu contenant l’audio.
transcript string Texte transcrit.

conversation.item.input_audio_transcription.delta

L’événement serveur conversation.item.input_audio_transcription.delta est retourné lorsque la transcription audio d’entrée est configurée et qu’une demande de transcription pour un message utilisateur est en cours. Cet événement fournit des résultats de transcription partielles dès qu’ils deviennent disponibles.

Event structure

{
  "type": "conversation.item.input_audio_transcription.delta",
  "item_id": "<item_id>",
  "content_index": 0,
  "delta": "<delta>"
}

Properties

Field Type Description
type string Le type d’événement doit être conversation.item.input_audio_transcription.delta.
item_id string ID de l’élément de message utilisateur.
content_index integer Index de la partie de contenu contenant l’audio.
delta string Texte de transcription incrémentielle.

conversation.item.input_audio_transcription.failed

L’événement serveur conversation.item.input_audio_transcription.failed est retourné quand la transcription audio de l’entrée est configurée et qu’une demande de transcription pour un message utilisateur a échoué. Cet événement est distinct des autres événements error, pour que le client puisse identifier l’élément associé.

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 Le type d’événement doit être conversation.item.input_audio_transcription.failed.
item_id string ID de l’élément de message utilisateur.
content_index integer Index de la partie de contenu contenant l’audio.
error object Détails de l’erreur de transcription.

Consultez les propriétés imbriquées dans le tableau suivant.

Error properties

Field Type Description
type string Le type d’erreur.
code string Code d’erreur, le cas échéant.
message string Message d’erreur lisible par un utilisateur.
param string Paramètre lié à l’erreur, le cas échéant.

response.animation_blendshapes.delta

L’événement de serveur response.animation_blendshapes.delta est retourné lorsque le modèle génère des données blendshapes d’animation dans le cadre d’une réponse. Cet événement fournit des données blendshapes incrémentielles au fur et à mesure qu’il devient disponible.

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 Le type d’événement doit être response.animation_blendshapes.delta.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
frame_index integer Index du premier frame dans ce lot d’images
frames tableau de tableau de float Tableau de trames blendshape, chaque image est un tableau de valeurs blendshape

response.animation_blendshapes.done

L’événement de serveur response.animation_blendshapes.done est retourné lorsque le modèle a terminé la génération de données blendshapes d’animation dans le cadre d’une réponse.

Event structure

{
  "type": "response.animation_blendshapes.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
}

Properties

Field Type Description
type string Le type d’événement doit être response.animation_blendshapes.done.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse

response.audio_timestamp.delta

L’événement serveur response.audio_timestamp.delta est retourné lorsque le modèle génère des données d’horodatage audio dans le cadre d’une réponse. Cet événement fournit des données d’horodatage incrémentielles pour l’alignement audio et texte de sortie au fur et à mesure qu’il devient disponible.

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 Le type d’événement doit être response.audio_timestamp.delta.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
audio_offset_ms integer Décalage audio en millisecondes à partir du début de l’audio
audio_duration_ms integer Durée du segment audio en millisecondes
text string Segment de texte correspondant à cet horodatage audio
timestamp_type string Le type d’horodatage, actuellement, seul « word » est pris en charge

response.audio_timestamp.done

Envoyé lorsque la génération d’horodatage audio est terminée.

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 Le type d’événement doit être response.audio_timestamp.done.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu

response.animation_viseme.delta

L’événement de serveur response.animation_viseme.delta est retourné lorsque le modèle génère des données de viseme d’animation dans le cadre d’une réponse. Cet événement fournit des données de viseme incrémentielles au fur et à mesure qu’il devient disponible.

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 Le type d’événement doit être response.animation_viseme.delta.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu
audio_offset_ms integer Décalage audio en millisecondes à partir du début de l’audio
viseme_id integer ID de viseme correspondant à la forme de bouche pour l’animation

response.animation_viseme.done

L’événement de serveur response.animation_viseme.done est retourné lorsque le modèle a fini de générer des données de viseme d’animation dans le cadre d’une réponse.

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 Le type d’événement doit être response.animation_viseme.done.
response_id string ID de la réponse
item_id string ID de l’élément
output_index integer Index de l’élément dans la réponse
content_index integer Index du composant de contenu

error

L’événement serveur error est retourné quand une erreur se produit, qui peut être un problème client ou un problème serveur. La plupart des erreurs sont récupérables et la session reste ouverte.

Event structure

{
  "type": "error",
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>",
    "event_id": "<event_id>"
  }
}

Properties

Field Type Description
type string Le type d’événement doit être error.
error object Détails de l’erreur.

Consultez les propriétés imbriquées dans le tableau suivant.

Error properties

Field Type Description
type string Le type d’erreur. Par exemple, « invalid_request_error » et « server_error » sont des types d’erreurs.
code string Code d’erreur, le cas échéant.
message string Message d’erreur lisible par un utilisateur.
param string Paramètre lié à l’erreur, le cas échéant.
event_id string ID de l’événement client qui a provoqué l’erreur, le cas échéant.

warning

L’événement serveur warning est retourné lorsqu’un avertissement se produit qui n’interrompt pas le flux de conversation. Les avertissements sont informationnels et la session se poursuit normalement.

Event structure

{
  "type": "warning",
  "warning": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>"
  }
}

Properties

Field Type Description
type string Le type d’événement doit être warning.
warning object Détails de l’avertissement. Consultez les propriétés imbriquées dans le tableau suivant.

Warning properties

Field Type Description
message string Message d’avertissement lisible par l’homme.
code string Optional. Code d’avertissement, le cas échéant.
param string Optional. Paramètre lié à l’avertissement, le cas échéant.

input_audio_buffer.cleared

L’événement serveur input_audio_buffer.cleared est retourné quand le client efface la mémoire tampon audio d’entrée avec un événement input_audio_buffer.clear.

Event structure

{
  "type": "input_audio_buffer.cleared"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.cleared.

input_audio_buffer.committed

L’événement serveur input_audio_buffer.committed est retourné quand une mémoire tampon audio d’entrée est validée par le client ou automatiquement en mode VAD serveur. La propriété item_id est l’ID de l’élément de message utilisateur créé. Par conséquent, un conversation.item.created événement est également envoyé au client.

Event structure

{
  "type": "input_audio_buffer.committed",
  "previous_item_id": "<previous_item_id>",
  "item_id": "<item_id>"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.committed.
previous_item_id string ID de l’élément précédent après lequel le nouvel élément est inséré.
item_id string ID de l’élément de message utilisateur créé.

input_audio_buffer.speech_started

L’événement serveur input_audio_buffer.speech_started est retourné en mode server_vad quand un message est détecté dans la mémoire tampon audio. Cet événement peut se produire chaque fois que l’audio est ajouté à la mémoire tampon (sauf si la voix est déjà détectée).

Note

Le client peut utiliser cet événement pour interrompre la lecture audio ou fournir un retour visuel à l’utilisateur.

Le client doit s’attendre à recevoir un événement input_audio_buffer.speech_stopped lorsque la reconnaissance vocale s’arrête. La propriété item_id est l’ID de l’élément de message utilisateur créé quand le message s’arrête. Le item_id est également inclus dans l’événement input_audio_buffer.speech_stopped, sauf si le client valide manuellement la mémoire tampon audio lors de l’activation de VAD.

Event structure

{
  "type": "input_audio_buffer.speech_started",
  "audio_start_ms": 0,
  "item_id": "<item_id>"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.speech_started.
audio_start_ms integer Millisecondes à partir du début de l’audio écrit dans la mémoire tampon pendant la session lors de la détection de la parole. Cette propriété correspond au début de l’audio envoyé au modèle, et inclut ainsi la configuration prefix_padding_ms dans la session.
item_id string ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale.

input_audio_buffer.speech_stopped

L’événement serveur input_audio_buffer.speech_stopped est retourné en mode server_vad quand le serveur détecte la fin de du message dans la mémoire tampon audio.

Le serveur envoie également un événement conversation.item.created avec l’élément de message utilisateur créé à partir de la mémoire tampon audio.

Event structure

{
  "type": "input_audio_buffer.speech_stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Properties

Field Type Description
type string Le type d’événement doit être input_audio_buffer.speech_stopped.
audio_end_ms integer Millisecondes depuis le démarrage de la session lors de l’arrêt de la reconnaissance vocale. Cette propriété correspond à la fin de l’audio envoyé au modèle, et inclut donc la configuration min_silence_duration_ms dans la session.
item_id string ID de l’élément de message utilisateur créé.

rate_limits.updated

L’événement serveur rate_limits.updated est émis au début d’une réponse pour indiquer les limites de débit mises à jour.

Quand une réponse est créée, certains jetons sont réservés aux jetons de sortie. Les limites de débit montrées ici reflètent cette réservation, qui est ensuite ajustée en conséquence une fois la réponse terminée.

Event structure

{
  "type": "rate_limits.updated",
  "rate_limits": [
    {
      "name": "<name>",
      "limit": 0,
      "remaining": 0,
      "reset_seconds": 0
    }
  ]
}

Properties

Field Type Description
type string Le type d’événement doit être rate_limits.updated.
rate_limits tableau des LimitesVitessesÉléments RealtimeVariable Liste des informations de limite de débit.

response.audio.delta

L’événement serveur response.audio.delta est retourné quand l’audio généré par le modèle est mis à jour.

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 Le type d’événement doit être response.audio.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta des données audio encodées en base64.

response.audio.done

L’événement serveur response.audio.done est retourné quand l’audio généré par le modèle est produit.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

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 Le type d’événement doit être response.audio.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.

response.audio_transcript.delta

L’événement serveur response.audio_transcript.delta est retourné quand la transcription générée par le modèle de la sortie audio est mise à jour.

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 Le type d’événement doit être response.audio_transcript.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta de transcription.

response.audio_transcript.done

L’événement serveur response.audio_transcript.done est retourné quand la transcription générée par le modèle de la sortie audio a fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

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 Le type d’événement doit être response.audio_transcript.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.
transcript string Transcription finale de l’audio.

response.function_call_arguments.delta

L’événement serveur response.function_call_arguments.delta est retourné quand les arguments d’appel de fonction générés par le modèle sont mis à jour.

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 Le type d’événement doit être response.function_call_arguments.delta.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de fonction.
output_index integer Index de l’élément de sortie dans la réponse.
call_id string ID de l’appel de fonction.
delta string Arguments delta sous forme de chaîne JSON.

response.function_call_arguments.done

L’événement serveur response.function_call_arguments.done est retourné quand les arguments d’appel de fonction générés par le modèle ont fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

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 Le type d’événement doit être response.function_call_arguments.done.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de fonction.
output_index integer Index de l’élément de sortie dans la réponse.
call_id string ID de l’appel de fonction.
arguments string Arguments finaux sous forme de chaîne JSON.

mcp_list_tools.in_progress

L’événement de serveur mcp_list_tools.in_progress est retourné lorsque le service commence à répertorier les outils disponibles à partir d’un serveur mcp.

Event structure

{
  "type": "mcp_list_tools.in_progress",
  "item_id": "<mcp_list_tools_item_id>"
}

Properties

Field Type Description
type string Le type d’événement doit être mcp_list_tools.in_progress.
item_id string ID de l’élément d’outils de liste MCP en cours de traitement.

mcp_list_tools.completed

L’événement de serveur mcp_list_tools.completed est retourné lorsque le service termine la liste des outils disponibles à partir d’un serveur mcp.

Event structure

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Properties
Field Type Description
type string Le type d’événement doit être mcp_list_tools.completed.
item_id string ID de l’élément d’outils de liste MCP en cours de traitement.

mcp_list_tools.failed

L’événement de serveur mcp_list_tools.failed est retourné lorsque le service ne parvient pas à répertorier les outils disponibles à partir d’un serveur mcp.

Event structure

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Properties
Field Type Description
type string Le type d’événement doit être mcp_list_tools.failed.
item_id string ID de l’élément d’outils de liste MCP en cours de traitement.

response.mcp_call_arguments.delta

L’événement de serveur response.mcp_call_arguments.delta est retourné lorsque les arguments d’appel de l’outil mcp générés par le modèle sont mis à jour.

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 Le type d’événement doit être response.mcp_call_arguments.delta.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de l’outil mcp.
output_index integer Index de l’élément de sortie dans la réponse.
delta string Arguments delta sous forme de chaîne JSON.

response.mcp_call_arguments.done

L’événement de serveur response.mcp_call_arguments.done est retourné lorsque les arguments d’appel de l’outil mcp générés par le modèle sont terminés en streaming.

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 Le type d’événement doit être response.mcp_call_arguments.done.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de l’outil mcp.
output_index integer Index de l’élément de sortie dans la réponse.
arguments string Arguments finaux sous forme de chaîne JSON.

response.mcp_call.in_progress

L’événement de serveur response.mcp_call.in_progress est retourné lorsqu’un appel d’outil MCP démarre le traitement.

Event structure

{
  "type": "response.mcp_call.in_progress",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string Le type d’événement doit être response.mcp_call.in_progress.
item_id string ID de l’élément d’appel de l’outil mcp.
output_index integer Index de l’élément de sortie dans la réponse.

response.mcp_call.completed

L’événement de serveur response.mcp_call.completed est retourné lorsqu’un appel d’outil MCP se termine correctement.

Event structure

{
  "type": "response.mcp_call.completed",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string Le type d’événement doit être response.mcp_call.completed.
item_id string ID de l’élément d’appel de l’outil mcp.
output_index integer Index de l’élément de sortie dans la réponse.

response.mcp_call.failed

L’événement de serveur response.mcp_call.failed est retourné lorsqu’un appel d’outil MCP échoue.

Event structure

{
  "type": "response.mcp_call.failed",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string Le type d’événement doit être response.mcp_call.failed.
item_id string ID de l’élément d’appel de l’outil mcp.
output_index integer Index de l’élément de sortie dans la réponse.

response.output_item.added

L’événement serveur response.output_item.added est retourné quand un nouvel élément est créé lors de la génération de la réponse.

Event structure

{
  "type": "response.output_item.added",
  "response_id": "<response_id>",
  "output_index": 0
}

Properties

Field Type Description
type string Le type d’événement doit être response.output_item.added.
response_id string ID de la réponse à laquelle appartient l’élément.
output_index integer Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem Élément qui a été ajouté.

response.output_item.done

L’événement serveur response.output_item.done est retourné quand un élément a fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Event structure

{
  "type": "response.output_item.done",
  "response_id": "<response_id>",
  "output_index": 0
}

Properties

Field Type Description
type string Le type d’événement doit être response.output_item.done.
response_id string ID de la réponse à laquelle appartient l’élément.
output_index integer Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem L’élément qui a fait l’objet d’une diffusion en continu.

response.text.delta

L’événement serveur response.text.delta est retourné quand le texte généré par le modèle est mis à jour. Le texte correspond à la partie de contenu text d’un élément de message de l’assistant.

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 Le type d’événement doit être response.text.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta de texte.

response.text.done

L’événement serveur response.text.done est retourné quand le texte généré par le modèle a fait l’objet d’une diffusion en continu. Le texte correspond à la partie de contenu text d’un élément de message de l’assistant.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

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 Le type d’événement doit être response.text.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index integer Index de l’élément de sortie dans la réponse.
content_index integer Index du composant de contenu dans le tableau de contenu de l’élément.
text string Contenu du texte final.

Components

Audio Formats

RealtimeAudioFormat

Format audio de base utilisé pour l’audio d’entrée.

Allowed Values:

  • pcm16 - Format audio PCM 16 bits
  • g711_ulaw - G.711 format audio μ-law
  • g711_alaw - Format audio A-law G.711

RealtimeOutputAudioFormat

Format audio utilisé pour l’audio de sortie avec des taux d’échantillonnage spécifiques.

Allowed Values:

  • pcm16 - Format audio PCM 16 bits au taux d’échantillonnage par défaut (24 kHz)
  • pcm16_8000hz - Format audio PCM 16 bits au taux d’échantillonnage 8kHz
  • pcm16_16000hz - Format audio PCM 16 bits au taux d’échantillonnage 16kHz
  • g711_ulaw - G.711 μ-law (mu-law) format audio au taux d’échantillonnage 8kHz
  • g711_alaw - Format audio de loi A G.711 au taux d’échantillonnage de 8 kHz

RealtimeAudioInputTranscriptionSettings

Configuration de la transcription audio d’entrée.

Field Type Description
model string Modèle de transcription.
Pris en charge avec gpt-realtime et gpt-realtime-mini:
whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.
Pris en charge avec tous les autres modèles et agents : azure-speech
language string Code de langue facultatif dans BCP-47 (par exemple, en-US), ou ISO-639-1 (par exemple, en) ou plusieurs langues avec détection automatique , (par exemple, en,zh).

Consultez la reconnaissance vocale Azure pour connaître les langues prises en charge pour l’utilisation recommandée de ce paramètre.
custom_speech object Configuration facultative pour les modèles speech personnalisés, valide uniquement pour le azure-speech modèle.
phrase_list string[] Liste facultative d’indicateurs d’expression pour la reconnaissance de biais, uniquement valide pour le azure-speech modèle.
prompt string Texte d’invite facultatif pour guider la transcription, valide uniquement pour whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe et gpt-4o-transcribe-diarize les modèles.

RealtimeInputAudioNoiseReductionSettings

Il peut s’agir des suivants :

RealtimeOpenAINoiseReduction

Configuration de la réduction du bruit OpenAI avec un champ de type explicite, disponible uniquement pour et pour gpt-realtime les gpt-realtime-mini modèles.

Field Type Description
type string near_field ou far_field

RealtimeAzureDeepNoiseSuppression

Configuration de la réduction du bruit audio d’entrée.

Field Type Description
type string Doit être "azure_deep_noise_suppression"

RealtimeInputAudioEchoCancellationSettings

Configuration de l’annulation d’écho pour le traitement audio côté serveur.

Field Type Description
type string Doit être "server_echo_cancellation"

Voice Configuration

RealtimeVoice

Union de toutes les configurations vocales prises en charge.

Il peut s’agir des suivants :

RealtimeOpenAIVoice

Configuration vocale OpenAI avec champ de type explicite.

Field Type Description
type string Doit être "openai"
name string Nom de la voix OpenAI : alloy, , ash, balladcoralechosageshimmerverse, marincedar

RealtimeAzureVoice

Base pour les configurations vocales Azure. Il s’agit d’une union discriminatoire avec différents types :

RealtimeAzureStandardVoice

Configuration vocale standard Azure.

Field Type Description
type string Doit être "azure-standard"
name string Nom de la voix (ne peut pas être vide)
temperature number Optional. Température comprise entre 0,0 et 1,0
custom_lexicon_url string Optional. URL vers le lexique personnalisé
custom_text_normalization_url string Optional. URL de normalisation de texte personnalisée
prefer_locales string[] Optional. Preferred locales
Les paramètres régionaux préférés modifient les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsqu’il parle espagnol, il utilise l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie sur , l’accent anglais est anglais britannique et l’accent espagnol est espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
locale string Optional. Locale specification
Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois.
style string Optional. Voice style
pitch string Optional. Pitch adjustment
rate string Optional. Ajustement de la fréquence vocale
volume string Optional. Volume adjustment
RealtimeAzureCustomVoice

Configuration vocale personnalisée Azure (par défaut pour les voix personnalisées).

Field Type Description
type string Doit être "azure-custom"
name string Nom de la voix (ne peut pas être vide)
endpoint_id string ID de point de terminaison (ne peut pas être vide)
temperature number Optional. Température comprise entre 0,0 et 1,0
custom_lexicon_url string Optional. URL vers le lexique personnalisé
custom_text_normalization_url string Optional. URL de normalisation de texte personnalisée
prefer_locales string[] Optional. Preferred locales
Les paramètres régionaux préférés modifient les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. Par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsqu’il parle espagnol, il utilise l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie sur , l’accent anglais est anglais britannique et l’accent espagnol est espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
locale string Optional. Locale specification
Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois.
style string Optional. Voice style
pitch string Optional. Pitch adjustment
rate string Optional. Ajustement de la fréquence vocale
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

Configuration vocale personnelle Azure.

Field Type Description
type string Doit être "azure-personal"
name string Nom de la voix (ne peut pas être vide)
temperature number Optional. Température comprise entre 0,0 et 1,0
model string Modèle de base sous-jacent : DragonLatestNeural, DragonHDOmniLatestNeural, MAI-Voice-1
custom_lexicon_url string Optional. URL vers le lexique personnalisé
custom_text_normalization_url string Optional. URL de normalisation de texte personnalisée
prefer_locales string[] Optional. Preferred locales
Préférez les paramètres régionaux pour modifier les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. Par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsqu’il parle espagnol, il utilise l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie sur , l’accent anglais est anglais britannique et l’accent espagnol est espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
locale string Optional. Locale specification
Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois.
pitch string Optional. Pitch adjustment
rate string Optional. Ajustement de la fréquence vocale
volume string Optional. Volume adjustment

Turn Detection

RealtimeTurnDetection

Configuration pour la détection de virage. Il s’agit d’une union discriminatoire qui prend en charge plusieurs types VAD.

RealtimeServerVAD

Détection de tour basée sur VAD de base.

Field Type Description
type string Doit être "server_vad"
threshold float Optional. Seuil d’activation (0.0-1.0) (par défaut : 0.5)
prefix_padding_ms integer Optional. Remplissage audio avant le démarrage de la voix (par défaut : 300)
silence_duration_ms integer Optional. Durée du silence pour détecter la fin de la voix (valeur par défaut : 500)
speech_duration_ms integer Optional. Durée minimale de la reconnaissance vocale (valeur par défaut : 200)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’énoncé de bout en bout
create_response boolean Optional. Activez ou désactivez si une réponse est générée (valeur par défaut : true).
interrupt_response boolean Optional. Activez ou désactivez l’interruption de chaland (valeur par défaut : true).
auto_truncate boolean Optional. Troncation automatique lors de l’interruption (valeur par défaut : false)
RealtimeOpenAISemanticVAD

Configuration sémantique VAD OpenAI qui utilise un modèle pour déterminer quand l’utilisateur a fini de parler. Disponible uniquement pour et gpt-realtime les gpt-realtime-mini modèles.

Field Type Description
type string Doit être "semantic_vad"
eagerness string Optional. Il s’agit d’un moyen de contrôler la rapidité avec laquelle le modèle est d’interrompre l’utilisateur, en paramétrant le délai d’attente maximal. En mode transcription, même si le modèle ne répond pas, il affecte la façon dont l’audio est segmenté.
Les valeurs suivantes sont autorisées :
- auto (valeur par défaut) équivaut à medium,
- low permet à l’utilisateur de prendre son temps de parler,
- high segmente l’audio dès que possible.

Si vous souhaitez que le modèle réponde plus souvent en mode conversation, ou que des événements de transcription soient renvoyés plus rapidement en mode transcription, vous pouvez définir la promptitude sur high.
En revanche, si vous souhaitez permettre à l’utilisateur de parler sans interruption en mode conversation, ou en mode transcription si vous souhaitez des blocs de transcription plus volumineux, vous pouvez définir l’impatience à low.
create_response boolean Optional. Activez ou désactivez si une réponse est générée (valeur par défaut : true).
interrupt_response boolean Optional. Activez ou désactivez l’interruption de chaland (valeur par défaut : true).
RealtimeAzureSemanticVAD

VAD sémantique Azure, qui détermine quand l’utilisateur démarre et parle à l’aide d’un modèle de reconnaissance vocale sémantique, fournissant une détection plus robuste dans des environnements bruyants.

Field Type Description
type string Doit être "azure_semantic_vad"
threshold float Optional. Seuil d’activation (valeur par défaut : 0,5)
prefix_padding_ms integer Optional. Remplissage audio avant la reconnaissance vocale (par défaut : 300)
silence_duration_ms integer Optional. Durée du silence pour la fin de la voix (valeur par défaut : 500)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’EOU
speech_duration_ms integer Optional. Durée minimale de la voix (valeur par défaut : 80)
remove_filler_words boolean Optional. Supprimer les mots de remplissage (valeur par défaut : false)
languages string[] Optional. Supports English. Les autres langues sont ignorées (valeur par défaut : aucun).
create_response boolean Optional. Activez ou désactivez si une réponse est générée (valeur par défaut : true).
interrupt_response boolean Optional. Activez ou désactivez l’interruption de chaland (valeur par défaut : true).
auto_truncate boolean Optional. Troncation automatique lors de l’interruption (valeur par défaut : false)
RealtimeAzureSemanticVADMultilingual

VAD sémantique Azure (variante par défaut).

Field Type Description
type string Doit être "azure_semantic_vad_multilingual"
threshold float Optional. Seuil d’activation (valeur par défaut : 0,5)
prefix_padding_ms integer Optional. Remplissage audio avant la reconnaissance vocale (par défaut : 300)
silence_duration_ms integer Optional. Durée du silence pour la fin de la voix (valeur par défaut : 500)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’EOU
speech_duration_ms integer Optional. Durée minimale de la voix (valeur par défaut : 80)
remove_filler_words boolean Optional. Supprimer les mots de remplissage (valeur par défaut : false)
languages string[] Optional. Prend en charge l’anglais, l’espagnol, le français, l’italien, l’allemand (DE), le japonais, le portugais, le chinois, le coréen, l’hindi. Les autres langues sont ignorées (valeur par défaut : aucun).
create_response boolean Optional. Activez ou désactivez si une réponse est générée (valeur par défaut : true).
interrupt_response boolean Optional. Activez ou désactivez l’interruption de chaland (valeur par défaut : true).
auto_truncate boolean Optional. Troncation automatique lors de l’interruption (valeur par défaut : false)

RealtimeEOUDetection

Azure End-of-Utterance (EOU) peut indiquer quand l’utilisateur final a cessé de parler tout en autorisant des pauses naturelles. La détection de la fin d'énoncé peut réduire considérablement les signaux de fin de tour prématurés sans ajouter de latence perceptible par l'utilisateur.

Field Type Description
model string semantic_detection_v1 Peut prendre en charge l’anglais ou semantic_detection_v1_multilingual l’anglais, l’espagnol, le français, l’italien, l’allemand (DE), le japonais, le portugais, le chinois, le coréen, l’hindi
threshold_level string Optional. Niveau de seuil de détection (low, mediumhigh et default), le paramètre par défaut est égalmedium. Avec un paramètre inférieur, la probabilité que la phrase soit terminée sera plus élevée.
timeout_ms number Optional. Durée maximale en millisecondes d’attente d’un plus grand nombre de paroles utilisateur. La valeur par défaut est 1000 ms.

Avatar Configuration

RealtimeAvatarConfig

Configuration pour le streaming et le comportement des avatars.

Field Type Description
ice_servers RealtimeIceServer[] Optional. Serveurs ICE pour WebRTC
character string Nom de caractère ou ID de l’avatar
style string Optional. Style avatar (ton émotionnel, style parlant)
customized boolean Indique si l’avatar est personnalisé
video RealtimeVideoParams Optional. Video configuration
scene RealtimeAvatarScene Optional. Configuration du niveau de zoom, de la position, de la rotation et de l’amplitude de mouvement de l’avatar dans l’image vidéo
output_protocol string Optional. Protocole de sortie pour le streaming d’avatar. La valeur par défaut est webrtc
output_audit_audio boolean Optional. Lorsqu’elle est activée, transfère l’audio d’audit via WebSocket à des fins de révision/débogage, même lorsque la sortie de l’avatar est fournie via WebRTC. La valeur par défaut est false

RealtimeIceServer

Configuration du serveur ICE pour la négociation de connexion WebRTC.

Field Type Description
urls string[] URL du serveur ICE (points de terminaison TURN ou STUN)
username string Optional. Nom d’utilisateur pour l’authentification
credential string Optional. Informations d’identification pour l’authentification

RealtimeVideoParams

Paramètres de streaming vidéo pour avatar.

Field Type Description
bitrate integer Optional. Vitesse de transmission en bits par seconde (valeur par défaut : 2000000)
codec string Optional. Codec vidéo, actuellement uniquement h264 (par défaut : h264)
crop RealtimeVideoCrop Optional. Cropping settings
resolution RealtimeVideoResolution Optional. Resolution settings

RealtimeVideoCrop

Définition du rectangle de rognage vidéo.

Field Type Description
top_left integer[] Coin supérieur gauche [x, y], entiers non négatifs
bottom_right integer[] Coin inférieur droit [x, y], entiers non négatifs

RealtimeVideoResolution

Spécification de la résolution vidéo.

Field Type Description
width integer Largeur en pixels (doit être > 0)
height integer Hauteur en pixels (doit être > de 0)

RealtimeAvatarScene

Configuration du niveau de zoom, de la position, de la rotation et de l’amplitude de mouvement de l’avatar dans l’image vidéo.

Field Type Description
zoom number Optional. Niveau de zoom de l’avatar. La plage est (0, +∞). Valeurs inférieures à 1 zoom arrière, valeurs supérieures à 1 zoom avant. La valeur par défaut est 0
position_x number Optional. Position horizontale de l’avatar. La plage est [-1, 1], en tant que proportion de largeur du cadre. Les valeurs négatives se déplacent vers la gauche, les valeurs positives se déplacent vers la droite. La valeur par défaut est 0
position_y number Optional. Position verticale de l’avatar. La plage est [-1, 1], comme proportion de hauteur d’image. Les valeurs négatives se déplacent vers le haut, les valeurs positives descendent. La valeur par défaut est 0
rotation_x number Optional. Rotation autour de l’axe X (tangage). La plage est [-π, π] en radians. Les valeurs négatives pivotent vers le haut, les valeurs positives pivotent vers le bas. La valeur par défaut est 0
rotation_y number Optional. Rotation autour de l’axe Y (lacet). La plage est [-π, π] en radians. Les valeurs négatives pivotent vers la gauche, les valeurs positives pivotent vers la droite. La valeur par défaut est 0
rotation_z number Optional. Rotation autour de l’axe Z (rouleau). La plage est [-π, π] en radians. Les valeurs négatives font pivoter l’anticlockwise, les valeurs positives pivotent dans le sens des aiguilles d’une montre. La valeur par défaut est 0
amplitude number Optional. Amplitude du mouvement d’avatar. La plage est (0, 1]. Les valeurs comprises dans (0, 1) signifient une amplitude réduite, 1 signifie une amplitude totale. La valeur par défaut est 0

Animation Configuration

RealtimeAnimation

Configuration des sorties d’animation, notamment blendshapes et visemes.

Field Type Description
model_name string Optional. Nom du modèle d’animation (par défaut : "default")
outputs RealtimeAnimationOutputType[] Optional. Types de sortie (par défaut : ["blendshapes"])

RealtimeAnimationOutputType

Types de données d’animation à générer.

Allowed Values:

  • blendshapes - Données blendshapes faciales
  • viseme_id - Données d’identificateur Viseme

Session Configuration

RealtimeRequestSession

Objet de configuration de session utilisé dans session.update les événements.

Field Type Description
model string Optional. Nom du modèle à utiliser
modalities RealtimeModality[] Optional. Modalités de sortie prises en charge pour la session.

Par exemple, « modalités » : ["text », « audio"] est le paramètre par défaut qui active les modalités de texte et de sortie audio. Pour activer uniquement la sortie du texte, définissez « modalités » : ["text"]. Pour activer la sortie de l’avatar, définissez « modalités » : ["text », « audio », « avatar"]. Vous ne pouvez pas activer seulement la modalité audio.
animation RealtimeAnimation Optional. Animation configuration
voice RealtimeVoice Optional. Voice configuration
instructions string Optional. Instructions système pour le modèle. Les instructions peuvent guider l’audio de sortie si les voix OpenAI sont utilisées, mais peuvent ne pas s’appliquer aux voix Azure.
input_audio_sampling_rate integer Optional. Taux d’échantillonnage audio d’entrée en Hz (valeur par défaut : 24000 pour pcm16, 8000 pour g711_ulaw et g711_alaw)
input_audio_format RealtimeAudioFormat Optional. Format audio d’entrée (par défaut : pcm16)
output_audio_format RealtimeOutputAudioFormat Optional. Format audio de sortie (par défaut : pcm16)
input_audio_noise_reduction RealtimeInputAudioNoiseReductionSettings Configuration de la réduction du bruit audio d’entrée. Cette valeur peut être définie sur Null pour la désactiver. La réduction du bruit filtre l’audio ajouté à la mémoire tampon audio d’entrée avant son envoi à VAD et au modèle. Le filtrage de l’audio peut améliorer la précision de détection de VAD et de la prise de parole (réduisant les faux positifs) et les performances du modèle en améliorant la perception de l’audio d’entrée.

Cette propriété est nullable.
input_audio_echo_cancellation RealtimeInputAudioEchoCancellationSettings Configuration de l’annulation de l’écho audio d’entrée. Cette valeur peut être définie sur Null pour la désactiver. Cette annulation d’écho côté service peut aider à améliorer la qualité de l’audio d’entrée en réduisant l’impact de l’écho et de la réverbération.

Cette propriété est nullable.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Configuration de la transcription audio d’entrée. La configuration est null (désactivée) par défaut. La transcription audio d’entrée n’est pas native du modèle, car le modèle consomme directement l’audio. La transcription s’exécute de façon asynchrone via le terminal /audio/transcriptions et doit être considérée comme un guide pour le contenu audio d’entrée plutôt que comme ce que le modèle a réellement entendu. Pour obtenir des conseils supplémentaires sur le service de transcription, le client peut éventuellement définir la langue et demander la transcription.

Cette propriété est nullable.
turn_detection RealtimeTurnDetection Paramètres de détection du tour pour la session. Cette valeur peut être définie sur Null pour la désactiver.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.

Valeurs autorisées : auto, none et required. Sinon, vous pouvez indiquer le nom de la fonction à utiliser.
temperature number Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max_response_output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

La valeur par défaut est "inf".
reasoning_effort ReasoningEffort Optional. Limite l’effort de raisonnement pour les modèles de raisonnement. Pour plus d’informations , consultez la documentation Azure Foundry . La réduction de l’effort de raisonnement peut entraîner des réponses plus rapides et l’utilisation d’un nombre inférieur de jetons sur le raisonnement dans une réponse.
avatar RealtimeAvatarConfig Optional. Avatar configuration
output_audio_timestamp_types RealtimeAudioTimestampType[] Optional. Types d’horodatages pour l’audio de sortie

RealtimeModality

Modalités de sortie de session prises en charge.

Allowed Values:

  • text - Sortie de texte
  • audio - Sortie audio
  • animation - Sortie d’animation
  • avatar - Sortie vidéo avatar

RealtimeAudioTimestampType

Types d’horodatages de sortie pris en charge dans le contenu de réponse audio.

Allowed Values:

  • word - Horodatages par mot dans l’audio de sortie

ReasoningEffort

Limite l’effort de raisonnement pour les modèles de raisonnement. Consultez la documentation du modèle pour connaître les valeurs prises en charge pour chaque modèle. La réduction de l’effort de raisonnement peut entraîner des réponses plus rapides et l’utilisation d’un nombre inférieur de jetons sur le raisonnement dans une réponse.

Allowed Values:

  • none - Aucun effort de raisonnement
  • minimal - Effort de raisonnement minimal
  • low - Effort de raisonnement faible - réponses plus rapides avec moins de raisonnement
  • medium - Effort de raisonnement moyen - équilibré entre la vitesse et la profondeur du raisonnement
  • high - Effort de raisonnement élevé - raisonnement plus approfondi, peut prendre plus de temps
  • xhigh - Effort de raisonnement très élevé - profondeur de raisonnement maximale

Tool Configuration

Nous prenons en charge deux types d’outils : les appels de fonction et les outils MCP qui vous permettent de vous connecter à un serveur mcp.

RealtimeTool

Définition de l’outil pour l’appel de fonction.

Field Type Description
type string Doit être "function"
name string Function name
description string Instructions relatives à la description et à l’utilisation de la fonction
parameters object Paramètres de fonction en tant qu’objet de schéma JSON

RealtimeToolChoice

Stratégie de sélection d’outils.

Il peut s’agir des suivants :

  • "auto" - Laisser le modèle choisir
  • "none" - N’utilisez pas d’outils
  • "required" - Doit utiliser un outil
  • { "type": "function", "name": "function_name" } - Utiliser une fonction spécifique

MCPTool

Configuration de l’outil MCP.

Field Type Description
type string Doit être "mcp"
server_label string Required. Étiquette du serveur MCP.
server_url string Required. URL du serveur MCP.
allowed_tools string[] Optional. Liste des noms d’outils autorisés. S’il n’est pas spécifié, tous les outils sont autorisés.
headers object Optional. En-têtes supplémentaires à inclure dans les demandes MCP.
authorization string Optional. Jeton d’autorisation pour les demandes MCP.
require_approval chaîne ou dictionnaire Optional.
Si elle est définie sur une chaîne, la valeur doit être never ou always.
Si la valeur est définie sur un dictionnaire, elle doit être au format {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}.
La valeur par défaut est always.
Lorsqu’elle est définie alwayssur , l’exécution de l’outil nécessite l’approbation, mcp_approval_request est envoyée au client lorsque l’argument mcp est terminé et est exécuté uniquement lorsque mcp_approval_response avec approve=true est reçu.
Lorsque la valeur est définie never, l’outil est exécuté automatiquement sans approbation.

RealtimeConversationResponseItem

Il s’agit d’un type d’union qui peut être l’un des éléments suivants :

RealtimeConversationUserMessageItem

Élément de message utilisateur.

Field Type Description
id string ID unique de l’élément.
type string Doit être "message"
object string Doit être "conversation.item"
role string Doit être "user"
content RealtimeInputTextContentPart Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationAssistantMessageItem

Élément de message assistant.

Field Type Description
id string ID unique de l’élément.
type string Doit être "message"
object string Doit être "conversation.item"
role string Doit être "assistant"
content RealtimeOutputTextContentPart[] ou RealtimeOutputAudioContentPart[] Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationSystemMessageItem

Élément de message système.

Field Type Description
id string ID unique de l’élément.
type string Doit être "message"
object string Doit être "conversation.item"
role string Doit être "system"
content RealtimeInputTextContentPart[] Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationFunctionCallItem

Élément de demande d’appel de fonction.

Field Type Description
id string ID unique de l’élément.
type string Doit être "function_call"
object string Doit être "conversation.item"
name string Nom de la fonction à appeler.
arguments string Arguments de l’appel de fonction sous forme de chaîne JSON.
call_id string ID unique de l’appel de fonction.
status RealtimeItemStatus État de l’élément.

RealtimeConversationFunctionCallOutputItem

Élément de réponse d’appel de fonction.

Field Type Description
id string ID unique de l’élément.
type string Doit être "function_call_output"
object string Doit être "conversation.item"
name string Nom de la fonction appelée.
output string Sortie de l’appel de fonction.
call_id string ID unique de l’appel de fonction.
status RealtimeItemStatus État de l’élément.

RealtimeConversationMCPListToolsItem

Élément de réponse des outils de liste MCP.

Field Type Description
id string ID unique de l’élément.
type string Doit être "mcp_list_tools"
server_label string Étiquette du serveur MCP.

RealtimeConversationMCPCallItem

Élément de réponse d’appel MCP.

Field Type Description
id string ID unique de l’élément.
type string Doit être "mcp_call"
server_label string Étiquette du serveur MCP.
name string Nom de l’outil à appeler.
approval_request_id string ID de demande d’approbation pour l’appel MCP.
arguments string Arguments de l’appel MCP.
output string Sortie de l’appel MCP.
error object Détails de l’erreur si l’appel MCP a échoué.

RealtimeConversationMCPApprovalRequestItem

Élément de demande d’approbation MCP.

Field Type Description
id string ID unique de l’élément.
type string Doit être "mcp_approval_request"
server_label string Étiquette du serveur MCP.
name string Nom de l’outil à appeler.
arguments string Arguments de l’appel MCP.

RealtimeItemStatus

État des éléments de conversation.

Allowed Values:

  • in_progress - En cours de traitement
  • completed -Réussi
  • incomplete - Incomplet (interrompu ou défaillant)

RealtimeContentPart

Composant de contenu dans un message.

RealtimeInputTextContentPart

Composant de contenu texte.

Field Type Description
type string Doit être "input_text"
text string Contenu du texte

RealtimeOutputTextContentPart

Composant de contenu texte.

Field Type Description
type string Doit être "text"
text string Contenu du texte

RealtimeInputAudioContentPart

Composant contenu audio.

Field Type Description
type string Doit être "input_audio"
audio string Optional. Données audio encodées en base64
transcript string Optional. Audio transcript

RealtimeOutputAudioContentPart

Composant contenu audio.

Field Type Description
type string Doit être "audio"
audio string Données audio encodées en base64
transcript string Optional. Audio transcript

Response Objects

RealtimeResponse

Objet response représentant une réponse d’inférence de modèle.

Field Type Description
id string Optional. Response ID
object string Optional. Toujours "realtime.response"
status RealtimeResponseStatus Optional. Response status
status_details RealtimeResponseStatusDetails Optional. Status details
output RealtimeConversationResponseItem[] Optional. Output items
usage RealtimeUsage Optional. Statistiques d’utilisation des jetons
conversation_id string Optional. ID de conversation associé
voice RealtimeVoice Optional. Voix utilisée pour la réponse
modalities string[] Optional. Modalités de sortie utilisées
output_audio_format RealtimeOutputAudioFormat Optional. Format audio utilisé
temperature number Optional. Temperature used
max_response_output_tokens Entier ou « inf » Optional. Nombre maximal de jetons utilisés

RealtimeResponseStatus

Valeurs d’état de la réponse.

Allowed Values:

  • in_progress - La réponse est générée
  • completed - Réponse terminée avec succès
  • cancelled - La réponse a été annulée
  • incomplete - Réponse incomplète (interrompue)
  • failed - Échec de la réponse avec une erreur

RealtimeUsage

Statistiques d’utilisation des jetons.

Field Type Description
total_tokens integer Nombre total de jetons utilisés
input_tokens integer Jetons d'entrée utilisés
output_tokens integer Jetons de sortie générés
input_token_details TokenDetails Répartition des jetons d’entrée
output_token_details TokenDetails Répartition des jetons de sortie

TokenDetails

Répartition détaillée de l’utilisation des jetons.

Field Type Description
cached_tokens integer Optional. Jetons mis en cache utilisés
text_tokens integer Optional. Jetons de texte utilisés
audio_tokens integer Optional. Jetons audio utilisés

Error Handling

RealtimeErrorDetails

Objet d’informations d’erreur.

Field Type Description
type string Type d’erreur (par exemple, "invalid_request_error", "server_error")
code string Optional. Code d’erreur spécifique
message string Description d’erreur lisible par l’homme
param string Optional. Paramètre lié à l’erreur
event_id string Optional. ID de l’événement client qui a provoqué l’erreur

RealtimeConversationRequestItem

Vous utilisez l’objet RealtimeConversationRequestItem pour créer un élément dans la conversation via l’événement conversation.item.create.

Il s’agit d’un type d’union qui peut être l’un des éléments suivants :

RealtimeSystemMessageItem

Élément de message système.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : message
role string Rôle du message.

Valeurs autorisées : system
content tableau des parties RealtimeInputTextContentPart Contenu du message.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeUserMessageItem

Élément de message utilisateur.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : message
role string Rôle du message.

Valeurs autorisées : user
content array of RealtimeInputTextContentPart ou RealtimeInputAudioContentPart Contenu du message.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeAssistantMessageItem

Élément de message d’assistant.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : message
role string Rôle du message.

Valeurs autorisées : assistant
content array de RealtimeOutputTextContentPart Contenu du message.

RealtimeFunctionCallItem

Élément d’appel de fonction.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : function_call
name string Nom de la fonction à appeler.
arguments string Arguments de l’appel de fonction sous forme de chaîne JSON.
call_id string ID de l’élément d’appel de fonction.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeFunctionCallOutputItem

Élément de sortie d’appel de fonction.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : function_call_output
call_id string ID de l’élément d’appel de fonction.
output string La sortie de l’appel de fonction, il s’agit d’une chaîne de forme libre avec le résultat de la fonction, peut également être vide.
id string ID unique de l’élément. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeMCPApprovalResponseItem

Élément de réponse d’approbation MCP.

Field Type Description
type string Type de l’élément.

Valeurs autorisées : mcp_approval_response
approve boolean Indique si la demande MCP est approuvée.
approval_request_id string ID de la demande d’approbation MCP.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeFunctionTool

Définition d’un outil de fonction tel qu’utilisé par le point de terminaison en temps réel.

Field Type Description
type string Type de l’outil.

Valeurs autorisées : function
name string Nom de la fonction.
description string Description de la fonction, y compris les instructions d’utilisation. Par exemple, « Utilisez cette fonction pour obtenir l’heure actuelle ».
parameters object Paramètres de la fonction sous la forme d’un objet JSON.

RealtimeItemStatus

Allowed Values:

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Field Type Description
type string Le type de la partie contenu.

Valeurs autorisées : audio
transcript string Transcription de l’audio.

Cette propriété est nullable.

RealtimeResponseFunctionCallItem

Field Type Description
type string Type de l’élément.

Valeurs autorisées : function_call
name string Nom de l’élément d’appel de fonction.
call_id string ID de l’élément d’appel de fonction.
arguments string Arguments de l’élément d’appel de fonction.
status RealtimeItemStatus État de l’élément.

RealtimeResponseFunctionCallOutputItem

Field Type Description
type string Type de l’élément.

Valeurs autorisées : function_call_output
call_id string ID de l’élément d’appel de fonction.
output string Sortie de l’élément d’appel de fonction.

RealtimeResponseOptions

Field Type Description
modalities array Modalités de sortie de la réponse.

Valeurs autorisées : text, audio

Par exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active les modalités de sortie audio et de texte. Pour activer uniquement la sortie de texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer seulement la modalité audio.
instructions string Instructions (message système) pour guider les réponses du modèle.
voice RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois que la voix est utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être changée.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.
temperature number Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max_response_output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

La valeur par défaut est "inf".
reasoning_effort ReasoningEffort Optional. Limite l’effort de raisonnement pour les modèles de raisonnement. Consultez la documentation du modèle pour connaître les valeurs prises en charge pour chaque modèle. La réduction de l’effort de raisonnement peut entraîner des réponses plus rapides et l’utilisation d’un nombre inférieur de jetons sur le raisonnement dans une réponse.
conversation string Contrôle la conversation à laquelle la réponse est ajoutée. Les valeurs prises en charge sont auto et none.

La valeur auto (ou ne pas définir cette propriété) garantit que le contenu de la réponse est ajouté à la conversation par défaut de la session.

Définissez cette propriété sur none pour créer une réponse hors bande où les éléments ne seront pas ajoutés à la conversation par défaut.

La valeur par défaut est "auto"
metadata map Ensemble de jusqu’à 16 paires clé-valeur pouvant être attachées à un objet. Cela peut être utile pour stocker des informations supplémentaires sur l'objet dans un format structuré. Les clés peuvent contenir au maximum 64 caractères et les valeurs peuvent contenir au maximum 512 caractères.

Par exemple : metadata: { topic: "classification" }

RealtimeResponseSession

L’objet RealtimeResponseSession représente une session dans l’API Realtime. Il est utilisé dans certains des événements de serveur, tels que :

Field Type Description
object string Objet de session.

Valeurs autorisées : realtime.session
id string ID unique de la session.
model string Modèle utilisé pour la session.
modalities array Modalités de sortie de la session.

Valeurs autorisées : text, audio

Par exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active les modalités de sortie audio et de texte. Pour activer uniquement la sortie de texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer seulement la modalité audio.
instructions string Les instructions (le message système) pour guider les réponses texte et audio du modèle.

Voici quelques exemples d’instructions pour guider le contenu et le format des réponses texte et audio :
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Voici quelques exemples d’instructions pour guider le comportement audio :
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Bien que le modèle ne suive pas toujours ces instructions, elles fournissent de l’aide sur le comportement souhaité.
voice RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois que la voix est utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être changée.
input_audio_sampling_rate integer Taux d’échantillonnage pour l’audio d’entrée.
input_audio_format RealtimeAudioFormat Format de l’entrée audio.
output_audio_format RealtimeAudioFormat Format de la sortie audio.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Paramètres de transcription de l’entrée audio.

Cette propriété est nullable.
turn_detection RealtimeTurnDetection Paramètres de détection du tour pour la session.

Cette propriété est nullable.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.
temperature number Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max_response_output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

RealtimeResponseStatusDetails

Field Type Description
type RealtimeResponseStatus État de la réponse.

RealtimeRateLimitsItem

Field Type Description
name string Nom de la propriété limite de débit sur laquelle cet élément contient des informations.
limit integer Limite maximale configurée pour cette propriété de limite de débit.
remaining integer Quota restant disponible par rapport à la limite configurée pour cette propriété de limite de débit.
reset_seconds number Temps restant, en secondes, jusqu’à ce que cette propriété de limite de débit soit réinitialisée.