Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Qwen-ASR-Realtime Java SDK - API reference

Última atualização: Sep 02, 2026

Use o DashScope Java SDK para chamar o Qwen-ASR-Realtime.

Guia do usuário: Para obter uma visão geral do modelo, recursos e código de exemplo completo, consulte Reconhecimento de fala em tempo real - Qwen.

Pré-requisitos

ImportanteO Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Pequim) e Singapura. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para solicitações de inferência. Recomendamos migrar para os novos domínios:

  • China (Pequim): de dashscope.aliyuncs.com para {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapura: de dashscope-intl.aliyuncs.com para {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

Substitua {WorkspaceId} pelo seu ID do Workspace real. Os domínios existentes permanecem totalmente funcionais.

Modos de interação

O Qwen-ASR-Realtime oferece dois modos para determinar quando processar o áudio:

Modo

enableTurnDetection

Funcionamento

Modo VAD (padrão)

true

O servidor detecta os limites da fala usando detecção de atividade de voz (VAD) e decide quando enviar o buffer de áudio para reconhecimento.

Modo manual

false

O cliente controla o envio do áudio chamando commit(), garantindo controle total sobre a segmentação.

Para obter detalhes sobre cada modo, consulte Modo VAD e Modo manual.

Parâmetros da solicitação

Parâmetros de conexão (OmniRealtimeParam)

Defina esses parâmetros com os métodos encadeados da classe OmniRealtimeParam.

Clique em para visualizar o código de exemplo

OmniRealtimeParam param = OmniRealtimeParam.builder()
        .model("qwen3-asr-flash-realtime")
        // Endpoint for the Singapore region.
        // The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
        .url("wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime")
        // The API keys for the Singapore and Beijing regions are different.
        // To obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
        // If you have not configured an environment variable, replace the following line with .apikey("sk-xxx").
        .apikey(System.getenv("DASHSCOPE_API_KEY"))
        .build();

Parâmetro

Tipo

Obrigatório

Descrição

model

String

Sim

Modelo a ser usado. Exemplo: qwen3-asr-flash-realtime.

url

String

Sim

Endpoint do serviço. China (Pequim): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime. Singapura: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime. Substitua {WorkspaceId} pelo seu ID do Workspace real. Substitua {WorkspaceId} pelo seu ID do workspace real.

apikey

String

Não

Chave de API.

Configuração da sessão (OmniRealtimeConfig)

Defina esses parâmetros com os métodos encadeados da classe OmniRealtimeConfig.

Clique em para visualizar o código de exemplo

OmniRealtimeTranscriptionParam transcriptionParam = new OmniRealtimeTranscriptionParam();
transcriptionParam.setLanguage("zh");
transcriptionParam.setInputSampleRate(16000);
transcriptionParam.setInputAudioFormat("pcm");

OmniRealtimeConfig config = OmniRealtimeConfig.builder()
        .modalities(Collections.singletonList(OmniRealtimeModality.TEXT))
        .enableTurnDetection(true)
        .turnDetectionType("server_vad")
        .turnDetectionThreshold(0.0f)
        .turnDetectionSilenceDurationMs(400)
        .transcriptionConfig(transcriptionParam)
        .build();

Parâmetro

Tipo

Obrigatório

Descrição

modalities

List<OmniRealtimeModality>

Sim

Modalidade de saída. Valor fixo: [OmniRealtimeModality.TEXT].

enableTurnDetection

boolean

Não

Ativa o VAD no lado do servidor. Quando desativado, chame commit() para acionar o reconhecimento manualmente. Padrão: true.

turnDetectionType

String

Não

Tipo de VAD. Valor fixo: server_vad.

turnDetectionThreshold

float

Não

Limiar de sensibilidade do VAD. Valor recomendado: 0,0.

Padrão: 0,2. Intervalo válido: [-1, 1].

Valores menores aumentam a sensibilidade (podem gerar acionamentos por ruído de fundo). Valores maiores reduzem a sensibilidade e ajudam a evitar acionamentos falsos em ambientes ruidosos.

turnDetectionSilenceDurationMs

int

Não

Duração do silêncio em milissegundos que marca o fim de uma expressão. Valor recomendado: 400.

Padrão: 800. Intervalo válido: [200, 6000].

Durações mais curtas (por exemplo, 300 ms) aceleram as respostas, mas podem dividir pausas naturais. Durações mais longas (por exemplo, 1200 ms) lidam melhor com pausas, mas aumentam a latência.

transcriptionConfig

OmniRealtimeTranscriptionParam

Não

Configurações de reconhecimento de fala. Consulte Parâmetros de transcrição.

Parâmetros de transcrição (OmniRealtimeTranscriptionParam)

Defina esses parâmetros com os métodos setter da classe OmniRealtimeTranscriptionParam.

Clique em para visualizar o código de exemplo

OmniRealtimeTranscriptionParam transcriptionParam = new OmniRealtimeTranscriptionParam();
transcriptionParam.setLanguage("zh");
transcriptionParam.setInputSampleRate(16000);
transcriptionParam.setInputAudioFormat("pcm");

Parâmetro

Tipo

Obrigatório

Descrição

language

String

Não

Idioma da source de áudio. Para idiomas compatíveis, consulte Idiomas suportados.

inputSampleRate

int

Não

Taxa de amostragem de áudio em Hz. Valores válidos: 16000, 8000.

Padrão: 16000.

Definir como 8000 causa upsampling no lado do servidor para 16.000 Hz, o que pode introduzir pequena latência. Use apenas para áudio nativo de 8.000 Hz (por exemplo, telefonia).

inputAudioFormat

String

Não

Formato de codificação de áudio. Valores válidos: pcm, opus. Padrão: pcm.

corpusText

String

Não

Texto de contexto para viés contextual. Forneça texto de base, vocabulários de entidades ou material de referência para melhorar a precisão do reconhecimento. Máximo: 10.000 tokens.

Interfaces principais

OmniRealtimeConversation

Importação: com.alibaba.dashscope.audio.omni.OmniRealtimeConversation

Esta classe gerencia o ciclo de vida do WebSocket: conexão ao servidor, envio de áudio e encerramento da sessão.

Crie uma conversa

OmniRealtimeConversation conversation =
        new OmniRealtimeConversation(param, callback);

Cria uma nova instância de conversa com os parâmetros de conexão e o manipulador de callback especificados.

Conectar-se ao servidor

conversation.connect();

Abre uma conexão WebSocket. O servidor responde com os eventos session.created e session.updated.

Gera exceção: NoApiKeyException, InterruptedException.

Configure a sessão

conversation.updateSession(config);

Atualiza a configuração da sessão após estabelecer a conexão. O servidor responde com um evento session.updated. Se não for chamado, o servidor usa as configurações padrão.

Enviar dados de áudio

conversation.appendAudio(audioBase64);

Adiciona um segmento de áudio codificado em Base64 ao buffer de áudio no lado do servidor.

  • Modo VAD (enableTurnDetection=true): O servidor detecta os limites da fala e decide quando processar o buffer.
  • Modo manual (enableTurnDetection=false): O áudio se acumula no buffer até você chamar commit() para acionar o reconhecimento. Cada evento pode conter até 15 MiB de dados de áudio.

Confirmar o buffer de áudio

conversation.commit();

Envia o áudio armazenado em buffer para reconhecimento. O servidor responde com um evento input_audio_buffer.committed.

Este método está disponível apenas no modo manual ( enableTurnDetection=false ). Ocorre um erro se o buffer de áudio estiver vazio.

Encerrar a sessão

conversation.endSession();  // synchronous
// or
conversation.endSessionAsync();  // asynchronous

Notifica o servidor para concluir o processamento de qualquer áudio restante e encerrar a sessão. O servidor responde com um evento session.finished.

Quando chamar:

  • Modo VAD: Após terminar de enviar áudio.
  • Modo manual: Após chamar commit().

Cancele uma resposta

conversation.cancelResponse();

Cancela a resposta em andamento. Se não houver resposta para cancelar, o servidor retornará um erro.

Fechar a conexão

conversation.close();

Interrompe a tarefa e fecha a conexão WebSocket imediatamente.

Obter IDs de sessão e resposta

String sessionId = conversation.getSessionId();
String responseId = conversation.getResponseId();
  • getSessionId() retorna o ID da sessão da tarefa atual.
  • getResponseId() retorna o ID da resposta mais recente do servidor.

OmniRealtimeCallback

Importação: com.alibaba.dashscope.audio.omni.OmniRealtimeCallback

Herde esta classe e implemente os métodos de callback para lidar com eventos do servidor.

Método

Parâmetros

Acionado quando

onOpen()

Nenhum

A conexão WebSocket é estabelecida.

onEvent(JsonObject message)

message: Um evento do servidor como JSON. Tipos comuns de eventos: session.created, session.updated, input_audio_buffer.committed, conversation.item.input_audio_transcription.completed, session.finished.

Um evento do servidor é recebido. Analise o campo type para determinar o tipo de evento.

onClose(int code, String reason)

code: Código de status. reason: Motivo do fechamento.

A conexão WebSocket é fechada.