La clonación de voz te permite generar voz utilizando una voz proporcionada por una muestra de audio de referencia corta. Con tts-chatterbox-hd, sube una muestra a /audio/voices, guarda el identificador de voz vv_... devuelto y luego pásalo a /audio/speech.
Los identificadores de voz son específicos del modelo. Un identificador creado con tts-chatterbox-hd debe usarse con tts-chatterbox-hd.
Cómo funciona
- Subir - Envía un archivo de audio de referencia limpio a
POST /audio/voices
- Guardar - Almacena el identificador de voz
id devuelto
- Generar - Envía el identificador como
voice en POST /audio/speech
Requisitos previos
- Una clave de API de Venice
- Una muestra de referencia limpia en formato MP3, WAV, FLAC o M4A
- Al menos de 5 a 10 segundos de voz clara de un solo hablante
Configura tu clave de API:
export VENICE_API_KEY="your-api-key"
Paso 1: Sube una muestra de voz
Crea un identificador de voz subiendo el audio de referencia como datos de formulario multipart:
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"
Respuesta (200):
{
"id": "vv_voice_abc123xyz",
"model": "tts-chatterbox-hd"
}
Guarda el id para la generación de voz:
export VENICE_VOICE_ID="vv_voice_abc123xyz"
Paso 2: Genera voz
Pasa el identificador de voz clonada como voice en la solicitud de voz:
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
El cuerpo de la respuesta es audio binario en el formato solicitado.
Ejemplo completo
Este ejemplo sube una muestra de referencia, extrae el identificador de voz con jq y escribe el audio generado en 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
Consejos para la muestra de voz
Usa una muestra con un solo hablante, mínimo ruido de fondo y sin música. El habla natural funciona mejor que el audio susurrado, cantado o muy procesado.
Las muestras más largas pueden ayudar cuando la voz tiene un ritmo, acento o tono distintivos, pero mantén la muestra centrada en el hablante objetivo.
Caducidad del identificador
La clonación de Chatterbox HD es zero-shot: Venice almacena temporalmente el audio de referencia subido y el modelo lo lee cuando sintetizas voz. No se crea ninguna plantilla de voz persistente.
Los identificadores de voz caducan automáticamente después de 7 días. Cuando un identificador caduca, vuelve a subir la muestra de referencia para crear un nuevo identificador vv_....
Detectar compatibilidad con la clonación
Los modelos que admiten clonación incluyen un objeto voice_cloning en la especificación del modelo. Consulta los modelos TTS para comprobar los formatos admitidos, la duración mínima de la muestra y la retención:
curl "https://api.venice.ai/api/v1/models?type=tts" \
-H "Authorization: Bearer $VENICE_API_KEY"
tts-chatterbox-hd indica:
{
"voice_cloning": {
"mode": "zero_shot",
"accepted_formats": ["mp3", "wav", "flac", "m4a"],
"min_sample_seconds": 5,
"retention_days": 7
}
}
Parámetros de la API
Crear voz
| Campo | Tipo | Obligatorio | Descripción |
|---|
model | string | Sí | Debe ser tts-chatterbox-hd |
file | file | Sí | Muestra de audio de referencia. Los formatos admitidos son MP3, WAV, FLAC y M4A. |
Generar voz
| Campo | Tipo | Obligatorio | Predeterminado | Descripción |
|---|
model | string | Sí | - | Debe coincidir con el modelo usado para crear el identificador de voz |
voice | string | Sí | - | El identificador vv_... devuelto por POST /audio/voices |
input | string | Sí | - | Texto a sintetizar, hasta 4096 caracteres |
response_format | string | No | mp3 | mp3, opus, aac, flac, wav o pcm |
speed | number | No | 1 | Velocidad del habla desde 0.25 hasta 4.0 |
temperature | number | No | - | Temperatura de muestreo desde 0 hasta 2. Los valores más altos pueden añadir variación. |
streaming | boolean | No | false | Transmite el audio frase por frase |
Errores comunes
| Estado | Causa | Solución |
|---|
400 | Contenedor de audio no admitido o identificador de voz incompatible | Usa MP3, WAV, FLAC o M4A y empareja el identificador con el mismo modelo usado para crearlo. |
401 | Clave de API ausente o no válida | Envía Authorization: Bearer $VENICE_API_KEY. |
402 | Saldo insuficiente | Recarga tu saldo de Venice. |
413 | El archivo subido es demasiado grande | Usa una muestra de referencia más corta o más comprimida. |
429 | Límite de tasa superado | Reintenta después de que se reinicie la ventana del límite de tasa. |