Parâmetros e detalhes da API RESTful para reconhecimento de arquivos de áudio Paraformer.
Pré-requisitos
Ative o serviço e Obtenha uma chave de API. Configure a chave de API como variável de ambiente em vez de codificá-la diretamente no código para evitar riscos de segurança causados por vazamento de código.
Interface de envio de tarefas
Informações básicas
| Descrição do endpoint da API | Envia uma tarefa de reconhecimento de fala. |
| URL | |
| Método de solicitação | POST |
| Cabeçalhos da solicitação | |
| Corpo da mensagem | O código a seguir mostra um corpo de mensagem contendo todos os parâmetros de solicitação. Omita campos opcionais conforme necessário. |
Parâmetros de solicitação
Clique para visualizar um exemplo de solicitação
Clique para visualizar um exemplo de solicitação
| Parâmetro | Tipo | Valor padrão | Obrigatório | Descrição |
|---|---|---|---|---|
| model | string | Sim | Nome do modelo Paraformer usado para transcrição de arquivos de áudio e vídeo. Para mais informações, consulte modelos. | |
| file_urls | array[string] | Sim | Lista de URLs para transcrição de arquivos de áudio e vídeo (HTTP/HTTPS). Uma única solicitação suporta apenas 1 URL.Se seus arquivos de áudio estiverem armazenados no OSS, a API RESTful suporta URLs temporárias que começam com o prefixo oss://. | |
| vocabulary_id | string | Não | ID do vocabulário personalizado. Suportado por modelos v2+ com configurações de idioma. As palavras-chave deste ID aplicam-se ao reconhecimento de fala atual. Desativado por padrão. Para uso, consulte Palavras-chave personalizadas. | |
| channel_id | array[integer] | [0] | Não | Especifica os índices das faixas de áudio a serem reconhecidas em um arquivo multifaixa. Os índices começam em 0. Por exemplo, [0] significa reconhecer a primeira faixa, e [0, 1] significa reconhecer simultaneamente a primeira e a segunda faixas. Se este parâmetro for omitido, apenas a primeira faixa será processada por padrão. |
| disfluency_removal_enabled | boolean | false | Não | Filtra palavras de preenchimento. Desativado por padrão. |
| timestamp_alignment_enabled | boolean | false | Não | Ativa o recurso de alinhamento de timestamp. Desativado por padrão. |
| special_word_filter | string | Não | Especifica palavras sensíveis a serem processadas durante o reconhecimento de fala e permite definir diferentes métodos de processamento para cada palavra.Se este parâmetro não for fornecido, o sistema utiliza a lógica interna de filtragem de palavras sensíveis, e as palavras correspondentes à lista de palavras sensíveis do Alibaba Cloud Model Studio nos resultados de reconhecimento serão substituídas por * de igual comprimento.Se este parâmetro for fornecido, as seguintes estratégias de processamento de palavras sensíveis podem ser implementadas:
| |
| language_hints | array[string] | ["zh", "en"] | Não | Especifica os códigos de idioma da fala a ser reconhecida.Este parâmetro aplica-se apenas ao modelo paraformer-v2.Códigos de idioma suportados:
|
| diarization_enabled | boolean | false | Não | Diarização automática de falantes. Desativada por padrão.Aplicável apenas a áudio mono. Áudio multicanal não suporta diarização de falantes.Quando este recurso está ativado, os resultados de reconhecimento incluirão um campo speaker_id para distinguir diferentes falantes.Se a diarização de falantes estiver ativada, recomenda-se que a duração do áudio não exceda 2 horas, caso contrário o reconhecimento pode falhar ou atingir timeout. speaker_id, consulte Descrição do resultado de reconhecimento. |
| speaker_count | integer | Não | Valor de referência para contagem de falantes (inteiro de 2 a 100, inclusive).Entra em vigor quando diarization_enabled é true.A contagem de falantes é determinada automaticamente por padrão. Configurar este parâmetro auxilia o algoritmo a focar na contagem especificada, mas não garante uma saída exata. |
Parâmetros de resposta
Clique para visualizar um exemplo de resposta
Clique para visualizar um exemplo de resposta
Parâmetro | Tipo | Descrição |
|---|---|---|
task_status | string | O status da tarefa. |
task_id | string | O ID da tarefa. Este ID é passado como um parâmetro de solicitação na interface de consulta de tarefas. |
Interface de consulta de tarefas
Informações básicas
| Descrição do endpoint da API | Consulta o status e o resultado de uma tarefa de reconhecimento de fala. |
| URL | |
| Método de solicitação | GET |
| Cabeçalhos da solicitação | |
| Corpo da mensagem | Nenhum. |
Parâmetros de solicitação
Clique para visualizar um exemplo de solicitação
Clique para visualizar um exemplo de solicitação
Parâmetro | Tipo | Valor padrão | Obrigatório | Descrição |
|---|---|---|---|---|
task_id | string | - | Sim | ID da tarefa necessário para consulta. Retornado pela interface de envio de tarefas. |
Parâmetros de resposta
Clique para visualizar um exemplo de resposta
Clique para visualizar um exemplo de resposta
SUCCEEDED se qualquer subtarefa for bem-sucedida. Verifique o campo subtask_status para determinar o resultado de cada subtarefa.- Exemplo normal
- Exemplo de exceção
Parâmetro | Tipo | Descrição |
|---|---|---|
task_id | string | O ID da tarefa consultada. |
task_status | string | O status da tarefa consultada. Para tarefas com múltiplas subtarefas, task_status mostra |
subtask_status | string | O status da subtarefa. |
file_url | string | A URL do arquivo processado na tarefa de transcrição de arquivos. |
transcription_url | string | Link para obter o resultado de reconhecimento (válido por 24 horas). Após a expiração, consultas de tarefas e downloads de resultados falharão. O resultado de reconhecimento é salvo como JSON. Baixe-o através deste link ou leia diretamente via solicitação HTTP. Para detalhes sobre os campos JSON, consulte Descrição do resultado de reconhecimento. |
Descrição do resultado de reconhecimento
O resultado de reconhecimento é salvo como um arquivo JSON.
Clique para visualizar exemplo de resultado de reconhecimento
Clique para visualizar exemplo de resultado de reconhecimento
Parâmetro | Tipo | Descrição |
|---|---|---|
audio_format | string | O formato de áudio do arquivo de source. |
channels | array[integer] | As informações de índice de faixa de áudio do arquivo de source. Retorna [0] para áudio mono, [0, 1] para áudio de duas faixas, e assim por diante. |
original_sampling_rate | integer | A taxa de amostragem (Hz) do áudio no arquivo de source. |
original_duration | integer | A duração original do áudio (ms) do arquivo de source. |
channel_id | integer | O índice da faixa de áudio do resultado de transcrição, começando em 0. |
content_duration | integer | A duração (ms) do conteúdo identificado como fala na faixa de áudio. O serviço de modelo de reconhecimento de fala Paraformer transcreve e mede apenas o conteúdo identificado como fala na faixa de áudio, faturando de acordo. Conteúdo sem fala não é medido nem faturado. Geralmente, a duração do conteúdo de fala é menor que a duração original do áudio. Como a determinação da existência de conteúdo de fala é feita por um modelo de IA, pode haver algum desvio em relação à situação real. |
transcript | string | O resultado de transcrição de fala no nível de parágrafo. |
sentences | array | O resultado de transcrição de fala no nível de sentença. |
words | array | O resultado de transcrição de fala no nível de palavra. |
begin_time | integer | O timestamp inicial (ms). |
end_time | integer | O timestamp final (ms). |
text | string | O resultado da transcrição de fala. |
speaker_id | integer | O índice do falante atual, começando em 0, usado para distinguir diferentes falantes. Este campo só é exibido nos resultados de reconhecimento quando a diarização de falantes está ativada. |
punctuation | string | A pontuação prevista após a palavra (se houver). |
Exemplo completo
Utilize bibliotecas HTTP integradas para implementar solicitações de envio e consulta de tarefas. Primeiro envie a tarefa de reconhecimento e depois consulte repetidamente até a conclusão.
O código a seguir fornece um exemplo em Python:
Códigos de erro
Se encontrar erros, consulte Códigos de erro para solução de problemas.
Se o problema persistir, junte-se à comunidade de desenvolvedores para relatar o problema e forneça o Request ID para investigação adicional.
Quando uma tarefa contém múltiplas subtarefas, desde que qualquer subtarefa tenha sucesso, o status geral da tarefa é marcado como SUCCEEDED. Verifique o campo subtask_status para determinar o resultado de cada subtarefa.
Exemplo de resposta de erro:
Mais exemplos
Para mais exemplos, consulte nosso repositório no GitHub.
FAQ
Recursos
P: Suporta áudio codificado em Base64?
Não. Áudio codificado em Base64 não é suportado. Apenas áudio acessível via URLs publicamente acessíveis é suportado. Fluxos binários e reconhecimento direto de arquivos locais não são suportados.
P: Como fornecer arquivos de áudio como URLs publicamente acessíveis?
Geralmente, siga estas etapas (esta é uma abordagem geral; os detalhes variam conforme o produto de armazenamento. Recomendamos fazer upload do áudio para o Alibaba Cloud OSS):
1. Escolha um método de armazenamento e hospedagem
1. Escolha um método de armazenamento e hospedagem
-
Object Storage Service (recomendado):
- Use o serviço de armazenamento de objetos de um provedor de nuvem (como o Alibaba Cloud OSS) para enviar arquivos de áudio para um bucket e configurá-los para acesso público.
- Vantagens: Alta disponibilidade, suporte a aceleração CDN, gerenciamento fácil.
-
Servidor web:
- Coloque arquivos de áudio em um servidor web que suporte acesso HTTP/HTTPS (como Nginx ou Apache).
- Vantagens: Adequado para pequenos projetos ou testes locais.
-
Content Delivery Network (CDN):
- Hospede arquivos de áudio em uma CDN e acesse-os através da URL fornecida pela CDN.
- Vantagens: Entrega acelerada de arquivos, adequado para cenários de alta concorrência.
2. Faça upload dos arquivos de áudio
2. Faça upload dos arquivos de áudio
-
Object Storage Service:
- Faça login no console do provedor de nuvem e crie um bucket.
- Faça upload dos arquivos de áudio e defina as permissões do arquivo como "leitura pública" ou gere links de acesso temporário.
-
Servidor web:
- Coloque os arquivos de áudio no diretório designado do servidor (como
/var/www/html/audio/). - Garanta que os arquivos sejam acessíveis via HTTP/HTTPS.
- Coloque os arquivos de áudio no diretório designado do servidor (como
3. Gere uma URL publicamente acessível
3. Gere uma URL publicamente acessível
-
Object Storage Service:
- Após o upload, o sistema gera automaticamente uma URL de acesso público (geralmente no formato
https://<bucket-name>.<region>.aliyuncs.com/<file-name>). - Se precisar de um domínio mais amigável, vincule um domínio personalizado e ative HTTPS.
- Após o upload, o sistema gera automaticamente uma URL de acesso público (geralmente no formato
-
Servidor web:
- A URL de acesso ao arquivo é tipicamente o endereço do servidor mais o caminho do arquivo (como
https://your-domain.com/audio/file.mp3).
- A URL de acesso ao arquivo é tipicamente 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 a acessibilidade da URL
4. Verifique a acessibilidade da URL
- Abra a URL em um navegador e verifique se o arquivo de áudio pode ser reproduzido.
- Use ferramentas (como
curlou Postman) para verificar se a URL retorna uma 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 expirar. Não a utilize em ambiente de produção.
- A API para obtenção de credencial de upload é limitada a 100 QPS e não suporta scale-out. Não a utilize em ambientes de produção, cenários de alta concorrência ou testes de estresse.
- Para ambientes de produção, utilize um serviço de armazenamento estável, como o OSS, para garantir disponibilidade de arquivos a longo prazo e evitar problemas de limitação de taxa.
P: Quanto tempo leva para obter resultados de reconhecimento?
Após o envio, a tarefa entra em estado de fila (PENDING). O tempo de espera depende do tamanho da fila e da duração do arquivo, não podendo ser estimado com precisão, mas geralmente é concluído em alguns minutos. Aguarde pacientemente. Arquivos de áudio mais longos exigem mais tempo de processamento.
Solução de problemas
Se encontrar um erro, consulte as informações em Códigos de erro.
P: O que devo fazer se os resultados de reconhecimento não estiverem sincronizados com a reprodução do áudio?
Defina o parâmetro de solicitação timestamp_alignment_enabled como true. Isso sincroniza os resultados de reconhecimento com a reprodução do áudio.
P: O que devo fazer se receber um erro InvalidFile.DownloadFailed após enviar uma tarefa?
Verifique se a URL do arquivo contém espaços, caracteres chineses ou outros caracteres especiais. Se o nome do arquivo incluir espaços (por exemplo, "Meeting Recording Q1 2024.mp4"), codifique o nome do arquivo em URL substituindo espaços por %20 antes de passá-lo para o parâmetro file_urls.
P: O que faço se a URL de acesso público temporário de um arquivo de áudio do OSS estiver inacessível?
Defina X-DashScope-OssResourceResolve como enable nos cabeçalhos.
Não recomendado.
O Java SDK e o Python SDK não suportam a configuração de cabeçalhos.
P: Não consigo obter resultados após polling contínuo?
Isso pode ocorrer devido à limitação de taxa. Aguarde pacientemente. Se precisar de expansão de capacidade, junte-se à comunidade de desenvolvedores para solicitar.
P: Por que não há resultado de reconhecimento (incapaz de reconhecer fala)?
- Verifique se o áudio atende aos requisitos (formato, taxa de amostragem).
- Se estiver usando o modelo
paraformer-v2, verifique se a configuraçãolanguage_hintsestá correta. - Se nenhuma das opções acima resolver o problema, personalize palavras-chave para melhorar o reconhecimento de termos específicos.