Skip to main content
O Trocador de Voz é speech-to-speech: regrava um arquivo de origem em uma voz diferente preservando a entrega, o ritmo e o timing. É assíncrono e usa seus próprios endpoints. Não é /audio/queue, tampouco text-to-speech ou clonagem de voz. Escolha um modelo de trocador de voz, solicite uma cotação de preço, coloque a conversão na fila e faça polling até que a Venice retorne o áudio convertido.
Uma conversão enfileirada é cobrada imediatamente. Se a resposta da fila for perdida, faça polling em /audio/voice-changer/retrieve com o mesmo queue_id. Não enfileire a mesma gravação novamente.

Escolha um modelo

Modelos de trocador de voz são retornados por GET /models?type=music com model_spec.voice_changer definido como true. Não há um filtro ?type=voice-changer. Os exemplos abaixo usam elevenlabs-voice-changer.
Verifique os metadados de cada modelo antes de definir campos opcionais: Campos não suportados causam uma resposta HTTP 400. Gravações mais longas que max_source_audio_duration_seconds são rejeitadas com HTTP 422 antes de qualquer cobrança.

Fluxo de conversão

1. Obtenha uma cotação de preço

O Trocador de Voz é cobrado com base na duração da gravação de origem, arredondada para cima para o próximo minuto inteiro. Cote o comprimento que você espera enviar; a cobrança é calculada a partir do comprimento que a Venice mede quando a gravação é enfileirada.
A resposta contém o custo estimado em USD e a duração para a qual a cotação foi calculada:

2. Enfileire a conversão

Forneça a gravação de origem exatamente de uma de duas formas: como upload file multipart, ou como um audio_url em um corpo JSON. Fornecer ambos, ou nenhum, é rejeitado. Quando você passa uma URL, a Venice busca e valida os bytes por conta própria e encaminha apenas esses bytes para o provedor. A URL nunca é repassada adiante.
Campos opcionais, quando o modelo informa suporte:
  • remove_background_noise — remove o ruído de fundo antes da conversão
  • seed — inteiro ≥ 0 para um resultado reproduzível
Uma requisição bem-sucedida retorna o modelo, um ID de fila e o comprimento medido da origem:
Salve model e queue_id; os endpoints retrieve e complete os exigem. Compare duration_seconds com sua cotação se precisar reconciliar a estimativa com o comprimento cobrado.
Enfileirar não é seguro para retry. Uma requisição de queue bem-sucedida já foi cobrada.

3. Faça polling e baixe

Chame /audio/voice-changer/retrieve com os valores da resposta de queue:
Inspecione o Content-Type da resposta: Uma resposta de processamento se parece com esta:
Ambos os valores de tempo estão em milissegundos. Uma resposta concluída também inclui x-venice-audio-format, x-venice-audio-duration, x-venice-inference-time, x-venice-model-id e x-venice-model-name. Se o provedor falhar na conversão, a cobrança é reembolsada automaticamente e o corpo do erro inclui credits_refunded. Fazer polling novamente reproduz o mesmo resultado em vez de reembolsar duas vezes. Para excluir a mídia armazenada na mesma chamada que retorna o áudio, defina delete_media_on_completion como true em retrieve. O áudio não pode ser recuperado novamente depois disso.

Exemplo completo

Este exemplo em Python cota uma conversão, envia um arquivo de origem, faz polling a cada cinco segundos e salva o resultado como MP3.
O endpoint de cotação não requer autenticação, mas as requisições de queue, retrieve e complete requerem.

Recursos relacionados