Introdução
O Talking Avatar transforma um único retrato em um clipe que fala. Você envia o rosto em image_url e uma gravação de voz em audio_url; a boca, o queixo e pequenos movimentos de cabeça são animados para que a pessoa pareça dizer exatamente o que está na gravação. O clipe dura o mesmo que o áudio, de três a sessenta segundos, e volta com a sua gravação já aplicada, pronto para publicar ou para entrar na edição.
Recursos e destaques
O áudio define o ritmo
Cada formato de boca vem do próprio som, então pausas, trechos rápidos e ênfases caem onde quem fala os colocou. Não há campo de roteiro nem tempos para ajustar: grave a fala do jeito que ela deve soar e o rosto acompanha segundo a segundo.
O retrato continua sendo a cena
Roupa, cabelo, fundo e enquadramento vêm direto da imagem. Nada ao redor do rosto é gerado de novo, e por isso um apresentador, um personagem ou um porta-voz continua reconhecível de um clipe para o outro. O resultado é compacto, cerca de 0,2 megapixel a 25 quadros por segundo (uma foto 16:9 voltou em 640×352 e um retrato 3:4 em 400×544), então pense em feeds e janelas de chat, não em tela cheia.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
image_url | Sim | O rosto que vai falar. Uma única pessoa, olhando mais ou menos para a câmera, com luz uniforme; enquadramento de busto funciona melhor. pelo menos 1 caracteres |
audio_url | Sim | A voz a sincronizar, de 3 a 60 segundos, em MP3 ou WAV. Precisa ser um link direto para o arquivo de áudio; fazer upload é o caminho mais confiável. pelo menos 1 caracteres |
prompt | Não | Opcional. Algumas palavras sobre expressão ou clima: calmo, animado, sério. no máximo 1000 caracteres |
mask_url | Não | Opcional. Só é necessário quando o retrato mostra várias pessoas: uma imagem em preto e branco do mesmo tamanho, branca sobre quem deve falar. pelo menos 1 caracteres |
seed | Não | Fixe para comparar duas execuções com o mesmo retrato e o mesmo áudio; deixe em branco para ter uma versão nova a cada vez. |
Preços
$0.018 / segundo de saída
Cobrado por segundo de vídeo entregue, que dura o mesmo que o seu áudio, arredondado para cima com mínimo de 3 segundos.
Casos de uso
Vídeos de apresentador a partir de uma foto
Aberturas de curso, apresentações de produto e avisos semanais podem reaproveitar um retrato aprovado com uma gravação nova a cada vez. Trocar de idioma é só enviar outro arquivo de áudio com a mesma imagem, e assim um apresentador atende vários mercados.
Personagens que respondem em voz alta
Apps de companhia e de roleplay podem fazer um personagem dizer a resposta diante da câmera: mantenha um retrato do personagem, transforme a resposta em voz e envie o par. Mesmo uma resposta curta leva um ou dois minutos para renderizar, então inicie a tarefa enquanto a resposta em texto já aparece na tela.
Guia de prompt e dicas práticas
Escolha o retrato pensando na boca
É a boca que se mexe, então dê pixels a ela: enquadramento de busto, rosto mais ou menos voltado para a câmera, luz uniforme e nada cobrindo os lábios. Óculos escuros, perfis acentuados e rostos pequenos num plano aberto são as causas mais comuns de um resultado estranho.
Áudio limpo vale mais que áudio alto
Exporte a voz sem música de fundo, sem sala com eco e sem vozes sobrepostas. Corte o silêncio do início e do fim, porque o silêncio também entra na duração cobrada. Mantenha cada arquivo entre três e sessenta segundos e divida roteiros longos nas pausas naturais.
Prompt para o clima, máscara para quem fala
O campo prompt puxa um pouco a expressão, calma, animada ou séria, mas não muda quem fala nem onde. Se o retrato mostrar várias pessoas, envie mask_url com quem fala em branco sobre preto, do mesmo tamanho da imagem. Fixe seed para comparar duas gravações sobre o mesmo retrato.
Início rápido da API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/talking-avatar-v1/talking-avatar",
"input": {
"audio_url": "https://example.com/reference.mp3",
"image_url": "https://example.com/reference.png"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulte a referência da API para autenticação, esquema completo, polling e tratamento de erros.
