Cómo instalar Chatterbox TTS en Docker - API de text-to-speech con clonación de voz en Docker

Chatterbox TTS | Voice Cloning | Docker

Chatterbox TTS: API de text-to-speech con clonación de voz en Docker

Text-to-speech local compatible con OpenAI. Clona tu voz en 10 segundos. 22 idiomas. FastAPI. GPU (NVIDIA/AMD) y CPU. React frontend. Docker ready. Open source.

¿Qué es Chatterbox TTS?


Chatterbox TTS es una API local de text-to-speech (TTS) completamente compatible con OpenAI que permite clonar tu propia voz para generar speech natural. A diferencia de Google Cloud TTS (caro, en nube), Eleven Labs (suscripción), o Azure TTS (compliance complejo), Chatterbox es gratuito, self-hosted, y permite voz clonada con solo ~10 segundos de muestra de audio.

Características principales: OpenAI-compatible (drop-in replacement para cualquier app que use OpenAI TTS). Clonación de voz zero-shot (~10 segundos needed). 22 idiomas multilingües. FastAPI ultra-rápido. React frontend incluido. GPU support: NVIDIA (CUDA), AMD (ROCm), o CPU. Almacenamiento persistente de voces. Integración con Open WebUI, AnythingLLM, LM Studio. Configuración por environment variables. Docker optimizado.

Caso de uso perfecto: Integra TTS con voz clonada en tu LLM local (Open WebUI + Chatterbox TTS). ChatBot que habla como TÚ.

Características principales

Clonación de voz

Solo ~10 segundos de muestra. Zero-shot. Tu voz clonada.

OpenAI compatible

Drop-in replacement. Same API. Integra en cualquier app.

22 idiomas

Soporte multilingüe. Voice cloning en cualquier idioma.

FastAPI

Async, rápido, documentación automática en /docs.

React frontend

UI lista para usar. Web interface incluida.

GPU & CPU

NVIDIA (CUDA), AMD (ROCm), CPU. Elige tu hardware.

Voice library

Upload, gestiona, usa voces por nombre.

Controles parámetricos

Exageración, CFG weight, seed para control fine-grained.

Smart text processing

Chunking automático para textos largos.

Real-time status

Monitor progress, estadísticas, historial requests.

Docker ready

Full containerization. Persistent storage. Easy deploy.

Open source

MIT licensed. Código abierto. Community-driven.

Requisitos del sistema

  • Docker & Docker Compose
  • 4-8 GB RAM (depende de modelo y hardware)
  • 10+ GB espacio disco (modelos + voces)
  • GPU recomendada: NVIDIA (6GB+ VRAM tipo RTX 3060) o AMD ROCm
  • CPU posible pero lento: Intel/AMD de múltiples cores para razonable performance
  • Puerto 4123 para API
  • Archivos de voz en MP3 para clonación (10+ segundos)
GPU fuertemente recomendada: Chatterbox consume memoria. Sin GPU, los tiempos de generación son lentos (segundos a minutos por frase). Con GPU NVIDIA, es cuestión de milisegundos.

Instalación en Docker

Paso 1: Clonar repositorio

git clone https://github.com/travisvn/chatterbox-tts-api cd chatterbox-tts-api

Paso 2: Preparar archivo de voz (clonación)

Importante: Para clonar tu voz, necesitas un archivo MP3/WAV de 10-30 segundos de tu voz hablando claramente.

# Opción A: Usa archivo existente cp /ruta/a/tu/voz.mp3 ./voice-sample.mp3 # Opción B: Grabar tu voz (desde terminal Linux) ffmpeg -f pulse -i default -t 15 voice-sample.wav # Habla durante 15 segundos (claro, sin ruido)

Paso 3: Configurar ambiente Docker

cp .env.example.docker .env

Paso 4: Editar docker-compose.yml

cat > docker/docker-compose.yml << 'EOF' version: '3.8' services: chatterbox-tts: build: . container_name: chatterbox-tts-api restart: unless-stopped ports: - "4123:4123" volumes: - ./voice-sample.mp3:/app/voice-sample.mp3:ro - chatterbox-models:/cache - chatterbox-voices:/voices environment: - DEVICE=cuda # o cpu si no tienes GPU - EXAGGERATION=0.7 # Control de emoción en voz - CFG_WEIGHT=0.4 # Control de fidelidad - VOICE_SAMPLE_PATH=/app/voice-sample.mp3 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] volumes: chatterbox-models: chatterbox-voices: EOF

Paso 5: Iniciar con Docker Compose

# Primera vez (descarga e instala modelos) docker compose -f docker/docker-compose.yml up -d # Ver logs (importante la primera vez) docker logs -f chatterbox-tts-api

Acceder a la API

http://localhost:4123 - Frontend React

http://localhost:4123/docs - Documentación interactiva OpenAPI/Swagger

Clonar tu propia voz (paso a paso)

1. Preparar muestra de voz

  1. Grabar: 10-30 segundos de tu voz hablando claramente
  2. Calidad: Sin ruido de fondo. Micrófono decente.
  3. Contenido: Lee un párrafo. Frases naturales. Evita "ummm", risas, toques.
  4. Formato: MP3, WAV, OGG. Chatterbox soporta varios formatos.

2. Convertir a MP3 si es necesario

ffmpeg -i tu-grabacion.wav -acodec libmp3lame -ab 192k voice-sample.mp3

3. Coloca el archivo en el directorio

cp ~/Descargas/tu-voz.mp3 ./voice-sample.mp3 # Verifica que existe ls -lh voice-sample.mp3

4. Chatterbox automáticamente usa tu voz

La variable VOICE_SAMPLE_PATH en docker-compose.yml apunta a tu archivo. Cuando Chatterbox TTS genera speech sin especificar una voz, usa tu muestra como referencia para clonar la voz.

5. Probar clonación via API

curl -X POST http://localhost:4123/v1/audio/speech \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "Hola, esta es mi voz clonada hablando", "voice": "default" }' \ --output audio.mp3
Resultado: El archivo audio.mp3 contendrá tu voz clonada diciendo el texto. ¡Así de simple!

Primeros pasos

1. Verificar que está corriendo

curl http://localhost:4123/health # Deberías ver estado OK

2. Acceder a la UI React

  1. Abre http://localhost:4123 en navegador
  2. Frontend React aparece
  3. Escribe texto
  4. Click "Generate Speech"
  5. Escucha tu voz clonada

3. Usar API directamente (como OpenAI)

curl -X POST http://localhost:4123/v1/audio/speech \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "Tu texto aquí", "voice": "default", "speed": 1.0 }' \ --output output.mp3

4. Integrar con Open WebUI

  1. Open WebUI Settings → Admin Settings → Text-to-Speech
  2. TTS Engine: OpenAI
  3. API Key: any-key (dummy)
  4. Base URL: http://localhost:4123/v1
  5. Voice: default
  6. Ahora tu LLM hablará con tu voz clonada

5. Parámetros avanzados

curl -X POST http://localhost:4123/v1/audio/speech \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "Tu texto", "voice": "default", "speed": 0.8, "exaggeration": 0.8, "cfg_weight": 0.5, "seed": 42 }'

Parámetros:

  • exaggeration: 0-1. Control emoción/expresión (0.7 default)
  • cfg_weight: 0-1. Control fidelidad a muestra (0.4 default)
  • seed: Número fijo = mismo resultado siempre
  • speed: Velocidad habla (0.5-2.0)

Casos de uso

  • ChatBot con tu voz: Open WebUI + Chatterbox TTS. El LLM habla como TÚ.
  • Audiobook generador: Convierte texto a narración con tu voz.
  • Asistente de voz: Local voice assistant con tu voz clonada.
  • Contenido multilingüe: Tu voz en 22 idiomas.
  • Podcast automation: Script → podcast hablado por TI.
  • Accesibilidad: Convierte docs a audio con voz familiar.
  • Learning tools: Flashcards, tutoriales hablados con tu voz.

Gestión y mantenimiento

Ver logs y estado

docker logs -f chatterbox-tts-api

Detener/reiniciar

docker compose -f docker/docker-compose.yml stop docker compose -f docker/docker-compose.yml restart

Cambiar voz de clonación

# Reemplaza el archivo voice-sample.mp3 cp ~/nueva-voz.mp3 ./voice-sample.mp3 # Reinicia el container docker compose -f docker/docker-compose.yml restart

Monitorear memoria/GPU

nvidia-smi # Si tienes GPU NVIDIA docker stats chatterbox-tts-api

Actualizar imagen

docker compose -f docker/docker-compose.yml pull docker compose -f docker/docker-compose.yml up -d --force-recreate

Backup de voces guardadas

docker run --rm -v chatterbox-voices:/voices -v $(pwd):/backup alpine tar czf /backup/voices-backup-$(date +%Y%m%d).tar.gz -C /voices .

Troubleshooting

CUDA out of memory

# Cambia a CPU (lento pero funciona) DEVICE=cpu docker compose up -d

Modelo no carga

docker logs chatterbox-tts-api # Busca errores. Espacio disco insuficiente?

Voice sample no encontrado

# Verifica ruta en docker-compose.yml ls -lh voice-sample.mp3 # Asegúrate que está en el directorio correcto

API lenta

  1. Verifica que GPU está siendo usada: nvidia-smi
  2. Si CPU-only, es normal (lento)
  3. Considera GPU más potente para producción

Comparativa con alternativas

vs Eleven Labs

Chatterbox gana: Gratuito, self-hosted, voice cloning local. Eleven Labs gana: Voces naturales pre-entrenadas, mejor calidad.

vs Google Cloud TTS

Chatterbox gana: Voice cloning, gratis, local. Google gana: Voces premium, multinacionales.

vs Azure TTS

Chatterbox gana: Simple, voice cloning. Azure gana: Enterprise, HIPAA, features avanzadas.

vs pyttsx3

Chatterbox gana: Mejor calidad, voice cloning, 22 idiomas. pyttsx3 gana: Ultra-ligero, sin GPU.

Mejor para: Quien quiera voice cloning local con su propia voz. OpenAI-compatible. Integración LLM local. TTS de alta calidad sin suscripción.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.