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

Qwen-ASR-Realtime API WebSocket

Conexão WebSocket, cabeçalhos e fluxos de interação para Qwen-ASR-Realtime

Qwen-ASR-Realtime recebe fluxos de áudio e transcreve a fala em tempo real através do WebSocket. O serviço suporta dois modos de interação: modo VAD e Modo manual.

Guia do usuário: Para obter visões gerais de modelos e orientações de seleção, consulte Modelos de fala para texto. Para obter um exemplo de código, consulte Reconhecimento de fala em tempo real.

Terminal de serviço

Use o seguinte URL do WebSocket. O model parâmetro de consulta especifica o modelo. Substituir <model_name> com o nome do modelo:

wss://maas.qwencloudapi.com/api-ws/v1/realtime?model=<model_name>

Use o wss:// esquema. Defina a autorização nos cabeçalhos da solicitação (consulte Cabeçalhos da solicitação). Especifique o modelo através do model parâmetro de consulta.

Solicitar cabeçalhos

Inclua os seguintes campos nos cabeçalhos da solicitação:

Parâmetro Tipo Obrigatório Descrição
Autorização corda Sim Token de autenticação no formato Bearer $DASHSCOPE_API_KEY. Substitua pela sua chave de API.
agente do usuário corda Não Identificador do cliente que ajuda o servidor a rastrear fontes de solicitação.
X-DashScope-WorkSpace corda Não QwenCloud ID do espaço de trabalho.
X-DashScope-DataInspection corda Não Se a inspeção de dados deve ser habilitada. Omita este cabeçalho, a menos que seja necessária inspeção de dados; se for, defina o valor como enable.

A autorização é verificada durante o handshake do WebSocket. Se a chave de API for inválida ou estiver ausente, o handshake falhará com um erro HTTP 401 ou 403.

Fluxos de interação

Para obter detalhes sobre eventos de cliente e servidor, consulte Eventos de cliente e Eventos do servidor.

Qwen-ASR-Realtime suporta dois modos de interação:

Modo VAD (padrão)

O servidor detecta automaticamente o início e o fim de cada expressão. Envie o fluxo de áudio continuamente; o servidor retorna a transcrição final de cada enunciado assim que detecta o final.

Para ativar: Configure o session.turn_detection parâmetro no cliente session.update evento.

  1. O cliente envia input_audio_buffer.append eventos para anexar áudio ao buffer.
  2. O servidor retorna um conversation.item.input_audio_transcription.delta evento quando a fala é detectada.
  3. O cliente continua enviando input_audio_buffer.append eventos para enviar áudio.
  4. Após enviar todo o áudio, o cliente envia um session.finish evento para encerrar a sessão.

Na modalidade VAD o cliente deverá enviar um session.finish evento antes de fechar a conexão. Se o cliente fechar a conexão WebSocket sem primeiro enviar session.finish, o servidor descarta o item em andamento atual e eventos como conversation.item.input_audio_transcription.completed não será entregue. Enviar {"type":"session.finish"} antes de ligar ws.Close(), e aguarde o session.finished evento antes de fechar a conexão.

  1. O servidor retorna um conversation.item.input_audio_transcription.delta evento quando detecta o final da fala.
  2. O servidor retorna um conversation.item.input_audio_transcription.delta evento que contém resultados de transcrição parciais.
  3. O servidor retorna um conversation.item.input_audio_transcription.completed evento que contém o resultado final da transcrição.
  4. O servidor retorna um session.finished evento para sinalizar que o reconhecimento está completo. O cliente deve então fechar a conexão.

Se o cliente enviar session.finish antes da etapa 5, o servidor retorna imediatamente um session.finished evento. O cliente deve então fechar a conexão.

Modo manual

O cliente controla os limites da expressão. Após enviar o áudio para um enunciado completo, o cliente envia um input_audio_buffer.commit evento para notificar o servidor.

Para ativar: Definir session.turn_detection para null no cliente session.update evento.

  1. O cliente envia input_audio_buffer.append eventos para anexar áudio ao buffer.
  2. O cliente envia um input_audio_buffer.commit evento para confirmar o buffer de áudio de entrada. O commit cria um novo item de mensagem do usuário na conversa.
  3. O cliente envia um session.finish evento para encerrar a sessão.
  4. O servidor retorna um conversation.item.input_audio_transcription.delta evento que contém resultados de transcrição parciais.
  5. O servidor retorna um conversation.item.input_audio_transcription.completed evento que contém o resultado final da transcrição.
  6. O servidor retorna um session.finished evento para sinalizar que o reconhecimento está completo. O cliente deve então fechar a conexão.