Skip to main content
Referência da API de reconhecimento de arquivos de gravação Paraformer

Python SDK

Parâmetros e API do Python SDK para reconhecimento de arquivos de áudio Paraformer.

Este documento aplica-se apenas à região Chinese mainland (Beijing). Para usar o modelo, utilize uma chave de API da região Chinese mainland (Beijing).
O Alibaba Cloud Model Studio lançou um domínio específico por workspace para a região China (Beijing). O novo domínio dedicado oferece desempenho superior e maior estabilidade para solicitações de inferência. Recomendamos migrar de dashscope.aliyuncs.com para {WorkspaceId}.cn-beijing.maas.aliyuncs.com.Substitua {WorkspaceId} pelo seu ID do Workspace real. O domínio existente permanece totalmente funcional.
Guia do usuário:Reconhecimento de fala não em tempo real

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.
Quando for necessário fornecer acesso temporário a aplicativos ou usuários terceiros, ou quando você desejar controlar rigorosamente operações de alto risco, como acessar ou excluir dados sensíveis, recomendamos o uso de tokens de autenticação temporários.Em comparação com chaves de API de longo prazo, os tokens de autenticação temporários possuem curto período de validade (60 segundos) e maior segurança. Eles são adequados para cenários de chamada temporária e reduzem efetivamente o risco de vazamento da chave de API.Uso: No seu código, substitua a chave de API originalmente usada para autenticação pelo token de autenticação temporário obtido.

Primeiros passos

A classe principal (Transcription) fornece métodos para enviar tarefas de forma assíncrona, aguardar sua conclusão sincronamente e consultar resultados de tarefas assincronamente. Você pode reconhecer arquivos de áudio usando uma das duas abordagens a seguir:
  • Envio assíncrono de tarefa + espera síncrona pela conclusão: Após enviar uma tarefa, a thread atual é bloqueada até que a tarefa seja concluída e o resultado do reconhecimento seja retornado.
  • Envio assíncrono de tarefa + consulta assíncrona dos resultados: Após enviar uma tarefa, consulte o resultado da tarefa a qualquer momento.

Envio assíncrono de tarefa + espera síncrona pela conclusão

image
  1. Chame o método async_call da classe principal (Transcription) e defina os parâmetros de solicitação.
    • O serviço de transcrição de arquivos processa as 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; não é possível estimá-lo com precisão, mas geralmente a conclusão ocorre em alguns minutos. Uma vez iniciado o processamento, 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 o link de download da URL permanecem válidos por 24 horas. Após a expiração, não é possível consultar a tarefa ou baixar os resultados pela URL fornecida anteriormente.
  2. Chame o método wait da classe principal (Transcription) para aguardar sincronamente a conclusão da tarefa. Uma tarefa pode ter o status PENDING, RUNNING, SUCCEEDED ou FAILED. A chamada wait fica bloqueada enquanto a tarefa estiver no estado PENDING ou RUNNING. Se a tarefa for SUCCEEDED ou FAILED, o método wait retorna o resultado da tarefa. O método wait retorna um objeto TranscriptionResponse.
from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json

# If you have not configured the API Key in an environment variable,
# uncomment the following line and replace "apiKey" with your own API Key.
# import dashscope
# dashscope.api_key = "apiKey"
# China (Beijing): Replace {WorkspaceId} with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

task_response = Transcription.async_call(
    model='paraformer-v2',
    file_urls=['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav'],
    language_hints=['zh', 'en']  # The "language_hints" parameter only supports the paraformer-v2 model.
)

transcribe_response = Transcription.wait(task=task_response.output.task_id)
if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

Envio assíncrono de tarefa + consulta assíncrona dos resultados

image
  1. Chame o método async_call da classe principal Transcription e defina os parâmetros de solicitação.
    • O serviço de transcrição de arquivos processa as 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; não é possível estimá-lo com precisão, mas geralmente a conclusão ocorre em alguns minutos. Uma vez iniciado o processamento, 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 o link de download da URL permanecem válidos por 24 horas. Após a expiração, não é possível consultar a tarefa ou baixar os resultados pela URL fornecida anteriormente.
  2. Continue chamando o método fetch da classe principal (Transcription) até recuperar o resultado final da tarefa. Quando o status da tarefa for SUCCEEDED ou FAILED, interrompa a sondagem e processe o resultado. O método fetch retorna um objeto TranscriptionResponse.
from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json

# If you have not configured the API Key in an environment variable,
# uncomment the following line and replace "apiKey" with your own API Key.
# import dashscope
# dashscope.api_key = "apiKey"
# China (Beijing): Replace {WorkspaceId} with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

transcribe_response = Transcription.async_call(
    model='paraformer-v2',
    file_urls=['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav'],
    language_hints=['zh', 'en']  # The "language_hints" parameter only supports the paraformer-v2 model.
)

while True:
    if transcribe_response.output.task_status == 'SUCCEEDED' or transcribe_response.output.task_status == 'FAILED':
        break
    transcribe_response = Transcription.fetch(task=transcribe_response.output.task_id)

if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

Parâmetros de solicitação

Defina os parâmetros de solicitação usando o método async_call da classe principal (Transcription).
ParâmetroTipoPadrãoObrigatórioDescrição
modelstr
SimNome do modelo usado para transcrição de arquivos de áudio e vídeo Paraformer. Para mais informações, consulte modelos.
file_urlslist[str]
SimLista de URLs para transcrição de arquivos de áudio e vídeo. Os protocolos HTTP e HTTPS são suportados. Uma única solicitação suporta apenas 1 URL.Se os arquivos de áudio estiverem armazenados no Alibaba Cloud OSS, o SDK não suporta URLs temporárias com o prefixo oss://.
vocabulary_idstr
NãoID do vocabulário personalizado para a tarefa de reconhecimento de fala. Suportado para modelos da série v2 e requer configuração de idioma. Este recurso está desativado por padrão. Para mais informações, consulte Vocabulários Personalizados.
channel_idlist[int][0]NãoEspecifica os índices das faixas de áudio a serem reconhecidas em um arquivo de áudio com múltiplas faixas. 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.
Cada faixa especificada é faturada independentemente. Por exemplo, solicitar [0, 1] para um único arquivo incorre em duas cobranças separadas.
disfluency_removal_enabledboolFalseNãoDefine se palavras de preenchimento devem ser filtradas. Este recurso está desativado por padrão.
timestamp_alignment_enabledboolFalseNãoDefine se o recurso de alinhamento de carimbo de data/hora deve ser ativado. Este recurso está desativado por padrão.
special_word_filterstr
NãoEspecifica palavras sensíveis a serem processadas durante o reconhecimento de fala e permite definir diferentes métodos de processamento para diferentes palavras sensíveis.Se este parâmetro não for fornecido, o sistema usa a lógica interna de filtragem de palavras sensíveis, e as palavras correspondentes na 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:
  • Substituir por : Substitui palavras sensíveis correspondentes por de igual comprimento.
  • Filtrar diretamente: Remove completamente as palavras sensíveis correspondentes dos resultados de reconhecimento.
O valor deste parâmetro deve ser uma string JSON com a seguinte estrutura:
{
      "filter_with_signed": {
        "word_list": ["test"]
      },
      "filter_with_empty": {
        "word_list": ["start", "happen"]
      },
      "system_reserved_filter": true
    }
Descrições dos campos JSON:
  • filter_with_signed
    • Tipo: Object.
    • Obrigatório: Não.
    • Descrição: Configura a lista de palavras sensíveis a serem substituídas por . As palavras correspondentes nos resultados de reconhecimento serão substituídas por de igual comprimento.
    • Exemplo: Usando o JSON acima, o resultado do reconhecimento de fala para "Help me test this code" seria "Help me **** this code".
    • Campos internos:
      • word_list: Um array de strings listando as palavras sensíveis a serem substituídas.
  • filter_with_empty
    • Tipo: Object.
    • Obrigatório: Não.
    • Descrição: Configura a lista de palavras sensíveis a serem removidas (filtradas) dos resultados de reconhecimento. As palavras correspondentes serão completamente excluídas.
    • Exemplo: Usando o JSON acima, o resultado do reconhecimento de fala para "The game is about to start, right?" seria "The game is about to, right?".
    • Campos internos:
      • word_list: Um array de strings listando as palavras sensíveis a serem completamente removidas (filtradas).
  • system_reserved_filter
    • Tipo: Boolean.
    • Obrigatório: Não.
    • Padrão: true.
    • Descrição: Define se as regras internas de palavras sensíveis do sistema devem ser ativadas. Quando definido como true, a lógica interna de filtragem de palavras sensíveis do sistema também é ativada, e as palavras correspondentes na lista de palavras sensíveis do Alibaba Cloud Model Studio nos resultados de reconhecimento serão substituídas por * de igual comprimento.
language_hintslist[str]["zh", "en"]NãoEspecifica 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:
  • zh: Chinês
  • en: Inglês
  • ja: Japonês
  • yue: Cantonês
  • ko: Coreano
  • de: Alemão
  • fr: Francês
  • ru: Russo
diarization_enabledboolFalseNãoDiarização automática de falantes. Desativada por padrão.Aplica-se apenas a áudio mono. Áudio multicanal não suporta diarização de falantes.Quando este recurso está ativado, os resultados do 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 o tempo limite.
Para um exemplo de speaker_id, consulte Descrição dos resultados de reconhecimento.
speaker_countint
NãoValor de referência para o número de falantes. O valor deve ser um inteiro de 2 a 100, inclusive.Tem efeito apenas quando a diarização de falantes está ativada (diarization_enabled definido como true).Por padrão, a contagem de falantes é determinada automaticamente. Definir este parâmetro orienta o algoritmo para a contagem de falantes especificada, mas não garante o número exato.

Resultados da resposta

TranscriptionResponse

Um objeto TranscriptionResponse contém informações da tarefa, como task_id e task_status, além do resultado da execução. A propriedade output armazena o resultado da execução. Consulte TranscriptionOutput.
O TranscriptionResponse retornado por async_call não inclui submit_time ou scheduled_time.
{
    "status_code":200,
    "request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
    "code":null,
    "message":"",
    "output":{
        "task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
        "task_status":"PENDING"
    },
    "usage":null
}
Para obter submit_time e scheduled_time, use os métodos wait() ou fetch() em vez de usar diretamente o valor de retorno de async_call(). O TranscriptionResponse retornado por wait() ou fetch():
{
    "status_code":200,
    "request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
    "code":null,
    "message":"",
    "output":{
        "task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
        "task_status":"PENDING",
        "submit_time":"2025-02-13 16:55:08.573",
        "scheduled_time":"2025-02-13 16:55:08.592",
        "task_metrics":{
            "TOTAL":1,
            "SUCCEEDED":0,
            "FAILED":0
        }
    },
    "usage":null
}
Parâmetros principais:

Parâmetro

Descrição

status_code

Código de status da solicitação HTTP.

code

  • O code mais externo pode ser ignorado.

  • Em output.results, o campo code representa o código de erro. Use-o juntamente com o campo message e consulte Códigos de erro para solucionar problemas.

message

  • A message mais externa pode ser ignorada.

  • A message em output.results é a mensagem de erro. Use-a juntamente com o campo code e consulte códigos de erro para solucionar problemas.

task_id

ID da tarefa.

task_status

Status da tarefa.

Os quatro status possíveis são PENDING, RUNNING, SUCCEEDED e FAILED.

Quando uma tarefa contém várias subtarefas, se qualquer subtarefa for bem-sucedida, o status geral da tarefa será marcado como SUCCEEDED. Verifique o campo subtask_status para determinar o resultado de cada subtarefa específica.

results

Resultados de reconhecimento das subtarefas.

subtask_status

Status da subtarefa.

Os quatro status possíveis são PENDING, RUNNING, SUCCEEDED e FAILED.

file_url

URL do arquivo de áudio a ser reconhecido.

transcription_url

URL correspondente ao resultado do reconhecimento de áudio.

O resultado do reconhecimento é salvo como um arquivo JSON. Baixe o arquivo da URL em transcription_url ou leia seu conteúdo via solicitação HTTP. Para detalhes sobre o conteúdo do arquivo JSON, consulte Descrição do resultado de reconhecimento.

TranscriptionOutput

Um objeto TranscriptionOutput é a propriedade output de um objeto TranscriptionResponse, contendo o resultado da execução da tarefa.
  • Status PENDING
  • Status RUNNING
  • Status SUCCEEDED
  • Status FAILED
{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"PENDING",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "task_metrics":{
        "TOTAL":1,
        "SUCCEEDED":0,
        "FAILED":0
    }
}
Parâmetros importantes:

Parâmetro

Descrição

code

Código de erro. Use junto com o campo message. Consulte Códigos de erro.

message

Mensagem de erro. Use junto com o campo code. Consulte Códigos de erro.

task_id

ID da tarefa.

task_status

Status da tarefa.

Os quatro status possíveis são PENDING, RUNNING, SUCCEEDED e FAILED.

Quando uma tarefa contém várias subtarefas, se qualquer subtarefa for bem-sucedida, o status geral da tarefa será marcado como SUCCEEDED. Verifique o campo subtask_status para determinar o resultado de cada subtarefa específica.

results

Resultados de reconhecimento das subtarefas.

subtask_status

Status da subtarefa.

Os quatro status possíveis são PENDING, RUNNING, SUCCEEDED e FAILED.

file_url

URL do arquivo de áudio a ser reconhecido.

transcription_url

URL correspondente ao resultado do reconhecimento de áudio.

O resultado do reconhecimento é salvo em um arquivo JSON. Baixe o arquivo de transcription_url ou leia seu conteúdo via solicitação HTTP. Para detalhes sobre o conteúdo JSON, consulte Descrição do resultado de reconhecimento.

Descrição do resultado de reconhecimento

O resultado do reconhecimento é salvo como um arquivo JSON.
{
    "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
    "properties":{
        "audio_format":"pcm_s16le",
        "channels":[
            0
        ],
        "original_sampling_rate":16000,
        "original_duration_in_milliseconds":3834
    },
    "transcripts":[
        {
            "channel_id":0,
            "content_duration_in_milliseconds":3720,
            "text":"Hello world, this is the Alibaba speech laboratory.",
            "sentences":[
                {
                    "begin_time":100,
                    "end_time":3820,
                    "text":"Hello world, this is the Alibaba speech laboratory.",
                    "sentence_id":1,
                    "speaker_id":0, //This field is only displayed when automatic speaker diarization is enabled
                    "words":[
                        {
                            "begin_time":100,
                            "end_time":596,
                            "text":"Hello ",
                            "punctuation":""
                        },
                        {
                            "begin_time":596,
                            "end_time":844,
                            "text":"world",
                            "punctuation":", "
                        }
                        // Other content omitted here
                    ]
                }
            ]
        }
    ]
}
Os parâmetros principais são:

Parâmetro

Tipo

Descrição

audio_format

string

Formato de áudio do arquivo de source.

channels

array[integer]

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

Taxa de amostragem (Hz) do áudio no arquivo de source.

original_duration

integer

Duração original do áudio (ms) do arquivo de source.

channel_id

integer

Índice da faixa de áudio do resultado da transcrição, começando em 0.

content_duration

integer

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. Normalmente, 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

Resultado da transcrição de fala no nível de parágrafo.

sentences

array

Resultado da transcrição de fala no nível de sentença.

words

array

Resultado da transcrição de fala no nível de palavra.

begin_time

integer

Carimbo de data/hora inicial (ms).

end_time

integer

Carimbo de data/hora final (ms).

text

string

Resultado da transcrição de fala.

speaker_id

integer

Índice do falante atual, começando em 0, usado para distinguir diferentes falantes.

Este campo é exibido nos resultados de reconhecimento apenas quando a diarização de falantes está ativada.

punctuation

string

Pontuação prevista após a palavra (se houver).

Interfaces principais

Classe principal (Transcription)

Importe a classe Transcription: from dashscope.audio.asr import Transcription.
Método membroAssinatura do métodoDescrição
async_call
@classmethod
def async_call(cls,
               model: str,
               file_urls: List[str],
               phrase_id: str = None,
               api_key: str = None,
               workspace: str = None,
               **kwargs) -> TranscriptionResponse
Envie uma tarefa de reconhecimento de fala de forma assíncrona.Este método retorna TranscriptionResponse.
wait
@classmethod
def wait(cls,
         task: Union[str, TranscriptionResponse],
         api_key: str = None,
         workspace: str = None,
         **kwargs) -> TranscriptionResponse
Bloqueia a thread atual até que a tarefa assíncrona seja concluída (status é SUCCEEDED ou FAILED).Este método retorna TranscriptionResponse.
fetch
@classmethod
def fetch(cls,
          task: Union[str, TranscriptionResponse],
          api_key: str = None,
          workspace: str = None,
          **kwargs) -> TranscriptionResponse
Consulta o resultado da execução da tarefa de forma assíncrona.Este método retorna um TranscriptionResponse.

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 várias subtarefas, desde que qualquer subtarefa seja bem-sucedida, o status geral da tarefa é marcado como SUCCEEDED. É necessário verificar o campo subtask_status para determinar o resultado de cada subtarefa. Exemplo de resposta de erro:
{
    "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-12-16 16:30:59.170",
    "scheduled_time": "2024-12-16 16:30:59.204",
    "end_time": "2024-12-16 16:31:02.375",
    "results": [
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "InvalidFile.DownloadFailed",
            "message": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 1,
        "SUCCEEDED": 0,
        "FAILED": 1
    }
}

Mais exemplos

Consulte o GitHub para mais exemplos.

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):
Por exemplo:
  • Object Storage Service (recomendado):
    • Use o serviço de armazenamento de objetos de um provedor de nuvem (como o Alibaba Cloud OSS) para fazer upload de 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, adequada para cenários de alta concorrência.
Faça upload dos arquivos de áudio com base no método de armazenamento/hospedagem escolhido, por exemplo:
  • 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.
Por exemplo:
  • 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 o HTTPS.
  • 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).
  • CDN:
    • Após configurar a aceleração CDN, use a URL fornecida pela CDN (como https://cdn.your-domain.com/audio/file.mp3).
Em um ambiente de rede pública, garanta que a URL gerada seja acessível, por exemplo:
  • Abra a URL em um navegador e verifique se o arquivo de áudio pode ser reproduzido.
  • Use ferramentas (como curl ou Postman) para verificar se a URL retorna uma resposta HTTP correta (código de status 200).
Ao usar o SDK, se os arquivos de áudio estiverem armazenados no Alibaba Cloud OSS, URLs temporárias com o prefixo 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 cenários de teste de estresse.
  • Para ambientes de produção, use 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 um estado de fila (PENDING). O tempo de espera depende do tamanho da fila e da duração do arquivo; não é possível estimá-lo com precisão, mas geralmente a conclusão ocorre em alguns minutos. Aguarde pacientemente. Arquivos de áudio mais longos requerem mais tempo de processamento.

Solução de problemas

Para erros de código, consulte Códigos de erro.

P: O que devo fazer se os resultados de reconhecimento estiverem dessincronizados com a reprodução do áudio?

Defina o parâmetro de solicitação timestamp_alignment_enabled como true para ativar a calibração de carimbo de data/hora, que sincroniza os resultados de reconhecimento com a reprodução da fala.

P: O que devo fazer se a tarefa retornar um erro InvalidFile.DownloadFailed?

Verifique se a URL do arquivo contém espaços ou outros caracteres não ASCII (como caracteres chineses). Se o nome do arquivo incluir espaços (por exemplo, my audio recording.mp4), substitua cada espaço por %20 para codificar a URL do nome do arquivo antes de passá-lo ao parâmetro file_urls.

P: Não consigo obter resultados após sondagem contínua?

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ção language_hints está correta.
  • Se nenhuma das opções acima resolver o problema, personalize palavras-chave para melhorar o reconhecimento de palavras específicas.

Mais perguntas

Consulte o QA no GitHub.
Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Geração de Vídeo
Áudio
API em tempo real
Incorporação de Texto
Produção de Modelos