Partager via


Informations de référence sur l’API live vocale

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).

Principales fonctionnalités

  • 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 configurables, instructions et paramètres de réponse

Événements clients

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

Événement Descriptif
session.update Mettre à jour la configuration de session, y compris la voix, les modalités, 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
mcp_approval_response Envoyer une approbation ou un rejet pour un appel d’outil MCP qui nécessite une approbation

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, 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "session.avatar.connect"
client_sdp ficelle Offre SDP du client pour l’établissement de connexions WebRTC

input_audio_buffer.append

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "input_audio_buffer.append"
audio ficelle Données audio encodées en base64

input_audio_buffer.commit

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

Structure d’événements

{
  "type": "input_audio_buffer.commit"
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "input_audio_buffer.commit"

input_audio_buffer.clear

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

Structure d’événements

{
  "type": "input_audio_buffer.clear"
}

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.create"
previous_item_id ficelle 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 l’appel de fonction

{
  "type": "conversation.item.create",
  "item": {
    "type": "function_call",
    "name": "get_weather",
    "call_id": "call_123",
    "arguments": "{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"
  }
}

Exemple avec l’appel MCP

{
  "type": "conversation.item.create",
  "item": {
    "type": "mcp_call",
    "approval_request_id": null,
    "arguments": "",
    "server_label": "deepwiki",
    "name": "ask_question",
    "output": null,
    "error": null
  }
}

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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.retrieve"
item_id ficelle 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.

Structure d’événements

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

Propriétés

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

conversation.item.delete

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.delete"
item_id ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

{
  "type": "response.cancel"
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.cancel"

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être conversation.item.retrieve.
item_id ficelle ID de l’élément à récupérer.
event_id ficelle ID de l'événement.

RealtimeClientEventConversationItemTruncate

L’événement client conversation.item.truncate est utilisé pour tronquer l’audio d’un message assistant précédent. Le serveur produit de l’audio plus rapidement que en temps réel, de sorte que cet événement est utile lorsque l’utilisateur interrompt la troncation de l’audio qui a été envoyé au client mais qui n’a pas encore été lu. La compréhension du serveur de l’audio avec la lecture du client est synchronisée.

La troncation audio supprime la transcription de texte côté serveur pour s’assurer qu’il n’y a pas de texte dans le contexte auquel l’utilisateur ne sait pas.

Si l’événement client réussit, le serveur répond avec un conversation.item.truncated événement.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être conversation.item.truncate.
item_id ficelle ID de l’élément de message assistant à tronquer. Seuls les éléments de message assistant peuvent être tronqués.
content_index entier Index de la partie de contenu à tronquer. Définissez cette propriété sur « 0 ».
audio_end_ms entier Durée inclusive jusqu’à laquelle l’audio est tronqué, en millisecondes. Si le audio_end_ms est supérieur à la durée audio réelle, le serveur répond avec une erreur.

RealtimeClientEventInputAudioBufferAppend

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. Lorsque le serveur VAD 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 à partir du client peut permettre au VAD d’être plus réactif.

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

Structure d’événements

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

Propriétés

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

RealtimeClientEventInputAudioBufferClear

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 input_audio_buffer.cleared événement.

Structure d’événements

{
  "type": "input_audio_buffer.clear"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

L’événement client input_audio_buffer.commit est utilisé pour valider la mémoire tampon audio d’entrée utilisateur, ce qui crée un élément de message utilisateur dans la conversation. L’audio est transcrit s’il 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 du 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 input_audio_buffer.committed événement.

Structure d’événements

{
  "type": "input_audio_buffer.commit"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être input_audio_buffer.commit.

RealtimeClientEventResponseCancel

L’événement client response.cancel est utilisé pour annuler une réponse en cours.

Le serveur répond avec un response.done événement avec l’état response.status=cancelled.

Structure d’événements

{
  "type": "response.cancel"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.cancel.

RealtimeClientEventResponseCreate

L’événement client response.create est utilisé pour indiquer au serveur de créer une réponse via l’inférence du modèle. Lorsque la session est configurée en mode VAD du serveur, le serveur crée automatiquement des réponses.

Une réponse inclut au moins un item, et peut avoir deux, auquel cas le second est un appel de fonction. Ces éléments sont ajoutés à l’historique des conversations.

Le serveur répond avec un response.created événement, un ou plusieurs événements d’élément et de contenu (tels que conversation.item.created et response.content_part.added) et enfin un response.done événement pour indiquer que la réponse est terminée.

Structure d’événements

{
  "type": "response.create"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.create.
response RealtimeResponseOptions Options de réponse.

RealtimeClientEventSessionUpdate

L’événement client session.update est utilisé pour mettre à jour la configuration par défaut de la session. Le client peut envoyer cet événement à tout moment pour mettre à jour la configuration de session, et n’importe quel champ peut être mis à jour à tout moment, à l’exception de la voix.

Seuls les champs présents sont mis à jour. Pour effacer un champ (par exemple instructions), passez une chaîne vide.

Le serveur répond avec un session.updated événement qui contient la configuration effective complète.

Structure d’événements

{
  "type": "session.update"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être session.update.
session RealtimeRequestSession Configuration de session.

Événements de serveur

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

Événement Descriptif
erreur Indique qu’une erreur s’est produite pendant le traitement
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.tronqué 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.commit La mémoire tampon audio d’entrée a été validée pour le 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_stop 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.created"
previous_item_id ficelle 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é.

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.created"
item RealtimeConversationResponseItem Élément de conversation créé

conversation.item.tronqué

L’événement serveur conversation.item.truncated est retourné lorsque le client tronque un élément de message audio assistant antérieur avec un conversation.item.truncate événement. 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 de texte côté serveur pour s’assurer qu’il n’y a pas de texte dans le contexte auquel l’utilisateur ne sait pas.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être conversation.item.truncated.
item_id ficelle ID de l’élément de message assistant tronqué.
content_index entier Index de la partie de contenu tronquée.
audio_end_ms entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "conversation.item.deleted"
item_id ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle 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.

Structure d’événements

{
  "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": []
  }
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.output_item.added"
response_id ficelle ID de la réponse à laquelle cet élément appartient
output_index entier 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é.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.output_item.done"
response_id ficelle ID de la réponse à laquelle cet élément appartient
output_index entier 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 de serveur response.content_part.added est retourné lorsqu’une nouvelle partie de contenu est ajoutée à un élément de message assistant pendant la génération de réponse.

Structure d’événements

{
  "type": "response.content_part.added",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "part": {
    "type": "text",
    "text": ""
  }
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.content_part.added"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément auquel appartient cette partie de contenu
output_index entier Index de l’élément dans la réponse
content_index entier Index de cette partie de contenu dans l’élément
part RealtimeContentPart Partie de contenu ajoutée

response.content_part.done

L’événement de serveur response.content_part.done est retourné lorsqu’une partie de contenu est effectuée en continu dans un élément de message assistant.

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.content_part.done"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément auquel appartient cette partie de contenu
output_index entier Index de l’élément dans la réponse
content_index entier 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.

Structure d’événements

{
  "type": "response.text.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm"
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.text.delta"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
delta ficelle Contenu de texte incrémentiel

response.text.done

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.text.done"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
texte ficelle 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.

Structure d’événements

{
  "type": "response.audio.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.audio.delta"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
delta ficelle Bloc de données audio encodé en base64

response.audio.done

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.audio.done"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu

response.audio_transcript.delta

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

Structure d’événements

{
  "type": "response.audio_transcript.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm doing"
}

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.audio_transcript.delta"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
delta ficelle Texte de transcription incrémentielle

response.audio_transcript.done

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Doit être "response.audio_transcript.done"
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
transcript ficelle 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 la reconnaissance vocale écrite 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 server_vad mode). 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être conversation.item.input_audio_transcription.completed.
item_id ficelle ID de l’élément de message utilisateur contenant l’audio.
content_index entier Index de la partie de contenu contenant l’audio.
transcript ficelle 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.

Structure d’événements

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

Propriétés

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

conversation.item.input_audio_transcription.failed

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

Structure d’événements

{
  "type": "conversation.item.input_audio_transcription.failed",
  "item_id": "<item_id>",
  "content_index": 0,
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>"
  }
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être conversation.item.input_audio_transcription.failed.
item_id ficelle ID de l’élément de message utilisateur.
content_index entier Index de la partie de contenu contenant l’audio.
erreur objet Détails de l’erreur de transcription.

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

Propriétés de l’erreur

Terrain Type Descriptif
type ficelle Type d’erreur.
code ficelle Code d’erreur, le cas échéant.
Message ficelle Message d’erreur lisible par un utilisateur.
param ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.animation_blendshapes.delta.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
frame_index entier Index du premier frame dans ce lot d’images
Cadres 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.animation_blendshapes.done.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio_timestamp.delta.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
audio_offset_ms entier Décalage audio en millisecondes à partir du début de l’audio
audio_duration_ms entier Durée du segment audio en millisecondes
texte ficelle Segment de texte correspondant à cet horodatage audio
timestamp_type ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio_timestamp.done.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.animation_viseme.delta.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu
audio_offset_ms entier Décalage audio en millisecondes à partir du début de l’audio
viseme_id entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.animation_viseme.done.
response_id ficelle ID de la réponse
item_id ficelle ID de l’élément
output_index entier Index de l’élément dans la réponse
content_index entier Index du composant de contenu

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.

erreur

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être error.
erreur objet Détails de l’erreur.

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

Propriétés de l’erreur

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

input_audio_buffer.cleared

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

Structure d’événements

{
  "type": "input_audio_buffer.cleared"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être input_audio_buffer.cleared.

input_audio_buffer.commit

L’événement de serveur input_audio_buffer.committed est retourné lorsqu’une mémoire tampon audio d’entrée est validée par le client ou automatiquement en mode VAD du serveur. La item_id propriété 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.

Structure d’événements

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

Propriétés

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

input_audio_buffer.speech_started

L’événement de serveur input_audio_buffer.speech_started est retourné en server_vad mode lorsque la reconnaissance vocale est détectée 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 des commentaires visuels à l’utilisateur.

Le client doit s’attendre à recevoir un input_audio_buffer.speech_stopped événement lorsque la reconnaissance vocale s’arrête. La item_id propriété est l’ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale. Il 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 vaD.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être input_audio_buffer.speech_started.
audio_start_ms entier 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 prefix_padding_ms configuration dans la session.
item_id ficelle ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale.

input_audio_buffer.speech_stop

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

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être input_audio_buffer.speech_stopped.
audio_end_ms entier 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 min_silence_duration_ms configuration dans la session.
item_id ficelle 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.

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être rate_limits.updated.
rate_limits array of RealtimeRateLimitsItem Liste des informations sur la limite de débit.

response.audio.delta

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

Structure d’événements

{
  "type": "response.audio.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio.delta.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta ficelle Delta des données audio encodées en base64.

response.audio.done

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

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

Structure d’événements

{
  "type": "response.audio.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio.done.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier 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é lorsque la transcription générée par le modèle de sortie audio est mise à jour.

Structure d’événements

{
  "type": "response.audio_transcript.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio_transcript.delta.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta ficelle Delta de transcription.

response.audio_transcript.done

L’événement de serveur response.audio_transcript.done est retourné lorsque la transcription générée par le modèle de sortie audio est effectuée en streaming.

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

Structure d’événements

{
  "type": "response.audio_transcript.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "transcript": "<transcript>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.audio_transcript.done.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
transcript ficelle Transcription finale de l’audio.

response.function_call_arguments.delta

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

Structure d’événements

{
  "type": "response.function_call_arguments.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "delta": "<delta>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.function_call_arguments.delta.
response_id ficelle ID de la réponse.
item_id ficelle ID de l’élément d’appel de fonction.
output_index entier Index de l’élément de sortie dans la réponse.
call_id ficelle ID de l’appel de fonction.
delta ficelle Arguments delta sous forme de chaîne JSON.

response.function_call_arguments.done

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

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

Structure d’événements

{
  "type": "response.function_call_arguments.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "arguments": "<arguments>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.function_call_arguments.done.
response_id ficelle ID de la réponse.
item_id ficelle ID de l’élément d’appel de fonction.
output_index entier Index de l’élément de sortie dans la réponse.
call_id ficelle ID de l’appel de fonction.
arguments ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être mcp_list_tools.in_progress.
item_id ficelle 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.

Structure d’événements

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propriétés
Terrain Type Descriptif
type ficelle Le type d’événement doit être mcp_list_tools.completed.
item_id ficelle 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.

Structure d’événements

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propriétés
Terrain Type Descriptif
type ficelle Le type d’événement doit être mcp_list_tools.failed.
item_id ficelle 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.

Structure d’événements

{
  "type": "response.mcp_call_arguments.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "delta": "<delta>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.mcp_call_arguments.delta.
response_id ficelle ID de la réponse.
item_id ficelle ID de l’élément d’appel de l’outil mcp.
output_index entier Index de l’élément de sortie dans la réponse.
delta ficelle 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.

Structure d’événements

{
  "type": "response.mcp_call_arguments.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "arguments": "<arguments>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.mcp_call_arguments.done.
response_id ficelle ID de la réponse.
item_id ficelle ID de l’élément d’appel de l’outil mcp.
output_index entier Index de l’élément de sortie dans la réponse.
arguments ficelle 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.mcp_call.in_progress.
item_id ficelle ID de l’élément d’appel de l’outil mcp.
output_index entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.mcp_call.completed.
item_id ficelle ID de l’élément d’appel de l’outil mcp.
output_index entier 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.

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.mcp_call.failed.
item_id ficelle ID de l’élément d’appel de l’outil mcp.
output_index entier Index de l’élément de sortie dans la réponse.

response.output_item.added

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.output_item.added.
response_id ficelle ID de la réponse à laquelle appartient l’élément.
output_index entier Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem Élément ajouté.

response.output_item.done

L’événement de serveur response.output_item.done est retourné lorsqu’un élément est terminé en streaming.

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

Structure d’événements

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

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.output_item.done.
response_id ficelle ID de la réponse à laquelle appartient l’élément.
output_index entier Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem Élément qui est effectué en streaming.

response.text.delta

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

Structure d’événements

{
  "type": "response.text.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.text.delta.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta ficelle Delta de texte.

response.text.done

L’événement de serveur response.text.done est retourné lorsque le texte généré par le modèle est terminé en streaming. Le texte correspond à la text partie de contenu d’un élément de message assistant.

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

Structure d’événements

{
  "type": "response.text.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "text": "<text>"
}

Propriétés

Terrain Type Descriptif
type ficelle Le type d’événement doit être response.text.done.
response_id ficelle ID de la réponse.
item_id ficelle ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
texte ficelle Contenu du texte final.

Components

Audio Formats

RealtimeAudioFormat

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

Valeurs autorisées :

  • 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.

Valeurs autorisées :

  • 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.

Terrain Type Descriptif
model ficelle 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 ficelle 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).
custom_speech objet Configuration facultative pour les modèles speech personnalisés, valide uniquement pour le azure-speech modèle.
phrase_list chaîne de caractères[] Liste facultative d’indicateurs d’expression pour la reconnaissance de biais, uniquement valide pour le azure-speech modèle.
prompt ficelle 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.

Terrain Type Descriptif
type ficelle near_field ou far_field

RealtimeAzureDeepNoiseSuppression

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

Terrain Type Descriptif
type ficelle Doit être "azure_deep_noise_suppression"

RealtimeInputAudioEchoCancellationSettings

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

Terrain Type Descriptif
type ficelle Doit être "server_echo_cancellation"

Configuration vocale

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.

Terrain Type Descriptif
type ficelle Doit être "openai"
nom ficelle 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.

Terrain Type Descriptif
type ficelle Doit être "azure-standard"
nom ficelle Nom vocal (ne peut pas être vide)
température nombre Optional. Température comprise entre 0,0 et 1,0
custom_lexicon_url ficelle Optional. URL vers le lexique personnalisé
prefer_locales chaîne de caractères[] Optional. Paramètres régionaux préférés
Préférer les paramètres régionaux modifie 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 lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
paramètres régionaux ficelle Optional. Spécification des paramètres régionaux
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 ficelle Optional. Style vocal
tanguer ficelle Optional. Réglage de l’emplacement
taux ficelle Optional. Ajustement de la fréquence vocale
volume ficelle Optional. Ajustement du volume
RealtimeAzureCustomVoice

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

Terrain Type Descriptif
type ficelle Doit être "azure-custom"
nom ficelle Nom vocal (ne peut pas être vide)
endpoint_id ficelle ID de point de terminaison (ne peut pas être vide)
température nombre Optional. Température comprise entre 0,0 et 1,0
custom_lexicon_url ficelle Optional. URL vers le lexique personnalisé
prefer_locales chaîne de caractères[] Optional. Paramètres régionaux préférés
Préférer les paramètres régionaux modifie 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 lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
paramètres régionaux ficelle Optional. Spécification des paramètres régionaux
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 ficelle Optional. Style vocal
tanguer ficelle Optional. Réglage de l’emplacement
taux ficelle Optional. Ajustement de la fréquence vocale
volume ficelle Optional. Ajustement du volume

Exemple :

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

Terrain Type Descriptif
type ficelle Doit être "azure-personal"
nom ficelle Nom vocal (ne peut pas être vide)
température nombre Optional. Température comprise entre 0,0 et 1,0
model ficelle Modèle neuronal sous-jacent : DragonLatestNeural, PhoenixLatestNeural, PhoenixV2Neural
custom_lexicon_url ficelle Optional. URL vers le lexique personnalisé
prefer_locales chaîne de caractères[] Optional. Paramètres régionaux préférés
Préférer les paramètres régionaux modifie 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 lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain.
Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc.
paramètres régionaux ficelle Optional. Spécification des paramètres régionaux
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.
tanguer ficelle Optional. Réglage de l’emplacement
taux ficelle Optional. Ajustement de la fréquence vocale
volume ficelle Optional. Ajustement du volume

Détection de tour

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.

Terrain Type Descriptif
type ficelle Doit être "server_vad"
threshold nombre Optional. Seuil d’activation (0.0-1.0)
prefix_padding_ms entier Optional. Remplissage audio avant le démarrage de la parole
silence_duration_ms entier Optional. Durée du silence pour détecter la fin de la voix
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’énoncé de bout en bout
créer_réponse boolean Optional. Activez ou désactivez si une réponse est générée.
réponse à une interruption boolean Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false)
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.

Terrain Type Descriptif
type ficelle Doit être "semantic_vad"
empressement ficelle 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 laissera l’utilisateur prendre son temps pour parler,
- high segmente l’audio dès que possible.

Si vous souhaitez que le modèle réponde plus souvent en mode conversation, ou pour renvoyer des événements de transcription plus rapidement en mode transcription, vous pouvez définir l’impatience highsur .
En revanche, si vous souhaitez permettre à l’utilisateur de parler sans interruption en mode conversation, ou si vous souhaitez des blocs de transcription plus volumineux en mode transcription, vous pouvez définir l’impatience low.
créer_réponse boolean Optional. Activez ou désactivez si une réponse est générée.
réponse à une interruption boolean Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false)
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.

Terrain Type Descriptif
type ficelle Doit être "azure_semantic_vad"
threshold nombre Optional. Seuil d’activation
prefix_padding_ms entier Optional. Remplissage audio avant la parole
silence_duration_ms entier Optional. Durée du silence pour la fin de la reconnaissance vocale
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’EOU
speech_duration_ms entier Optional. Durée minimale de la parole
remove_filler_words boolean Optional. Supprimer les mots de remplissage (valeur par défaut : false)
langues chaîne de caractères[] Optional. Prend en charge l’anglais. D’autres langues seront ignorées.
créer_réponse boolean Optional. Activez ou désactivez si une réponse est générée.
réponse à une interruption boolean Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false)
auto_truncate boolean Optional. Troncation automatique lors de l’interruption (valeur par défaut : false)
RealtimeAzureSemanticVADMultilinguel

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

Terrain Type Descriptif
type ficelle Doit être "azure_semantic_vad_multilingual"
threshold nombre Optional. Seuil d’activation
prefix_padding_ms entier Optional. Remplissage audio avant la parole
silence_duration_ms entier Optional. Durée du silence pour la fin de la reconnaissance vocale
end_of_utterance_detection RealtimeEOUDetection Optional. Configuration de la détection d’EOU
speech_duration_ms entier Optional. Durée minimale de la parole
remove_filler_words boolean Optional. Supprimez les mots de remplissage (valeur par défaut : false).
langues chaîne de caractères[] 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. D’autres langues seront ignorées.
créer_réponse boolean Optional. Activez ou désactivez si une réponse est générée.
réponse à une interruption boolean Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false)
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.

Terrain Type Descriptif
model ficelle 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 ficelle 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 (délai en ms) nombre Optional. Durée maximale en millisecondes d’attente d’un plus grand nombre de paroles utilisateur. La valeur par défaut est 1 000 ms.

Configuration d’Avatar

RealtimeAvatarConfig

Configuration pour le streaming et le comportement des avatars.

Terrain Type Descriptif
ice_servers RealtimeIceServer[] Optional. Serveurs ICE pour WebRTC
personnage ficelle Nom de caractère ou ID de l’avatar
style ficelle Optional. Style avatar (ton émotionnel, style parlant)
Personnalisé boolean Indique si l’avatar est personnalisé
video RealtimeVideoParams Optional. Configuration vidéo

RealtimeIceServer

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

Terrain Type Descriptif
urls chaîne de caractères[] URL du serveur ICE (points de terminaison TURN ou STUN)
nom d'utilisateur ficelle Optional. Nom d’utilisateur pour l’authentification
credential ficelle Optional. Informations d’identification pour l’authentification

RealtimeVideoParams

Paramètres de streaming vidéo pour avatar.

Terrain Type Descriptif
débit binaire entier Optional. Vitesse de transmission en bits par seconde (valeur par défaut : 2000000)
codec ficelle Optional. Codec vidéo, actuellement uniquement h264 (par défaut : h264)
crop RealtimeVideoCrop Optional. Paramètres de rognage
résolution RealtimeVideoResolution Optional. Paramètres de résolution

RealtimeVideoCrop

Définition du rectangle de rognage vidéo.

Terrain Type Descriptif
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.

Terrain Type Descriptif
width entier Largeur en pixels (doit être > 0)
height entier Hauteur en pixels (doit être > de 0)

Configuration de l’animation

RealtimeAnimation

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

Terrain Type Descriptif
model_name ficelle Optional. Nom du modèle d’animation (par défaut : "default")
sorties RealtimeAnimationOutputType[] Optional. Types de sortie (par défaut : ["blendshapes"])

RealtimeAnimationOutputType

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

Valeurs autorisées :

  • 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.

Terrain Type Descriptif
model ficelle Optional. Nom du modèle à utiliser
modalities RealtimeModality[] Optional. Modalités 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 audio. Pour activer uniquement le 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 uniquement l’audio.
animation RealtimeAnimation Optional. Configuration de l’animation
voix RealtimeVoice Optional. Configuration vocale
instructions ficelle 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 entier 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 point de terminaison et doit être traitée comme des conseils sur le /audio/transcriptions contenu audio d’entrée plutôt que sur ce que le modèle a 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 de tour pour la session. Cette valeur peut être définie sur Null pour la désactiver.
outils tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix de l’outil pour la session.

Valeurs autorisées : auto, noneet required. Sinon, vous pouvez spécifier le nom de la fonction à utiliser.
température nombre Température d’échantillonnage du modèle. 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 » Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4096 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".
avatar RealtimeAvatarConfig Optional. Configuration de l’avatar
output_audio_timestamp_types RealtimeAudioTimestampType[] Optional. Types d’horodatages pour l’audio de sortie

RealtimeModality

Modalités de session prises en charge.

Valeurs autorisées :

  • text - Entrée/sortie de texte
  • audio - Entrée/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.

Valeurs autorisées :

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

Configuration de l’outil

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.

Terrain Type Descriptif
type ficelle Doit être "function"
nom ficelle Nom de la fonction
descriptif ficelle Instructions relatives à la description et à l’utilisation de la fonction
parameters objet 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.

Terrain Type Descriptif
type ficelle Doit être "mcp"
server_label ficelle Obligatoire. Étiquette du serveur MCP.
URL du serveur ficelle Obligatoire. URL du serveur MCP.
outils_autorisés chaîne de caractères[] Optional. Liste des noms d’outils autorisés. S’il n’est pas spécifié, tous les outils sont autorisés.
headers objet Optional. En-têtes supplémentaires à inclure dans les demandes MCP.
autorisation ficelle 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.

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "message"
objet ficelle Doit être "conversation.item"
role ficelle Doit être "user"
contenu RealtimeInputTextContentPart Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationAssistantMessageItem

Élément de message assistant.

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "message"
objet ficelle Doit être "conversation.item"
role ficelle Doit être "assistant"
contenu RealtimeOutputTextContentPart[] ou RealtimeOutputAudioContentPart[] Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationSystemMessageItem

Élément de message système.

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "message"
objet ficelle Doit être "conversation.item"
role ficelle Doit être "system"
contenu RealtimeInputTextContentPart[] Contenu du message.
status RealtimeItemStatus État de l’élément.

RealtimeConversationFunctionCallItem

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

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "function_call"
objet ficelle Doit être "conversation.item"
nom ficelle Nom de la fonction à appeler.
arguments ficelle Arguments de l’appel de fonction sous forme de chaîne JSON.
call_id ficelle ID unique de l’appel de fonction.
status RealtimeItemStatus État de l’élément.

RealtimeConversationFunctionCallOutputItem

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

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "function_call_output"
objet ficelle Doit être "conversation.item"
nom ficelle Nom de la fonction appelée.
output ficelle Sortie de l’appel de fonction.
call_id ficelle 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.

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "mcp_list_tools"
server_label ficelle Étiquette du serveur MCP.

RealtimeConversationMCPCallItem

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

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "mcp_call"
server_label ficelle Étiquette du serveur MCP.
nom ficelle Nom de l’outil à appeler.
approval_request_id ficelle ID de demande d’approbation pour l’appel MCP.
arguments ficelle Arguments de l’appel MCP.
output ficelle Sortie de l’appel MCP.
erreur objet Détails de l’erreur si l’appel MCP a échoué.

RealtimeConversationMCPApprovalRequestItem

Élément de demande d’approbation MCP.

Terrain Type Descriptif
pièce d'identité ficelle ID unique de l’élément.
type ficelle Doit être "mcp_approval_request"
server_label ficelle Étiquette du serveur MCP.
nom ficelle Nom de l’outil à appeler.
arguments ficelle Arguments de l’appel MCP.

RealtimeItemStatus

État des éléments de conversation.

Valeurs autorisées :

  • 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.

Terrain Type Descriptif
type ficelle Doit être "input_text"
texte ficelle Contenu du texte

RealtimeOutputTextContentPart

Composant de contenu texte.

Terrain Type Descriptif
type ficelle Doit être "text"
texte ficelle Contenu du texte

RealtimeInputAudioContentPart

Composant contenu audio.

Terrain Type Descriptif
type ficelle Doit être "input_audio"
audio ficelle Optional. Données audio encodées en base64
transcript ficelle Optional. Transcription audio

RealtimeOutputAudioContentPart

Composant contenu audio.

Terrain Type Descriptif
type ficelle Doit être "audio"
audio ficelle Données audio encodées en base64
transcript ficelle Optional. Transcription audio

Objets response

RealtimeResponse

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

Terrain Type Descriptif
pièce d'identité ficelle Optional. ID de réponse
objet ficelle Optional. Toujours "realtime.response"
status RealtimeResponseStatus Optional. État de la réponse
détails du statut RealtimeResponseStatusDetails Optional. Détails de l’état
output RealtimeConversationResponseItem[] Optional. Éléments de sortie
usage RealtimeUsage Optional. Statistiques d’utilisation des jetons
conversation_id ficelle Optional. ID de conversation associé
voix RealtimeVoice Optional. Voix utilisée pour la réponse
modalities chaîne de caractères[] Optional. Modalités utilisées
output_audio_format RealtimeOutputAudioFormat Optional. Format audio utilisé
température nombre Optional. Température utilisée
max_response_output_tokens entier ou « inf » Optional. Nombre maximal de jetons utilisés

RealtimeResponseStatus

Valeurs d’état de la réponse.

Valeurs autorisées :

  • 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.

Terrain Type Descriptif
total_tokens entier Nombre total de jetons utilisés
input_tokens entier Jetons d'entrée utilisés
output_tokens entier 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.

Terrain Type Descriptif
cached_tokens entier Optional. Jetons mis en cache utilisés
text_tokens entier Optional. Jetons de texte utilisés
audio_tokens entier Optional. Jetons audio utilisés

Gestion des erreurs

RealtimeErrorDetails

Objet d’informations d’erreur.

Terrain Type Descriptif
type ficelle Type d’erreur (par exemple, "invalid_request_error", "server_error")
code ficelle Optional. Code d’erreur spécifique
Message ficelle Description d’erreur lisible par l’homme
param ficelle Optional. Paramètre lié à l’erreur
event_id ficelle 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.

Terrain Type Descriptif
type ficelle Type de l’élément.

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

Valeurs autorisées : system
contenu array of RealtimeInputTextContentPart Contenu du message.
pièce d'identité ficelle 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.

Terrain Type Descriptif
type ficelle Type de l’élément.

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

Valeurs autorisées : user
contenu array of RealtimeInputTextContentPart ou RealtimeInputAudioContentPart Contenu du message.
pièce d'identité ficelle 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.

Terrain Type Descriptif
type ficelle Type de l’élément.

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

Valeurs autorisées : assistant
contenu array of RealtimeOutputTextContentPart Contenu du message.

RealtimeFunctionCallItem

Élément d’appel de fonction.

Terrain Type Descriptif
type ficelle Type de l’élément.

Valeurs autorisées : function_call
nom ficelle Nom de la fonction à appeler.
arguments ficelle Arguments de l’appel de fonction sous forme de chaîne JSON.
call_id ficelle ID de l’élément d’appel de fonction.
pièce d'identité ficelle 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.

Terrain Type Descriptif
type ficelle Type de l’élément.

Valeurs autorisées : function_call_output
call_id ficelle ID de l’élément d’appel de fonction.
output ficelle 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.
pièce d'identité ficelle 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.

Terrain Type Descriptif
type ficelle Type de l’élément.

Valeurs autorisées : mcp_approval_response
approuver boolean Indique si la demande MCP est approuvée.
approval_request_id ficelle ID de la demande d’approbation MCP.

RealtimeFunctionTool

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

Terrain Type Descriptif
type ficelle Type de l’outil.

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

RealtimeItemStatus

Valeurs autorisées :

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Terrain Type Descriptif
type ficelle Le type de la partie contenu.

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

Cette propriété est nullable.

RealtimeResponseFunctionCallItem

Terrain Type Descriptif
type ficelle Type de l’élément.

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

RealtimeResponseFunctionCallOutputItem

Terrain Type Descriptif
type ficelle Type de l’élément.

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

RealtimeResponseOptions

Terrain Type Descriptif
modalities tableau Modalités prises en charge par 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 texte et audio. Pour activer uniquement le texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer uniquement l’audio.
instructions ficelle Instructions (message système) pour guider les réponses du modèle.
voix RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois la voix utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être modifiée.
outils tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix de l’outil pour la session.
température nombre Température d’échantillonnage du modèle. 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 » Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4096 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".
conversation ficelle Contrôle la conversation à laquelle la réponse est ajoutée. Les valeurs prises en charge sont auto et none.

La auto valeur (ou non la définition de 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é pour none 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 carte Configurer 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 :

Terrain Type Descriptif
objet ficelle Objet de session.

Valeurs autorisées : realtime.session
pièce d'identité ficelle ID unique de la session.
model ficelle Modèle utilisé pour la session.
modalities tableau Modalités prises en charge par 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 texte et audio. Pour activer uniquement le texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer uniquement l’audio.
instructions ficelle Instructions (message système) pour guider le texte et les réponses 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, ils fournissent des conseils sur le comportement souhaité.
voix RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

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

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

Cette propriété est nullable.
outils tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix de l’outil pour la session.
température nombre Température d’échantillonnage du modèle. 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 » Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4096 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

Terrain Type Descriptif
type RealtimeResponseStatus État de la réponse.

RealtimeRateLimitsItem

Terrain Type Descriptif
nom ficelle Nom de la propriété limite de débit sur laquelle cet élément contient des informations.
limit entier Limite maximale configurée pour cette propriété de limite de débit.
remaining entier Quota restant disponible par rapport à la limite configurée pour cette propriété de limite de débit.
reset_seconds nombre Temps restant, en secondes, jusqu’à ce que cette propriété de limite de débit soit réinitialisée.