Qwen-Audio-3.x-ASR-Flash-Streaming/Fun-ASR-Realtime eventos de cliente de reconhecimento de fala em tempo real
Referência de evento do cliente WebSocket para Qwen-Audio-3.x-ASR-Flash-Streaming/Fun-ASR-Realtime reconhecimento de fala em tempo real
Guia do usuário: Para descrições de modelos e orientações de seleção, consulte Modelos de fala para texto.
Fluxo de interação de eventos: para ver a sequência de interação de eventos, consulte API WebSocket.
tarefa de execução
Descrição: inicia uma tarefa de reconhecimento de fala e define parâmetros como modelo, formato de áudio e taxa de amostragem.
Quando enviar: Envie imediatamente após a conexão WebSocket ser estabelecida.
Evento de resposta: Você pode enviar áudio somente após o servidor retornar a tarefa iniciada evento.
{
"header": {
"action": "run-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"task_group": "audio",
"task": "asr",
"function": "recognition",
"model": "qwen-audio-3.0-asr-flash-streaming",
"parameters": {
"format": "pcm",
"sample_rate": 16000
},
"input": {}
}
}
{
"header": {
"action": "run-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"task_group": "audio",
"task": "asr",
"function": "recognition",
"model": "qwen-audio-3.0-asr-flash-streaming",
"parameters": {
"format": "pcm",
"sample_rate": 16000
},
"input": {
"context": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello there"
}
]
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello, I am Qwen. How can I help you?"
}
]
}
]
}
}
}
{
"header": {
"action": "run-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"task_group": "audio",
"task": "asr",
"function": "recognition",
"model": "qwen-audio-3.0-asr-flash-streaming",
"parameters": {
"format": "pcm",
"sample_rate": 16000,
"vocabulary": {"John Smith": 5, "Jane Doe": 5}
},
"input": {}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `run-task`.
Um ID de tarefa gerado pelo cliente (formato UUID) que vincula eventos subsequentes a esta tarefa.
Definir como `duplex`.
Carga útil da mensagem.
O grupo de tarefas. Definir como `audio`.
O tipo de tarefa. Definir como `asr`.
O tipo de função. Definir como `recognition`.
O nome do modelo. O Qwen-Audio-3.x-ASR-Flash-Streaming e Fun-ASR-Realtime séries de modelos são suportadas. Para obter detalhes, consulte [Modelos suportados](/developer-guides/speech/asr-realtime#model-availability).
O objeto de entrada. Passe `{}` quando nenhum contexto é fornecido.
Apenas o `qwen-audio-3.1-asr-flash-streaming`, `qwen-audio-3.0-asr-flash-streaming`, `fun-asr-realtime` modelos suportam contexto.
O contexto da conversa, que melhora a precisão do reconhecimento de vocabulário específico do domínio. Para obter detalhes de uso, consulte [Aprimoramento de contexto](/developer-guides/speech/improve-recognition-accuracy#context-enhancement).
**Limites**: você pode fornecer no máximo cinco mensagens de contexto de cada tipo (`input_text` e `text`). Se você ultrapassar esse limite, apenas as 5 mensagens mais recentes serão mantidas. O comprimento total do texto por turno (o comprimento combinado do `text` campos do `user` e `assistant` mensagens) não pode exceder 400 caracteres (contados por caractere, onde cada caractere conta como 1). O texto além desse limite é truncado no final.
Quando você fornece contexto, as mensagens em `context` deve seguir uma ordem específica. As mensagens de contexto devem ser organizadas por turno de conversação e, dentro de cada turno, o `user` mensagem (do tipo `input_text`) deve vir antes do seu correspondente `assistant` mensagem (do tipo `text`).
A função da mensagem. Valores válidos:
- `user`: o reconhecimento resulta de falas anteriores do usuário ou de uma lista de palavras específicas do domínio.
- `assistant`: As respostas do modelo de linguagem grande nos turnos anteriores.
A lista do conteúdo da mensagem.
O tipo de conteúdo. Valores válidos:
- `input_text`: o reconhecimento resulta de falas anteriores do usuário ou de uma lista de palavras específicas do domínio (usada quando a função é usuário). Você também deve fornecer o `text` campo.
- `text`: As respostas do modelo de linguagem grande em turnos anteriores (usado quando a função é assistente). Você também deve fornecer o `text` campo.
O conteúdo do texto. Quando `type` é `input_text`, insira os resultados de reconhecimento de falas anteriores do usuário ou uma lista de palavras específicas do domínio. Quando `type` é `text`, insira as respostas do modelo de linguagem grande nos turnos anteriores.
Os parâmetros de reconhecimento de fala.
Suportado apenas por `qwen-audio-3.1-asr-flash-streaming`. Especifica se as expressões dialetais devem ser preservadas. Padrão: `false`. Definir como `false` transcrever a fala do dialeto como texto padrão em mandarim, ou `true` para preservar expressões dialetais.
Suportado apenas por `qwen-audio-3.1-asr-flash-streaming`. O modelo VAD. Padrão: `far_field_meeting_16k`.
- `near_meeting_16k`: cenários de campo próximo.
- `far_field_meeting_16k`: cenários de campo distante.
O formato de áudio. Valores válidos: `pcm`, `wav`, `mp3`, `opus`, `speex`, `aac`, `amr`.
opus/speex: Deve usar encapsulamento Ogg. wav: Deve usar codificação PCM. amr: Somente o tipo AMR-NB é suportado.
A taxa de amostragem, em Hz. Os modelos de 8 kHz suportam apenas 8.000 Hz; outros modelos suportam qualquer taxa de amostragem.
O ID de uma lista de hot word pré-compilada.
Gere esse ID antecipadamente chamando a API de criação de lista de palavras quentes. Passe o ID durante o reconhecimento para usar as palavras quentes da lista.
Adequado para cenários onde o vocabulário é conhecido e relativamente estável, e onde é necessário reutilizar a mesma lista de palavras em solicitações.
Para obter detalhes de uso, consulte [Hotwords pré-compiladas](/developer-guides/speech/improve-recognition-accuracy#precompiled-hotwords).
Palavras quentes instantâneas.
Passados como pares de valores-chave, onde a chave é o texto da palavra quente (`string`) e o valor é o peso da palavra quente (`integer`). Nenhuma lista de palavras quentes precisa ser criada com antecedência. O peso varia de \[1, 5] ou é definido como 50: um valor em \[1, 5] aumenta a probabilidade de o modelo gerar a palavra à medida que o valor aumenta; um valor de 50 designa uma palavra superquente, o que melhora muito a lembrança, mas o número de palavras superquentes não pode exceder 50.
Adequado para otimização de hot word temporária em nível de sessão.
Quando hotwords instantâneas e pré-compiladas são configuradas juntas, o sistema mescla os dois conjuntos. Se o conjunto mesclado contiver mais de 2.000 hotwords, o sistema selecionará aleatoriamente 2.000 para usar. Para obter detalhes de uso, consulte [Hotwords instantâneas](/developer-guides/speech/improve-recognition-accuracy#instant-hotwords).
Somente `qwen-audio-3.1-asr-flash-streaming` e `qwen-audio-3.0-asr-flash-streaming` suporta palavras quentes instantâneas.
O idioma do áudio a ser reconhecido. Não há valor padrão; se não for definido, o modelo detectará o idioma automaticamente.
Para o Qwen-Audio-3.x-ASR-Flash-Streaming série de modelos, você pode definir até 4 valores; se você definir mais de 4, apenas os 4 primeiros terão efeito. Para o Fun-ASR-Realtime série de modelos, você pode definir apenas 1 valor; se você definir vários valores, apenas o primeiro terá efeito.
- qwen-audio-3.1-asr-flash-streaming, qwen-audio-3.0-asr-flash-streaming, fun-asr-realtime: `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)
Seja para ativar a segmentação semântica. Valor padrão: `false`.
- `true`: ativa a segmentação semântica e desativa a segmentação VAD. Mais preciso e mais adequado para atender a cenários de transcrição.
- `false` (padrão): habilita a segmentação VAD e desabilita a segmentação semântica. Latência mais baixa, mais adequada para cenários interativos.
O limite de silêncio do VAD para segmentação, em ms. Quando o silêncio após um segmento de fala ultrapassa esse limite, o sistema determina que a frase terminou. Quando `semantic_punctuation_enabled` estiver definido como verdadeiro, este parâmetro não será usado como critério para retornar `sentence_end`, mas defini-lo muito baixo pode afetar o desempenho do reconhecimento. Valor padrão: 1300. Valores válidos: \[200, 6000].
Se deve ativar o modo multi-limite. Quando ativado, evita que os segmentos VAD se tornem muito longos. Valor padrão: `false`.
Só entra em vigor quando `semantic_punctuation_enabled` é falso.
Se deve ativar pacotes de pulsação. Valor padrão: `false`.
- `true`: mantém a conexão com o servidor ativa mesmo quando o áudio silencioso é enviado continuamente.
- `false` (padrão): Mesmo quando o áudio silencioso é enviado continuamente, a conexão atinge o tempo limite e fecha após um período de tempo.
Áudio silencioso refere-se ao conteúdo de um arquivo de áudio ou fluxo de dados que não contém sinal sonoro. Você pode gerar áudio silencioso de várias maneiras, como usando software de edição de áudio como Audacity ou Adobe Audition, ou usando uma ferramenta de linha de comando como FFmpeg.
O limite para distinguir fala de ruído, usado para ajustar a sensibilidade da Detecção de Atividade de Voz (VAD). Valores válidos: \[-1,0, 1,0].
- Quanto mais próximo o valor estiver de -1: O limiar de ruído diminui, então é mais provável que o ruído seja reconhecido como fala, o que pode fazer com que mais ruído seja transcrito.
- Quanto mais próximo o valor estiver de +1: O limite de ruído aumenta, portanto é mais provável que a fala seja mal avaliada como ruído, o que pode fazer com que parte da fala seja filtrada.
Este é um parâmetro de configuração avançado. Ajustá-lo pode afetar significativamente os resultados do reconhecimento. Teste e verifique minuciosamente os resultados antes de ajustar. Ajuste em pequenos incrementos com base no ambiente de áudio real (recomenda-se um passo de 0,1).
Especifica as palavras sensíveis a serem processadas durante o reconhecimento de fala e suporta a configuração de diferentes métodos de processamento para diferentes palavras sensíveis. Para obter detalhes, consulte [Filtragem de palavras sensíveis](/developer-guides/speech/asr-realtime#sensitive-word-filtering).
continuar-tarefa
Descrição: Atualiza o contexto da conversa durante a execução da tarefa para melhorar o reconhecimento.
Quando enviar: Envie durante a execução da tarefa quando precisar atualizar o contexto da conversa.
Apenas o qwen-audio-3.1-asr-flash-streaming, qwen-audio-3.0-asr-flash-streaming, fun-asr-realtime modelos apoiam este evento.
{
"header": {
"action": "continue-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"input": {
"context": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello there"
}
]
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello, I am Qwen. How can I help you?"
}
]
}
]
}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `continue-task`.
Um ID de tarefa gerado pelo cliente (formato UUID) que deve corresponder ao task\_id no [run-task](#run-task) evento.
Definir como `duplex`.
Carga útil da mensagem.
O objeto de entrada.
O contexto da conversa, que melhora a precisão do reconhecimento de vocabulário específico do domínio.
**Limites**: você pode fornecer no máximo cinco mensagens de contexto de cada tipo (`input_text` e `text`). Se você ultrapassar esse limite, apenas as 5 mensagens mais recentes serão mantidas. O comprimento total do texto por turno (o comprimento combinado do `text` campos do `user` e `assistant` mensagens) não pode exceder 400 caracteres (contados por caractere, onde cada caractere conta como 1). O texto além desse limite é truncado no final.
Quando você fornece contexto, as mensagens em `context` deve seguir uma ordem específica. As mensagens de contexto devem ser organizadas por turno de conversação e, dentro de cada turno, o `user` mensagem (do tipo `input_text`) deve vir antes do seu correspondente `assistant` mensagem (do tipo `text`).
A função da mensagem. Valores válidos:
- `user`: o reconhecimento resulta de falas anteriores do usuário ou de uma lista de palavras específicas do domínio.
- `assistant`: As respostas do modelo de linguagem grande nos turnos anteriores.
A lista do conteúdo da mensagem.
O tipo de conteúdo. Valores válidos:
- `input_text`: o reconhecimento resulta de falas anteriores do usuário ou de uma lista de palavras específicas do domínio (usada quando a função é usuário). Você também deve fornecer o `text` campo.
- `text`: As respostas do modelo de linguagem grande em turnos anteriores (usado quando a função é assistente). Você também deve fornecer o `text` campo.
O conteúdo do texto. Quando `type` é `input_text`, insira os resultados de reconhecimento de falas anteriores do usuário ou uma lista de palavras específicas do domínio. Quando `type` é `text`, insira as respostas do modelo de linguagem grande nos turnos anteriores.
tarefa final
Descrição: Notifica o servidor que todo o áudio foi enviado e solicita o encerramento da tarefa.
Quando enviar: Envie após todos os dados de áudio terem sido enviados.
Evento de resposta: O servidor retorna a tarefa finalizada evento.
{
"header": {
"action": "finish-task",
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"streaming": "duplex"
},
"payload": {
"input": {}
}
}
Cabeçalho da mensagem.
O tipo de comando. Definir como `finish-task`.
Um ID de tarefa gerado pelo cliente (formato UUID) que deve corresponder ao task\_id no [run-task](#run-task) evento.
Definir como `duplex`.
Carga útil da mensagem.
Definir como `{}`.