Os modelos de reconhecimento de fala não em tempo real convertem áudio gravado em texto. Eles oferecem suporte a reconhecimento multilíngue, reconhecimento de canto, rejeição de ruído e diarização de falantes, o que os torna adequados para transcrição de reuniões, análise de chamadas, geração de legendas e cenários semelhantes.
Visão geral
Transcreva arquivos de áudio e vídeo gravados em lotes por meio de tarefas assíncronas.
- O aprimoramento de contexto melhora a precisão do reconhecimento por meio de um contexto configurável.
- Palavras-chave personalizadas aumentam a precisão no reconhecimento de nomes próprios usando uma lista de palavras predefinida.
- Os recursos configuráveis incluem diarização de falantes, filtragem de palavras sensíveis e carimbos de data/hora no nível da frase ou da palavra.
- A transcrição assíncrona aceita um único arquivo de áudio com duração de até 12 horas e tamanho máximo de 2 GB.
- Há suporte para qualquer taxa de amostragem, além de formatos de áudio e vídeo populares como AAC, WAV e MP3.
Pré-requisitos
- Uma chave de API foi Obtain an API key e configured as an environment variable.
- Para chamar a API por meio do DashScope SDK, install the latest SDK.
Início rápido
- Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR
- Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash
- Qwen3-ASR-Flash-Filetrans
- Qwen3-ASR-Flash
- Paraformer
- cURL
- Python
- Java
task_id e, em seguida, consulte o resultado da tarefa usando esse ID.- Enviar uma tarefa
- Obter o resultado da tarefa
- Baixar o resultado do reconhecimento
{WorkspaceId} pelo seu Workspace ID real. A configuração varia conforme a região.O resultado completo do reconhecimento é impresso no console em formato JSON. Ele contém o texto transcrito juntamente com os tempos de início e fim de cada segmento no arquivo de áudio ou vídeo, em milissegundos.
O resultado completo do reconhecimento é impresso no console em formato JSON. Ele contém o texto transcrito juntamente com os tempos de início e fim de cada segmento no arquivo de áudio ou vídeo, em milissegundos.
- Resultado do reconhecimento
Recursos avançados
Usar a API compatível com OpenAI
Somente os modelos da série Qwen3-ASR-Flash aceitam chamadas pelo modo compatível com OpenAI. Esse modo aceita apenas URLs de arquivos de áudio acessíveis publicamente e não permite o uso do caminho absoluto de um arquivo de áudio local.
Utilize o OpenAI Python SDK versão 1.52.0 ou superior, ou o Node.js SDK versão 4.68.0 ou superior. Para instalar ou atualizar o SDK, execute:
asr_options não faz parte do padrão OpenAI. Com o OpenAI Python SDK, passe-o por meio de extra_body. Já no Node.js OpenAI SDK, informe asr_options diretamente como um parâmetro de nível superior no corpo da requisição.
- Entrada: URL do arquivo de áudio
- Input: Base64-encoded audio file
- Python SDK
- Node.js SDK
- cURL
Processamento de arquivos de áudio longos
O reconhecimento de fala não em tempo real permite a transcrição assíncrona de arquivos de áudio longos. Esse recurso é ideal para cenários como atas de reuniões, transcrições de entrevistas e reprodução de chamadas.
Limitações:
- Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR / Qwen3-ASR-Flash-Filetrans / Paraformer: um único arquivo de áudio pode ter até 2 GB de tamanho e 12 horas de duração.
- Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash: um único arquivo de áudio pode ter até 10 MB de tamanho e 5 minutos de duração. Para áudios mais longos, utilize Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR ou Qwen3-ASR-Flash-Filetrans.
- Com diarização de falantes ativada: mantenha a duração do áudio dentro de 2 horas. Áudios mais longos podem causar falhas no reconhecimento ou timeouts. Para mais informações, consulte Speaker diarization.
- Envie a tarefa de transcrição e obtenha um
task_id. - Consulte periodicamente a API de status da tarefa ou use o método de espera do SDK para bloquear a execução até que a tarefa seja concluída.
- Após a conclusão da tarefa, baixe o JSON com o resultado do reconhecimento a partir da URL retornada.
Saída em streaming
Os modelos Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash suportam saída em streaming, retornando resultados intermediários à medida que o reconhecimento avança. Essa abordagem atende bem a cenários que exigem feedback de progresso em tempo real.
Modelos de transcrição assíncrona, como Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans e Paraformer, não oferecem suporte a saída em streaming. Obtenha o resultado final consultando a tarefa periodicamente (para mais detalhes, consulte Process long audio files).
Como ativar:
- DashScope Python SDK: defina o parâmetro
streamcomoTrue. - DashScope Java SDK: chame a API
streamCall. - DashScope HTTP: defina o cabeçalho
X-DashScope-SSEcomoenable. - SDK compatível com OpenAI: defina o parâmetro
streamcomoTrue.
Melhoria de precisão com hotwords
Hotwords aumentam a precisão do reconhecimento de substantivos próprios específicos de domínio, como nomes de pessoas, locais e produtos. Para detalhes sobre como criar e usar hotwords, consulte Improve recognition accuracy.
Cada SDK adota convenções de nomenclatura diferentes para esses parâmetros, como chaves de dicionário, propriedades de objeto ou métodos. Para o mapeamento completo dos campos, consulte a referência da API de cada SDK.
Melhoria de precisão com aprimoramento de contexto
O aprimoramento de contexto envia o histórico da conversa para o modelo ASR, o que melhora significativamente a precisão da transcrição de substantivos próprios. Para detalhes sobre como usar esse recurso e ver exemplos de resultados, consulte Context enhancement.
Diarização de falantes
A diarização de falantes identifica automaticamente os diferentes interlocutores no áudio e rotula cada frase no resultado da transcrição com uma tag de falante. Esse recurso é adequado para cenários como reuniões com múltiplos participantes e gravações de entrevistas.
Modelos suportados: séries Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR e Paraformer.
Como ativar: defina o parâmetro diarization_enabled como true na requisição da API. No resultado, cada frase inclui um campo speaker_id que identifica o falante.
Exemplo de estrutura de retorno (trecho):
Filtragem de palavras sensíveis
A filtragem de palavras sensíveis substitui ou remove termos sensíveis no resultado do reconhecimento. Essa funcionalidade é útil para cenários como inspeção de qualidade de atendimento ao cliente, conformidade de conteúdo e moderação de legendas.
Modelos suportados: séries Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR e Paraformer.
Comportamento padrão: quando o parâmetro special_word_filter não é fornecido, o sistema utiliza a lista de palavras sensíveis do Model Studio integrada. As palavras correspondentes são substituídas por uma string de * de igual comprimento.
Configuração personalizada: special_word_filter é um objeto JSON com três subcampos:
filter_with_signed.word_list: um array de strings com palavras sensíveis a serem substituídas por uma sequência de*de igual comprimento. Por exemplo, com["test"], "Please help me test this" torna-se "Please help me **** this".filter_with_empty.word_list: um array de strings com palavras sensíveis a serem removidas completamente do resultado. Por exemplo, com["start"], "Is the game about to start now" torna-se "Is the game about to now".system_reserved_filter: um valor booleano cujo padrão étrue. Ele controla se a lista de palavras sensíveis integrada do sistema também deve ser aplicada, funcionando em conjunto com sua lista personalizada.
Reconhecimento de emoções
Os modelos das séries Qwen3-ASR-Flash-Filetrans e Qwen3-ASR-Flash possuem reconhecimento de emoções permanentemente ativado, sem necessidade de configuração adicional. O resultado inclui uma tag de emoção para o falante, escolhida entre sete emoções granulares: surprised, neutral, happy, sad, disgusted, angry e fearful.
Caminhos dos campos (variam conforme a API):
- API compatível com OpenAI (transcrição em tempo real do Qwen3-ASR-Flash): aninhado em
choices[].delta.annotations[].emotion(saída em streaming) ouchoices[].message.annotations[].emotion(sem streaming). - API síncrona do DashScope (Qwen3-ASR-Flash): aninhado em
output.choices[].message.annotations[].emotion. - API de tarefa assíncrona do DashScope (transcrição de arquivos gravados com Qwen3-ASR-Flash-Filetrans): aninhado em
transcripts[].sentences[].emotion, juntamente com o timestamp, falante e outros campos em cada objeto de frase.
Obtenção de timestamps
O reconhecimento de fala não em tempo real pode gerar timestamps no resultado da transcrição, facilitando a geração de legendas, o destaque de palavras-chave e a edição de áudio/vídeo. Os modelos Qwen-Audio-3.0-ASR-Flash-Filetrans, Qwen-Audio-3.0-ASR-Flash, Fun-ASR, Fun-ASR-Flash, Qwen3-ASR-Flash-Filetrans e Paraformer suportam timestamps, mas o comportamento padrão e o método de controle variam conforme o modelo:
- Qwen-Audio-3.0-ASR-Flash-Filetrans/Qwen-Audio-3.0-ASR-Flash/Fun-ASR/Fun-ASR-Flash/Paraformer: os timestamps estão permanentemente ativados e não podem ser desligados.
- Qwen3-ASR-Flash-Filetrans: apenas a chamada assíncrona via DashScope suporta timestamps, que ficam permanentemente ativados. Utilize o parâmetro de requisição
enable_wordspara controlar o nível de detalhe do timestamp: defina-o comofalse(padrão) para retornar timestamps no nível da frase, outruepara retornar timestamps no nível da palavra. Timestamps no nível da palavra suportam apenas os seguintes idiomas: chinês, inglês, japonês, coreano, alemão, francês, espanhol, italiano, português e russo. A precisão não é garantida para outros idiomas.
- Nível da frase:
sentences[].begin_timeesentences[].end_timemarcam o início e o fim de cada frase no áudio. - Nível da palavra: o array
sentences[].words[], onde cada elemento contémbegin_time,end_timeetext(o texto daquela palavra).
Aplicação em produção
Ao implementar o reconhecimento de fala não em tempo real em produção, as práticas recomendadas a seguir ajudam a melhorar a qualidade do reconhecimento e a estabilidade do sistema.
Cenários de alta concorrência: use callbacks em vez de polling
Para tarefas de transcrição assíncrona (Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans e Paraformer), você envia a tarefa através de POST /api/v1/services/audio/asr/transcription e geralmente obtém o resultado chamando periodicamente a API de consulta GET /api/v1/tasks/{task_id}. Essa API de consulta tem um padrão de 20 QPS, escalável até 100 QPS. Em cenários de lote com alta concorrência, o polling frequente aciona facilmente limitações de taxa.
Configure notificações de callback via EventBridge. Quando uma tarefa é concluída, o Model Studio envia automaticamente um evento dashscope:System:AsyncTaskFinish para o destino configurado (um endpoint HTTP/HTTPS ou um tópico RocketMQ). Após receber o evento, o consumidor não precisa mais chamar a API de consulta, evitando o risco de limitação por polling frequente. Para mais informações, consulte Configure EventBridge callback notifications.
Modelos suportados
- Suportados: Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans e Paraformer (todas as tarefas de transcrição assíncrona).
- Não suportados: Qwen3-ASR-Flash (chamadas síncronas ou em streaming, que não são tarefas assíncronas).
Conteúdo da mensagem de callback
Para todos os três modelos, o corpo da mensagem de callback possui data.contain_result definido como true, e data.output_result carrega diretamente a transcription_url. Ao receber o callback, o consumidor pode obter o resultado do reconhecimento sem precisar chamar GET /api/v1/tasks/{task_id} novamente. No entanto, o caminho e a estrutura do campo de resultado diferem entre os três modelos. Consulte a tabela abaixo.
data.output_result.output deixa de conter results/result; em vez disso, passa a conter os campos code e message. Verifique primeiro data.task_status antes de ler o resultado.Modelo | Parâmetro de envio | Caminho do campo de resultado (baseado no corpo do callback) | Campo usage |
|---|---|---|---|
Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR |
|
|
|
Paraformer |
| Igual ao Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR: |
|
Qwen3-ASR-Flash-Filetrans |
|
|
|
Notas de uso
Segurança (entrega HTTP/HTTPS): em produção, valide os campos de cabeçalho X-Eventbridge-Signature* na requisição de callback antes de consumi-la. Caso contrário, qualquer IP externo pode forjar um evento AsyncTaskFinish e injetar resultados falsos de reconhecimento. Defina também um timeout de recebimento de pelo menos 5 segundos no receptor. O método de entrega via RocketMQ não possui assinatura no nível da mensagem; sua segurança é garantida pelo mecanismo de autenticação do próprio RocketMQ.
Latência de entrega: desde a conclusão da tarefa (end_time) até o momento em que o destino da entrega (um endpoint HTTP/HTTPS ou um tópico RocketMQ) recebe a mensagem, o atraso costuma variar entre 1 e 90 segundos. A latência exata depende da carga em tempo real do EventBridge.
Idempotência: o mesmo evento pode ser entregue múltiplas vezes devido a retries. Implemente processamento idempotente no consumidor, utilizando CloudEvents data.id ou data.task_id como chave de deduplicação.
Recomendações para produção
- Hospedagem de arquivos: carregue os arquivos de áudio no Alibaba Cloud OSS e chame a API via URL. Evite uploads de arquivos locais (chamadas com arquivos locais têm limite de 100 QPS e não podem ser escaladas).
- Polling assíncrono: a transcrição de áudio longo utiliza um modelo assíncrono. Defina um intervalo de polling razoável (como 2 a 5 segundos) para evitar consultas frequentes que consomem sua cota. Para ultrapassar o limite de consulta de 20 a 100 QPS, mude para notificações de callback de eventos. Para mais informações, consulte High-concurrency scenarios: use callbacks instead of polling.
- Tratamento de erros: implemente um mecanismo robusto de retry. Para timeouts de rede ou erros temporários no servidor (5xx), tente novamente usando uma estratégia de backoff exponencial.
- Redução de ruído: para áudios com muito ruído, faça um pré-processamento com ferramentas como FFmpeg antes de enviá-los para reconhecimento.
- Seleção de modelo: escolha o modelo adequado com base na duração do áudio. Para áudios curtos de até 5 minutos, utilize Qwen3-ASR-Flash. Para áudios longos com mais de 5 minutos, prefira Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR ou Qwen3-ASR-Flash-Filetrans.
Modelos e regiões suportados
- Singapore
- US (Virginia)
- China (Beijing)
- Qwen-Audio-3.0-ASR-Flash-Filetrans: qwen-audio-3.0-asr-flash-filetrans
- Qwen-Audio-3.0-ASR-Flash: qwen-audio-3.0-asr-flash
- Fun-ASR: fun-asr (versão estável, atualmente equivalente a fun-asr-2025-11-07), fun-asr-2025-11-07 (versão snapshot), fun-asr-2025-08-25 (versão snapshot), fun-asr-mtl (versão estável, atualmente equivalente a fun-asr-mtl-2025-08-25), fun-asr-mtl-2025-08-25 (versão snapshot)
- Fun-ASR-Flash: fun-asr-flash-2026-06-15
- Qwen3-ASR-Flash-Filetrans: qwen3-asr-flash-filetrans (versão estável, atualmente equivalente a qwen3-asr-flash-filetrans-2025-11-17), qwen3-asr-flash-filetrans-2025-11-17 (versão snapshot)
- Qwen3-ASR-Flash: qwen3-asr-flash (versão estável, atualmente equivalente a qwen3-asr-flash-2025-09-08), qwen3-asr-flash-2026-02-10 (versão snapshot mais recente), qwen3-asr-flash-2025-09-08 (versão snapshot)
Referência da API
- Non-real-time speech recognition - Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR API reference
- Non-real-time speech recognition - Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash API reference
- Non-real-time speech recognition - Qwen-ASR API reference
- Non-real-time speech recognition - Paraformer API reference
FAQ
P: Como forneço uma URL de áudio publicamente acessível para a API?
Utilize o Alibaba Cloud Object Storage Service (OSS). O OSS oferece armazenamento altamente disponível e confiável, além de permitir a geração de uma URL de acesso público.
Verifique se a URL gerada é acessível pela rede pública: abra a URL em um navegador ou com o comando curl para confirmar que o arquivo de áudio é baixado ou reproduzido (código de status HTTP 200).
P: Como verifico se o formato de áudio atende aos requisitos?
Utilize a ferramenta de código aberto ffprobe para obter rapidamente informações detalhadas sobre o áudio:
P: Como processo o áudio para atender aos requisitos do modelo?
Utilize a ferramenta de código aberto FFmpeg para recortar ou converter o áudio:
- Recortar áudio: extrair um trecho de um arquivo de áudio longo
- Converter o formato Por exemplo, converta qualquer áudio para um arquivo WAV mono, 16 bits e 16 kHz:
P: Como melhorar a precisão do reconhecimento?
Os fatores a seguir afetam a precisão do reconhecimento. Verifique cada um e otimize conforme necessário.
Principais fatores:
- Qualidade do áudio: a qualidade do dispositivo de gravação, a taxa de amostragem e o ruído ambiental afetam diretamente a clareza do áudio. Uma entrada de áudio de alta qualidade é a base para um reconhecimento preciso.
- Características do falante: tom de voz, velocidade de fala, sotaque e diferenças de dialeto (especialmente dialetos raros ou sotaques fortes) aumentam a dificuldade de reconhecimento.
- Idioma e vocabulário: mistura de idiomas, termos técnicos ou gírias aumentam a dificuldade de reconhecimento. Configure hotwords para melhorar a precisão de termos específicos do domínio.
- Melhore a qualidade do áudio: use um microfone de alto desempenho, grave na taxa de amostragem recomendada e minimize o ruído ambiental e o eco.
- Adapte-se ao falante: para áudios com sotaques fortes ou dialetos notáveis, escolha um modelo que suporte o dialeto correspondente.
- Configure hotwords: defina hotwords para termos técnicos, nomes próprios e palavras semelhantes.