Speech to Text assíncrono
Este guia mostra como usar webhooks para receber notificações assíncronas quando tarefas de transcrição forem concluídas.
Guia prático · Pressupõe que você tenha concluído o início rápido do Speech to Text .
Visão geral
Os webhooks permitem receber notificações automáticas quando suas tarefas de transcrição do Speech to Text são concluídas, eliminando a necessidade de consultar continuamente a API em busca de atualizações de status. Isso é especialmente útil para tarefas de transcrição de longa duração ou ao processar grandes volumes de arquivos de áudio.
Quando uma transcrição é concluída, a ElevenLabs envia uma solicitação POST para a URL de webhook especificada com os resultados da transcrição, incluindo o texto transcrito, a detecção de idioma e quaisquer metadados.
Como usar webhooks
Este guia pressupõe que você já configurou sua chave de API e o SDK. Conclua primeiro o início rápido, caso ainda não tenha feito isso.
Criar ou editar um webhook
No painel da ElevenLabs, acesse Desenvolvedores > Webhooks. Clique em Criar webhook ou edite um webhook existente.

Configure o webhook com:
- Nome: um nome descritivo para seu webhook
- URL de callback: seu endpoint HTTPS acessível publicamente
- Método de autenticação do webhook:
HMACouOAuth. Cabe ao cliente implementar o mecanismo de verificação. A ElevenLabs envia cabeçalhos que permitem a verificação, mas não a exigimos. - Eventos: selecione Transcrição concluída.
Payload do webhook
Quando uma transcrição é concluída, seu endpoint de webhook recebe uma solicitação POST com os dados da transcrição e do webhook:
Consulte a referência da API de Speech to Text para saber mais sobre os detalhes da estrutura da resposta.
Se a solicitação incluiu uma instrução transcript_edit, o objeto transcription também contém um campo edited_transcript com o texto editado.
Se a transcrição falhar, seu endpoint receberá um evento webhook_error. Ele não tem um objeto data: contém um request_id de nível superior (o mesmo ID retornado quando a solicitação foi aceita), um error_message e o webhook_metadata da solicitação.
Como implementar seu endpoint de webhook
Veja um exemplo de como implementar um endpoint de webhook para processar notificações recebidas:
Considerações de segurança
Verificação de assinatura
Sempre verifique as assinaturas do webhook para garantir que as solicitações vieram da ElevenLabs.
Requisito de HTTPS
As URLs de webhook devem usar HTTPS para garantir a transmissão segura dos dados de transcrição.
Limitação de taxa
Implemente limitação de taxa no seu endpoint de webhook para evitar abusos:
Respostas a falhas
Retorne um código de status 2xx para confirmar o recebimento do webhook.
Por padrão, os webhooks de transcrição do Speech to Text são enviados uma vez. Toda resposta diferente de 2xx conta como uma entrega com falha, e falhas repetidas desativam automaticamente o webhook.
Se você ativar as novas tentativas para o webhook, entregas com falha (5xx, 408, 429 ou erros de conexão) serão repetidas até mais 5 vezes, aproximadamente 30 segundos, 2 minutos, 8 minutos, 30 minutos e 30 minutos após a tentativa anterior. Outras respostas 4xx não são repetidas. Todas as tentativas para o mesmo evento incluem o mesmo cabeçalho ElevenLabs-Webhook-Delivery-Id, para que seu manipulador possa ignorar duplicatas.
Solicitações feitas com enable_logging definido como false (modo de retenção zero) recebem até 2 novas tentativas rápidas, 5 segundos e 30 segundos após a tentativa anterior, quando as novas tentativas estão ativadas. A transcrição nunca é armazenada.
Se uma entrega ainda falhar, busque o resultado com Obter transcrição usando o transcription_id retornado quando a solicitação foi aceita. As transcrições não são armazenadas para solicitações feitas com enable_logging definido como false.
Como testar webhooks
Desenvolvimento local
Para testes locais, use ferramentas como o ngrok para expor seu servidor local:
Use a URL HTTPS fornecida como seu endpoint de webhook durante o desenvolvimento.
Teste de webhook
Você pode testar sua implementação de webhook fazendo uma solicitação de transcrição e monitorando seu endpoint: