O Qwen-ASR-Realtime recebe fluxos de áudio e transcreve a fala em tempo real via WebSocket. O service oferece suporte a dois modos de interação: VAD mode e Manual mode .
Requests rate limit exceeded, please try again later. Reduza sua taxa de solicitações ou a simultaneidade e tente novamente. Para verificar os limites de cada modelo, consulte Rate limiting.
Endpoint do service
Utilize a seguinte URL WebSocket. O parâmetro de consulta model especifica o modelo. Substitua <model_name> pelo nome do modelo desejado:
- Singapore
- China (Beijing)
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>Substitua {WorkspaceId} pelo seu Workspace ID real.Cabeçalhos da solicitação
Inclua os seguintes campos nos cabeçalhos da solicitação:
Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Authorization | string | Sim | Token de autenticação no formato |
user-agent | string | Não | Identificador do cliente que auxilia o servidor a rastrear as origens das solicitações. |
X-DashScope-WorkSpace | string | Não | O workspace ID do Alibaba Cloud Model Studio. |
X-DashScope-DataInspection | string | Não | Indica se a inspeção de dados deve ser ativada. Omita este cabeçalho, a menos que a inspeção seja necessária; nesse caso, defina o valor como |
Fluxos de interação
Para detalhes sobre eventos do cliente e do servidor, consulte Client events for Qwen-ASR-Realtime e Server events.
O Qwen-ASR-Realtime oferece suporte a dois modos de interação:
- Modo VAD (padrão): O servidor utiliza detecção de atividade de voz (VAD) para identificar automaticamente o início e o fim de cada enunciado. Este modo é ideal para conversas em tempo real, transcrição de reuniões e cenários semelhantes.
- Modo manual: O cliente controla os limites do enunciado. Utilize esta opção quando o cliente puder determinar esses limites explicitamente, como ao 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 enunciado. Envie o fluxo de áudio continuamente; o servidor retornará a transcrição final de cada enunciado assim que detectar seu término. Recomenda-se este modo para conversas em tempo real, transcrição de reuniões e casos de uso similares.
Para ativar: Configure o parâmetro session.turn_detection no evento session.update do cliente.
- O cliente envia eventos input_audio_buffer.append para adicionar áudio ao buffer.
- O servidor retorna um evento input_audio_buffer.speech_started ao detectar fala. Nota: Caso o cliente envie session.finish para encerrar a sessão antes da chegada desse evento, o servidor retornará imediatamente um evento session.finished. Em seguida, o cliente deve fechar a conexão.
- O cliente continua enviando eventos input_audio_buffer.append para submeter o áudio.
- Após enviar todo o áudio, o cliente envia um evento session.finish para finalizar a sessão.
- Um evento input_audio_buffer.speech_stopped é retornado pelo servidor ao detectar o fim da fala.
- O servidor responde com um evento input_audio_buffer.committed.
- Em seguida, o servidor envia um evento conversation.item.created.
- Resultados parciais da transcrição são fornecidos via evento conversation.item.input_audio_transcription.text.
- O resultado final da transcrição chega através de um evento conversation.item.input_audio_transcription.completed.
- Por fim, o servidor retorna um evento session.finished sinalizando que o reconhecimento foi concluído. O cliente deve então fechar a conexão.
Modo manual
Neste modo, o cliente gerencia os limites dos enunciados. Depois de transmitir o áudio correspondente a um enunciado completo, o cliente dispara um evento input_audio_buffer.commit para notificar o servidor. Essa abordagem é indicada quando o cliente consegue determinar tais limites de forma explícita, por exemplo, ao gravar e enviar uma mensagem de voz em um aplicativo de chat.
Para ativar: Defina session.turn_detection como null no evento session.update do cliente.
- Eventos input_audio_buffer.append são enviados pelo cliente para acrescentar áudio ao buffer.
- O cliente dispara um evento input_audio_buffer.commit para confirmar o buffer de áudio de entrada. Essa confirmação cria um novo item de mensagem do usuário na conversa.
- Um evento session.finish é emitido pelo cliente para encerrar a sessão.
- O servidor devolve um evento input_audio_buffer.committed.
- Transcrições parciais chegam por meio de um evento conversation.item.input_audio_transcription.text.
- O resultado definitivo da transcrição é entregue num evento conversation.item.input_audio_transcription.completed.
- Para indicar o fim do reconhecimento, o servidor retorna um evento session.finished. Nesse momento, o cliente deve fechar a conexão.