Compartir a través de


Referencia de api dinámica de voz

Voice live API proporciona comunicación bidireccional en tiempo real para aplicaciones habilitadas para voz mediante conexiones WebSocket. Esta API admite características avanzadas, como el reconocimiento de voz, la síntesis de texto a voz, el streaming de avatares, los datos de animación y las funcionalidades completas de procesamiento de audio.

La API usa eventos con formato JSON enviados a través de conexiones de WebSocket para administrar conversaciones, secuencias de audio, interacciones de avatar y respuestas en tiempo real. Los eventos se clasifican en eventos de cliente (enviados de cliente a servidor) y eventos de servidor (enviados desde el servidor al cliente).

Características clave

  • Procesamiento de audio en tiempo real: compatibilidad con varios formatos de audio, incluidos PCM16 a varias velocidades de muestreo y códecs G.711
  • Opciones avanzadas de voz: voces de OpenAI, voces personalizadas de Azure, voces estándar de Azure y voces personales de Azure
  • Integración de Avatar: streaming de avatares basado en WebRTC con vídeo, animación y blendshapes
  • Detección de turnos inteligentes: varias opciones de VAD, como vaD semántico de Azure y detección del lado servidor
  • Mejora de audio: reducción de ruido integrada y cancelación de eco
  • Llamada a funciones: integración de herramientas para funcionalidades de conversación mejoradas
  • Administración flexible de sesiones: modalidades configurables, instrucciones y parámetros de respuesta

Eventos de cliente

Voice Live API admite los siguientes eventos de cliente que se pueden enviar desde el cliente al servidor:

Event Description
session.update Actualice la configuración de sesión, incluidas la voz, las modalidades, la detección de turnos y otras opciones.
session.avatar.connect Establecer la conexión de avatar proporcionando SDP de cliente para la negociación de WebRTC
input_audio_buffer.append Anexar bytes de audio al búfer de audio de entrada
input_audio_buffer.commit Confirmación del búfer de audio de entrada para su procesamiento
input_audio_buffer.clear Borrar el búfer de audio de entrada
conversation.item.create Agregar un nuevo elemento al contexto de conversación
conversation.item.retrieve Recuperar un elemento específico de la conversación
conversation.item.truncate Truncar un mensaje de audio del asistente
conversation.item.delete Quitar un elemento de la conversación
response.create Indicar al servidor que cree una respuesta a través de la inferencia del modelo
response.cancel Cancelación de una respuesta en curso
mcp_approval_response Enviar aprobación o rechazo para una llamada a la herramienta MCP que requiere aprobación

session.update

Actualice la configuración de la sesión. Este evento se puede enviar en cualquier momento para modificar la configuración, como voz, modalidades, detección de turnos, herramientas y otros parámetros de sesión. Tenga en cuenta que una vez que se inicializa una sesión con un modelo determinado, no se puede cambiar a otro modelo.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "session.update"
sesión RealtimeRequestSession Objeto de configuración de sesión con campos que se van a actualizar

Ejemplo con Voz personalizada de Azure

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

Establezca una conexión de avatar proporcionando la oferta SDP (Protocolo de descripción de sesión) del cliente para la negociación de medios webRTC. Este evento es necesario cuando se usan características de avatar.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "session.avatar.connect"
client_sdp cuerda / cadena Oferta de SDP del cliente para el establecimiento de conexiones WebRTC

input_audio_buffer.append

Anexe bytes de audio al búfer de audio de entrada.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "input_audio_buffer.append"
audio cuerda / cadena Datos de audio codificados en Base64

input_audio_buffer.commit

Confirme el búfer de audio de entrada para su procesamiento.

Estructura de eventos

{
  "type": "input_audio_buffer.commit"
}

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "input_audio_buffer.commit"

input_audio_buffer.clear

Borre el búfer de audio de entrada.

Estructura de eventos

{
  "type": "input_audio_buffer.clear"
}

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "input_audio_buffer.clear"

conversation.item.create

Agregue un nuevo elemento al contexto de conversación. Esto puede incluir mensajes, llamadas de función y respuestas de llamadas de función. Los elementos se pueden insertar en posiciones específicas en el historial de conversaciones.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.create"
previous_item_id cuerda / cadena Optional. Id. del elemento después del cual se va a insertar este elemento. Si no se proporciona, anexa al final
item RealtimeConversationRequestItem Elemento que se va a agregar a la conversación

Ejemplo con contenido de audio

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

Ejemplo con llamada de función

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

Ejemplo con llamada 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

Recupere un elemento específico del historial de conversaciones. Esto es útil para inspeccionar el audio procesado después de la cancelación de ruido y VAD.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.retrieve"
item_id cuerda / cadena Identificador del elemento que se va a recuperar

conversation.item.truncate

Trunca el contenido de audio de un mensaje del asistente. Esto resulta útil para detener la reproducción en un punto específico y sincronizar la comprensión del servidor con el estado del cliente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.truncate"
item_id cuerda / cadena Identificador del elemento de mensaje del asistente que se va a truncar
content_index entero Índice del elemento de contenido que se va a truncar
audio_end_ms entero Duración hasta la que se trunca el audio, en milisegundos

conversation.item.delete

Quite un elemento del historial de conversaciones.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.delete"
item_id cuerda / cadena Identificador del elemento que se va a eliminar

response.create

Indique al servidor que cree una respuesta a través de la inferencia del modelo. Este evento puede especificar la configuración específica de la respuesta que invalida los valores predeterminados de la sesión.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.create"
response RealtimeResponseOptions Configuración de respuesta opcional que invalida los valores predeterminados de la sesión

Ejemplo con opción de herramienta

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

Ejemplo con animación

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

Cancelar una respuesta en curso. Esto detiene inmediatamente la generación de respuestas y la salida de audio relacionada.

Estructura de eventos

{
  "type": "response.cancel"
}

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.cancel"

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.retrieve.
item_id cuerda / cadena Identificador del elemento que se va a recuperar.
event_id cuerda / cadena Id. del evento.

RealtimeClientEventConversationItemTruncate

El evento de cliente conversation.item.truncate se usa para truncar el audio de un mensaje del asistente anterior. El servidor genera audio más rápido que en tiempo real, por lo que este evento es útil cuando el usuario interrumpe para truncar el audio que se envió al cliente pero que aún no se ha reproducido. La comprensión del servidor del audio con la reproducción del cliente está sincronizada.

El truncamiento de audio elimina la transcripción de texto del lado servidor para asegurarse de que no haya texto en el contexto del que el usuario no conoce.

Si el evento de cliente se realiza correctamente, el servidor responde con un conversation.item.truncated evento.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.truncate.
item_id cuerda / cadena Identificador del elemento de mensaje del asistente que se va a truncar. Solo se pueden truncar los elementos del mensaje del asistente.
content_index entero Índice del elemento de contenido que se va a truncar. Establezca esta propiedad en "0".
audio_end_ms entero Duración inclusiva hasta la que se trunca el audio, en milisegundos. Si el audio_end_ms es mayor que la duración real del audio, el servidor responde con un error.

RealtimeClientEventInputAudioBufferAppend

El evento de cliente input_audio_buffer.append se usa para anexar bytes de audio al búfer de audio de entrada. El búfer de audio es almacenamiento temporal en el que puede escribir y confirmarse posteriormente.

En el modo VAD del servidor (detección de actividad de voz), el búfer de audio se usa para detectar voz y el servidor decide cuándo confirmar. Cuando el VAD del servidor está deshabilitado, el cliente puede elegir la cantidad de audio que se va a colocar en cada evento hasta un máximo de 15 MiB. Por ejemplo, el streaming de fragmentos más pequeños del cliente puede permitir que el VAD tenga mayor capacidad de respuesta.

A diferencia de la mayoría de los demás eventos de cliente, el servidor no envía una respuesta de confirmación al evento de cliente input_audio_buffer.append .

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.append.
audio cuerda / cadena Bytes de audio codificados en Base64. Este valor debe estar en el formato especificado por el input_audio_format campo en la configuración de sesión.

RealtimeClientEventInputAudioBufferClear

El evento de cliente input_audio_buffer.clear se usa para borrar los bytes de audio en el búfer.

El servidor responde con un input_audio_buffer.cleared evento .

Estructura de eventos

{
  "type": "input_audio_buffer.clear"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

El evento de cliente input_audio_buffer.commit se usa para confirmar el búfer de audio de entrada del usuario, que crea un nuevo elemento de mensaje de usuario en la conversación. El audio se transcribe si input_audio_transcription está configurado para la sesión.

Cuando está en modo VAD de servidor, el cliente no necesita enviar este evento, el servidor confirma automáticamente el búfer de audio. Sin VAD del servidor, el cliente debe confirmar el búfer de audio para crear un elemento de mensaje de usuario. Este evento de cliente produce un error si el búfer de audio de entrada está vacío.

Confirmar el búfer de audio de entrada no crea una respuesta del modelo.

El servidor responde con un input_audio_buffer.committed evento .

Estructura de eventos

{
  "type": "input_audio_buffer.commit"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.commit.

RealtimeClientEventResponseCancel

El evento de cliente response.cancel se usa para cancelar una respuesta en curso.

El servidor responderá con un response.done evento con un estado de response.status=cancelled.

Estructura de eventos

{
  "type": "response.cancel"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.cancel.

RealtimeClientEventResponseCreate

El evento de cliente response.create se usa para indicar al servidor que cree una respuesta a través de la inferencia del modelo. Cuando la sesión está configurada en modo VAD de servidor, el servidor crea respuestas automáticamente.

Una respuesta incluye al menos un itemy puede tener dos, en cuyo caso el segundo es una llamada de función. Estos elementos se anexan al historial de conversaciones.

El servidor responde con un response.created evento, uno o varios eventos de contenido y elementos (como conversation.item.created y response.content_part.added) y, por último, un response.done evento para indicar que la respuesta está completa.

Estructura de eventos

{
  "type": "response.create"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.create.
response RealtimeResponseOptions Las opciones de respuesta.

RealtimeClientEventSessionUpdate

El evento de cliente session.update se usa para actualizar la configuración predeterminada de la sesión. El cliente puede enviar este evento en cualquier momento para actualizar la configuración de la sesión y cualquier campo se puede actualizar en cualquier momento, excepto la voz.

Solo se actualizan los campos que están presentes. Para borrar un campo (como instructions), pase una cadena vacía.

El servidor responde con un session.updated evento que contiene la configuración efectiva completa.

Estructura de eventos

{
  "type": "session.update"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser session.update.
sesión RealtimeRequestSession Configuración de la sesión.

Eventos de servidor

Voice Live API envía los siguientes eventos de servidor para comunicar el estado, las respuestas y los datos al cliente:

Event Description
error Indica un error durante el procesamiento.
session.created Se envía cuando se establece correctamente una nueva sesión
session.updated Se envía cuando se actualiza la configuración de sesión
session.avatar.connecting Indica que se está estableciendo la conexión WebRTC de avatar
conversation.item.created Se envía cuando se agrega un nuevo elemento a la conversación
conversation.item.retrieved Respuesta a la solicitud conversation.item.retrieve
conversation.item.truncated Confirma el truncamiento de elementos
conversation.item.deleted Confirma la eliminación de elementos
conversation.item.input_audio_transcription.completed La transcripción de audio de entrada está completa
conversation.item.input_audio_transcription.delta Transcripción de audio de entrada de streaming
conversation.item.input_audio_transcription.failed Error en la transcripción de audio de entrada
input_audio_buffer.committed Se ha confirmado el búfer de audio de entrada para su procesamiento
input_audio_buffer.cleared Se ha borrado el búfer de audio de entrada
input_audio_buffer.speech_started Voz detectada en el búfer de audio de entrada (VAD)
input_audio_buffer.speech_stopped La voz finalizó en el búfer de audio de entrada (VAD)
response.created Se ha iniciado la nueva generación de respuestas
response.done La generación de respuestas está completa
response.output_item.added Nuevo elemento de salida agregado a la respuesta
response.output_item.done El elemento de salida está completo
response.content_part.added Nueva parte de contenido agregada al elemento de salida
response.content_part.done El elemento de contenido está completo
response.text.delta Streaming de contenido de texto desde el modelo
response.text.done El contenido de texto está completo
response.audio_transcript.delta Transcripción de audio de streaming
response.audio_transcript.done La transcripción de audio está completa
response.audio.delta Streaming de contenido de audio desde el modelo
response.audio.done El contenido de audio está completo
response.animation_blendshapes.delta Datos de blendshapes de animación de streaming
response.animation_blendshapes.done Los datos de blendshapes de animación están completos
response.audio_timestamp.delta Transmisión de información de marca de tiempo de audio
response.audio_timestamp.done Se ha completado la información de marca de tiempo de audio
response.animation_viseme.delta Streaming de datos de viseme de animación
response.animation_viseme.done Los datos de viseme de animación están completos
response.function_call_arguments.delta Argumentos de llamada de función de streaming
response.function_call_arguments.done Los argumentos de llamada de función están completos
mcp_list_tools.in_progress La lista de herramientas de MCP está en curso
mcp_list_tools.completed Se ha completado la lista de herramientas de MCP
mcp_list_tools.failed Error en la lista de herramientas de MCP
response.mcp_call_arguments.delta Argumentos de llamada de MCP de streaming
response.mcp_call_arguments.done Se han completado los argumentos de llamada de MCP
response.mcp_call.in_progress La llamada MCP está en curso
response.mcp_call.completed Se ha completado la llamada de MCP
response.mcp_call.failed Error en la llamada de MCP

session.created

Se envía cuando se establece correctamente una nueva sesión. Este es el primer evento recibido después de conectarse a la API.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "session.created"
sesión RealtimeResponseSession Objeto de sesión creado

session.updated

Se envía cuando la configuración de sesión se actualiza correctamente en respuesta a un session.update evento de cliente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "session.updated"
sesión RealtimeResponseSession El objeto de sesión actualizado

session.avatar.connecting

Indica que se está estableciendo una conexión WebRTC de avatar. Este evento se envía en respuesta a un session.avatar.connect evento de cliente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "session.avatar.connecting"

conversation.item.created

Se envía cuando se agrega un nuevo elemento a la conversación, ya sea a través de un evento de cliente conversation.item.create o automáticamente durante la generación de respuestas.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.created"
previous_item_id cuerda / cadena Identificador del elemento después del cual se insertó este elemento
item RealtimeConversationResponseItem Elemento de conversación creado

Ejemplo con elemento de 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

Se envía en respuesta a un conversation.item.retrieve evento de cliente, proporcionando el elemento de conversación solicitado.

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.created"
item RealtimeConversationResponseItem Elemento de conversación creado

conversation.item.truncated

El evento de servidor conversation.item.truncated se devuelve cuando el cliente trunca un elemento de mensaje de audio del asistente anterior con un conversation.item.truncate evento . Este evento se usa para sincronizar la comprensión del servidor del audio con la reproducción del cliente.

Este evento trunca el audio y quita la transcripción de texto del lado servidor para asegurarse de que no hay texto en el contexto del que el usuario no conoce.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.truncated.
item_id cuerda / cadena Identificador del elemento de mensaje del asistente que se ha truncado.
content_index entero Índice de la parte de contenido truncada.
audio_end_ms entero Duración hasta la que se truncó el audio, en milisegundos.

conversation.item.deleted

Enviado en respuesta a un conversation.item.delete evento de cliente, confirmando que el elemento especificado se ha quitado de la conversación.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "conversation.item.deleted"
item_id cuerda / cadena Identificador del elemento eliminado

response.created

Se envía cuando comienza una nueva generación de respuestas. Este es el primer evento de una secuencia de respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.created"
response RealtimeResponse Objeto de respuesta que se creó

response.done

Se envía cuando se completa la generación de respuestas. Este evento contiene la respuesta final con todos los elementos de salida y estadísticas de uso.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.done"
response RealtimeResponse Objeto de respuesta completado

response.output_item.added

Se envía cuando se agrega un nuevo elemento de salida a la respuesta durante la generación.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.output_item.added"
response_id cuerda / cadena Identificador de la respuesta a la que pertenece este elemento
output_index entero Índice del elemento en la matriz de salida de la respuesta
item RealtimeConversationResponseItem Elemento de salida que se agregó

response.output_item.done

Se envía cuando se completa un elemento de salida.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.output_item.done"
response_id cuerda / cadena Identificador de la respuesta a la que pertenece este elemento
output_index entero Índice del elemento en la matriz de salida de la respuesta
item RealtimeConversationResponseItem Elemento de salida completado

response.content_part.added

El evento de servidor response.content_part.added se devuelve cuando se agrega una nueva parte de contenido a un elemento de mensaje auxiliar durante la generación de respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.content_part.added"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento al que pertenece este elemento de contenido
output_index entero Índice del elemento en la respuesta
content_index entero Índice de esta parte de contenido en el elemento
part RealtimeContentPart Elemento de contenido que se agregó

response.content_part.done

El evento de servidor response.content_part.done se devuelve cuando una parte de contenido se realiza streaming en un elemento de mensaje del asistente.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.content_part.done"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento al que pertenece este elemento de contenido
output_index entero Índice del elemento en la respuesta
content_index entero Índice de esta parte de contenido en el elemento
part RealtimeContentPart Elemento de contenido completado

response.text.delta

Streaming de contenido de texto desde el modelo. Enviado incrementalmente a medida que el modelo genera texto.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.text.delta"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
delta cuerda / cadena Contenido de texto incremental

response.text.done

Se envía cuando se completa la generación de contenido de texto.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.text.done"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
texto cuerda / cadena Contenido de texto completo

response.audio.delta

Streaming de contenido de audio desde el modelo. El audio se proporciona como datos codificados en base64.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.audio.delta"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
delta cuerda / cadena Fragmento de datos de audio codificado en Base64

response.audio.done

Se envía cuando se completa la generación de contenido de audio.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.audio.done"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido

response.audio_transcript.delta

Transcripción de streaming del contenido de audio generado.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.audio_transcript.delta"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
delta cuerda / cadena Texto de transcripción incremental

response.audio_transcript.done

Se envía cuando se completa la generación de transcripciones de audio.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena Debe ser "response.audio_transcript.done"
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
transcript cuerda / cadena Texto completo de la transcripción

conversation.item.input_audio_transcription.completed

El evento de servidor conversation.item.input_audio_transcription.completed es el resultado de la transcripción de audio para la voz escrita en el búfer de audio.

La transcripción comienza cuando el cliente o el servidor confirman el búfer de audio de entrada (en server_vad modo). La transcripción se ejecuta de forma asincrónica con la creación de respuestas, por lo que este evento puede venir antes o después de los eventos de respuesta.

Los modelos de API en tiempo real aceptan audio de forma nativa y, por tanto, la transcripción de entrada es una ejecución de proceso independiente en un modelo de reconocimiento de voz independiente, como whisper-1. Por lo tanto, la transcripción puede diferir algo de la interpretación del modelo y debe tratarse como una guía aproximada.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.input_audio_transcription.completed.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario que contiene el audio.
content_index entero Índice de la parte de contenido que contiene el audio.
transcript cuerda / cadena Texto transcrito.

conversation.item.input_audio_transcription.delta

El evento de servidor conversation.item.input_audio_transcription.delta se devuelve cuando se configura la transcripción de audio de entrada y hay una solicitud de transcripción para un mensaje de usuario en curso. Este evento proporciona resultados parciales de transcripción a medida que están disponibles.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.input_audio_transcription.delta.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario.
content_index entero Índice de la parte de contenido que contiene el audio.
delta cuerda / cadena Texto de transcripción incremental.

conversation.item.input_audio_transcription.failed

El evento de servidor conversation.item.input_audio_transcription.failed se devuelve cuando se configura la transcripción de audio de entrada y se produce un error en una solicitud de transcripción para un mensaje de usuario. Este evento es independiente de otros error eventos para que el cliente pueda identificar el elemento relacionado.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser conversation.item.input_audio_transcription.failed.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario.
content_index entero Índice de la parte de contenido que contiene el audio.
error objeto Detalles del error de transcripción.

Consulte las propiedades anidadas en la tabla siguiente.

Propiedades de error

Campo Tipo Description
type cuerda / cadena Tipo de error.
código cuerda / cadena Código de error, si existe.
Mensaje cuerda / cadena Mensaje de error legible.
param cuerda / cadena Parámetro relacionado con el error, si existe.

response.animation_blendshapes.delta

El evento de servidor response.animation_blendshapes.delta se devuelve cuando el modelo genera datos blendshapes de animación como parte de una respuesta. Este evento proporciona datos de blendshapes incrementales a medida que está disponible.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.animation_blendshapes.delta.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
frame_index entero Índice del primer fotograma de este lote de marcos
Marcos matriz de matriz de float Matriz de marcos blendshape, cada fotograma es una matriz de valores blendshape

response.animation_blendshapes.done

El evento de servidor response.animation_blendshapes.done se devuelve cuando el modelo ha terminado de generar blendshapes de animación como parte de una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.animation_blendshapes.done.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta

response.audio_timestamp.delta

El evento de servidor response.audio_timestamp.delta se devuelve cuando el modelo genera datos de marca de tiempo de audio como parte de una respuesta. Este evento proporciona datos incrementales de marca de tiempo para la alineación de audio y texto de salida a medida que está disponible.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio_timestamp.delta.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
audio_offset_ms entero Desplazamiento de audio en milisegundos desde el principio del audio
audio_duration_ms entero Duración del segmento de audio en milisegundos
texto cuerda / cadena Segmento de texto correspondiente a esta marca de tiempo de audio
timestamp_type cuerda / cadena El tipo de marca de tiempo, actualmente solo se admite "word"

response.audio_timestamp.done

Se envía cuando se completa la generación de marca de tiempo de audio.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio_timestamp.done.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido

response.animation_viseme.delta

El evento de servidor response.animation_viseme.delta se devuelve cuando el modelo genera datos de viseme de animación como parte de una respuesta. Este evento proporciona datos viseme incrementales a medida que está disponible.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.animation_viseme.delta.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido
audio_offset_ms entero Desplazamiento de audio en milisegundos desde el principio del audio
viseme_id entero Identificador del visema correspondiente a la forma de boca para la animación

response.animation_viseme.done

El evento de servidor response.animation_viseme.done se devuelve cuando el modelo ha terminado de generar datos de viseme de animación como parte de una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.animation_viseme.done.
response_id cuerda / cadena Identificador de la respuesta
item_id cuerda / cadena Identificador del elemento
output_index entero Índice del elemento en la respuesta
content_index entero Índice del elemento de contenido

El evento de servidor response.animation_viseme.delta se devuelve cuando el modelo genera datos de viseme de animación como parte de una respuesta. Este evento proporciona datos viseme incrementales a medida que está disponible.

error

El evento de servidor error se devuelve cuando se produce un error, que podría ser un problema de cliente o un problema de servidor. La mayoría de los errores se pueden recuperar y la sesión permanece abierta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser error.
error objeto Detalles del error.

Consulte las propiedades anidadas en la tabla siguiente.

Propiedades de error

Campo Tipo Description
type cuerda / cadena Tipo de error. Por ejemplo, "invalid_request_error" y "server_error" son tipos de error.
código cuerda / cadena Código de error, si existe.
Mensaje cuerda / cadena Mensaje de error legible.
param cuerda / cadena Parámetro relacionado con el error, si existe.
event_id cuerda / cadena Identificador del evento de cliente que provocó el error, si procede.

input_audio_buffer.cleared

El evento de servidor input_audio_buffer.cleared se devuelve cuando el cliente borra el búfer de audio de entrada con un input_audio_buffer.clear evento.

Estructura de eventos

{
  "type": "input_audio_buffer.cleared"
}

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.cleared.

input_audio_buffer.committed

El evento de servidor input_audio_buffer.committed se devuelve cuando el cliente confirma un búfer de audio de entrada o automáticamente en modo VAD del servidor. La item_id propiedad es el identificador del elemento de mensaje de usuario creado. Por lo tanto, también se envía un conversation.item.created evento al cliente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.committed.
previous_item_id cuerda / cadena Identificador del elemento anterior después del cual se inserta el nuevo elemento.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario creado.

input_audio_buffer.speech_started

El evento de servidor input_audio_buffer.speech_started se devuelve en server_vad modo cuando se detecta voz en el búfer de audio. Este evento puede ocurrir cada vez que se agrega audio al búfer (a menos que ya se detecte voz).

Nota:

Es posible que el cliente quiera usar este evento para interrumpir la reproducción de audio o proporcionar comentarios visuales al usuario.

El cliente debe esperar recibir un input_audio_buffer.speech_stopped evento cuando se detiene la voz. La item_id propiedad es el identificador del elemento de mensaje de usuario creado cuando se detiene la voz. También item_id se incluye en el input_audio_buffer.speech_stopped evento a menos que el cliente confirme manualmente el búfer de audio durante la activación de VAD.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.speech_started.
audio_start_ms entero Milisegundos desde el principio de todo el audio escrito en el búfer durante la sesión cuando se detectó la voz por primera vez. Esta propiedad corresponde al principio del audio enviado al modelo y, por tanto, incluye el prefix_padding_ms configurado en la sesión.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario creado cuando se detiene la voz.

input_audio_buffer.speech_stopped

El evento de servidor input_audio_buffer.speech_stopped se devuelve en server_vad modo cuando el servidor detecta el final de la voz en el búfer de audio.

El servidor también envía un conversation.item.created evento con el elemento de mensaje de usuario creado a partir del búfer de audio.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser input_audio_buffer.speech_stopped.
audio_end_ms entero Milisegundos desde que se inició la sesión cuando se detuvo la voz. Esta propiedad corresponde al final del audio enviado al modelo y, por tanto, incluye el min_silence_duration_ms configurado en la sesión.
item_id cuerda / cadena Identificador del elemento de mensaje de usuario creado.

rate_limits.updated

El evento de servidor rate_limits.updated se emite al principio de una respuesta para indicar los límites de velocidad actualizados.

Cuando se crea una respuesta, algunos tokens se reservan para los tokens de salida. Los límites de tarifas que se muestran aquí reflejan esa reserva, que se ajusta en consecuencia una vez completada la respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser rate_limits.updated.
rate_limits matriz de RealtimeRateLimitsItem Lista de información de límite de velocidad.

response.audio.delta

El evento de servidor response.audio.delta se devuelve cuando se actualiza el audio generado por el modelo.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio.delta.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.
delta cuerda / cadena Delta de datos de audio codificados en Base64.

response.audio.done

El evento de servidor response.audio.done se devuelve cuando se realiza el audio generado por el modelo.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio.done.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.

response.audio_transcript.delta

El evento de servidor response.audio_transcript.delta se devuelve cuando se actualiza la transcripción generada por el modelo de salida de audio.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio_transcript.delta.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.
delta cuerda / cadena Delta de transcripción.

response.audio_transcript.done

El evento de servidor response.audio_transcript.done se devuelve cuando la transcripción generada por el modelo de salida de audio se realiza en streaming.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.audio_transcript.done.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.
transcript cuerda / cadena Transcripción final del audio.

response.function_call_arguments.delta

El evento de servidor response.function_call_arguments.delta se devuelve cuando se actualizan los argumentos de llamada de función generados por el modelo.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.function_call_arguments.delta.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento de llamada de función.
output_index entero Índice del elemento de salida en la respuesta.
call_id cuerda / cadena Identificador de la llamada de función.
delta cuerda / cadena Los argumentos delta como una cadena JSON.

response.function_call_arguments.done

El evento de servidor response.function_call_arguments.done se devuelve cuando los argumentos de llamada de función generados por el modelo se realizan streaming.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.function_call_arguments.done.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento de llamada de función.
output_index entero Índice del elemento de salida en la respuesta.
call_id cuerda / cadena Identificador de la llamada de función.
argumentos cuerda / cadena Argumentos finales como una cadena JSON.

mcp_list_tools.in_progress

El evento de servidor mcp_list_tools.in_progress se devuelve cuando el servicio comienza a enumerar las herramientas disponibles desde un servidor mcp.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser mcp_list_tools.in_progress.
item_id cuerda / cadena Identificador del elemento de herramientas de lista de MCP que se está procesando.

mcp_list_tools.completed

El evento de servidor mcp_list_tools.completed se devuelve cuando el servicio completa la lista de herramientas disponibles de un servidor mcp.

Estructura de eventos

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propiedades
Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser mcp_list_tools.completed.
item_id cuerda / cadena Identificador del elemento de herramientas de lista de MCP que se está procesando.

mcp_list_tools.failed

El evento de servidor mcp_list_tools.failed se devuelve cuando el servicio no puede enumerar las herramientas disponibles de un servidor mcp.

Estructura de eventos

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propiedades
Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser mcp_list_tools.failed.
item_id cuerda / cadena Identificador del elemento de herramientas de lista de MCP que se está procesando.

response.mcp_call_arguments.delta

El evento de servidor response.mcp_call_arguments.delta se devuelve cuando se actualizan los argumentos de llamada de la herramienta mcp generados por el modelo.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.mcp_call_arguments.delta.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento de llamada de la herramienta mcp.
output_index entero Índice del elemento de salida en la respuesta.
delta cuerda / cadena Los argumentos delta como una cadena JSON.

response.mcp_call_arguments.done

El evento de servidor response.mcp_call_arguments.done se devuelve cuando los argumentos de llamada a la herramienta mcp generados por el modelo se realizan streaming.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.mcp_call_arguments.done.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento de llamada de la herramienta mcp.
output_index entero Índice del elemento de salida en la respuesta.
argumentos cuerda / cadena Argumentos finales como una cadena JSON.

response.mcp_call.in_progress

El evento de servidor response.mcp_call.in_progress se devuelve cuando una llamada a la herramienta MCP comienza el procesamiento.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.mcp_call.in_progress.
item_id cuerda / cadena Identificador del elemento de llamada de la herramienta mcp.
output_index entero Índice del elemento de salida en la respuesta.

response.mcp_call.completed

El evento de servidor response.mcp_call.completed se devuelve cuando una llamada a la herramienta MCP se completa correctamente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.mcp_call.completed.
item_id cuerda / cadena Identificador del elemento de llamada de la herramienta mcp.
output_index entero Índice del elemento de salida en la respuesta.

response.mcp_call.failed

El evento de servidor response.mcp_call.failed se devuelve cuando se produce un error en una llamada a la herramienta MCP.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.mcp_call.failed.
item_id cuerda / cadena Identificador del elemento de llamada de la herramienta mcp.
output_index entero Índice del elemento de salida en la respuesta.

response.output_item.added

El evento de servidor response.output_item.added se devuelve cuando se crea un nuevo elemento durante la generación de respuestas.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.output_item.added.
response_id cuerda / cadena Identificador de la respuesta a la que pertenece el elemento.
output_index entero Índice del elemento de salida en la respuesta.
item RealtimeConversationResponseItem Elemento que se agregó.

response.output_item.done

El evento de servidor response.output_item.done se devuelve cuando se realiza la transmisión por secuencias de un elemento.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.output_item.done.
response_id cuerda / cadena Identificador de la respuesta a la que pertenece el elemento.
output_index entero Índice del elemento de salida en la respuesta.
item RealtimeConversationResponseItem Elemento que se realiza la transmisión por secuencias.

response.text.delta

El evento de servidor response.text.delta se devuelve cuando se actualiza el texto generado por el modelo. El texto corresponde a la text parte de contenido de un elemento de mensaje del asistente.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.text.delta.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.
delta cuerda / cadena Delta de texto.

response.text.done

El evento de servidor response.text.done se devuelve cuando el texto generado por el modelo se realiza streaming. El texto corresponde a la text parte de contenido de un elemento de mensaje del asistente.

Este evento también se devuelve cuando se interrumpe, incompleta o cancela una respuesta.

Estructura de eventos

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

Propiedades

Campo Tipo Description
type cuerda / cadena El tipo de evento debe ser response.text.done.
response_id cuerda / cadena Identificador de la respuesta.
item_id cuerda / cadena Identificador del elemento.
output_index entero Índice del elemento de salida en la respuesta.
content_index entero Índice de la parte de contenido de la matriz de contenido del elemento.
texto cuerda / cadena El contenido final del texto.

Components

Formatos de audio

RealtimeAudioFormat

Formato de audio base usado para el audio de entrada.

Valores permitidos:

  • pcm16 - Formato de audio PCM de 16 bits
  • g711_ulaw - Formato de audio de μ-ley G.711
  • g711_alaw - Formato de audio G.711 A-law

RealtimeOutputAudioFormat

Formato de audio usado para el audio de salida con velocidades de muestreo específicas.

Valores permitidos:

  • pcm16 - Formato de audio PCM de 16 bits a la velocidad de muestreo predeterminada (24kHz)
  • pcm16_8000hz - Formato de audio PCM de 16 bits a velocidad de muestreo de 8 kHz
  • pcm16_16000hz - Formato de audio PCM de 16 bits a velocidad de muestreo de 16 kHz
  • g711_ulaw - Formato de audio G.711 μ(mu-law) a velocidad de muestreo de 8kHz
  • g711_alaw - Formato de audio G.711 A-law a velocidad de muestreo de 8kHz

RealtimeAudioInputTranscriptionSettings

Configuración de la transcripción de audio de entrada.

Campo Tipo Description
model cuerda / cadena Modelo de transcripción.
Compatible con gpt-realtime y gpt-realtime-mini:
whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.
Compatible con todos los demás modelos y agentes: azure-speech
lenguaje cuerda / cadena Código de idioma opcional en BCP-47 (por ejemplo, en-US) o ISO-639-1 (por ejemplo, en) o varios idiomas con detección automática (por ejemplo, en,zh).
custom_speech objeto Configuración opcional para modelos de voz personalizados, solo válido para azure-speech el modelo.
phrase_list string[] Lista opcional de sugerencias de frase para el reconocimiento de sesgo, solo válida para azure-speech el modelo.
inmediato cuerda / cadena Texto de solicitud opcional para guiar la transcripción, solo válido para whisper-1los modelos , gpt-4o-transcribegpt-4o-mini-transcribe y gpt-4o-transcribe-diarize .

RealtimeInputAudioNoiseReductionSettings

Esto puede ser:

RealtimeOpenAINoiseReduction

Configuración de reducción de ruido de OpenAI con campo de tipo explícito, solo disponible para gpt-realtime los modelos y gpt-realtime-mini .

Campo Tipo Description
type cuerda / cadena near_field o far_field

RealtimeAzureDeepNoiseSuppression

Configuración para la reducción del ruido de audio de entrada.

Campo Tipo Description
type cuerda / cadena Debe ser "azure_deep_noise_suppression"

RealtimeInputAudioEchoCancellationSettings

Configuración de cancelación de eco para el procesamiento de audio del lado servidor.

Campo Tipo Description
type cuerda / cadena Debe ser "server_echo_cancellation"

Configuración de voz

RealtimeVoice

Unión de todas las configuraciones de voz admitidas.

Esto puede ser:

RealtimeOpenAIVoice

Configuración de voz de OpenAI con campo de tipo explícito.

Campo Tipo Description
type cuerda / cadena Debe ser "openai"
nombre cuerda / cadena Nombre de voz de OpenAI: alloy, ash, ballad, coralechosageshimmer, , versemarincedar

RealtimeAzureVoice

Base para las configuraciones de voz de Azure. Se trata de una unión discriminada con diferentes tipos:

RealtimeAzureStandardVoice

Configuración de voz estándar de Azure.

Campo Tipo Description
type cuerda / cadena Debe ser "azure-standard"
nombre cuerda / cadena Nombre de voz (no puede estar vacío)
temperatura number Optional. Temperatura entre 0,0 y 1,0
custom_lexicon_url cuerda / cadena Optional. Dirección URL al léxico personalizado
prefer_locales string[] Optional. Configuraciones regionales preferidas
Preferir configuraciones regionales cambiará los acentos de los idiomas. Si no se establece el valor, TTS usará el énfasis predeterminado de cada idioma. Por ejemplo, cuando TTS habla inglés, usará el acento inglés americano. Y al hablar español, usará el acento español mexicano.
Si establece el prefer_locales en ["en-GB", "es-ES"], el acento inglés será inglés británico y el acento español será español europeo. Y TTS también pueden hablar otros idiomas como francés, chino, etc.
configuración regional cuerda / cadena Optional. Especificación de configuración regional
Aplicar la configuración regional para la salida de TTS. Si no se establece, TTS siempre usará la configuración regional especificada para hablar. Por ejemplo, establecer la configuración regional en-USen , TTS siempre usará acento inglés americano para hablar el contenido del texto, incluso el contenido del texto está en otro idioma. Y TTS generará silencio si el contenido de texto está en chino.
style cuerda / cadena Optional. Estilo de voz
alquitrán cuerda / cadena Optional. Ajuste de tono
tasa cuerda / cadena Optional. Ajuste de frecuencia de voz
volume cuerda / cadena Optional. Ajuste del volumen
RealtimeAzureCustomVoice

Configuración de voz personalizada de Azure (preferida para voces personalizadas).

Campo Tipo Description
type cuerda / cadena Debe ser "azure-custom"
nombre cuerda / cadena Nombre de voz (no puede estar vacío)
endpoint_id cuerda / cadena Id. de punto de conexión (no puede estar vacío)
temperatura number Optional. Temperatura entre 0,0 y 1,0
custom_lexicon_url cuerda / cadena Optional. Dirección URL al léxico personalizado
prefer_locales string[] Optional. Configuraciones regionales preferidas
Preferir configuraciones regionales cambiará los acentos de los idiomas. Si no se establece el valor, TTS usará el énfasis predeterminado de cada idioma. Por ejemplo, cuando TTS habla inglés, usará el acento inglés americano. Y al hablar español, usará el acento español mexicano.
Si establece el prefer_locales en ["en-GB", "es-ES"], el acento inglés será inglés británico y el acento español será español europeo. Y TTS también pueden hablar otros idiomas como francés, chino, etc.
configuración regional cuerda / cadena Optional. Especificación de configuración regional
Aplicar la configuración regional para la salida de TTS. Si no se establece, TTS siempre usará la configuración regional especificada para hablar. Por ejemplo, establecer la configuración regional en-USen , TTS siempre usará acento inglés americano para hablar el contenido del texto, incluso el contenido del texto está en otro idioma. Y TTS generará silencio si el contenido de texto está en chino.
style cuerda / cadena Optional. Estilo de voz
alquitrán cuerda / cadena Optional. Ajuste de tono
tasa cuerda / cadena Optional. Ajuste de frecuencia de voz
volume cuerda / cadena Optional. Ajuste del volumen

Ejemplo:

{
  "type": "azure-custom",
  "name": "my-custom-voice",
  "endpoint_id": "12345678-1234-1234-1234-123456789012",
  "temperature": 0.7,
  "style": "cheerful",
  "locale": "en-US"
}
RealtimeAzurePersonalVoice

Configuración de voz personal de Azure.

Campo Tipo Description
type cuerda / cadena Debe ser "azure-personal"
nombre cuerda / cadena Nombre de voz (no puede estar vacío)
temperatura number Optional. Temperatura entre 0,0 y 1,0
model cuerda / cadena Modelo neuronal subyacente: DragonLatestNeural, PhoenixLatestNeural, PhoenixV2Neural
custom_lexicon_url cuerda / cadena Optional. Dirección URL al léxico personalizado
prefer_locales string[] Optional. Configuraciones regionales preferidas
Preferir configuraciones regionales cambiará los acentos de los idiomas. Si no se establece el valor, TTS usará el énfasis predeterminado de cada idioma. Por ejemplo, cuando TTS habla inglés, usará el acento inglés americano. Y al hablar español, usará el acento español mexicano.
Si establece el prefer_locales en ["en-GB", "es-ES"], el acento inglés será inglés británico y el acento español será español europeo. Y TTS también pueden hablar otros idiomas como francés, chino, etc.
configuración regional cuerda / cadena Optional. Especificación de configuración regional
Aplicar la configuración regional para la salida de TTS. Si no se establece, TTS siempre usará la configuración regional especificada para hablar. Por ejemplo, establecer la configuración regional en-USen , TTS siempre usará acento inglés americano para hablar el contenido del texto, incluso el contenido del texto está en otro idioma. Y TTS generará silencio si el contenido de texto está en chino.
alquitrán cuerda / cadena Optional. Ajuste de tono
tasa cuerda / cadena Optional. Ajuste de frecuencia de voz
volume cuerda / cadena Optional. Ajuste del volumen

Detección de turnos

RealtimeTurnDetection

Configuración para la detección de turnos. Se trata de una unión discriminada que admite varios tipos VAD.

RealtimeServerVAD

Detección de turnos basada en VAD base.

Campo Tipo Description
type cuerda / cadena Debe ser "server_vad"
threshold number Optional. Umbral de activación (0,0-1,0)
prefix_padding_ms entero Optional. Relleno de audio antes de que se inicie la voz
silence_duration_ms entero Optional. Duración del silencio para detectar el final de voz
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección de fin de expresión
crear_respuesta boolean Optional. Habilite o deshabilite si se genera una respuesta.
respuesta_a_interrupciones boolean Optional. Habilite o deshabilite la interrupción de entrada (valor predeterminado: false)
auto_truncate boolean Optional. Truncar automáticamente la interrupción (valor predeterminado: false)
RealtimeOpenAISemanticVAD

Configuración vaD semántica de OpenAI que usa un modelo para determinar cuándo el usuario ha terminado de hablar. Solo está disponible para gpt-realtime los modelos y gpt-realtime-mini .

Campo Tipo Description
type cuerda / cadena Debe ser "semantic_vad"
ansia cuerda / cadena Optional. Esta es una manera de controlar el modo en que el modelo es interrumpir al usuario, optimizando el tiempo de espera máximo. En el modo de transcripción, incluso si el modelo no responde, afecta a cómo se fragmenta el audio.
Se permiten los siguientes valores:
- auto (valor predeterminado) es equivalente a medium,
- low permitirá que el usuario tarde su tiempo en hablar,
- high fragmentará el audio lo antes posible.

Si desea que el modelo responda con más frecuencia en el modo de conversación o para devolver eventos de transcripción más rápido en el modo de transcripción, puede establecer el entusiasmo en high.
Por otro lado, si desea permitir que el usuario hable sin interrupciones en el modo de conversación, o si desea fragmentos de transcripción más grandes en el modo de transcripción, puede establecer el entusiasmo en low.
crear_respuesta boolean Optional. Habilite o deshabilite si se genera una respuesta.
respuesta_a_interrupciones boolean Optional. Habilite o deshabilite la interrupción de entrada (valor predeterminado: false)
RealtimeAzureSemanticVAD

VAD semántico de Azure, que determina cuándo se inicia y habla el usuario mediante un modelo de voz semántica, lo que proporciona una detección más sólida en entornos ruidosos.

Campo Tipo Description
type cuerda / cadena Debe ser "azure_semantic_vad"
threshold number Optional. Umbral de activación
prefix_padding_ms entero Optional. Relleno de audio antes de la voz
silence_duration_ms entero Optional. Duración del silencio para el final de voz
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección de EOU
speech_duration_ms entero Optional. Duración mínima de voz
remove_filler_words boolean Optional. Quitar palabras del relleno (valor predeterminado: false)
Idiomas string[] Optional. Admite inglés. Se omitirán otros idiomas.
crear_respuesta boolean Optional. Habilite o deshabilite si se genera una respuesta.
respuesta_a_interrupciones boolean Optional. Habilite o deshabilite la interrupción de entrada (valor predeterminado: false)
auto_truncate boolean Optional. Truncar automáticamente la interrupción (valor predeterminado: false)
RealtimeAzureSemanticVADMultilingual

VAD semántico de Azure (variante predeterminada).

Campo Tipo Description
type cuerda / cadena Debe ser "azure_semantic_vad_multilingual"
threshold number Optional. Umbral de activación
prefix_padding_ms entero Optional. Relleno de audio antes de la voz
silence_duration_ms entero Optional. Duración del silencio para el final de voz
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección de EOU
speech_duration_ms entero Optional. Duración mínima de voz
remove_filler_words boolean Optional. Quite las palabras del relleno (valor predeterminado: false).
Idiomas string[] Optional. Admite inglés, español, francés, italiano, alemán (DE), japonés, portugués, chino, coreano, hindi. Se omitirán otros idiomas.
crear_respuesta boolean Optional. Habilite o deshabilite si se genera una respuesta.
respuesta_a_interrupciones boolean Optional. Habilite o deshabilite la interrupción de entrada (valor predeterminado: false)
auto_truncate boolean Optional. Truncar automáticamente la interrupción (valor predeterminado: false)

RealtimeEOUDetection

Azure End-of-Utterance (EOU) podría indicar cuándo el usuario final dejó de hablar mientras permitía pausas naturales. La detección de finales de expresiones puede reducir significativamente las señales prematuras de fin de turno sin agregar latencia que se pueda percibir por el usuario.

Campo Tipo Description
model cuerda / cadena Podría ser semantic_detection_v1 compatible con inglés o semantic_detection_v1_multilingual apoyo inglés, español, francés, italiano, alemán (DE), japonés, portugués, chino, coreano, hindi
threshold_level cuerda / cadena Optional. Nivel de umbral de detección (low, mediumy highdefault), el valor predeterminado es igual medium a . Con un valor inferior, la probabilidad de que se complete la oración será mayor.
tiempo_de_espera_ms number Optional. Tiempo máximo en milisegundos para esperar más voz del usuario. El valor predeterminado es 1000 ms.

Configuración del avatar

RealtimeAvatarConfig

Configuración para el streaming y el comportamiento del avatar.

Campo Tipo Description
ice_servers RealtimeIceServer[] Optional. Servidores ICE para WebRTC
carácter cuerda / cadena Nombre o identificador de carácter para el avatar
style cuerda / cadena Optional. Estilo de avatar (tono emocional, estilo de habla)
Personalizado boolean Si el avatar está personalizado
video RealtimeVideoParams Optional. Configuración de vídeo

RealtimeIceServer

Configuración del servidor ICE para la negociación de conexiones webRTC.

Campo Tipo Description
urls string[] Direcciones URL del servidor ICE (puntos de conexión TURN o STUN)
nombre de usuario cuerda / cadena Optional. Nombre de usuario para la autenticación
credential cuerda / cadena Optional. Credencial para la autenticación

RealtimeVideoParams

Parámetros de streaming de vídeo para avatar.

Campo Tipo Description
velocidad de bits entero Optional. Velocidad de bits en bits por segundo (valor predeterminado: 2000000)
códec cuerda / cadena Optional. Códec de vídeo, actualmente solo h264 (valor predeterminado: h264)
crop RealtimeVideoCrop Optional. Recorte de la configuración
resolución RealtimeVideoResolution Optional. Configuración de resolución

RealtimeVideoCrop

Definición del rectángulo de recorte de vídeo.

Campo Tipo Description
top_left integer[] Esquina superior izquierda [x, y], enteros no negativos
bottom_right integer[] Esquina inferior derecha [x, y], enteros no negativos

RealtimeVideoResolution

Especificación de resolución de vídeo.

Campo Tipo Description
Ancho entero Ancho en píxeles (debe ser > 0)
altura entero Alto en píxeles (debe ser > 0)

Configuración de animación

RealtimeAnimation

Configuración para las salidas de animación, incluidas blendshapes y visemes.

Campo Tipo Description
model_name cuerda / cadena Optional. Nombre del modelo de animación (valor predeterminado: "default")
outputs RealtimeAnimationOutputType[] Optional. Tipos de salida (valor predeterminado: ["blendshapes"])

RealtimeAnimationOutputType

Tipos de datos de animación que se van a generar.

Valores permitidos:

  • blendshapes - Datos de blendshapes faciales
  • viseme_id - Datos del identificador de Viseme

Configuración de sesión

RealtimeRequestSession

Objeto de configuración de sesión usado en session.update eventos.

Campo Tipo Description
model cuerda / cadena Optional. Nombre del modelo que se va a usar
modalities RealtimeModality[] Optional. Las modalidades admitidas para la sesión.

Por ejemplo, "modalities": ["text", "audio"] es la configuración predeterminada que habilita las modalidades de texto y audio. Para habilitar solo texto, establezca "modalities": ["text"]. Para habilitar la salida del avatar, establezca "modalities": ["text", "audio", "avatar"]. No se puede habilitar solo el audio.
animación RealtimeAnimation Optional. Configuración de animación
voz RealtimeVoice Optional. Configuración de voz
instructions cuerda / cadena Optional. Instrucciones del sistema para el modelo. Las instrucciones podrían guiar el audio de salida si se usan voces openAI, pero es posible que no se apliquen a las voces de Azure.
input_audio_sampling_rate entero Optional. Frecuencia de muestreo de audio de entrada en Hz (valor predeterminado: 24000 para pcm16, 8000 para g711_ulaw y g711_alaw)
input_audio_format RealtimeAudioFormat Optional. Formato de audio de entrada (valor predeterminado: pcm16)
output_audio_format RealtimeOutputAudioFormat Optional. Formato de audio de salida (valor predeterminado: pcm16)
input_audio_noise_reduction RealtimeInputAudioNoiseReductionSettings Configuración para la reducción del ruido de audio de entrada. Esto se puede establecer en null para desactivar. Reducción de ruido filtra el audio agregado al búfer del audio de entrada antes de enviarlo a VAD y al modelo. El filtrado del audio puede mejorar la precisión de VAD y la detección de turnos (reduciendo los falsos positivos) y el rendimiento del modelo al mejorar la percepción del audio de entrada.

Esta propiedad admite valores NULL.
input_audio_echo_cancellation RealtimeInputAudioEchoCancellationSettings Configuración para la cancelación de eco de audio de entrada. Esto se puede establecer en null para desactivar. Esta cancelación de eco del lado del servicio puede ayudar a mejorar la calidad del audio de entrada reduciendo el impacto del eco y la reverberación.

Esta propiedad admite valores NULL.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Configuración de la transcripción de audio de entrada. La configuración es null (off) de forma predeterminada. La transcripción de audio de entrada no es nativa del modelo, ya que el modelo consume audio directamente. La transcripción se ejecuta de forma asincrónica a través del /audio/transcriptions punto de conexión y debe tratarse como guía del contenido de audio de entrada en lugar de precisamente lo que el modelo oyó. Para obtener instrucciones adicionales sobre el servicio de transcripción, el cliente puede establecer opcionalmente el idioma y solicitar la transcripción.

Esta propiedad admite valores NULL.
turn_detection RealtimeTurnDetection Configuración de detección de turnos para la sesión. Esto se puede establecer en null para desactivar.
herramientas matriz de RealtimeTool Las herramientas disponibles para el modelo para la sesión.
tool_choice RealtimeToolChoice La opción de herramienta para la sesión.

Valores permitidos: auto, noney required. De lo contrario, puede especificar el nombre de la función que se va a usar.
temperatura number Temperatura de muestreo del modelo. Los valores de temperatura permitidos están limitados a [0.6, 1.2]. El valor predeterminado es 0.8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluido el de las llamadas a herramientas.

Especifique un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, establezca el valor en "inf" para permitir el número máximo de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, establezca "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, establezca "max_response_output_tokens": "inf".

Tiene como valor predeterminado "inf".
avatar RealtimeAvatarConfig Optional. Configuración del avatar
output_audio_timestamp_types RealtimeAudioTimestampType[] Optional. Tipos de marca de tiempo para el audio de salida

RealtimeModality

Modalidades de sesión admitidas.

Valores permitidos:

  • text - Entrada y salida de texto
  • audio - Entrada y salida de audio
  • animation - Salida de animación
  • avatar - Salida de vídeo avatar

RealtimeAudioTimestampType

Tipos de marca de tiempo de salida admitidos en el contenido de respuesta de audio.

Valores permitidos:

  • word - Marcas de tiempo por palabra en el audio de salida

Configuración de herramientas

Se admiten dos tipos de herramientas: llamadas a funciones y herramientas de MCP que permiten conectarse a un servidor mcp.

RealtimeTool

Definición de la herramienta para las llamadas a funciones.

Campo Tipo Description
type cuerda / cadena Debe ser "function"
nombre cuerda / cadena Nombre de la función
descripción cuerda / cadena Instrucciones de uso y descripción de funciones
parameters objeto Parámetros de función como objeto de esquema JSON

RealtimeToolChoice

Estrategia de selección de herramientas.

Esto puede ser:

  • "auto" - Permitir que el modelo elija
  • "none" - No usar herramientas
  • "required" - Debe usar una herramienta
  • { "type": "function", "name": "function_name" } - Uso de una función específica

MCPTool

Configuración de la herramienta MCP.

Campo Tipo Description
type cuerda / cadena Debe ser "mcp"
etiqueta del servidor cuerda / cadena Obligatorio. Etiqueta del servidor MCP.
server_url cuerda / cadena Obligatorio. Dirección URL del servidor MCP.
herramientas_permitidas string[] Optional. Lista de nombres de herramientas permitidos. Si no se especifica, se permiten todas las herramientas.
headers objeto Optional. Encabezados adicionales que se van a incluir en las solicitudes MCP.
autorización cuerda / cadena Optional. Token de autorización para solicitudes MCP.
requerir_aprobación string o dictionary Optional.
Si se establece en una cadena, el valor debe ser never o always.
Si se establece en un diccionario, debe tener el formato {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}.
El valor predeterminado es always.
Cuando se establece en always, la ejecución de la herramienta requiere aprobación, mcp_approval_request se enviará al cliente cuando haya terminado el argumento mcp y solo se ejecutará cuando se reciba mcp_approval_response con approve=true .
Cuando se establece en never, la herramienta se ejecutará automáticamente sin aprobación.

RealtimeConversationResponseItem

Se trata de un tipo de unión que puede ser uno de los siguientes:

RealtimeConversationUserMessageItem

Elemento de mensaje de usuario.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "message"
objeto cuerda / cadena Debe ser "conversation.item"
role cuerda / cadena Debe ser "user"
contenido RealtimeInputTextContentPart Contenido del mensaje.
estado RealtimeItemStatus Estado del elemento.

RealtimeConversationAssistantMessageItem

Elemento de mensaje del asistente.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "message"
objeto cuerda / cadena Debe ser "conversation.item"
role cuerda / cadena Debe ser "assistant"
contenido RealtimeOutputTextContentPart[] o RealtimeOutputAudioContentPart[] Contenido del mensaje.
estado RealtimeItemStatus Estado del elemento.

RealtimeConversationSystemMessageItem

Elemento de mensaje del sistema.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "message"
objeto cuerda / cadena Debe ser "conversation.item"
role cuerda / cadena Debe ser "system"
contenido RealtimeInputTextContentPart[] Contenido del mensaje.
estado RealtimeItemStatus Estado del elemento.

RealtimeConversationFunctionCallItem

Elemento de solicitud de llamada de función.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "function_call"
objeto cuerda / cadena Debe ser "conversation.item"
nombre cuerda / cadena El nombre de la función que se va a llamar.
argumentos cuerda / cadena Argumentos de la llamada de función como una cadena JSON.
call_id cuerda / cadena Identificador único de la llamada de función.
estado RealtimeItemStatus Estado del elemento.

RealtimeConversationFunctionCallOutputItem

Elemento de respuesta de llamada de función.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "function_call_output"
objeto cuerda / cadena Debe ser "conversation.item"
nombre cuerda / cadena Nombre de la función a la que se llamó.
output cuerda / cadena Salida de la llamada de función.
call_id cuerda / cadena Identificador único de la llamada de función.
estado RealtimeItemStatus Estado del elemento.

RealtimeConversationMCPListToolsItem

Elemento de respuesta de las herramientas de lista de MCP.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "mcp_list_tools"
etiqueta del servidor cuerda / cadena Etiqueta del servidor MCP.

RealtimeConversationMCPCallItem

Elemento de respuesta de llamada de MCP.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "mcp_call"
etiqueta del servidor cuerda / cadena Etiqueta del servidor MCP.
nombre cuerda / cadena Nombre de la herramienta a la que se va a llamar.
approval_request_id cuerda / cadena Identificador de solicitud de aprobación para la llamada MCP.
argumentos cuerda / cadena Argumentos de la llamada MCP.
output cuerda / cadena Salida de la llamada MCP.
error objeto Los detalles del error si se produjo un error en la llamada de MCP.

RealtimeConversationMCPApprovalRequestItem

Elemento de solicitud de aprobación de MCP.

Campo Tipo Description
id cuerda / cadena Identificador único del elemento.
type cuerda / cadena Debe ser "mcp_approval_request"
etiqueta del servidor cuerda / cadena Etiqueta del servidor MCP.
nombre cuerda / cadena Nombre de la herramienta a la que se va a llamar.
argumentos cuerda / cadena Argumentos de la llamada MCP.

RealtimeItemStatus

Estado de los elementos de conversación.

Valores permitidos:

  • in_progress - Actualmente se está procesando
  • completed - Completado correctamente
  • incomplete - Incompleto (interrumpido o erróneo)

RealtimeContentPart

Elemento de contenido dentro de un mensaje.

RealtimeInputTextContentPart

Elemento de contenido de texto.

Campo Tipo Description
type cuerda / cadena Debe ser "input_text"
texto cuerda / cadena El contenido del texto

RealtimeOutputTextContentPart

Elemento de contenido de texto.

Campo Tipo Description
type cuerda / cadena Debe ser "text"
texto cuerda / cadena El contenido del texto

RealtimeInputAudioContentPart

Elemento de contenido de audio.

Campo Tipo Description
type cuerda / cadena Debe ser "input_audio"
audio cuerda / cadena Optional. Datos de audio codificados en Base64
transcript cuerda / cadena Optional. Transcripción de audio

RealtimeOutputAudioContentPart

Elemento de contenido de audio.

Campo Tipo Description
type cuerda / cadena Debe ser "audio"
audio cuerda / cadena Datos de audio codificados en Base64
transcript cuerda / cadena Optional. Transcripción de audio

Objetos de respuesta

RealtimeResponse

Objeto de respuesta que representa una respuesta de inferencia de modelo.

Campo Tipo Description
id cuerda / cadena Optional. Id. de respuesta
objeto cuerda / cadena Optional. Siempre "realtime.response"
estado RealtimeResponseStatus Optional. Estado de respuesta
detalles_del_estado RealtimeResponseStatusDetails Optional. Detalles de estado
output RealtimeConversationResponseItem[] Optional. Elementos de salida
usage RealtimeUsage Optional. Estadísticas de uso de tokens
conversation_id cuerda / cadena Optional. Identificador de conversación asociado
voz RealtimeVoice Optional. Voz usada para la respuesta
modalities string[] Optional. Modalidades usadas
output_audio_format RealtimeOutputAudioFormat Optional. Formato de audio usado
temperatura number Optional. Temperatura usada
max_response_output_tokens entero o "inf" Optional. Número máximo de tokens usados

RealtimeResponseStatus

Valores de estado de respuesta.

Valores permitidos:

  • in_progress - Se está generando la respuesta
  • completed - Respuesta completada correctamente
  • cancelled - Se canceló la respuesta
  • incomplete - Respuesta incompleta (interrumpida)
  • failed - Error de respuesta

RealtimeUsage

Estadísticas de uso de tokens.

Campo Tipo Description
total_tokens entero Total de tokens usados
input_tokens entero Tokens de entrada usados
output_tokens entero Tokens de salida generados
input_token_details TokenDetails Desglose de los tokens de entrada
output_token_details TokenDetails Desglose de los tokens de salida

TokenDetails

Desglose detallado del uso de tokens.

Campo Tipo Description
cached_tokens entero Optional. Tokens almacenados en caché usados
text_tokens entero Optional. Tokens de texto usados
audio_tokens entero Optional. Tokens de audio usados

Tratamiento de errores

RealtimeErrorDetails

Objeto de información de error.

Campo Tipo Description
type cuerda / cadena Tipo de error (por ejemplo, "invalid_request_error", "server_error")
código cuerda / cadena Optional. Código de error específico
Mensaje cuerda / cadena Descripción del error legible para personas
param cuerda / cadena Optional. Parámetro relacionado con el error
event_id cuerda / cadena Optional. Identificador del evento de cliente que provocó el error

RealtimeConversationRequestItem

El objeto se usa RealtimeConversationRequestItem para crear un nuevo elemento en la conversación a través del evento conversation.item.create .

Se trata de un tipo de unión que puede ser uno de los siguientes:

RealtimeSystemMessageItem

Un elemento de mensaje del sistema.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: message
role cuerda / cadena Rol del mensaje.

Valores permitidos: system
contenido matriz de RealtimeInputTextContentPart Contenido del mensaje.
id cuerda / cadena Identificador único del elemento. El cliente puede especificar el identificador para ayudar a administrar el contexto del lado servidor. Si el cliente no proporciona un identificador, el servidor genera uno.

RealtimeUserMessageItem

Un elemento de mensaje de usuario.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: message
role cuerda / cadena Rol del mensaje.

Valores permitidos: user
contenido matriz de RealtimeInputTextContentPart o RealtimeInputAudioContentPart Contenido del mensaje.
id cuerda / cadena Identificador único del elemento. El cliente puede especificar el identificador para ayudar a administrar el contexto del lado servidor. Si el cliente no proporciona un identificador, el servidor genera uno.

RealtimeAssistantMessageItem

Elemento de mensaje del asistente.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: message
role cuerda / cadena Rol del mensaje.

Valores permitidos: assistant
contenido matriz de RealtimeOutputTextContentPart Contenido del mensaje.

RealtimeFunctionCallItem

Un elemento de llamada de función.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: function_call
nombre cuerda / cadena El nombre de la función que se va a llamar.
argumentos cuerda / cadena Argumentos de la llamada de función como una cadena JSON.
call_id cuerda / cadena Identificador del elemento de llamada de función.
id cuerda / cadena Identificador único del elemento. El cliente puede especificar el identificador para ayudar a administrar el contexto del lado servidor. Si el cliente no proporciona un identificador, el servidor genera uno.

RealtimeFunctionCallOutputItem

Un elemento de salida de llamada de función.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: function_call_output
call_id cuerda / cadena Identificador del elemento de llamada de función.
output cuerda / cadena La salida de la llamada de función, esta es una cadena de forma libre con el resultado de la función, también podría estar vacía.
id cuerda / cadena Identificador único del elemento. Si el cliente no proporciona un identificador, el servidor genera uno.

RealtimeMCPApprovalResponseItem

Un elemento de respuesta de aprobación de MCP.

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: mcp_approval_response
aprobar boolean Si se aprueba la solicitud MCP.
approval_request_id cuerda / cadena Identificador de la solicitud de aprobación de MCP.

RealtimeFunctionTool

Definición de una herramienta de función tal como la usa el punto de conexión en tiempo real.

Campo Tipo Description
type cuerda / cadena Tipo de la herramienta.

Valores permitidos: function
nombre cuerda / cadena El nombre de la función.
descripción cuerda / cadena Descripción de la función, incluidas las directrices de uso. Por ejemplo, "Use esta función para obtener la hora actual".
parameters objeto Parámetros de la función en forma de un objeto JSON.

RealtimeItemStatus

Valores permitidos:

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Campo Tipo Description
type cuerda / cadena Tipo del elemento de contenido.

Valores permitidos: audio
transcript cuerda / cadena Transcripción del audio.

Esta propiedad admite valores NULL.

RealtimeResponseFunctionCallItem

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: function_call
nombre cuerda / cadena Nombre del elemento de llamada de función.
call_id cuerda / cadena Identificador del elemento de llamada de función.
argumentos cuerda / cadena Argumentos del elemento de llamada de función.
estado RealtimeItemStatus Estado del elemento.

RealtimeResponseFunctionCallOutputItem

Campo Tipo Description
type cuerda / cadena Tipo del elemento.

Valores permitidos: function_call_output
call_id cuerda / cadena Identificador del elemento de llamada de función.
output cuerda / cadena Salida del elemento de llamada de función.

RealtimeResponseOptions

Campo Tipo Description
modalities array Las modalidades que admite la sesión.

Valores permitidos: text, audio

Por ejemplo, "modalities": ["text", "audio"] es la configuración predeterminada que habilita las modalidades de texto y audio. Para habilitar solo texto, establezca "modalities": ["text"]. No se puede habilitar solo el audio.
instructions cuerda / cadena Las instrucciones (el mensaje del sistema) para guiar las respuestas del modelo.
voz RealtimeVoice Voz usada para la respuesta del modelo para la sesión.

Una vez que la voz se usa en la sesión para la respuesta de audio del modelo, no se puede cambiar.
herramientas matriz de RealtimeTool Las herramientas disponibles para el modelo para la sesión.
tool_choice RealtimeToolChoice La opción de herramienta para la sesión.
temperatura number Temperatura de muestreo del modelo. Los valores de temperatura permitidos están limitados a [0.6, 1.2]. El valor predeterminado es 0.8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluido el de las llamadas a herramientas.

Especifique un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, establezca el valor en "inf" para permitir el número máximo de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, establezca "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, establezca "max_response_output_tokens": "inf".

Tiene como valor predeterminado "inf".
conversación cuerda / cadena Controla a qué conversación se agrega la respuesta. Los valores admitidos son auto y none.

El auto valor (o no establecer esta propiedad) garantiza que el contenido de la respuesta se agregue a la conversación predeterminada de la sesión.

Establezca esta propiedad en none para crear una respuesta fuera de banda donde los elementos no se agregarán a la conversación predeterminada.

De manera predeterminada, su valor es "auto".
metadata mapa Configuración de hasta 16 pares clave-valor que se pueden asociar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.

Por ejemplo: metadata: { topic: "classification" }

RealtimeResponseSession

El RealtimeResponseSession objeto representa una sesión en la API en tiempo real. Se usa en algunos de los eventos de servidor, como:

Campo Tipo Description
objeto cuerda / cadena Objeto de sesión.

Valores permitidos: realtime.session
id cuerda / cadena Identificador único de la sesión.
model cuerda / cadena Modelo usado para la sesión.
modalities array Las modalidades que admite la sesión.

Valores permitidos: text, audio

Por ejemplo, "modalities": ["text", "audio"] es la configuración predeterminada que habilita las modalidades de texto y audio. Para habilitar solo texto, establezca "modalities": ["text"]. No se puede habilitar solo el audio.
instructions cuerda / cadena Las instrucciones (el mensaje del sistema) para guiar las respuestas de texto y audio del modelo.

Estas son algunas instrucciones de ejemplo para ayudar a guiar el contenido y el formato de las respuestas de texto y audio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Estas son algunas instrucciones de ejemplo para ayudar a guiar el comportamiento de audio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Aunque es posible que el modelo no siga siempre estas instrucciones, proporcionan instrucciones sobre el comportamiento deseado.
voz RealtimeVoice Voz usada para la respuesta del modelo para la sesión.

Una vez que la voz se usa en la sesión para la respuesta de audio del modelo, no se puede cambiar.
input_audio_sampling_rate entero Frecuencia de muestreo para el audio de entrada.
input_audio_format RealtimeAudioFormat Formato del audio de entrada.
output_audio_format RealtimeAudioFormat Formato del audio de salida.
input_audio_transcription RealtimeAudioInputTranscriptionSettings La configuración de la transcripción de entrada de audio.

Esta propiedad admite valores NULL.
turn_detection RealtimeTurnDetection Configuración de detección de turnos para la sesión.

Esta propiedad admite valores NULL.
herramientas matriz de RealtimeTool Las herramientas disponibles para el modelo para la sesión.
tool_choice RealtimeToolChoice La opción de herramienta para la sesión.
temperatura number Temperatura de muestreo del modelo. Los valores de temperatura permitidos están limitados a [0.6, 1.2]. El valor predeterminado es 0.8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluido el de las llamadas a herramientas.

Especifique un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, establezca el valor en "inf" para permitir el número máximo de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, establezca "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, establezca "max_response_output_tokens": "inf".

RealtimeResponseStatusDetails

Campo Tipo Description
type RealtimeResponseStatus Estado de la respuesta.

RealtimeRateLimitsItem

Campo Tipo Description
nombre cuerda / cadena El nombre de la propiedad de límite de velocidad sobre el que este elemento incluye información.
limit entero Límite máximo configurado para esta propiedad de límite de velocidad.
remaining entero Cuota restante disponible con respecto al límite configurado para esta propiedad de límite de velocidad.
reset_seconds number El tiempo restante, en segundos, hasta que se restablezca esta propiedad de límite de velocidad.