Chatterbox TTS
Chatterbox es el modelo de Text-to-Speech open source más avanzado de Resemble AI. Clona cualquier voz con solo 10 segundos de audio y genera síntesis de voz ultra-realista en más de 22 idiomas.
Características Principales
- Clonación de voz - Clona cualquier voz con solo 10 segundos de audio
- 22+ idiomas - Español, inglés, francés, alemán, japonés, coreano, chino, y más
- API compatible con OpenAI - Reemplazo directo de la API de OpenAI TTS
- Tags de expresión -
[laugh],[cough],[sigh]para audio más natural - Streaming - Genera audio en tiempo real
- Sin costos por palabra - Uso ilimitado en tu propio servidor
Primeros Pasos
1. Accede a tu Chatterbox
Después del deploy, accede a tu instancia:
https://tu-subdomain.deployalo.com
2. Verifica que está funcionando
curl https://tu-subdomain.deployalo.com/health
Respuesta esperada:
{"status": "healthy"}
3. Genera tu primer audio
curl -X POST https://tu-subdomain.deployalo.com/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "chatterbox",
"input": "Hola, este es mi primer audio con Chatterbox",
"voice": "default",
"response_format": "mp3"
}' \
--output audio.mp3
El primer request puede tardar varios minutos mientras se descarga el modelo (~4GB). Los siguientes serán mucho más rápidos.
API Reference
Generar Audio (OpenAI-compatible)
POST /v1/audio/speech
| Parámetro | Tipo | Descripción |
|---|---|---|
input | string | Texto a convertir (máx 500 caracteres) |
voice | string | Nombre de la voz a usar |
model | string | chatterbox (default) |
response_format | string | mp3, wav, ogg |
speed | float | Velocidad (0.5 - 2.0) |
Streaming de Audio
POST /v1/audio/speech/stream
Mismos parámetros que arriba, pero devuelve audio en chunks.
Listar Voces
GET /voices
Respuesta:
{
"voices": [
{"id": "default", "name": "Default Voice"},
{"id": "maria", "name": "Maria (cloned)"}
]
}
Agregar Voz Clonada
POST /voices
Content-Type: multipart/form-data
audio_file: <archivo .mp3 o .wav de 10+ segundos>
name: nombre-de-la-voz
Idiomas Soportados
GET /languages
Clonación de Voz
Para clonar una voz necesitas un audio de referencia de al menos 10 segundos.
Paso 1: Prepara el audio
- Duración: 10-30 segundos ideal
- Formato: MP3 o WAV
- Calidad: Audio limpio sin ruido de fondo
- Contenido: La persona hablando naturalmente
Paso 2: Sube la voz
curl -X POST https://tu-subdomain.deployalo.com/voices \
-F "audio_file=@mi_voz.mp3" \
-F "name=mi-voz"
Paso 3: Usa la voz clonada
curl -X POST https://tu-subdomain.deployalo.com/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"input": "Este es un texto con mi voz clonada",
"voice": "mi-voz",
"response_format": "mp3"
}' \
--output audio_clonado.mp3
Tags de Expresión
El modelo soporta tags especiales para hacer el audio más natural:
| Tag | Efecto |
|---|---|
[laugh] | Risa |
[chuckle] | Risita |
[cough] | Tos |
[sigh] | Suspiro |
[gasp] | Jadeo |
[yawn] | Bostezo |
Ejemplo
curl -X POST https://tu-subdomain.deployalo.com/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"input": "Eso fue muy gracioso [laugh] déjame contarte más [chuckle]",
"voice": "default"
}' \
--output expresivo.mp3
Integración con OpenAI SDK
Puedes usar el SDK oficial de OpenAI cambiando solo la URL base:
Python
from openai import OpenAI
client = OpenAI(
api_key="no-necesitas-key",
base_url="https://tu-subdomain.deployalo.com/v1"
)
response = client.audio.speech.create(
model="chatterbox",
voice="default",
input="Hola desde Python"
)
response.stream_to_file("output.mp3")
Node.js
import OpenAI from 'openai';
import fs from 'fs';
const openai = new OpenAI({
apiKey: 'no-necesitas-key',
baseURL: 'https://tu-subdomain.deployalo.com/v1',
});
const mp3 = await openai.audio.speech.create({
model: 'chatterbox',
voice: 'default',
input: 'Hola desde Node.js',
});
const buffer = Buffer.from(await mp3.arrayBuffer());
fs.writeFileSync('output.mp3', buffer);
Configuración Avanzada
Variables de Entorno
| Variable | Default | Rango | Descripción |
|---|---|---|---|
USE_MULTILINGUAL_MODEL | true | true/false | Activar modelo multilingüe (22+ idiomas) |
EXAGGERATION | 0.5 | 0.25-2.0 | Intensidad emocional |
TEMPERATURE | 0.8 | 0.05-5.0 | Variabilidad en la generación |
CFG_WEIGHT | 0.5 | 0.0-1.0 | Control de velocidad del habla |
Ajustar Exageración
Para voces más expresivas, aumenta EXAGGERATION:
0.0-0.3: Voz muy neutral0.4-0.6: Balance natural0.7-1.0: Muy expresivo
Modelo Solo Inglés
Si solo necesitas inglés, puedes usar el modelo Turbo que es más rápido:
USE_MULTILINGUAL_MODEL=false
Rendimiento
Este deployment usa CPU (no GPU). La generación puede tardar 10-30 segundos por oración. Para producción de alto volumen, considera servidores con GPU.
Tiempos Aproximados
| Plan | CPU | Tiempo por oración |
|---|---|---|
| Básico | 4 vCPU | ~20-30s |
| Avanzado | 8 vCPU | ~10-20s |
| Pro | 16 vCPU | ~5-10s |
Optimizar Rendimiento
- Divide textos largos - Genera oraciones individuales
- Usa streaming -
/v1/audio/speech/streampara latencia percibida menor - Cache resultados - Guarda audios generados para reusar
- Modelo inglés - Si no necesitas otros idiomas, usa
USE_MULTILINGUAL_MODEL=false
Casos de Uso
- Podcasts automatizados - Genera episodios completos
- Audiolibros - Convierte libros a audio con voces personalizadas
- Asistentes de voz - Respuestas de voz para chatbots
- Voiceovers - Videos, presentaciones, tutoriales
- Accesibilidad - Lectura de contenido para personas con discapacidad visual
- E-learning - Cursos con narración automática
Troubleshooting
El primer request tarda mucho
Normal. El modelo se descarga en el primer uso (~4GB). Espera 5-10 minutos.
Out of memory
El modelo requiere mucha RAM. Verifica que tienes al menos 8GB disponibles.
docker stats
Audio distorsionado
Reduce exaggeration y temperature:
{
"input": "texto",
"voice": "default",
"exaggeration": 0.3,
"temperature": 0.5
}
Idioma incorrecto
Verifica que USE_MULTILINGUAL_MODEL=true en las variables de entorno.
Ver logs
docker logs deployment-chatterbox-1 --tail=100