Parâmetros e API do Python SDK para reconhecimento de arquivos de áudio Paraformer.
ImportanteEste documento aplica-se apenas à região Chinese mainland (Beijing). Para usar o modelo, utilize uma chave de API da região Chinese mainland (Beijing).
ImportanteO 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.
ObservaçãoQuando 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
O recurso principal (client.audio.asr) fornece interfaces para enviar tarefas de forma assíncrona, aguardar sua conclusão sincronamente e consultar resultados de tarefas de forma assíncrona (transcribe em uma etapa, ou jobs.create+jobs.wait+jobs.fetch em etapas separadas). 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
-
Chame o recurso principal (
client.audio.asr) (jobs.create/transcribe) e defina os parâmetros de solicitação.Observaçã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.
- 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 (
-
Chame o recurso principal (
client.audio.asr) (jobs.wait, outranscribeem uma etapa) para aguardar sincronamente a conclusão da tarefa.Uma tarefa pode ter o status
PENDING,RUNNING,SUCCEEDEDouFAILED. A chamadawaitfica bloqueada enquanto a tarefa estiver no estadoPENDINGouRUNNING. Se a tarefa forSUCCEEDEDouFAILED, o métodowaitretorna o resultado da tarefa.O método
jobs.waitretorna oJobem estado terminal (estrutura descrita em parâmetros de resposta).
Clique em para visualizar o exemplo completo
import os
import json
import dashscope
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx"
# A configuração abaixo refere-se à região China (Beijing). Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="cn-beijing",
)
# Envie a tarefa de reconhecimento de arquivo de áudio e aguarde sincronamente a sua conclusão
job = client.audio.asr.transcribe(
['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav'],
model='paraformer-v2',
parameters={'language_hints': ['zh', 'en']} # O parâmetro "language_hints" só é suportado pelo modelo paraformer-v2
)
print(json.dumps(job.model_dump(), indent=4, ensure_ascii=False))
print('transcription done!')
Envio assíncrono de tarefa + consulta assíncrona dos resultados
-
Chame o recurso principal (
client.audio.asr) (jobs.create/transcribe) e defina os parâmetros de solicitação.Observaçã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.
- 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 (
-
Continue chamando o recurso principal (
client.audio.asr) (jobs.fetch) até recuperar o resultado final da tarefa.Quando o status da tarefa for
SUCCEEDEDouFAILED, interrompa a sondagem e processe o resultado.O método
jobs.fetchretorna umJob(estrutura descrita em parâmetros de resposta).
Clique em para visualizar o exemplo completo
import os
import json
import dashscope
# A configuração abaixo refere-se à região China (Beijing). Substitua {WorkspaceId} pelo ID real do seu workspace. O valor de region varia conforme a região.
client = dashscope.Client(
# Se a variável de ambiente não estiver configurada, substitua a linha abaixo pela sua API Key do Model Studio: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="cn-beijing",
)
# Envie a tarefa de reconhecimento de arquivo de áudio
job = client.audio.asr.jobs.create(
model='paraformer-v2',
file_urls=['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav'],
parameters={'language_hints': ['zh', 'en']} # O parâmetro "language_hints" só é suportado pelo modelo paraformer-v2
)
# Consulte a tarefa em loop até obter o resultado final
while True:
if job.status == 'SUCCEEDED' or job.status == 'FAILED':
break
job = client.audio.asr.jobs.fetch(job.task_id)
print(json.dumps(job.model_dump(), indent=4, ensure_ascii=False))
print('transcription done!')
Parâmetros de solicitação
Defina os parâmetros de solicitação por meio dos métodos jobs.create/transcribe do recurso principal (client.audio.asr).
| Parâmetro | Tipo | Padrão | Obrigatório | Descrição |
|---|---|---|---|---|
model | str | Sim | Nome do modelo usado para transcrição de arquivos de áudio e vídeo Paraformer. Para mais informações, consulte modelos. | |
file_urls | list[str] | Sim | Lista 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_id | str | Não | ID 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_id | list[int] | [0] | Não | Especifica 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. ImportanteCada faixa especificada é faturada independentemente. Por exemplo, solicitar [0, 1] para um único arquivo incorre em duas cobranças separadas. |
disfluency_removal_enabled | bool | False | Não | Define se palavras de preenchimento devem ser filtradas. Este recurso está desativado por padrão. |
timestamp_alignment_enabled | bool | False | Não | Define se o recurso de alinhamento de carimbo de data/hora deve ser ativado. Este recurso está desativado por padrão. |
special_word_filter | str | Não | Especifica 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 Se este parâmetro for fornecido, as seguintes estratégias de processamento de palavras sensíveis podem ser implementadas:
O valor deste parâmetro deve ser uma string JSON com a seguinte estrutura: Descrições dos campos JSON:
| |
language_hints | list[str] | ["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 | bool | False | Não | Diarizaçã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 ObservaçãoSe 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_count | int | Não | Valor 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 ( 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
Job
O Job encapsula as informações básicas da tarefa (task_id e status) e o resultado da execução (results, consulte resultados de reconhecimento das subtarefas, task_metrics, usage). O Job retornado por jobs.create após o envio da tarefa contém apenas task_id e status; o Job retornado por jobs.fetch, jobs.wait (e pelo transcribe em uma etapa) contém o resultado da execução da tarefa.
Clique em para visualizar exemplos da estrutura Job
Exemplo do Job retornado pelo método jobs.create (a tarefa fica no estado PENDING após o envio):
{
"request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
"task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
"status":"PENDING"
}
Exemplo do Job retornado por jobs.fetch, jobs.wait (e pelo transcribe em uma etapa):
{
"request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
"task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
"status":"PENDING",
"task_metrics":{
"TOTAL":1,
"SUCCEEDED":0,
"FAILED":0
}
}
{
"request_id":"d9d530f1-853c-9848-a5f1-f5de59086ff7",
"task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
"status":"RUNNING",
"task_metrics":{
"TOTAL":1,
"SUCCEEDED":0,
"FAILED":0
}
}
{
"request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
"task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
"status":"SUCCEEDED",
"results":[
{
"file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
"transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A31/20ee4e4f-0404-4806-b617-c7d4c62eed19-1.json?Expires=1739525481&OSSAccessKeyId=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE",
"subtask_status":"SUCCEEDED"
}
],
"task_metrics":{
"TOTAL":1,
"SUCCEEDED":1,
"FAILED":0
},
"usage":{
"duration":9
}
}
{
"request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
"task_id":"7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
"status":"SUCCEEDED",
"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
},
"usage":{
"duration":9
}
}
Parâmetros principais:
Parâmetro | Descrição |
|---|---|
request_id | ID gerado pelo sistema para identificar esta chamada. |
task_id | ID da tarefa. |
status | Status da tarefa. Os quatro status possíveis são Quando uma tarefa contém várias subtarefas, se qualquer subtarefa for bem-sucedida, o status geral da tarefa será marcado como |
results | Resultados de reconhecimento das subtarefas; cada item contém |
subtask_status | Status da subtarefa. Os quatro status possíveis são |
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 |
usage | Informações de medição, incluindo |
Quando a chamada falha, o Python SDK lança uma exceção DashScopeError; use e.code/e.status_code/e.message/e.request_id para obter o código de erro, o código de status HTTP, a mensagem de erro e o request ID. A falha de uma subtarefa não lança exceção — verifique subtask_status, code e message em results.
results (resultados de reconhecimento das subtarefas)
O array results corresponde ao resultado de reconhecimento de cada arquivo de áudio no Job; cada item contém file_url, transcription_url e subtask_status; quando a subtarefa falha, também contém code e message.
Clique em para visualizar exemplos da estrutura results
Status SUCCEEDED
{
"file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
"transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A59/70e737cc-bf8c-418b-b0c8-83fab192a0fa-1.json?Expires=1739527168&OSSAccessKeyId=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE",
"subtask_status":"SUCCEEDED"
}
Status FAILED
code é o código de erro e message é a mensagem de erro; esses dois campos existem apenas quando a subtarefa falha. Use-os em conjunto e consulte Códigos de erro para solucionar problemas.
{
"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"
}
Parâmetros importantes:
Parâmetro | Descrição |
|---|---|
code | Código de erro. Use junto com o campo |
message | Mensagem de erro. Use junto com o campo |
subtask_status | Status da subtarefa. Os quatro status possíveis são |
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 |
Descrição do resultado de reconhecimento
O resultado do reconhecimento é salvo como um arquivo JSON.
Clique em para visualizar exemplo de resultado de reconhecimento
{
"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, // Este campo é exibido apenas quando a diarização automática de falantes está ativada
"words":[
{
"begin_time":100,
"end_time":596,
"text":"Hello ",
"punctuation":""
},
{
"begin_time":596,
"end_time":844,
"text":"world",
"punctuation":", "
}
// Outros conteúdos são omitidos aqui
]
}
]
}
]
}
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
Recurso principal (client.audio.asr)
O reconhecimento de fala não em tempo real é montado no recurso client.audio.asr: use client.audio.asr.transcribe para concluir o envio e a espera em uma etapa, ou use client.audio.asr.jobs para o controle em etapas separadas.
| Método membro | Assinatura do método | Descrição |
|---|---|---|
transcribe | | Envia a tarefa de reconhecimento de arquivo de áudio e bloqueia a thread atual até a conclusão da tarefa (status Este método retorna um |
jobs.create | | Envia a tarefa de reconhecimento de fala de forma assíncrona. Este método retorna um |
jobs.wait | | Bloqueia a thread atual até a conclusão da tarefa assíncrona (sondagem com backoff exponencial, orçamento total padrão de 24 horas). Este método retorna o |
jobs.fetch | | Consulta de forma assíncrona o resultado da execução da tarefa atual. Este método retorna um |
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:
{
"request_id": "16668704-6702-9e03-8ab7-a32a5d7bb095",
"task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
"status": "SUCCEEDED",
"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):
1. Escolha um método de armazenamento e hospedagem
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.
2. Faça upload dos arquivos de áudio
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.
- Coloque os arquivos de áudio no diretório designado do servidor (como
3. Gere uma URL publicamente acessível
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.
- 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
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
curlou 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çãolanguage_hintsestá 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.