Este tópico descreve os parâmetros e as interfaces do SDK em Python para reconhecimento de fala não em tempo real Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR.
Pré-requisitos
Início rápido
O Core class (Transcription) fornece interfaces para enviar uma tarefa de forma assíncrona, aguardar sincronamente a conclusão da tarefa e consultar os resultados da tarefa de forma assíncrona. Você pode executar o reconhecimento de fala não em tempo real de duas maneiras:
- Envie a tarefa de forma assíncrona e aguarde sincronamente: após enviar a tarefa, bloqueie a thread atual até que a tarefa termine e retorne o resultado do reconhecimento.
- Envie a tarefa de forma assíncrona e consulte o resultado de forma assíncrona: após enviar a tarefa, chame a interface de consulta para recuperar o resultado sempre que necessário.
Enviar de forma assíncrona e aguardar sincronamente
-
Chame o método
async_calldo Core class (Transcription) e defina o Request parameters.- O service de transcrição de arquivos processa tarefas enviadas por meio da API com base no melhor esforço. Após o envio, a tarefa entra no estado de fila (
PENDING). O tempo de espera depende do tamanho da fila e da duração do arquivo, portanto não pode ser definido com precisão, mas geralmente fica dentro de alguns minutos. Assim que o processamento começa, o reconhecimento de fala é concluído a uma velocidade centenas de vezes superior ao tempo real. - Após a conclusão de cada tarefa, o resultado do reconhecimento e a URL de download permanecem válidos por 24 horas. Depois que expiram, não é mais possível consultar a tarefa ou baixar o resultado por meio da URL retornada em uma consulta anterior.
- O service de transcrição de arquivos processa tarefas enviadas por meio da API com base no melhor esforço. Após o envio, a tarefa entra no estado de fila (
-
Chame o método
waitdo Core class (Transcription) para aguardar sincronamente a conclusão da tarefa. Uma tarefa pode estar em um dos seguintes estados:PENDING,RUNNING,SUCCEEDEDeFAILED. Enquanto a tarefa estiver no estadoPENDINGouRUNNING, a interfacewaitpermanece bloqueada. Quando a tarefa atinge o estadoSUCCEEDEDouFAILED, a interfacewaitdesbloqueia e retorna o resultado da tarefa. O métodowaitretorna um TranscriptionResponse.
Clique para visualizar o exemplo completo
Clique para visualizar o exemplo completo
Enviar de forma assíncrona e consultar o resultado de forma assíncrona
-
Chame o método
async_calldo Core class (Transcription) e defina o Request parameters.- O service de transcrição de arquivos processa tarefas enviadas por meio da API com base no melhor esforço. Após o envio, a tarefa entra no estado de fila (
PENDING). O tempo de espera depende do tamanho da fila e da duração do arquivo, portanto não pode ser definido com precisão, mas geralmente fica dentro de alguns minutos. Assim que o processamento começa, o reconhecimento de fala é concluído a uma velocidade centenas de vezes superior ao tempo real. - Após a conclusão de cada tarefa, o resultado do reconhecimento e a URL de download permanecem válidos por 24 horas. Depois que expiram, não é mais possível consultar a tarefa ou baixar o resultado por meio da URL retornada em uma consulta anterior.
- O service de transcrição de arquivos processa tarefas enviadas por meio da API com base no melhor esforço. Após o envio, a tarefa entra no estado de fila (
-
Chame o método
fetchdo Core class (Transcription) em um loop até obter o resultado final da tarefa. Quando o status da tarefa forSUCCEEDEDouFAILED, interrompa a sondagem e processe o resultado. O métodofetchretorna um TranscriptionResponse.
Clique para visualizar o exemplo completo
Clique para visualizar o exemplo completo
Endpoints do service
Por padrão, o SDK usa o endpoint do service da região Beijing. Para alternar para outra região, modifique dashscope.base_http_api_url antes da inicialização.
- Singapore
- China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Substitua {WorkspaceId} pelo seu Workspace ID real.- As API keys variam conforme a região. Certifique-se de usar a API key correspondente à região escolhida.
- A configuração de região é uma definição global que afeta todas as chamadas de API feitas por meio do DashScope SDK.
Parâmetros de solicitação
Defina os parâmetros de solicitação por meio do método async_call do Core class (Transcription).
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| model | str | Sim | Nome do modelo. Os valores suportados incluem as famílias de modelos Qwen-Audio-3.0-ASR-Flash-Filetrans e Fun-ASR. Para detalhes, consulte Supported models and regions. |
| file_urls | list[str] | Sim | Uma lista de URLs dos arquivos de áudio ou vídeo a serem transcritos. HTTP e HTTPS são suportados. Uma única solicitação suporta apenas uma URL. Para requisitos de entrada, como formatos de áudio suportados, limites de tamanho de arquivo e limites de duração, consulte Audio specifications.Se a gravação estiver armazenada no Alibaba Cloud OSS, a API RESTful suporta URLs temporárias com o prefixo oss://, enquanto o SDK não suporta URLs temporárias com o prefixo oss://. |
| vocabulary_id | str | Não | O ID de uma lista de palavras-chave pré-compilada.Gere esse ID antecipadamente chamando a API de criação de lista de palavras-chave. Passe o ID durante o reconhecimento para usar as palavras-chave da lista.Indicado para cenários onde o vocabulário é conhecido e relativamente estável, e onde você precisa reutilizar a mesma lista de palavras entre solicitações.Para detalhes de uso, consulte Precompiled hotwords. |
| vocabulary | dict | Não | Palavras-chave instantâneas.Passadas como pares chave-valor, onde a chave é o texto da palavra-chave (string) e o valor é o peso da palavra-chave (integer). Não é necessário criar uma lista de palavras-chave antecipadamente. O peso varia de [1, 5] ou é definido como 50: um valor em [1, 5] torna o modelo mais propenso a gerar a palavra à medida que o valor aumenta; um valor de 50 designa uma super palavra-chave, o que melhora muito a recuperação, mas o número de super palavras-chave não pode exceder 50.Adequado para otimização temporária de palavras-chave no nível de sessão.Quando configuradas juntamente com palavras-chave pré-compiladas, apenas as palavras-chave instantâneas entram em vigor. Para detalhes de uso, consulte Instant hotwords.Exemplo: |
| channel_id | list[int] | Não | O índice das faixas de áudio a serem reconhecidas em um arquivo de áudio com múltiplas faixas. O índice começa em 0. Por exemplo, [0] reconhece a primeira faixa, e [0, 1] reconhece a primeira e a segunda faixas simultaneamente. Se você omitir este parâmetro, apenas a primeira faixa será processada.Valor padrão: [0]. |
| special_word_filter | str | Não | As palavras sensíveis a serem processadas durante o reconhecimento de fala. Você pode definir um método de tratamento diferente para cada palavra sensível. Para detalhes, consulte Sensitive word filtering. |
| diarization_enabled | bool | Não | Se deve ativar a diarização de falantes. Desativado por padrão.Aplica-se apenas a áudio mono. Áudio multicanal não suporta diarização de falantes.Quando ativado, o resultado do reconhecimento inclui um campo speaker_id que distingue diferentes falantes.Quando a diarização de falantes está ativada, mantenha a duração do áudio dentro de 2 horas. Caso contrário, o reconhecimento pode falhar ou atingir o tempo limite. speaker_id, consulte Recognition result description. |
| speaker_count | int | Não | Um valor de referência para o número de falantes. O intervalo válido é um número inteiro de 2 a 100 (inclusive).Por padrão, o número de falantes é detectado automaticamente. Se você definir este valor, ele apenas orientará o algoritmo a gerar a contagem especificada quando possível, sem garantir essa contagem exata.Sem valor padrão. |
| language_hints | list[str] | Não | Os códigos de idioma a serem reconhecidos. Se você não puder determinar o idioma antecipadamente, deixe-o indefinido e o modelo detectará o idioma automaticamente.Para modelos Qwen-Audio-3.0-ASR-Flash-Filetrans, você pode definir até 4 valores; quaisquer valores além dos primeiros 4 são ignorados. Para modelos Fun-ASR, você pode definir apenas 1 valor; se definir vários, apenas o primeiro entrará em vigor.
Clique para visualizar os códigos de idioma suportados
|
Resposta
TranscriptionResponse
TranscriptionResponse encapsula as informações básicas da tarefa (task_id e task_status) e o resultado da tarefa (o conteúdo do atributo output, veja TranscriptionOutput).
Clique para visualizar uma estrutura de exemplo do TranscriptionResponse
Clique para visualizar uma estrutura de exemplo do TranscriptionResponse
Parâmetro | Descrição |
|---|---|
status_code | Código de status HTTP da solicitação. |
code |
|
message |
|
task_id | ID da tarefa. |
task_status | Status da tarefa. Um dos quatro estados: Quando uma tarefa contém várias subtarefas, o status geral da tarefa é marcado como |
results | Resultados do reconhecimento das subtarefas. |
subtask_status | Status da subtarefa. Um dos quatro estados: |
file_url | URL do áudio reconhecido. |
transcription_url | URL do resultado do reconhecimento de áudio. O resultado do reconhecimento é salvo como um arquivo JSON. Você pode baixar o arquivo pelo link associado a |
TranscriptionOutput
TranscriptionOutput corresponde ao atributo output do TranscriptionResponse e representa o resultado da tarefa atual.
Clique para visualizar uma estrutura de exemplo do TranscriptionOutput
Clique para visualizar uma estrutura de exemplo do TranscriptionOutput
- Estado PENDING
- Estado RUNNING
- Estado SUCCEEDED
- Estado FAILED
Parâmetro | Descrição |
|---|---|
code | O código de erro. Combine-o com o campo |
message | A mensagem de erro. Combine-a com o campo |
task_id | ID da tarefa. |
task_status | Status da tarefa. Um dos quatro estados: Quando uma tarefa contém várias subtarefas, o status geral da tarefa é marcado como |
results | Resultados do reconhecimento das subtarefas. |
subtask_status | Status da subtarefa. Um dos quatro estados: |
file_url | URL do áudio reconhecido. |
transcription_url | URL do resultado do reconhecimento de áudio. O resultado do reconhecimento é salvo como um arquivo JSON. Você pode baixar o arquivo pelo link associado a |
Descrição do resultado do reconhecimento
O resultado do reconhecimento é salvo como um arquivo JSON.
Clique para visualizar o exemplo de resultado do reconhecimento
Clique para visualizar o exemplo de resultado do reconhecimento
Parâmetro | Tipo | Descrição |
|---|---|---|
audio_format | string | O formato de áudio do arquivo de origem. |
channels | array[integer] | O índice da faixa de áudio no arquivo de origem. Para áudio de faixa única, [0] é retornado; para áudio de duas faixas, [0, 1] é retornado; e assim por diante. |
original_sampling_rate | integer | A taxa de amostragem (Hz) do áudio no arquivo de origem. |
original_duration_in_milliseconds | integer | A duração original do áudio (ms) no arquivo de origem. |
channel_id | integer | O índice da faixa do resultado da transcrição, começando em 0. |
content_duration | integer | A duração (ms) do conteúdo na faixa identificado como fala. O service de modelo de reconhecimento de fala transcreve apenas o conteúdo de uma faixa identificado como fala, medindo e faturando com base nessa duração. Conteúdo que não seja fala não é medido nem faturado. Normalmente, a duração do conteúdo de fala é menor que a duração original do áudio. Como a existência de conteúdo de fala é determinada por um modelo de IA, o resultado pode diferir ligeiramente da situação real. |
transcript | string | O resultado da transcrição no nível de parágrafo. |
sentences | array | O resultado da transcrição no nível de sentença. |
words | array | O resultado da transcrição no nível de palavra. |
begin_time | integer | O carimbo de data/hora inicial (ms). |
end_time | integer | O carimbo de data/hora final (ms). |
text | string | O resultado da transcrição. |
speaker_id | integer | O índice do falante atual, começando em 0, usado para distinguir diferentes falantes. Este campo aparece no resultado do reconhecimento apenas quando a diarização de falantes está ativada. |
punctuation | string | A pontuação prevista após a palavra, se houver. |
Interfaces principais
Classe principal (Transcription)
Importe Transcription com "from dashscope.audio.asr import Transcription".
| Método | Assinatura | Descrição |
|---|---|---|
| async_call | Envia uma tarefa de reconhecimento de fala de forma assíncrona. | |
| wait | Bloqueia a thread atual até que a tarefa assíncrona termine (o status da tarefa é SUCCEEDED ou FAILED).Este método retorna um TranscriptionResponse. | |
| fetch | Consulta o resultado da tarefa atual de forma assíncrona.Este método retorna um TranscriptionResponse. |
Códigos de erro
Se você encontrar um erro, consulte Error codes para solucionar o problema.
Quando uma tarefa contém várias subtarefas, o status geral da tarefa é marcado como SUCCEEDED desde que pelo menos uma subtarefa tenha sucesso. Verifique o campo subtask_status para determinar o resultado de cada subtarefa.
Exemplo de resposta de erro:
FAQ
Recursos
P: Áudio codificado em Base64 é suportado?
Áudio codificado em Base64 não é suportado. Apenas áudio em uma URL publicamente acessível pode ser reconhecido. Fluxos binários e arquivos locais não podem ser reconhecidos diretamente.
P: Como torno um arquivo de áudio disponível em uma URL publicamente acessível?
As etapas típicas são as seguintes. Esta é uma abordagem; o processo exato varia conforme o product de armazenamento. Recomendamos que você upload the audio to Alibaba Cloud OSS:
1. Escolha um método de armazenamento e hospedagem
1. Escolha um método de armazenamento e hospedagem
-
Service de armazenamento de objetos (recomendado):
- Use o service de armazenamento de objetos de um provedor de cloud (como Alibaba Cloud OSS) para fazer upload do arquivo de áudio para um bucket e defini-lo como acesso público.
- Vantagens: alta disponibilidade, suporte a aceleração CDN e gerenciamento fácil.
-
Servidor web:
- Coloque o arquivo de áudio em um servidor web que suporte acesso HTTP/HTTPS (como Nginx ou Apache).
- Vantagens: adequado para pequenos projetos ou testes locais.
-
Rede de distribuição de conteúdo (CDN):
- Hospede o arquivo de áudio em uma CDN e acesse-o por meio da URL fornecida pela CDN.
- Vantagens: acelera a entrega de arquivos e atende a cenários de alta concorrência.
2. Faça upload do arquivo de áudio
2. Faça upload do arquivo de áudio
-
Service de armazenamento de objetos:
- Faça login no console do provedor de cloud e crie um bucket.
- Faça upload do arquivo de áudio e defina sua permissão como leitura pública ou gere um link de acesso temporário.
-
Servidor web:
- Coloque o arquivo de áudio em um diretório designado no servidor (como
/var/www/html/audio/). - Certifique-se de que o arquivo esteja acessível via HTTP/HTTPS.
- Coloque o arquivo de áudio em um diretório designado no servidor (como
3. Gere uma URL publicamente acessível
3. Gere uma URL publicamente acessível
-
Service de armazenamento de objetos:
- Após o upload do arquivo, o sistema gera automaticamente uma URL de acesso público (geralmente no formato
https://<bucket-name>.<region>.aliyuncs.com/<file-name>). - Para um nome de domínio mais amigável, vincule um domínio personalizado e ative HTTPS.
- Após o upload do arquivo, o sistema gera automaticamente uma URL de acesso público (geralmente no formato
-
Servidor web:
- A URL de acesso geralmente é o endereço do servidor mais o caminho do arquivo (como
https://your-domain.com/audio/file.mp3).
- A URL de acesso geralmente é o endereço do servidor mais o caminho do arquivo (como
-
CDN:
- Após configurar a aceleração CDN, use a URL fornecida pela CDN (como
https://cdn.your-domain.com/audio/file.mp3).
- Após configurar a aceleração CDN, use a URL fornecida pela CDN (como
4. Verifique se a URL funciona
4. Verifique se a URL funciona
- Abra a URL em um navegador e verifique se o arquivo de áudio é reproduzido.
- Use uma ferramenta (como
curlou Postman) para verificar se a URL retorna a resposta HTTP correta (código de status 200).
oss:// não são suportadas.
Ao usar a API RESTful, se os arquivos de áudio estiverem armazenados no Alibaba Cloud OSS, URLs temporárias com o prefixo oss:// são suportadas:
- A URL temporária é válida por 48 horas e não pode ser usada após a expiração. Não a utilize em ambiente de produção.
- A API para obtenção de credencial de upload tem limite de 100 QPS e não suporta scale out. Não a utilize em ambientes de produção, cenários de alta concorrência ou cenários de teste de estresse.
- Para ambientes de produção, use um service de armazenamento estável, como OSS, para garantir a disponibilidade de arquivos a longo prazo e evitar problemas de limitação de taxa.