Compartilhar via


Referência da API ao vivo de voz

A API dinâmica do Voice fornece comunicação bidirecional em tempo real para aplicativos habilitados para voz usando conexões WebSocket. Essa API dá suporte a recursos avançados, incluindo reconhecimento de fala, síntese de texto em fala, streaming de avatar, dados de animação e recursos abrangentes de processamento de áudio.

A API usa eventos formatados em JSON enviados por conexões WebSocket para gerenciar conversas, fluxos de áudio, interações de avatar e respostas em tempo real. Os eventos são categorizados em eventos de cliente (enviados de cliente para servidor) e eventos de servidor (enviados de servidor para cliente).

Principais características

  • Processamento de áudio em tempo real: suporte para vários formatos de áudio, incluindo PCM16 a várias taxas de exemplo e codecs G.711
  • Opções avançadas de voz: vozes OpenAI, vozes personalizadas do Azure, vozes padrão do Azure e vozes pessoais do Azure
  • Integração de Avatar: streaming de avatar baseado em WebRTC com vídeo, animação e blendshapes
  • Detecção de Turno Inteligente: Várias opções de VAD, incluindo VAD semântico do Azure e detecção do lado do servidor
  • Aprimoramento de áudio: redução de ruído interna e cancelamento de eco
  • Chamada de função: integração de ferramentas para recursos de conversação aprimorados
  • Gerenciamento de Sessão Flexível: modalidades configuráveis, instruções e parâmetros de resposta

Eventos do cliente

A API ao vivo do Voice dá suporte aos seguintes eventos de cliente que podem ser enviados do cliente para o servidor:

Event Description
session.update Atualizar a configuração da sessão, incluindo voz, modalidades, detecção de turnos e outras configurações
session.avatar.connect Estabelecer conexão de avatar fornecendo o SDP do cliente para negociação do WebRTC
input_audio_buffer.append Acrescentar bytes de áudio ao buffer de áudio de entrada
input_audio_buffer.commit Confirmar o buffer de áudio de entrada para processamento
input_audio_buffer.clear Limpar o buffer de áudio de entrada
conversation.item.create Adicionar um novo item ao contexto da conversa
conversation.item.retrieve Recuperar um item específico da conversa
conversation.item.truncate Truncar uma mensagem de áudio do assistente
conversation.item.delete Remover um item da conversa
response.create Instruir o servidor a criar uma resposta por meio de inferência de modelo
response.cancel Cancelar uma resposta em andamento
mcp_approval_response Enviar aprovação ou rejeição para uma chamada de ferramenta MCP que requer aprovação

session.update

Atualize a configuração da sessão. Esse evento pode ser enviado a qualquer momento para modificar configurações como voz, modalidades, detecção de turnos, ferramentas e outros parâmetros de sessão. Observe que uma vez que uma sessão é inicializada com um modelo específico, ela não pode ser alterada para outro modelo.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "session.update"
sessão RealtimeRequestSession Objeto de configuração de sessão com campos a serem atualizados

Exemplo com a Voz Personalizada do 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

Estabeleça uma conexão de avatar fornecendo a oferta SDP (Protocolo de Descrição da Sessão) do cliente para negociação de mídia webRTC. Esse evento é necessário ao usar recursos de avatar.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "session.avatar.connect"
client_sdp cadeia A oferta SDP do cliente para o estabelecimento de conexão WebRTC

input_audio_buffer.append

Acrescente bytes de áudio ao buffer de áudio de entrada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "input_audio_buffer.append"
audio cadeia Dados de áudio codificados em Base64

input_audio_buffer.commit

Confirme o buffer de áudio de entrada para processamento.

Estrutura de eventos

{
  "type": "input_audio_buffer.commit"
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "input_audio_buffer.commit"

input_audio_buffer.clear

Desmarque o buffer de áudio de entrada.

Estrutura de eventos

{
  "type": "input_audio_buffer.clear"
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "input_audio_buffer.clear"

conversation.item.create

Adicione um novo item ao contexto da conversa. Isso pode incluir mensagens, chamadas de função e respostas de chamada de função. Os itens podem ser inseridos em posições específicas no histórico de conversas.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.create"
previous_item_id cadeia Optional. ID do item após o qual inserir este item. Se não for fornecido, acrescentará ao fim
item RealtimeConversationRequestItem O item a ser adicionado à conversa

Exemplo com conteúdo de áudio

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

Exemplo com chamada de função

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

Exemplo com chamada 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 um item específico do histórico de conversas. Isso é útil para inspecionar o áudio processado após o cancelamento de ruído e o VAD.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.retrieve"
item_id cadeia A ID do item a ser recuperado

conversation.item.truncate

Truncar o conteúdo de áudio de uma mensagem de assistente. Isso é útil para interromper a reprodução em um ponto específico e sincronizar o entendimento do servidor com o estado do cliente.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.truncate"
item_id cadeia A ID do item de mensagem do assistente para truncar
content_index inteiro O índice da parte de conteúdo a ser truncada
audio_end_ms inteiro A duração até a qual truncar o áudio, em milissegundos

conversation.item.delete

Remova um item do histórico de conversas.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.delete"
item_id cadeia A ID do item a ser excluído

response.create

Instrua o servidor a criar uma resposta por meio de inferência de modelo. Esse evento pode especificar a configuração específica da resposta que substitui os padrões de sessão.

Estrutura 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
  }
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.create"
response RealtimeResponseOptions Configuração de resposta opcional que substitui os padrões de sessão

Exemplo com a opção de ferramenta

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

Exemplo com animação

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

Cancele uma resposta em andamento. Isso interrompe imediatamente a geração de resposta e a saída de áudio relacionada.

Estrutura de eventos

{
  "type": "response.cancel"
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.cancel"

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.retrieve.
item_id cadeia A ID do item a ser recuperado.
event_id cadeia A ID do evento.

RealtimeClientEventConversationItemTruncate

O evento cliente conversation.item.truncate é usado para truncar o áudio de uma mensagem de assistente anterior. O servidor produz áudio mais rápido do que em tempo real, portanto, esse evento é útil quando o usuário interrompe para truncar o áudio que foi enviado ao cliente, mas ainda não reproduzido. A compreensão do áudio pelo servidor com a reprodução do cliente é sincronizada.

Truncar o áudio exclui a transcrição do texto do lado do servidor para garantir que não haja texto no contexto que o usuário não conheça.

Se o evento do cliente for bem-sucedido, o servidor responderá com um conversation.item.truncated evento.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.truncate.
item_id cadeia A ID do item de mensagem do assistente a ser truncado. Somente itens de mensagem do assistente podem ser truncados.
content_index inteiro O índice da parte de conteúdo a ser truncada. Defina essa propriedade como "0".
audio_end_ms inteiro Duração inclusiva até a qual o áudio é truncado, em milissegundos. Se o audio_end_ms for maior que a duração real do áudio, o servidor responderá com um erro.

RealtimeClientEventInputAudioBufferAppend

O evento cliente input_audio_buffer.append é usado para acrescentar bytes de áudio ao buffer de áudio de entrada. O buffer de áudio é um armazenamento temporário para o qual você pode gravar e confirmar posteriormente.

No modo VAD do servidor (Detecção de Atividade de Voz), o buffer de áudio é usado para detectar fala e o servidor decide quando fazer commit. Quando o VAD do servidor é desabilitado, o cliente pode escolher quanto áudio colocar em cada evento até um máximo de 15 MiB. Por exemplo, transmitir partes menores do cliente pode permitir que o VAD seja mais responsivo.

Ao contrário da maioria dos outros eventos do cliente, o servidor não envia uma resposta de confirmação ao evento do cliente input_audio_buffer.append .

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.append.
audio cadeia Bytes de áudio codificados em Base64. Esse valor deve estar no formato especificado pelo input_audio_format campo na configuração da sessão.

RealtimeClientEventInputAudioBufferClear

O evento cliente input_audio_buffer.clear é usado para limpar os bytes de áudio no buffer.

O servidor responde com um input_audio_buffer.cleared evento.

Estrutura de eventos

{
  "type": "input_audio_buffer.clear"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

O evento do cliente input_audio_buffer.commit é usado para confirmar o buffer de áudio de entrada do usuário, que cria um novo item de mensagem de usuário na conversa. O áudio será transcrito se input_audio_transcription estiver configurado para a sessão.

Quando no modo VAD do servidor, o cliente não precisa enviar esse evento, o servidor confirma o buffer de áudio automaticamente. Sem o VAD do servidor, o cliente deve confirmar o buffer de áudio para criar um item de mensagem do usuário. Esse evento cliente produzirá um erro se o buffer de áudio de entrada estiver vazio.

A confirmação do buffer de áudio de entrada não cria uma resposta do modelo.

O servidor responde com um input_audio_buffer.committed evento.

Estrutura de eventos

{
  "type": "input_audio_buffer.commit"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.commit.

RealtimeClientEventResponseCancel

O evento response.cancel de cliente é usado para cancelar uma resposta em andamento.

O servidor responderá com um response.done evento com um status de response.status=cancelled.

Estrutura de eventos

{
  "type": "response.cancel"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.cancel.

RealtimeClientEventResponseCreate

O evento cliente response.create é usado para instruir o servidor a criar uma resposta por meio de inferência de modelo. Quando a sessão é configurada no modo VAD do servidor, o servidor cria respostas automaticamente.

Uma resposta inclui pelo menos uma iteme pode ter duas, nesse caso, a segunda é uma chamada de função. Esses itens são acrescentados ao histórico de conversas.

O servidor responde com um evento, um response.created ou mais eventos de conteúdo e um item (como conversation.item.created e response.content_part.added), e, por fim, um response.done evento para indicar que a resposta está concluída.

Estrutura de eventos

{
  "type": "response.create"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.create.
response RealtimeResponseOptions As opções de resposta.

RealtimeClientEventSessionUpdate

O evento cliente session.update é usado para atualizar a configuração padrão da sessão. O cliente pode enviar esse evento a qualquer momento para atualizar a configuração da sessão e qualquer campo pode ser atualizado a qualquer momento, exceto por voz.

Somente os campos presentes são atualizados. Para limpar um campo (como instructions), passe uma cadeia de caracteres vazia.

O servidor responde com um session.updated evento que contém a configuração efetiva completa.

Estrutura de eventos

{
  "type": "session.update"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser session.update.
sessão RealtimeRequestSession A configuração da sessão.

Eventos do servidor

A API ao vivo do Voice envia os seguintes eventos de servidor para comunicar status, respostas e dados ao cliente:

Event Description
erro Indica que ocorreu um erro durante o processamento
session.created Enviado quando uma nova sessão é estabelecida com êxito
session.updated Enviado quando a configuração da sessão é atualizada
session.avatar.connecting Indica que a conexão WebRTC do avatar está sendo estabelecida
conversation.item.created Enviado quando um novo item é adicionado à conversa
conversation.item.retrieved Resposta à solicitação conversation.item.retrieve
conversation.item.truncated Confirma truncamento de itens
conversation.item.deleted Confirma a exclusão de itens
conversation.item.input_audio_transcription.completed A transcrição de áudio de entrada está concluída
conversation.item.input_audio_transcription.delta Transcrição de áudio de entrada de streaming
conversation.item.input_audio_transcription.failed Falha na transcrição de áudio de entrada
input_audio_buffer.committed O buffer de áudio de entrada foi confirmado para processamento
input_audio_buffer.cleared O buffer de áudio de entrada foi limpo
input_audio_buffer.speech_started Fala detectada no VAD (buffer de áudio de entrada)
input_audio_buffer.speech_stopped Fala encerrada no VAD (buffer de áudio de entrada)
response.created A nova geração de resposta foi iniciada
response.done A geração de resposta está concluída
response.output_item.adicionado Novo item de saída adicionado à resposta
response.output_item.done O item de saída está concluído
response.content_part.adicionado Nova parte de conteúdo adicionada ao item de saída
response.content_part.done A parte de conteúdo está concluída
response.text.delta Streaming de conteúdo de texto do modelo
response.text.done O conteúdo do texto está concluído
response.audio_transcript.delta Transcrição de áudio de streaming
response.audio_transcript.done A transcrição de áudio foi concluída
response.audio.delta Streaming de conteúdo de áudio do modelo
response.audio.done O conteúdo de áudio está concluído
response.animation_blendshapes.delta Dados de blendshapes de animação de streaming
response.animation_blendshapes.done Os dados de blendshapes de animação estão concluídos
response.audio_timestamp.delta Informações de carimbo de data/hora de streaming de áudio
response.audio_timestamp.done As informações do carimbo de data/hora de áudio estão concluídas
response.animation_viseme.delta Dados de viseme de animação de streaming
response.animation_viseme.done Os dados do viseme de animação estão concluídos
response.function_call_arguments.delta Argumentos de chamada de função de streaming
response.function_call_arguments.done Os argumentos de chamada de função estão concluídos
mcp_list_tools.in_progress A listagem de ferramentas do MCP está em andamento
mcp_list_tools.completed A listagem de ferramentas do MCP foi concluída
mcp_list_tools.falhou Falha na listagem de ferramentas do MCP
response.mcp_call_arguments.delta Argumentos de chamada mcp de streaming
response.mcp_call_arguments.done Os argumentos de chamada MCP estão concluídos
response.mcp_call.in_progress A chamada mcp está em andamento
response.mcp_call.completed A chamada mcp foi concluída
response.mcp_call.falhou Falha na chamada do MCP

session.created

Enviado quando uma nova sessão é estabelecida com êxito. Esse é o primeiro evento recebido depois de se conectar à API.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "session.created"
sessão RealtimeResponseSession O objeto de sessão criado

session.updated

Enviado quando a configuração da sessão é atualizada com êxito em resposta a um session.update evento cliente.

Estrutura 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
    }
  }
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "session.updated"
sessão RealtimeResponseSession O objeto de sessão atualizado

session.avatar.connecting

Indica que uma conexão WebRTC de avatar está sendo estabelecida. Esse evento é enviado em resposta a um session.avatar.connect evento cliente.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "session.avatar.connecting"

conversation.item.created

Enviado quando um novo item é adicionado à conversa, por meio de um evento cliente conversation.item.create ou automaticamente durante a geração de resposta.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.created"
previous_item_id cadeia ID do item após o qual este item foi inserido
item RealtimeConversationResponseItem O item de conversa criado

Exemplo com Item de Áudio

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

Enviado em resposta a um conversation.item.retrieve evento de cliente, fornecendo o item de conversa solicitado.

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.created"
item RealtimeConversationResponseItem O item de conversa criado

conversation.item.truncated

O evento do servidor conversation.item.truncated é retornado quando o cliente trunca um item de mensagem de áudio do assistente anterior com um conversation.item.truncate evento. Esse evento é usado para sincronizar a compreensão do servidor do áudio com a reprodução do cliente.

Esse evento trunca o áudio e remove a transcrição de texto do lado do servidor para garantir que não haja nenhum texto no contexto que o usuário não saiba.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.truncated.
item_id cadeia A ID do item de mensagem do assistente que foi truncado.
content_index inteiro O índice da parte de conteúdo truncada.
audio_end_ms inteiro A duração até a qual o áudio foi truncado, em milissegundos.

conversation.item.deleted

Enviado em resposta a um conversation.item.delete evento de cliente, confirmando que o item especificado foi removido da conversa.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "conversation.item.deleted"
item_id cadeia ID do item excluído

response.created

Enviado quando uma nova geração de resposta começa. Este é o primeiro evento em uma sequência de resposta.

Estrutura 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
    }
  }
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.created"
response RealtimeResponse O objeto de resposta que foi criado

response.done

Enviado quando a geração de resposta é concluída. Esse evento contém a resposta final com todos os itens de saída e estatísticas de uso.

Estrutura 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
      }
    }
  }
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.done"
response RealtimeResponse O objeto de resposta concluído

response.output_item.adicionado

Enviado quando um novo item de saída é adicionado à resposta durante a geração.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.output_item.added"
response_id cadeia ID da resposta à qual este item pertence
output_index inteiro Índice do item na matriz de saída da resposta
item RealtimeConversationResponseItem O item de saída que foi adicionado

response.output_item.done

Enviado quando um item de saída é concluído.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.output_item.done"
response_id cadeia ID da resposta à qual este item pertence
output_index inteiro Índice do item na matriz de saída da resposta
item RealtimeConversationResponseItem O item de saída concluído

response.content_part.adicionado

O evento do servidor response.content_part.added é retornado quando uma nova parte de conteúdo é adicionada a um item de mensagem do assistente durante a geração de resposta.

Estrutura 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": ""
  }
}

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.content_part.added"
response_id cadeia ID da resposta
item_id cadeia ID do item ao qual essa parte de conteúdo pertence
output_index inteiro Índice do item na resposta
content_index inteiro Índice dessa parte de conteúdo no item
part RealtimeContentPart A parte de conteúdo que foi adicionada

response.content_part.done

O evento do servidor response.content_part.done é retornado quando uma parte de conteúdo é feita em streaming em um item de mensagem do assistente.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.content_part.done"
response_id cadeia ID da resposta
item_id cadeia ID do item ao qual essa parte de conteúdo pertence
output_index inteiro Índice do item na resposta
content_index inteiro Índice dessa parte de conteúdo no item
part RealtimeContentPart A parte de conteúdo concluída

response.text.delta

Streaming de conteúdo de texto do modelo. Enviado incrementalmente à medida que o modelo gera texto.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.text.delta"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
delta cadeia Conteúdo de texto incremental

response.text.done

Enviado quando a geração de conteúdo de texto é concluída.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.text.done"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
enviar SMS cadeia O conteúdo de texto completo

response.audio.delta

Streaming de conteúdo de áudio do modelo. O áudio é fornecido como dados codificados em base64.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.audio.delta"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
delta cadeia Parte de dados de áudio codificados em Base64

response.audio.done

Enviado quando a geração de conteúdo de áudio é concluída.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.audio.done"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo

response.audio_transcript.delta

Transcrição de streaming do conteúdo de áudio gerado.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.audio_transcript.delta"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
delta cadeia Texto de transcrição incremental

response.audio_transcript.done

Enviado quando a geração de transcrição de áudio é concluída.

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

Propriedades

Campo Tipo Description
tipo cadeia Deve ser "response.audio_transcript.done"
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
transcrição cadeia O texto completo da transcrição

conversation.item.input_audio_transcription.completed

O evento do servidor conversation.item.input_audio_transcription.completed é o resultado da transcrição de áudio da fala gravada no buffer de áudio.

A transcrição começa quando o buffer de áudio de entrada é confirmado pelo cliente ou servidor (no server_vad modo). A transcrição é executada de forma assíncrona com a criação da resposta, portanto, esse evento pode vir antes ou depois dos eventos de resposta.

Os modelos de API em tempo real aceitam áudio nativamente e, portanto, a transcrição de entrada é um processo separado executado em um modelo de reconhecimento de fala separado, como whisper-1. Portanto, a transcrição pode divergir um pouco da interpretação do modelo e deve ser tratada como um guia aproximado.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.input_audio_transcription.completed.
item_id cadeia A ID do item de mensagem do usuário que contém o áudio.
content_index inteiro O índice da parte de conteúdo que contém o áudio.
transcrição cadeia O texto transcrito.

conversation.item.input_audio_transcription.delta

O evento do servidor conversation.item.input_audio_transcription.delta é retornado quando a transcrição de áudio de entrada é configurada e uma solicitação de transcrição para uma mensagem de usuário está em andamento. Esse evento fornece resultados parciais de transcrição conforme eles ficam disponíveis.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.input_audio_transcription.delta.
item_id cadeia A ID do item de mensagem do usuário.
content_index inteiro O índice da parte de conteúdo que contém o áudio.
delta cadeia O texto de transcrição incremental.

conversation.item.input_audio_transcription.failed

O evento do servidor conversation.item.input_audio_transcription.failed é retornado quando a transcrição de áudio de entrada é configurada e uma solicitação de transcrição para uma mensagem de usuário falhou. Esse evento é separado de outros error eventos para que o cliente possa identificar o item relacionado.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser conversation.item.input_audio_transcription.failed.
item_id cadeia A ID do item de mensagem do usuário.
content_index inteiro O índice da parte de conteúdo que contém o áudio.
erro objeto Detalhes do erro de transcrição.

Consulte as propriedades aninhadas na próxima tabela.

Propriedades de erro

Campo Tipo Description
tipo cadeia O tipo de erro.
codificar cadeia Código de erro, se houver.
mensagem cadeia Uma mensagem de erro legível por humanos.
param cadeia Parâmetro relacionado ao erro, se houver.

response.animation_blendshapes.delta

O evento do servidor response.animation_blendshapes.delta é retornado quando o modelo gera dados de blendshapes de animação como parte de uma resposta. Esse evento fornece dados de blendshapes incrementais à medida que ficam disponíveis.

Estrutura 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]
    ...
  ]
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.animation_blendshapes.delta.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
frame_index inteiro Índice do primeiro quadro neste lote de quadros
Quadros matriz de matriz de float Matriz de quadros de blendshape, cada quadro é uma matriz de valores blendshape

response.animation_blendshapes.done

O evento do servidor response.animation_blendshapes.done é retornado quando o modelo termina de gerar dados de blendshapes de animação como parte de uma resposta.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.animation_blendshapes.done.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta

response.audio_timestamp.delta

O evento do servidor response.audio_timestamp.delta é retornado quando o modelo gera dados de carimbo de data/hora de áudio como parte de uma resposta. Esse evento fornece dados incrementais de carimbo de data/hora para o alinhamento de áudio e texto de saída à medida que fica disponível.

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio_timestamp.delta.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
audio_offset_ms inteiro Deslocamento de áudio em milissegundos desde o início do áudio
audio_duration_ms inteiro Duração do segmento de áudio em milissegundos
enviar SMS cadeia O segmento de texto correspondente a este carimbo de data/hora de áudio
timestamp_type cadeia O tipo de carimbo de data/hora, atualmente, há suporte apenas para "word"

response.audio_timestamp.done

Enviado quando a geração do carimbo de data/hora de áudio é concluída.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio_timestamp.done.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo

response.animation_viseme.delta

O evento do servidor response.animation_viseme.delta é retornado quando o modelo gera dados de viseme de animação como parte de uma resposta. Esse evento fornece dados incrementais do viseme à medida que ficam disponíveis.

Estrutura 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
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.animation_viseme.delta.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo
audio_offset_ms inteiro Deslocamento de áudio em milissegundos desde o início do áudio
viseme_id inteiro A ID do viseme correspondente à forma da boca para animação

response.animation_viseme.done

O evento do servidor response.animation_viseme.done é retornado quando o modelo termina de gerar dados de viseme de animação como parte de uma resposta.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.animation_viseme.done.
response_id cadeia ID da resposta
item_id cadeia ID do item
output_index inteiro Índice do item na resposta
content_index inteiro Índice da parte de conteúdo

O evento do servidor response.animation_viseme.delta é retornado quando o modelo gera dados de viseme de animação como parte de uma resposta. Esse evento fornece dados incrementais do viseme à medida que ficam disponíveis.

erro

O evento do servidor error é retornado quando ocorre um erro, o que pode ser um problema de cliente ou de servidor. A maioria dos erros é recuperável e a sessão permanece aberta.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser error.
erro objeto Detalhes do erro.

Consulte as propriedades aninhadas na próxima tabela.

Propriedades de erro

Campo Tipo Description
tipo cadeia O tipo de erro. Por exemplo, "invalid_request_error" e "server_error" são tipos de erro.
codificar cadeia Código de erro, se houver.
mensagem cadeia Uma mensagem de erro legível por humanos.
param cadeia Parâmetro relacionado ao erro, se houver.
event_id cadeia A ID do evento cliente que causou o erro, se aplicável.

input_audio_buffer.cleared

O evento do servidor input_audio_buffer.cleared é retornado quando o cliente limpa o buffer de áudio de entrada com um input_audio_buffer.clear evento.

Estrutura de eventos

{
  "type": "input_audio_buffer.cleared"
}

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.cleared.

input_audio_buffer.committed

O evento do servidor input_audio_buffer.committed é retornado quando um buffer de áudio de entrada é confirmado pelo cliente ou automaticamente no modo VAD do servidor. A item_id propriedade é a ID do item de mensagem do usuário criado. Portanto, um conversation.item.created evento também é enviado ao cliente.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.committed.
previous_item_id cadeia A ID do item anterior após o qual o novo item é inserido.
item_id cadeia A ID do item de mensagem do usuário criado.

input_audio_buffer.speech_started

O evento do servidor input_audio_buffer.speech_started é retornado no server_vad modo quando a fala é detectada no buffer de áudio. Esse evento pode acontecer sempre que o áudio for adicionado ao buffer (a menos que a fala já seja detectada).

Observação

Talvez o cliente queira usar esse evento para interromper a reprodução de áudio ou fornecer comentários visuais ao usuário.

O cliente deve esperar receber um input_audio_buffer.speech_stopped evento quando a fala for interrompida. A item_id propriedade é a ID do item de mensagem do usuário criado quando a fala é interrompida. O item_id também é incluído no evento, a input_audio_buffer.speech_stopped menos que o cliente confirme manualmente o buffer de áudio durante a ativação do VAD.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.speech_started.
audio_start_ms inteiro Milissegundos desde o início de todo o áudio gravado no buffer durante a sessão, quando a fala foi detectada pela primeira vez. Essa propriedade corresponde ao início do áudio enviado ao modelo e, portanto, inclui o prefix_padding_ms configurado na sessão.
item_id cadeia A ID do item de mensagem do usuário criado quando a fala é interrompida.

input_audio_buffer.speech_stopped

O evento do servidor input_audio_buffer.speech_stopped é retornado no server_vad modo quando o servidor detecta o fim da fala no buffer de áudio.

O servidor também envia um conversation.item.created evento com o item de mensagem do usuário criado a partir do buffer de áudio.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser input_audio_buffer.speech_stopped.
audio_end_ms inteiro Milissegundos desde que a sessão começou quando a fala parou. Essa propriedade corresponde ao final do áudio enviado ao modelo e, portanto, inclui o min_silence_duration_ms configurado na sessão.
item_id cadeia A ID do item de mensagem do usuário criado.

rate_limits.updated

O evento do servidor rate_limits.updated é emitido no início de uma resposta para indicar os limites de taxa atualizados.

Quando uma resposta é criada, alguns tokens são reservados para os tokens de saída. Os limites de taxa mostrados aqui refletem essa reserva, que é ajustada de acordo quando a resposta é concluída.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser rate_limits.updated.
rate_limits matriz de RealtimeRateLimitsItem A lista de informações de limite de taxa.

response.audio.delta

O evento do servidor response.audio.delta é retornado quando o áudio gerado pelo modelo é atualizado.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio.delta.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia Delta de dados de áudio codificado em Base64.

response.audio.done

O evento do servidor response.audio.done é retornado quando o áudio gerado pelo modelo é feito.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio.done.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.

response.audio_transcript.delta

O evento do servidor response.audio_transcript.delta é retornado quando a transcrição gerada pelo modelo da saída de áudio é atualizada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio_transcript.delta.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia O delta da transcrição.

response.audio_transcript.done

O evento do servidor response.audio_transcript.done é retornado quando a transcrição gerada pelo modelo da saída de áudio é feita em streaming.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.audio_transcript.done.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
transcrição cadeia A transcrição final do áudio.

response.function_call_arguments.delta

O evento do servidor response.function_call_arguments.delta é retornado quando os argumentos de chamada de função gerados pelo modelo são atualizados.

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.function_call_arguments.delta.
response_id cadeia A ID da resposta.
item_id cadeia A ID do item de chamada de função.
output_index inteiro O índice do item de saída na resposta.
call_id cadeia A ID da chamada de função.
delta cadeia Os argumentos delta como uma cadeia de caracteres JSON.

response.function_call_arguments.done

O evento do servidor response.function_call_arguments.done é retornado quando os argumentos de chamada de função gerados pelo modelo são feitos em streaming.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.function_call_arguments.done.
response_id cadeia A ID da resposta.
item_id cadeia A ID do item de chamada de função.
output_index inteiro O índice do item de saída na resposta.
call_id cadeia A ID da chamada de função.
arguments cadeia Os argumentos finais como uma cadeia de caracteres JSON.

mcp_list_tools.in_progress

O evento do servidor mcp_list_tools.in_progress é retornado quando o serviço inicia a listagem de ferramentas disponíveis de um servidor mcp.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser mcp_list_tools.in_progress.
item_id cadeia A ID do item de ferramentas de lista MCP que está sendo processado.

mcp_list_tools.completed

O evento do servidor mcp_list_tools.completed é retornado quando o serviço conclui a listagem de ferramentas disponíveis de um servidor mcp.

Estrutura de eventos

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propriedades
Campo Tipo Description
tipo cadeia O tipo de evento deve ser mcp_list_tools.completed.
item_id cadeia A ID do item de ferramentas de lista MCP que está sendo processado.

mcp_list_tools.falhou

O evento do servidor mcp_list_tools.failed é retornado quando o serviço falha ao listar as ferramentas disponíveis de um servidor mcp.

Estrutura de eventos

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Propriedades
Campo Tipo Description
tipo cadeia O tipo de evento deve ser mcp_list_tools.failed.
item_id cadeia A ID do item de ferramentas de lista MCP que está sendo processado.

response.mcp_call_arguments.delta

O evento do servidor response.mcp_call_arguments.delta é retornado quando os argumentos de chamada da ferramenta mcp gerados pelo modelo são atualizados.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.mcp_call_arguments.delta.
response_id cadeia A ID da resposta.
item_id cadeia A ID do item de chamada da ferramenta mcp.
output_index inteiro O índice do item de saída na resposta.
delta cadeia Os argumentos delta como uma cadeia de caracteres JSON.

response.mcp_call_arguments.done

O evento do servidor response.mcp_call_arguments.done é retornado quando os argumentos de chamada da ferramenta mcp gerados pelo modelo são feitos em streaming.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.mcp_call_arguments.done.
response_id cadeia A ID da resposta.
item_id cadeia A ID do item de chamada da ferramenta mcp.
output_index inteiro O índice do item de saída na resposta.
arguments cadeia Os argumentos finais como uma cadeia de caracteres JSON.

response.mcp_call.in_progress

O evento do servidor response.mcp_call.in_progress é retornado quando uma chamada de ferramenta MCP inicia o processamento.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.mcp_call.in_progress.
item_id cadeia A ID do item de chamada da ferramenta mcp.
output_index inteiro O índice do item de saída na resposta.

response.mcp_call.completed

O evento do servidor response.mcp_call.completed é retornado quando uma chamada de ferramenta MCP é concluída com êxito.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.mcp_call.completed.
item_id cadeia A ID do item de chamada da ferramenta mcp.
output_index inteiro O índice do item de saída na resposta.

response.mcp_call.falhou

O evento do servidor response.mcp_call.failed é retornado quando uma chamada de ferramenta MCP falha.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.mcp_call.failed.
item_id cadeia A ID do item de chamada da ferramenta mcp.
output_index inteiro O índice do item de saída na resposta.

response.output_item.adicionado

O evento do servidor response.output_item.added é retornado quando um novo item é criado durante a geração de resposta.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.output_item.added.
response_id cadeia A ID da resposta à qual o item pertence.
output_index inteiro O índice do item de saída na resposta.
item RealtimeConversationResponseItem O item que foi adicionado.

response.output_item.done

O evento do servidor response.output_item.done é retornado quando um item é feito em streaming.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.output_item.done.
response_id cadeia A ID da resposta à qual o item pertence.
output_index inteiro O índice do item de saída na resposta.
item RealtimeConversationResponseItem O item que é feito streaming.

response.text.delta

O evento do servidor response.text.delta é retornado quando o texto gerado pelo modelo é atualizado. O texto corresponde à parte de text conteúdo de um item de mensagem do assistente.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.text.delta.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia O delta de texto.

response.text.done

O evento do servidor response.text.done é retornado quando o texto gerado pelo modelo é feito em streaming. O texto corresponde à parte de text conteúdo de um item de mensagem do assistente.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura de eventos

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

Propriedades

Campo Tipo Description
tipo cadeia O tipo de evento deve ser response.text.done.
response_id cadeia A ID da resposta.
item_id cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
content_index inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
enviar SMS cadeia O conteúdo do texto final.

Components

Formatos de áudio

RealtimeAudioFormat

Formato de áudio base usado para áudio de entrada.

Valores permitidos:

  • pcm16 - Formato de áudio PCM de 16 bits
  • g711_ulaw - Formato de áudio de lei do μ G.711
  • g711_alaw – Formato de áudio da lei A.711 G.711

RealtimeOutputAudioFormat

Formato de áudio usado para áudio de saída com taxas de amostragem específicas.

Valores permitidos:

  • pcm16 - Formato de áudio PCM de 16 bits com taxa de amostragem padrão (24kHz)
  • pcm16_8000hz - Formato de áudio PCM de 16 bits a taxa de amostragem de 8kHz
  • pcm16_16000hz – Formato de áudio PCM de 16 bits a taxa de amostragem de 16kHz
  • g711_ulaw - Formato de áudio de lei de μ (mu-law) da G.711 a taxa de amostragem de 8kHz
  • g711_alaw – G.711 Formato de áudio de lei A a taxa de amostragem de 8kHz

RealtimeAudioInputTranscriptionSettings

Configuração para transcrição de áudio de entrada.

Campo Tipo Description
modelo cadeia O modelo de transcrição.
Com suporte e gpt-realtimegpt-realtime-mini:
whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe. gpt-4o-transcribe-diarize
Com suporte com todos os outros modelos e agentes: azure-speech
linguagem cadeia Código de idioma opcional em BCP-47 (por exemplo, en-US) ou ISO-639-1 (por exemplo, en), ou vários idiomas com detecção automática, (por exemplo, en,zh).
custom_speech objeto Configuração opcional para modelos de fala personalizados, válido apenas para azure-speech o modelo.
phrase_list cadeia de caracteres[] Lista opcional de dicas de frase para o reconhecimento de viés, válida apenas para azure-speech o modelo.
solicitação cadeia Texto de prompt opcional para orientar a transcrição, válido apenas para whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe e gpt-4o-transcribe-diarize modelos.

RealtimeInputAudioNoiseReductionSettings

Isso pode ser:

RealtimeOpenAINoiseReduction

Configuração de redução de ruído openAI com campo de tipo explícito, disponível apenas para modelos e para gpt-realtimegpt-realtime-mini .

Campo Tipo Description
tipo cadeia near_field ou far_field

RealtimeAzureDeepNoiseSuppression

Configuração para redução de ruído de áudio de entrada.

Campo Tipo Description
tipo cadeia Deve ser "azure_deep_noise_suppression"

RealtimeInputAudioEchoCancellationSettings

Configuração de cancelamento de eco para processamento de áudio do lado do servidor.

Campo Tipo Description
tipo cadeia Deve ser "server_echo_cancellation"

Configuração de Voz

RealtimeVoice

União de todas as configurações de voz com suporte.

Isso pode ser:

RealtimeOpenAIVoice

Configuração de voz OpenAI com campo de tipo explícito.

Campo Tipo Description
tipo cadeia Deve ser "openai"
nome cadeia Nome de voz openAI: alloy, , ash, ballad, coral, echo, sage, shimmer, , verse, , marincedar

RealtimeAzureVoice

Base para configurações de voz do Azure. Essa é uma união discriminada com tipos diferentes:

RealtimeAzureStandardVoice

Configuração de voz padrão do Azure.

Campo Tipo Description
tipo cadeia Deve ser "azure-standard"
nome cadeia Nome da voz (não pode estar vazio)
temperatura número Optional. Temperatura entre 0,0 e 1,0
custom_lexicon_url cadeia Optional. URL para léxico personalizado
prefer_locales cadeia de caracteres[] Optional. Localidades preferenciais
Preferir que as localidades alterem os acentos dos idiomas. Se o valor não estiver definido, o TTS usará acento padrão de cada idioma. Por exemplo, quando o TTS falar inglês, ele usará o sotaque inglês americano. E ao falar espanhol, usará o sotaque mexicano espanhol.
Se definir o prefer_locales, ["en-GB", "es-ES"]o sotaque inglês será inglês britânico e o sotaque espanhol será espanhol europeu. E o TTS também pode falar outras línguas como francês, chinês, etc.
localidade cadeia Optional. Especificação de localidade
Imponha a localidade para a saída do TTS. Se não estiver definido, o TTS sempre usará a localidade fornecida para falar. Por exemplo, definir a localidade como en-US, o TTS sempre usará o sotaque em inglês americano para falar o conteúdo do texto, até mesmo o conteúdo do texto está em outro idioma. E o TTS gerará silêncio se o conteúdo do texto estiver em chinês.
estilo cadeia Optional. Estilo de voz
campo cadeia Optional. Ajuste de pitch
taxa cadeia Optional. Ajuste de taxa de fala
volume cadeia Optional. Ajuste de volume
RealtimeAzureCustomVoice

Configuração de voz personalizada do Azure (preferencial para vozes personalizadas).

Campo Tipo Description
tipo cadeia Deve ser "azure-custom"
nome cadeia Nome da voz (não pode estar vazio)
endpoint_id cadeia ID do ponto de extremidade (não pode estar vazia)
temperatura número Optional. Temperatura entre 0,0 e 1,0
custom_lexicon_url cadeia Optional. URL para léxico personalizado
prefer_locales cadeia de caracteres[] Optional. Localidades preferenciais
Preferir que as localidades alterem os acentos dos idiomas. Se o valor não estiver definido, o TTS usará acento padrão de cada idioma. Por exemplo, quando o TTS falar inglês, ele usará o sotaque inglês americano. E ao falar espanhol, usará o sotaque mexicano espanhol.
Se definir o prefer_locales, ["en-GB", "es-ES"]o sotaque inglês será inglês britânico e o sotaque espanhol será espanhol europeu. E o TTS também pode falar outras línguas como francês, chinês, etc.
localidade cadeia Optional. Especificação de localidade
Imponha a localidade para a saída do TTS. Se não estiver definido, o TTS sempre usará a localidade fornecida para falar. Por exemplo, definir a localidade como en-US, o TTS sempre usará o sotaque em inglês americano para falar o conteúdo do texto, até mesmo o conteúdo do texto está em outro idioma. E o TTS gerará silêncio se o conteúdo do texto estiver em chinês.
estilo cadeia Optional. Estilo de voz
campo cadeia Optional. Ajuste de pitch
taxa cadeia Optional. Ajuste de taxa de fala
volume cadeia Optional. Ajuste de volume

Exemplo:

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

Configuração de voz pessoal do Azure.

Campo Tipo Description
tipo cadeia Deve ser "azure-personal"
nome cadeia Nome da voz (não pode estar vazio)
temperatura número Optional. Temperatura entre 0,0 e 1,0
modelo cadeia Modelo neural subjacente: DragonLatestNeural, , PhoenixLatestNeuralPhoenixV2Neural
custom_lexicon_url cadeia Optional. URL para léxico personalizado
prefer_locales cadeia de caracteres[] Optional. Localidades preferenciais
Preferir que as localidades alterem os acentos dos idiomas. Se o valor não estiver definido, o TTS usará acento padrão de cada idioma. Por exemplo, quando o TTS falar inglês, ele usará o sotaque inglês americano. E ao falar espanhol, usará o sotaque mexicano espanhol.
Se definir o prefer_locales, ["en-GB", "es-ES"]o sotaque inglês será inglês britânico e o sotaque espanhol será espanhol europeu. E o TTS também pode falar outras línguas como francês, chinês, etc.
localidade cadeia Optional. Especificação de localidade
Imponha a localidade para a saída do TTS. Se não estiver definido, o TTS sempre usará a localidade fornecida para falar. Por exemplo, definir a localidade como en-US, o TTS sempre usará o sotaque em inglês americano para falar o conteúdo do texto, até mesmo o conteúdo do texto está em outro idioma. E o TTS gerará silêncio se o conteúdo do texto estiver em chinês.
campo cadeia Optional. Ajuste de pitch
taxa cadeia Optional. Ajuste de taxa de fala
volume cadeia Optional. Ajuste de volume

Detecção de turnos

RealtimeTurnDetection

Configuração para detecção de turnos. Essa é uma união discriminada que dá suporte a vários tipos de VAD.

RealtimeServerVAD

Detecção de turno baseada em VAD base.

Campo Tipo Description
tipo cadeia Deve ser "server_vad"
limite número Optional. Limite de ativação (0.0-1.0)
prefix_padding_ms inteiro Optional. Preenchimento de áudio antes do início da fala
silence_duration_ms inteiro Optional. Duração do silêncio para detectar o fim da fala
end_of_utterance_detection RealtimeEOUDetection Optional. Configuração de detecção de fim de enunciado
criar_resposta boolean Optional. Habilite ou desabilite se uma resposta é gerada.
interrupt_response boolean Optional. Habilitar ou desabilitar a interrupção da barcaça (padrão: false)
auto_truncate boolean Optional. Truncar automaticamente na interrupção (padrão: false)
RealtimeOpenAISemanticVAD

Configuração de VAD semântica do OpenAI que usa um modelo para determinar quando o usuário terminou de falar. Disponível somente para modelos e gpt-realtime para gpt-realtime-mini modelos.

Campo Tipo Description
tipo cadeia Deve ser "semantic_vad"
entusiasmo cadeia Optional. Essa é uma maneira de controlar o quão ansioso o modelo está para interromper o usuário, ajustando o tempo limite máximo de espera. No modo de transcrição, mesmo que o modelo não responda, ele afeta a forma como o áudio é agrupado.
Os seguintes valores são permitidos:
- auto (padrão) é equivalente a medium,
- low permitirá que o usuário tire seu tempo para falar,
- high dividirá o áudio assim que possível.

Se você quiser que o modelo responda com mais frequência no modo de conversa ou retorne eventos de transcrição mais rapidamente no modo de transcrição, você pode definir a ânsia como high.
Por outro lado, se você quiser permitir que o usuário fale ininterruptamente no modo de conversa ou se quiser partes de transcrição maiores no modo de transcrição, poderá definir a ânsia lowcomo .
criar_resposta boolean Optional. Habilite ou desabilite se uma resposta é gerada.
interrupt_response boolean Optional. Habilitar ou desabilitar a interrupção da barcaça (padrão: false)
RealtimeAzureSemanticVAD

VAD semântico do Azure, que determina quando o usuário inicia e fala usando um modelo de fala semântica, fornecendo uma detecção mais robusta em ambientes barulhentos.

Campo Tipo Description
tipo cadeia Deve ser "azure_semantic_vad"
limite número Optional. Limite de ativação
prefix_padding_ms inteiro Optional. Preenchimento de áudio antes da fala
silence_duration_ms inteiro Optional. Duração do silêncio para o fim da fala
end_of_utterance_detection RealtimeEOUDetection Optional. Configuração de detecção de EOU
speech_duration_ms inteiro Optional. Duração mínima da fala
remove_filler_words boolean Optional. Remover palavras de preenchimento (padrão: false)
idiomas cadeia de caracteres[] Optional. Dá suporte a inglês. Outros idiomas serão ignorados.
criar_resposta boolean Optional. Habilite ou desabilite se uma resposta é gerada.
interrupt_response boolean Optional. Habilitar ou desabilitar a interrupção da barcaça (padrão: false)
auto_truncate boolean Optional. Truncar automaticamente na interrupção (padrão: false)
RealtimeAzureSemanticVADMultilingual

VAD semântico do Azure (variante padrão).

Campo Tipo Description
tipo cadeia Deve ser "azure_semantic_vad_multilingual"
limite número Optional. Limite de ativação
prefix_padding_ms inteiro Optional. Preenchimento de áudio antes da fala
silence_duration_ms inteiro Optional. Duração do silêncio para o fim da fala
end_of_utterance_detection RealtimeEOUDetection Optional. Configuração de detecção de EOU
speech_duration_ms inteiro Optional. Duração mínima da fala
remove_filler_words boolean Optional. Remova palavras de preenchimento (padrão: false).
idiomas cadeia de caracteres[] Optional. Dá suporte a inglês, espanhol, francês, italiano, alemão (DE), japonês, português, chinês, coreano, hindi. Outros idiomas serão ignorados.
criar_resposta boolean Optional. Habilite ou desabilite se uma resposta é gerada.
interrupt_response boolean Optional. Habilitar ou desabilitar a interrupção da barcaça (padrão: false)
auto_truncate boolean Optional. Truncar automaticamente na interrupção (padrão: false)

RealtimeEOUDetection

O EOU (Fim do Enunciado) do Azure pode indicar quando o usuário final parou de falar enquanto permitia pausas naturais. A detecção do fim do enunciado pode reduzir significativamente os sinais prematuros de fim de turno sem adicionar latência perceptível ao usuário.

Campo Tipo Description
modelo cadeia Poderia estar semantic_detection_v1 apoiando inglês ou semantic_detection_v1_multilingual apoiando inglês, espanhol, francês, italiano, alemão (DE), japonês, português, chinês, coreano, hindi
threshold_level cadeia Optional. Nível de limite de detecção (low, mediumhighe default), a configuração padrão é medium igual a. Com uma configuração mais baixa, a probabilidade de a sentença ser concluída será maior.
tempo_de_espera_ms número Optional. Tempo máximo em milissegundos para aguardar mais fala do usuário. O padrão é 1000 ms.

Configuração do Avatar

RealtimeAvatarConfig

Configuração para streaming e comportamento de avatar.

Campo Tipo Description
ice_servers RealtimeIceServer[] Optional. Servidores ICE para WebRTC
caractere cadeia Nome ou ID do caractere para o avatar
estilo cadeia Optional. Estilo avatar (tom emocional, estilo de fala)
Personalizado boolean Se o avatar está personalizado
vídeo RealtimeVideoParams Optional. Configuração de vídeo

RealtimeIceServer

Configuração do servidor ICE para negociação de conexão webRTC.

Campo Tipo Description
urls cadeia de caracteres[] URLs do servidor ICE (pontos de extremidade TURN ou STUN)
nome de usuário cadeia Optional. Nome de usuário para autenticação
credencial cadeia Optional. Credencial para autenticação

RealtimeVideoParams

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

Campo Tipo Description
taxa de bits inteiro Optional. Taxa de bits em bits por segundo (padrão: 2000000)
codec cadeia Optional. Codec de vídeo, atualmente apenas h264 (padrão: h264)
cortar RealtimeVideoCrop Optional. Configurações de corte
resolução RealtimeVideoResolution Optional. Configurações de resolução

RealtimeVideoCrop

Definição de retângulo de corte de vídeo.

Campo Tipo Description
top_left inteiro[] Canto superior esquerdo [x, y], inteiros não negativos
bottom_right inteiro[] Canto inferior direito [x, y], inteiros não negativos

RealtimeVideoResolution

Especificação de resolução de vídeo.

Campo Tipo Description
largura inteiro Largura em pixels (deve ser > 0)
height inteiro Altura em pixels (deve ser > 0)

Configuração de animação

RealtimeAnimation

Configuração para saídas de animação, incluindo blendshapes e visemes.

Campo Tipo Description
model_name cadeia Optional. Nome do modelo de animação (padrão: "default")
saídas RealtimeAnimationOutputType[] Optional. Tipos de saída (padrão: ["blendshapes"])

RealtimeAnimationOutputType

Tipos de dados de animação para saída.

Valores permitidos:

  • blendshapes - Dados de blendshapes faciais
  • viseme_id – Dados do identificador do Viseme

Configuração da sessão

RealtimeRequestSession

Objeto de configuração de sessão usado em session.update eventos.

Campo Tipo Description
modelo cadeia Optional. Nome do modelo a ser usado
modalities RealtimeModality[] Optional. As modalidades com suporte para a sessão.

Por exemplo, "modalidades": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalidades": ["text"]. Para habilitar a saída do avatar, defina "modalidades": ["text", "audio", "avatar"]. Você não pode habilitar apenas o áudio.
animação RealtimeAnimation Optional. Configuração de animação
Voz RealtimeVoice Optional. Configuração de voz
instructions cadeia Optional. Instruções do sistema para o modelo. As instruções podem orientar o áudio de saída se as vozes OpenAI forem usadas, mas não se aplicarem às vozes do Azure.
input_audio_sampling_rate inteiro Optional. Taxa de amostragem de áudio de entrada em Hz (padrão: 24000 para pcm16, 8000 para g711_ulaw e g711_alaw)
input_audio_format RealtimeAudioFormat Optional. Formato de áudio de entrada (padrão: pcm16)
output_audio_format RealtimeOutputAudioFormat Optional. Formato de áudio de saída (padrão: pcm16)
input_audio_noise_reduction RealtimeInputAudioNoiseReductionSettings Configuração para redução de ruído de áudio de entrada. Isso pode ser definido como nulo para desativar. A redução de ruído filtra o áudio adicionado ao buffer de áudio de entrada antes de ser enviado ao VAD e ao modelo. Filtrar o áudio pode melhorar a precisão do VAD e da detecção de turnos (reduzindo falsos positivos) e o desempenho do modelo ao aprimorar a percepção do áudio de entrada.

Essa propriedade é anulável.
input_audio_echo_cancellation RealtimeInputAudioEchoCancellationSettings Configuração para cancelamento de eco de áudio de entrada. Isso pode ser definido como nulo para desativar. Esse cancelamento de eco do lado do serviço pode ajudar a melhorar a qualidade do áudio de entrada reduzindo o impacto do eco e da reverberação.

Essa propriedade é anulável.
input_audio_transcription RealtimeAudioInputTranscriptionSettings A configuração da transcrição de áudio de entrada. A configuração é nula (desativada) por padrão. A transcrição de áudio de entrada não é nativa do modelo, pois o modelo consome áudio diretamente. A transcrição é executada de forma assíncrona por meio do /audio/transcriptions ponto de extremidade e deve ser tratada como orientação do conteúdo de áudio de entrada, em vez de precisamente o que o modelo ouviu. Para obter diretrizes adicionais para o serviço de transcrição, o cliente pode opcionalmente definir o idioma e solicitar a transcrição.

Essa propriedade é anulável.
turn_detection RealtimeTurnDetection As configurações de detecção de turno para a sessão. Isso pode ser definido como nulo para desativar.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
tool_choice RealtimeToolChoice A opção da ferramenta para a sessão.

Valores permitidos: auto, e nonerequired. Caso contrário, você poderá especificar o nome da função a ser usada.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max_response_output_tokens inteiro ou "inf" O número máximo de tokens de saída por resposta do assistente, inclusive de chamadas de ferramenta.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "inf" para permitir o número máximo de tokens.

Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf".

Usa "inf" como padrão.
Avatar RealtimeAvatarConfig Optional. Configuração do avatar
output_audio_timestamp_types RealtimeAudioTimestampType[] Optional. Tipos de carimbo de data/hora para áudio de saída

RealtimeModality

Modalidades de sessão com suporte.

Valores permitidos:

  • text - Entrada/saída de texto
  • audio - Entrada/saída de áudio
  • animation - Saída de animação
  • avatar - Saída de vídeo do avatar

RealtimeAudioTimestampType

Tipos de carimbo de data/hora de saída com suporte no conteúdo de resposta de áudio.

Valores permitidos:

  • word - Carimbos de data/hora por palavra no áudio de saída

Configuração da ferramenta

Oferecemos suporte a dois tipos de ferramentas: chamada de função e ferramentas MCP que permitem que você se conecte a um servidor mcp.

RealtimeTool

Definição de ferramenta para chamada de função.

Campo Tipo Description
tipo cadeia Deve ser "function"
nome cadeia Nome da função
descrição cadeia Descrição da função e diretrizes de uso
parameters objeto Parâmetros de função como objeto de esquema JSON

RealtimeToolChoice

Estratégia de seleção de ferramentas.

Isso pode ser:

  • "auto" - Deixe o modelo escolher
  • "none" - Não use ferramentas
  • "required" - Deve usar uma ferramenta
  • { "type": "function", "name": "function_name" } – Usar uma função específica

MCPTool

Configuração da ferramenta MCP.

Campo Tipo Description
tipo cadeia Deve ser "mcp"
etiqueta_do_servidor cadeia Obrigatório O rótulo do servidor MCP.
URL_do_servidor cadeia Obrigatório A URL do servidor MCP.
ferramentas_permitidas cadeia de caracteres[] Optional. A lista de nomes de ferramentas permitidos. Se não for especificado, todas as ferramentas serão permitidas.
headers objeto Optional. Cabeçalhos adicionais a serem incluídos em solicitações MCP.
autorização cadeia Optional. Token de autorização para solicitações MCP.
requer_aprovação cadeia de caracteres ou dicionário Optional.
Se definido como uma cadeia de caracteres, o valor deve ser never ou always.
Se definido como um dicionário, ele deve estar no formato {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}.
O valor padrão é always.
Quando definido como always, a execução da ferramenta requer aprovação, mcp_approval_request será enviado ao cliente quando o argumento mcp for concluído e só será executado quando mcp_approval_response com approve=true for recebido.
Quando definido como never, a ferramenta será executada automaticamente sem aprovação.

RealtimeConversationResponseItem

Esse é um tipo de união que pode ser um dos seguintes:

RealtimeConversationUserMessageItem

Item de mensagem do usuário.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "message"
objeto cadeia Deve ser "conversation.item"
função cadeia Deve ser "user"
conteúdo RealtimeInputTextContentPart O conteúdo da mensagem.
status RealtimeItemStatus A situação do item.

RealtimeConversationAssistantMessageItem

Item de mensagem do assistente.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "message"
objeto cadeia Deve ser "conversation.item"
função cadeia Deve ser "assistant"
conteúdo RealtimeOutputTextContentPart[] ou RealtimeOutputAudioContentPart[] O conteúdo da mensagem.
status RealtimeItemStatus A situação do item.

RealtimeConversationSystemMessageItem

Item de mensagem do sistema.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "message"
objeto cadeia Deve ser "conversation.item"
função cadeia Deve ser "system"
conteúdo RealtimeInputTextContentPart[] O conteúdo da mensagem.
status RealtimeItemStatus A situação do item.

RealtimeConversationFunctionCallItem

Item de solicitação de chamada de função.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "function_call"
objeto cadeia Deve ser "conversation.item"
nome cadeia O nome da função a ser chamada.
arguments cadeia Os argumentos para a função chamam como uma cadeia de caracteres JSON.
call_id cadeia A ID exclusiva da chamada de função.
status RealtimeItemStatus A situação do item.

RealtimeConversationFunctionCallOutputItem

Item de resposta de chamada de função.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "function_call_output"
objeto cadeia Deve ser "conversation.item"
nome cadeia O nome da função que foi chamada.
saída cadeia A saída da chamada de função.
call_id cadeia A ID exclusiva da chamada de função.
status RealtimeItemStatus A situação do item.

RealtimeConversationMCPListToolsItem

Item de resposta de ferramentas de lista MCP.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "mcp_list_tools"
etiqueta_do_servidor cadeia O rótulo do servidor MCP.

RealtimeConversationMCPCallItem

Item de resposta de chamada MCP.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "mcp_call"
etiqueta_do_servidor cadeia O rótulo do servidor MCP.
nome cadeia O nome da ferramenta a ser chamada.
approval_request_id cadeia A ID da solicitação de aprovação para a chamada do MCP.
arguments cadeia Os argumentos para a chamada do MCP.
saída cadeia A saída da chamada MCP.
erro objeto O erro detalha se a chamada mcp falhou.

RealtimeConversationMCPApprovalRequestItem

Item de solicitação de aprovação do MCP.

Campo Tipo Description
id cadeia A ID exclusiva do item.
tipo cadeia Deve ser "mcp_approval_request"
etiqueta_do_servidor cadeia O rótulo do servidor MCP.
nome cadeia O nome da ferramenta a ser chamada.
arguments cadeia Os argumentos para a chamada do MCP.

RealtimeItemStatus

Status dos itens de conversa.

Valores permitidos:

  • in_progress - Atualmente sendo processado
  • completed - Concluído com êxito
  • incomplete - Incompleto (interrompido ou com falha)

RealtimeContentPart

Parte do conteúdo dentro de uma mensagem.

RealtimeInputTextContentPart

Parte do conteúdo do texto.

Campo Tipo Description
tipo cadeia Deve ser "input_text"
enviar SMS cadeia O conteúdo do texto

RealtimeOutputTextContentPart

Parte do conteúdo do texto.

Campo Tipo Description
tipo cadeia Deve ser "text"
enviar SMS cadeia O conteúdo do texto

RealtimeInputAudioContentPart

Parte do conteúdo de áudio.

Campo Tipo Description
tipo cadeia Deve ser "input_audio"
audio cadeia Optional. Dados de áudio codificados em Base64
transcrição cadeia Optional. Transcrição de áudio

RealtimeOutputAudioContentPart

Parte do conteúdo de áudio.

Campo Tipo Description
tipo cadeia Deve ser "audio"
audio cadeia Dados de áudio codificados em Base64
transcrição cadeia Optional. Transcrição de áudio

Objetos de resposta

RealtimeResponse

Objeto de resposta que representa uma resposta de inferência de modelo.

Campo Tipo Description
id cadeia Optional. ID de resposta
objeto cadeia Optional. Sempre "realtime.response"
status RealtimeResponseStatus Optional. Status da resposta
detalhes_do_status RealtimeResponseStatusDetails Optional. Detalhes do status
saída RealtimeConversationResponseItem[] Optional. Itens de saída
uso RealtimeUsage Optional. Estatísticas de uso de token
conversation_id cadeia Optional. ID da conversa associada
Voz RealtimeVoice Optional. Voz usada para resposta
modalities cadeia de caracteres[] Optional. Modalidades usadas
output_audio_format RealtimeOutputAudioFormat Optional. Formato de áudio usado
temperatura número Optional. Temperatura usada
max_response_output_tokens inteiro ou "inf" Optional. Tokens máximos usados

RealtimeResponseStatus

Valores de status de resposta.

Valores permitidos:

  • in_progress - A resposta está sendo gerada
  • completed - Resposta concluída com êxito
  • cancelled - A resposta foi cancelada
  • incomplete - Resposta incompleta (interrompida)
  • failed - Falha na resposta com erro

RealtimeUsage

Estatísticas de uso de token.

Campo Tipo Description
total_tokens inteiro Total de tokens usados
input_tokens inteiro Tokens de entrada usados
output_tokens inteiro Tokens de saída gerados
input_token_details TokenDetails Divisão de tokens de entrada
output_token_details TokenDetails Divisão de tokens de saída

TokenDetails

Detalhamento do uso do token.

Campo Tipo Description
cached_tokens inteiro Optional. Tokens armazenados em cache usados
text_tokens inteiro Optional. Tokens de texto usados
audio_tokens inteiro Optional. Tokens de áudio usados

Tratamento de erros

RealtimeErrorDetails

Objeto de informações de erro.

Campo Tipo Description
tipo cadeia Tipo de erro (por exemplo, "invalid_request_error", "server_error")
codificar cadeia Optional. Código de erro específico
mensagem cadeia Descrição do erro legível por humanos
param cadeia Optional. Parâmetro relacionado ao erro
event_id cadeia Optional. ID do evento cliente que causou o erro

RealtimeConversationRequestItem

Use o RealtimeConversationRequestItem objeto para criar um novo item na conversa por meio do evento conversation.item.create .

Esse é um tipo de união que pode ser um dos seguintes:

RealtimeSystemMessageItem

Um item de mensagem do sistema.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: message
função cadeia A função da mensagem.

Valores permitidos: system
conteúdo matriz de RealtimeInputTextContentPart O conteúdo da mensagem.
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.

RealtimeUserMessageItem

Um item de mensagem do usuário.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: message
função cadeia A função da mensagem.

Valores permitidos: user
conteúdo matriz de RealtimeInputTextContentPart ou RealtimeInputAudioContentPart O conteúdo da mensagem.
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.

RealtimeAssistantMessageItem

Um item de mensagem do assistente.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: message
função cadeia A função da mensagem.

Valores permitidos: assistant
conteúdo matriz de RealtimeOutputTextContentPart O conteúdo da mensagem.

RealtimeFunctionCallItem

Um item de chamada de função.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: function_call
nome cadeia O nome da função a ser chamada.
arguments cadeia Os argumentos da função chamam como uma cadeia de caracteres JSON.
call_id cadeia A ID do item de chamada de função.
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.

RealtimeFunctionCallOutputItem

Um item de saída de chamada de função.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: function_call_output
call_id cadeia A ID do item de chamada de função.
saída cadeia A saída da chamada de função, essa é uma cadeia de caracteres de forma livre com o resultado da função, também pode estar vazia.
id cadeia A ID exclusiva do item. Se o cliente não fornecer uma ID, o servidor gerará uma.

RealtimeMCPApprovalResponseItem

Um item de resposta de aprovação do MCP.

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: mcp_approval_response
aprovar boolean Se a solicitação MCP foi aprovada.
approval_request_id cadeia A ID da solicitação de aprovação do MCP.

RealtimeFunctionTool

A definição de uma ferramenta de função, conforme usado pelo ponto de extremidade em tempo real.

Campo Tipo Description
tipo cadeia O tipo da ferramenta.

Valores permitidos: function
nome cadeia O nome da função.
descrição cadeia A descrição da função, incluindo diretrizes de uso. Por exemplo, "Use essa função para obter a hora atual".
parameters objeto Os parâmetros da função na forma de um objeto JSON.

RealtimeItemStatus

Valores permitidos:

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Campo Tipo Description
tipo cadeia O tipo da parte de conteúdo.

Valores permitidos: audio
transcrição cadeia A transcrição do áudio.

Essa propriedade é anulável.

RealtimeResponseFunctionCallItem

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: function_call
nome cadeia O nome do item de chamada de função.
call_id cadeia A ID do item de chamada de função.
arguments cadeia Os argumentos do item de chamada de função.
status RealtimeItemStatus A situação do item.

RealtimeResponseFunctionCallOutputItem

Campo Tipo Description
tipo cadeia O tipo do item.

Valores permitidos: function_call_output
call_id cadeia A ID do item de chamada de função.
saída cadeia A saída do item de chamada de função.

RealtimeResponseOptions

Campo Tipo Description
modalities matriz As modalidades compatíveis com a sessão.

Valores permitidos: text, audio

Por exemplo, "modalities": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalities": ["text"]. Você não pode habilitar apenas o áudio.
instructions cadeia As instruções (a mensagem do sistema) para orientar as respostas do modelo.
Voz RealtimeVoice A voz usada para a resposta do modelo para a sessão.

Depois que a voz é usada na sessão para a resposta de áudio do modelo, ela não pode ser alterada.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
tool_choice RealtimeToolChoice A opção da ferramenta para a sessão.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max_response_output_tokens inteiro ou "inf" O número máximo de tokens de saída por resposta do assistente, inclusive de chamadas de ferramenta.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "inf" para permitir o número máximo de tokens.

Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf".

Usa "inf" como padrão.
conversa cadeia Controla a qual conversa a resposta é adicionada. Os valores com suporte são auto e none.

O auto valor (ou não definir essa propriedade) garante que o conteúdo da resposta seja adicionado à conversa padrão da sessão.

Defina essa propriedade para none criar uma resposta fora de banda em que os itens não serão adicionados à conversa padrão.

Usa como padrão "auto"
metadados mapa Configure até 16 pares chave-valor que podem ser anexados a um objeto. Este poderá ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.

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

RealtimeResponseSession

O RealtimeResponseSession objeto representa uma sessão na API realtime. Ele é usado em alguns dos eventos do servidor, como:

Campo Tipo Description
objeto cadeia O objeto de sessão.

Valores permitidos: realtime.session
id cadeia A ID exclusiva da sessão.
modelo cadeia O modelo usado para a sessão.
modalities matriz As modalidades compatíveis com a sessão.

Valores permitidos: text, audio

Por exemplo, "modalities": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalities": ["text"]. Você não pode habilitar apenas o áudio.
instructions cadeia As instruções (a mensagem do sistema) para orientar as respostas de texto e áudio do modelo.

Aqui estão algumas instruções de exemplo para ajudar a orientar o conteúdo e o formato das respostas de texto e áudio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Aqui estão algumas instruções de exemplo para ajudar a orientar o comportamento de áudio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Embora o modelo nem sempre siga estas instruções, eles fornecem diretrizes sobre o comportamento desejado.
Voz RealtimeVoice A voz usada para a resposta do modelo para a sessão.

Depois que a voz é usada na sessão para a resposta de áudio do modelo, ela não pode ser alterada.
input_audio_sampling_rate inteiro A taxa de amostragem do áudio de entrada.
input_audio_format RealtimeAudioFormat O formato do áudio de entrada.
output_audio_format RealtimeAudioFormat O formato do áudio de saída.
input_audio_transcription RealtimeAudioInputTranscriptionSettings As configurações de transcrição de entrada de áudio.

Essa propriedade é anulável.
turn_detection RealtimeTurnDetection As configurações de detecção de turno para a sessão.

Essa propriedade é anulável.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
tool_choice RealtimeToolChoice A opção da ferramenta para a sessão.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max_response_output_tokens inteiro ou "inf" O número máximo de tokens de saída por resposta do assistente, inclusive de chamadas de ferramenta.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "inf" para permitir o número máximo de tokens.

Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf".

RealtimeResponseStatusDetails

Campo Tipo Description
tipo RealtimeResponseStatus O status da resposta.

RealtimeRateLimitsItem

Campo Tipo Description
nome cadeia O nome da propriedade de limite de taxa sobre o qual este item inclui informações.
limit inteiro O limite máximo configurado para essa propriedade de limite de taxa.
remaining inteiro A cota restante disponível em relação ao limite configurado para essa propriedade de limite de taxa.
reset_seconds número O tempo restante, em segundos, até que essa propriedade de limite de taxa seja redefinida.