Skip to main content

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
Primer Request

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ámetroTipoDescripción
inputstringTexto a convertir (máx 500 caracteres)
voicestringNombre de la voz a usar
modelstringchatterbox (default)
response_formatstringmp3, wav, ogg
speedfloatVelocidad (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:

TagEfecto
[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

VariableDefaultRangoDescripción
USE_MULTILINGUAL_MODELtruetrue/falseActivar modelo multilingüe (22+ idiomas)
EXAGGERATION0.50.25-2.0Intensidad emocional
TEMPERATURE0.80.05-5.0Variabilidad en la generación
CFG_WEIGHT0.50.0-1.0Control de velocidad del habla

Ajustar Exageración

Para voces más expresivas, aumenta EXAGGERATION:

  • 0.0-0.3: Voz muy neutral
  • 0.4-0.6: Balance natural
  • 0.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

Modo CPU

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

PlanCPUTiempo por oración
Básico4 vCPU~20-30s
Avanzado8 vCPU~10-20s
Pro16 vCPU~5-10s

Optimizar Rendimiento

  1. Divide textos largos - Genera oraciones individuales
  2. Usa streaming - /v1/audio/speech/stream para latencia percibida menor
  3. Cache resultados - Guarda audios generados para reusar
  4. 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

Recursos