Pular para o conteúdo principal
A clonagem de voz permite gerar fala em uma voz fornecida por uma pequena amostra de áudio de referência. Com tts-chatterbox-hd, envie uma amostra para /audio/voices, salve o handle de voz vv_... retornado e, em seguida, passe esse handle para /audio/speech.
Os handles de voz são específicos do modelo. Um handle criado com tts-chatterbox-hd deve ser usado com tts-chatterbox-hd.

Como funciona

  1. Envie - Envie um arquivo de áudio de referência limpo para POST /audio/voices
  2. Salve - Armazene o handle de voz id retornado
  3. Gere - Envie o handle como voice em POST /audio/speech

Pré-requisitos

  • Uma chave de API da Venice
  • Uma amostra de referência limpa nos formatos MP3, WAV, FLAC ou M4A
  • Pelo menos 5 a 10 segundos de fala clara de um único locutor
Defina sua chave de API:
export VENICE_API_KEY="your-api-key"

Etapa 1: enviar uma amostra de voz

Crie um handle de voz enviando o áudio de referência como multipart form data:
curl https://api.venice.ai/api/v1/audio/voices \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "model=tts-chatterbox-hd" \
  -F "file=@./reference-voice.wav"
Resposta (200):
{
  "id": "vv_voice_abc123xyz",
  "model": "tts-chatterbox-hd"
}
Salve o id para a geração de fala:
export VENICE_VOICE_ID="vv_voice_abc123xyz"

Etapa 2: gerar fala

Passe o handle de voz clonada como voice na requisição de fala:
curl https://api.venice.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-chatterbox-hd",
    "voice": "'"$VENICE_VOICE_ID"'",
    "input": "Hello from Venice. This audio is generated with a cloned Chatterbox HD voice.",
    "response_format": "mp3"
  }' \
  --output chatterbox-clone.mp3
O corpo da resposta é áudio binário no formato solicitado.

Exemplo completo

Este exemplo envia uma amostra de referência, extrai o handle de voz com jq e grava o áudio gerado em chatterbox-clone.mp3:
VOICE_ID=$(
  curl -s https://api.venice.ai/api/v1/audio/voices \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    -F "model=tts-chatterbox-hd" \
    -F "file=@./reference-voice.wav" | jq -r '.id'
)

curl https://api.venice.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-chatterbox-hd",
    "voice": "'"$VOICE_ID"'",
    "input": "This is a complete Chatterbox HD voice cloning example.",
    "response_format": "mp3",
    "speed": 1
  }' \
  --output chatterbox-clone.mp3

Dicas para a amostra de voz

Use uma amostra com um único locutor, ruído de fundo mínimo e sem música. A fala natural funciona melhor do que áudio sussurrado, cantado ou muito processado. Amostras mais longas podem ajudar quando a voz tem ritmo, sotaque ou tom distintos, mas mantenha a amostra focada no locutor-alvo.

Expiração do handle

A clonagem no Chatterbox HD é zero-shot: a Venice armazena o áudio de referência enviado temporariamente, e o modelo o lê quando você sintetiza fala. Nenhum template de voz persistente é criado. Os handles de voz expiram automaticamente após 7 dias. Depois que um handle expira, envie a amostra de referência novamente para criar um novo handle vv_....

Descobrir suporte a clonagem

Modelos que suportam clonagem incluem um objeto voice_cloning na especificação do modelo. Consulte os modelos de TTS para verificar os formatos suportados, o tamanho mínimo da amostra e a retenção:
curl "https://api.venice.ai/api/v1/models?type=tts" \
  -H "Authorization: Bearer $VENICE_API_KEY"
O tts-chatterbox-hd informa:
{
  "voice_cloning": {
    "mode": "zero_shot",
    "accepted_formats": ["mp3", "wav", "flac", "m4a"],
    "min_sample_seconds": 5,
    "retention_days": 7
  }
}

Parâmetros da API

Criar voz

CampoTipoObrigatórioDescrição
modelstringSimDeve ser tts-chatterbox-hd
filefileSimAmostra de áudio de referência. Os formatos suportados são MP3, WAV, FLAC e M4A.

Gerar fala

CampoTipoObrigatórioPadrãoDescrição
modelstringSim-Deve corresponder ao modelo usado para criar o handle de voz
voicestringSim-O handle vv_... retornado por POST /audio/voices
inputstringSim-Texto a sintetizar, com até 4096 caracteres
response_formatstringNãomp3mp3, opus, aac, flac, wav ou pcm
speednumberNão1Velocidade da fala de 0.25 a 4.0
temperaturenumberNão-Temperatura de amostragem de 0 a 2. Valores mais altos podem adicionar variação.
streamingbooleanNãofalseTransmite o áudio sentença por sentença

Erros comuns

StatusCausaCorreção
400Container de áudio não suportado ou handle de voz incompatívelUse MP3, WAV, FLAC ou M4A e combine o handle com o mesmo modelo usado para criá-lo.
401Chave de API ausente ou inválidaEnvie Authorization: Bearer $VENICE_API_KEY.
402Saldo insuficienteRecarregue seu saldo na Venice.
413O arquivo enviado é muito grandeUse uma amostra de referência mais curta ou mais comprimida.
429Limite de requisições excedidoTente novamente após o reinício da janela de limite de requisições.