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 usa detecção de atividade de voz (VAD) para detectar automaticamente o início e o fim de cada expressão. Use este modo para conversas em tempo real, transcrição de reuniões e cenários semelhantes.
- Modo manual: o cliente controla os limites da expressão. Use esse modo quando o cliente puder determinar esses limites explicitamente, como enviar uma mensagem de voz em um aplicativo de mensagens.
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.
- O cliente envia
input_audio_buffer.appendeventos para anexar áudio ao buffer. - O servidor retorna um
conversation.item.input_audio_transcription.deltaevento quando a fala é detectada. - O cliente continua enviando
input_audio_buffer.appendeventos para enviar áudio. - Após enviar todo o áudio, o cliente envia um
session.finishevento 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.
- O servidor retorna um
conversation.item.input_audio_transcription.deltaevento quando detecta o final da fala. - O servidor retorna um
conversation.item.input_audio_transcription.deltaevento que contém resultados de transcrição parciais. - O servidor retorna um
conversation.item.input_audio_transcription.completedevento que contém o resultado final da transcrição. - O servidor retorna um
session.finishedevento 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.
- O cliente envia
input_audio_buffer.appendeventos para anexar áudio ao buffer. - O cliente envia um
input_audio_buffer.commitevento para confirmar o buffer de áudio de entrada. O commit cria um novo item de mensagem do usuário na conversa. - O cliente envia um
session.finishevento para encerrar a sessão. - O servidor retorna um
conversation.item.input_audio_transcription.deltaevento que contém resultados de transcrição parciais. - O servidor retorna um
conversation.item.input_audio_transcription.completedevento que contém o resultado final da transcrição. - O servidor retorna um
session.finishedevento para sinalizar que o reconhecimento está completo. O cliente deve então fechar a conexão.