QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

Qwen-Audio-Realtime Eventos do cliente

Qwen-Audio-Realtime Referência de evento do cliente API

Os eventos do cliente são enviados pelo cliente ao servidor para configurar a sessão, enviar áudio, gerenciar a conversa e controlar a inferência.

Guia do usuário: Conversa por voz em tempo real (Qwen-Audio-Realtime). Para ver o cronograma de interação do evento, consulte API WebSocket.

sessão.atualização

Após estabelecer a conexão, envie este evento para atualizar a configuração padrão da sessão. Inclua apenas os campos que você want mudar; os campos omitidos mantêm seu valor atual. O servidor valida os parâmetros no recebimento — se forem inválidos, retorna um erro; se válido, aplica as alterações e retorna a configuração completa.

turn_detection só pode ser alterado antes do primeiro áudio ser enviado (estado IDLE).

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como session.update.
sessão objeto Opcional Configuração da sessão.
sessão.modalidades matriz Opcional As modalidades de saída do modelo. Opções: ["text"] (somente saída de texto); ["audio", "text"] (padrão, gera texto e áudio).
sessão.voz corda Opcional Nome de voz TTS. O padrão é longanqian_v3.1 para 3.1 Plus e longanqian para 3.0 Plus/Flash. Só pode ser definido no primeiro session.update; ignorado nas chamadas subsequentes. Suporta vozes do sistema e vozes de clonagem de voz (um voice_id criado por meio da API de clonagem de voz). Vozes adicionais do sistema para 3.1 Plus: longanqian_v3.1, longanhuan_v3.1, longanlingxin_v3.1, longanfengyue_v3.1, xunanchuan_v3.1, beth_v3.1, betty_v3.1, cally_v3.1; vozes do sistema compartilhadas pelo 3.1 Plus e 3.0 Plus/Flash: longanqian, longanlingxin, longanlingxi, longanxiaoxin, longanlufeng.
session.enable_speech_emotion booleano Opcional Seja para ativar o aprimoramento da emoção. Quando habilitada, a voz de resposta apresenta variações emocionais mais pronunciadas. Padrão: true. Opções: true, false.
sessão.instruções corda Opcional Instruções do sistema que definem a personalidade, o estilo de resposta e as preferências de comportamento do modelo. Aplica-se a toda a sessão.
sessão.input_audio_format corda Opcional Formato de áudio de entrada. Atualmente apenas pcm (16 kHz, 16 bits, mono) é suportado e é o padrão. Só pode ser alterado antes do envio do primeiro áudio (estado IDLE).
sessão.output_audio_format corda Opcional Formato de áudio de saída. Atualmente apenas pcm (24 kHz, 16 bits, mono) é suportado e é o padrão.
session.input_audio_transcription objeto Opcional Configuração de transcrição de áudio de entrada. Aplica-se a qwen-audio-3.1-realtime-plus.
session.input_audio_transcription.idioma corda Opcional O idioma de origem do áudio de entrada. Valores válidos: zh (chinês), en (Inglês), ja (japonês), ko (coreano), vi (vietnamita), th (tailandês), id (indonésio), ms (malaio), tl (Filipino), hi (hindi), ar (Árabe), fr (francês), de (Alemão), es (Espanhol), pt (português), ru (Russo), it (italiano), nl (holandês), sv (sueco), da (dinamarquês), fi (finlandês), no (norueguês), el (Grego), pl (polonês), cs (Tcheco), hu (húngaro), ro (Romeno), bg (búlgaro), hr (croata), sk (Eslovaco).
sessão.saída_audio objeto Opcional Configuração de áudio de saída. Aplica-se a qwen-audio-3.1-realtime-plus.
session.output_audio.idioma corda Opcional O idioma de destino do áudio de saída. Aplica-se à síntese de fala (TTS). O modelo faz todos os esforços para produzir fala no idioma alvo, mas isso não é garantido e o idioma do texto de resposta não é alterado. Para gerar texto no idioma de destino, indique explicitamente o requisito no prompt, por exemplo, especificando o idioma de resposta em instructions. Valores válidos: zh (chinês), en (Inglês), fr (francês), de (Alemão), ja (japonês), ko (coreano), ru (Russo), pt (português), th (tailandês), id (indonésio), vi (vietnamita), es (Espanhol), it (italiano), ms (malaio), fil (Filipino), ar (Árabe).
session.max_history_turns inteiro Opcional O número máximo de turnos históricos de controle de qualidade permitidos por solicitação. Faixa: 1-50. Padrão: 20.
session.enable_search booleano Opcional Aplica-se ao qwen-audio-3.1-realtime-plus, qwen-audio-3.0-realtime-pluse qwen-audio-3.0-realtime-flash modelos. Especifica se a pesquisa na web deve ser habilitada. Padrão: false. Quando ativado, o modelo decide se deseja pesquisar na web com base na consulta em tempo real. tools e enable_search não pode ser ativado ao mesmo tempo.
session.search_options objeto Opcional Configuração de pesquisa na web. Só entra em vigor quando enable_search está definido para true.
session.search_options.enable_source booleano Opcional Especifica se as fontes dos resultados da pesquisa devem ser retornadas. Definir como true para retornar as fontes.
sessão.ferramentas matriz Opcional Uma lista de definições de ferramentas de chamada de função. Uma vez configurado, o modelo pode decidir por si mesmo se deseja chamar uma ferramenta com base na entrada do usuário. Cada ferramenta inclui type (fixado como function), function.name (obrigatório), function.description (opcional) e function.parameters (opcional, contendo type, properties, required). tools e enable_search não pode ser ativado ao mesmo tempo.
session.turn_detection objeto\ nulo Opcional
session.turn_detection.type corda Opcional Tipo VAD. server_vad (padrão): detecta o início e o fim da fala com base nos recursos acústicos e aciona automaticamente a inferência. smart_turn: detecção inteligente de mudança de direção que combina percepção acústica com compreensão semântica — sons não semânticos (como "um" ou "uh") não acionam uma mudança de conversa nem interrompem a reprodução do modelo.
session.turn_detection.threshold flutuar Opcional Sensibilidade do DAV. Efetivo apenas no modo server_vad (não tem efeito no modo smart_turn). Valores mais baixos são mais sensíveis. Faixa: [-1,0, 1,0]. Padrão: 0,5.
session.turn_detection.silence_duration_ms inteiro Opcional A duração mínima do silêncio (em milissegundos) necessária após o término da fala antes de acionar uma resposta do modelo. Efetivo apenas no modo server_vad (não tem efeito no modo smart_turn). Faixa: [200, 6000]. Padrão: 800. Para cenários de conversação, recomenda-se 400-800.
session.turn_detection.voiceprint_audio_urls matriz Opcional Eficaz apenas no modo smart_turn. Uma lista de URLs publicamente acessíveis para o áudio pré-gravado do locutor alvo, usado para aprimoramento do locutor. Suporta até 5 URLs. Formato de áudio necessário: 16 kHz PCM ou WAV. Só pode ser configurado no primeiro session.update evento; as ocorrências subsequentes deste campo são ignoradas.

Exemplo de configuração básica:

{
    "type": "session.update",
    "session": {
        "modalities": [
            "text",
            "audio"
        ],
        "voice": "longanqian",
        "turn_detection": {
            "type": "server_vad",
            "threshold": 0.5,
            "silence_duration_ms": 800
        }
    }
}

Exemplo de chamada de função:

{
    "type": "session.update",
    "session": {
        "modalities": [
            "text",
            "audio"
        ],
        "voice": "longanqian",
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_weather",
                    "description": "Get the weather for a specified city",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "city": {
                                "type": "string",
                                "title": "City"
                            }
                        },
                        "required": ["city"]
                    }
                }
            }
        ],
        "turn_detection": {
            "type": "server_vad",
            "threshold": 0.5,
            "silence_duration_ms": 800
        }
    }
}

Exemplo de registro de impressão de voz (voiceprint_audio_urls):

{
    "type": "session.update",
    "session": {
        "turn_detection": {
            "type": "smart_turn",
            "voiceprint_audio_urls": [
                "https://example.com/speaker1.pcm",
                "https://example.com/speaker2.wav"
            ]
        }
    }
}

entrada_audio_buffer.append

Acrescenta dados de áudio ao buffer de entrada. Envie continuamente em alta frequência (por exemplo, um quadro a cada 20-40 ms). Este evento não tem reconhecimento do servidor.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como input_audio_buffer.append.
áudio corda Obrigatório Dados de áudio codificados em Base64.
{
    "type": "input_audio_buffer.append",
    "audio": "<base64-encoded audio data>"
}

entrada_audio_buffer.commit

somente modo push-to-talk. Confirma o áudio armazenado em buffer como uma mensagem do usuário. A confirmação não aciona automaticamente a inferência - envie response.create para acioná-lo manualmente.

Este evento é ignorado no modo server_vad / smart_turn.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como input_audio_buffer.commit.
{
    "type": "input_audio_buffer.commit"
}

entrada_audio_buffer.clear

somente modo push-to-talk. Limpa qualquer áudio não confirmado no buffer. Ignorado no modo server_vad / smart_turn. O servidor responde com um input_audio_buffer.cleared evento.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como input_audio_buffer.clear.
{
    "type": "input_audio_buffer.clear"
}

Conversa, item, criar.

Insere manualmente um item de conversa no contexto da conversa. Use isso para injetar contexto histórico, adicionar informações de texto ou gravar o resultado de uma chamada de função.

Se item.id já existe na conversa, o servidor retorna um erro e rejeita a criação.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como conversation.item.create.
anterior_item_id corda Opcional O item após o qual inserir o novo item. Se omitido, o item será anexado ao final da conversa.
item objeto Obrigatório O item de conversa a ser criado.
item.id corda Opcional O identificador exclusivo do item de conversa. Se omitido, o servidor gera um automaticamente. Se o ID especificado já existir na conversa, o servidor retornará um erro.
item.tipo corda Obrigatório O tipo de item de conversa. message: uma mensagem de conversa normal; function_call: uma solicitação de chamada de função (normalmente gerada pelo servidor, mas o cliente também pode usá-la para adicionar contexto histórico); function_call_output: um resultado de execução da ferramenta (após o cliente receber um function_call, ele executa a ferramenta e grava o resultado usando esse tipo).
item.role corda Obrigatório para message tipo A função da mensagem. Opções: system, user, assistant.
item.conteúdo matriz Obrigatório para message tipo A lista de conteúdo da mensagem. Cada elemento inclui um type e seu campo de dados correspondente. system suporta input_text (campo obrigatório text); user suporta input_text (campo obrigatório text) e input_audio (campo obrigatório audio, codificado em Base64); assistant suporta output_text (campo obrigatório text).
item.call_id corda Obrigatório para function_call / function_call_output tipos O identificador exclusivo da chamada de função, usado para associar a solicitação ao seu resultado.
item.nome corda Obrigatório para function_call tipo O nome da função a ser chamada.
item.argumentos corda Obrigatório para function_call tipo Os argumentos de chamada de função, como uma string JSON.
item.saída corda Obrigatório para function_call_output tipo O resultado da execução da ferramenta, como uma string JSON.

Injete uma mensagem de texto do usuário:

{
    "type": "conversation.item.create",
    "previous_item_id": "item_xxx",
    "item": {
        "id": "my_item_001",
        "type": "message",
        "role": "user",
        "content": [
            {
                "type": "input_text",
                "text": "Please summarize our last conversation"
            }
        ]
    }
}

Escreva um resultado de chamada de função:

{
    "type": "conversation.item.create",
    "item": {
        "type": "function_call_output",
        "call_id": "call_xxx",
        "output": "{\"temperature\":18,\"condition\":\"sunny\"}"
    }
}

conversa.item.retrieve

Recupera um item de conversa armazenado no servidor. Para conteúdo do tipo áudio, o item retornado inclui apenas a transcrição (transcript), não os dados de áudio originais.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como conversation.item.retrieve.
item_id corda Obrigatório O ID do item de conversa a ser recuperado. O servidor retorna o resultado através de um conversation.item.retrieved evento.
{
    "type": "conversation.item.retrieve",
    "item_id": "item_xxx"
}

conversa.item.delete

Exclui o item de conversa especificado do contexto de conversa. O servidor confirma com um conversation.item.deleted evento.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como conversation.item.delete.
item_id corda Obrigatório O ID do item de conversa a ser excluído.
{
    "type": "conversation.item.delete",
    "item_id": "item_xxx"
}

resposta.criar

Aciona explicitamente uma rodada de inferência de modelo. Comportamento por modo:

O response campo é opcional e substitui a configuração padrão da sessão para esta rodada de inferência. Em cenários de chamada de função, o cliente também usa esse evento para acionar a segunda rodada de inferência após escrever um function_call_output.

No modo server_vad / smart_turn, uma resposta acionada manualmente ainda pode ser interrompida por uma nova fala.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como response.create.
resposta objeto Opcional Substitui a configuração padrão da sessão para esta rodada de inferência. Se omitido, a configuração da sessão atual será usada.
resposta.modalidades matriz Opcional Substitui as modalidades de saída desta rodada. As opções são as mesmas que modalities em session.update.
resposta.voz corda Opcional Substitui a voz do TTS nesta rodada.
{
    "type": "response.create",
    "response": {
        "modalities": ["audio", "text"]
    }
}

resposta.cancelar

Cancela a resposta que está sendo gerada no momento. Qualquer texto já produzido é gravado na cadeia de itens e o servidor retorna response.done com status=cancelled.

Retorna um erro se nenhuma inferência estiver em andamento.

Campo Tipo Obrigatório Descrição
tipo corda Obrigatório Tipo de evento, fixado como response.cancel.
{
    "type": "response.cancel"
}