Cómo instalar CoquiTTS en Docker. CoquiTTS: generación de texto a voz. Clona y entrena tu propia IA con tu voz.

Coqui TTS | Text-to-Speech | Docker

Coqui TTS: Síntesis de voz de calidad profesional en Docker

Deep learning toolkit para Text-to-Speech con +1100 idiomas, modelos preentrenados y clonación de voz en tu propio servidor.

¿Qué es Coqui TTS?



Coqui TTS es un toolkit de código abierto para síntesis de voz (Text-to-Speech) basado en deep learning. Es una de las herramientas más potentes y completas para generar voz sintética de alta calidad, probada tanto en investigación como en producción.

Destaca por incluir modelos preentrenados en más de 1100 idiomas, capacidades de clonación de voz, síntesis multiidioma, y herramientas para entrenar tus propios modelos personalizados. Todo ejecutándose en tu propio hardware, sin dependencias de servicios cloud ni límites de uso.

Ventaja clave: A diferencia de servicios comerciales como Amazon Polly o Google Cloud TTS, Coqui TTS te da control total sobre los modelos, los datos y la generación de voz. Perfecto para proyectos que requieren privacidad, personalización o volúmenes altos sin costes recurrentes.

Características principales

Modelos preentrenados

Más de 1100 idiomas disponibles gracias a la integración con Fairseq. Múltiples arquitecturas de modelos TTS.

Clonación de voz

XTTS permite clonar cualquier voz con solo 6 segundos de audio de referencia en 13+ idiomas.

Multi-speaker TTS

Soporte para múltiples voces en un mismo modelo. Cambia entre diferentes hablantes fácilmente.

Entrenamiento personalizado

Entrena tus propios modelos con tus datos. Fine-tuning de modelos existentes para casos específicos.

Modelos estado del arte

Tacotron2, VITS, YourTTS, Tortoise, Bark, FastSpeech2, GlowTTS y más arquitecturas modernas.

Vocoders avanzados

HiFiGAN, MelGAN, WaveRNN, WaveGrad para síntesis de audio de alta calidad.

API Python y CLI

Interfaz Python completa y herramienta de línea de comandos para integración fácil.

Servidor web integrado

Servidor HTTP listo para usar. Llama al modelo TTS via API REST.

Conversión de voz

FreeVC para convertir una voz en otra manteniendo el contenido del habla.

Speaker Encoder

Extrae embeddings de hablantes para aplicaciones de reconocimiento y clonación.

Herramientas de análisis

Utilidades para curar y analizar datasets de Text-to-Speech.

Producción lista

Battle-tested en investigación y producción. Usado por empresas y proyectos reales.

Modelos disponibles

Coqui TTS incluye decenas de modelos preentrenados listos para usar:

Modelos end-to-end destacados

XTTS v2 (16 idiomas)
VITS (multi-idioma)
YourTTS (clonación)
Tortoise (calidad)
Bark (expresivo)

Modelos por idioma

  • Inglés: LJSpeech, VCTK, LibriTTS, Jenny
  • Español: CSS10 (hombre), MAI (mujer), Tacotron2-DDC
  • Alemán: Thorsten (Tacotron2, VITS)
  • Francés: MAI, CSS10
  • Portugués: VITS, YourTTS
  • Turco, Checo, Polaco, Húngaro: CSS10, Common Voice
  • +1100 idiomas: Modelos Fairseq MMS

Requisitos del sistema

  • Docker instalado en tu servidor
  • Al menos 4 GB de RAM (recomendado 8 GB)
  • CPU: Funciona en CPU, pero será lento para modelos grandes
  • GPU (opcional pero recomendado): NVIDIA con CUDA para inferencia rápida
  • Espacio en disco: 2-10 GB dependiendo de los modelos que descargues
Recomendación: Para uso personal y modelos pequeños, CPU es suficiente. Para producción o modelos complejos como XTTS, una GPU NVIDIA acelera significativamente la generación.

Instalación con Docker Compose

Paso 1: Crear el directorio del proyecto

mkdir ~/coqui-tts cd ~/coqui-tts

Paso 2: Crear el archivo docker-compose.yml

Crea el archivo docker-compose.yml con el siguiente contenido:

services: tts-cpu: image: ghcr.io/coqui-ai/tts-cpu container_name: coqui stdin_open: true tty: true ports: - "5002:5002" volumes: - ./tts_models:/root/.local/share/tts - ./voice_samples:/voice_samples - ./output:/output restart: unless-stopped entrypoint: - /bin/bash # Descomenta UNA de las siguientes líneas según el idioma deseado: # command: -c "python3 TTS/server/server.py --model_name tts_models/en/vctk/vits" # Inglés # command: -c "python3 TTS/server/server.py --model_name tts_models/es/css10/vits" # Español hombre command: -c "python3 TTS/server/server.py --model_name tts_models/es/mai/tacotron2-DDC" # Español mujer # command: -c "python3 TTS/server/server.py --model_name tts_models/multilingual/multi-dataset/xtts_v2" # Multiidioma con clonación
Importante: Solo una línea command debe estar descomentada. Elige el modelo que mejor se adapte a tu idioma y caso de uso.

Paso 3: Iniciar el contenedor

docker compose up -d

Paso 4: Verificar que está corriendo

# Ver logs docker compose logs -f tts-cpu # Comprobar estado docker compose ps

Paso 5: Acceder al servidor TTS

Abre tu navegador y ve a: http://tu-ip-servidor:5002

Verás una interfaz web donde puedes escribir texto y generar audio.

Modelos de voz en español

Voz masculina en español

command: -c "python3 TTS/server/server.py --model_name tts_models/es/css10/vits"

Modelo VITS entrenado con el dataset CSS10 en español. Voz masculina natural.

Voz femenina en español

command: -c "python3 TTS/server/server.py --model_name tts_models/es/mai/tacotron2-DDC"

Modelo Tacotron2 con Double Decoder Consistency. Voz femenina clara y natural.

Modelo multiidioma con clonación de voz (XTTS v2)

command: -c "python3 TTS/server/server.py --model_name tts_models/multilingual/multi-dataset/xtts_v2"

El modelo más avanzado. Soporta 16 idiomas y permite clonar cualquier voz con solo 6 segundos de audio de referencia.

Idiomas soportados: Inglés, Español, Francés, Alemán, Italiano, Portugués, Polaco, Turco, Ruso, Holandés, Checo, Árabe, Chino, Japonés, Húngaro, Coreano.

Uso desde la línea de comandos

Listar modelos disponibles

docker exec coqui tts --list_models

Generar audio con modelo específico

# Español (voz femenina) docker exec coqui tts \ --text "Hola, esto es una prueba de síntesis de voz" \ --model_name "tts_models/es/mai/tacotron2-DDC" \ --out_path /output/salida.wav # Inglés (multi-speaker) docker exec coqui tts \ --text "Hello, this is a test of text to speech" \ --model_name "tts_models/en/vctk/vits" \ --speaker_idx "p225" \ --out_path /output/output.wav

Clonación de voz con XTTS

docker exec coqui tts \ --text "Este texto será hablado con la voz clonada" \ --model_name "tts_models/multilingual/multi-dataset/xtts_v2" \ --speaker_wav "/voice_samples/mi_voz.wav" \ --language_idx "es" \ --out_path /output/clonada.wav

Uso desde Python

Instalación de la biblioteca

pip install TTS

Ejemplo básico

import torch from TTS.api import TTS # Obtener dispositivo (GPU si está disponible) device = "cuda" if torch.cuda.is_available() else "cpu" # Inicializar TTS con modelo en español tts = TTS("tts_models/es/mai/tacotron2-DDC").to(device) # Generar audio tts.tts_to_file( text="Hola, esto es una prueba de síntesis de voz", file_path="salida.wav" )

Clonación de voz multiidioma

from TTS.api import TTS tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda") # Clonar voz en español tts.tts_to_file( text="Este texto usa mi voz clonada", speaker_wav="mi_voz_referencia.wav", language="es", file_path="salida.wav" ) # Mismo modelo, diferente idioma tts.tts_to_file( text="This is voice cloning in English", speaker_wav="mi_voz_referencia.wav", language="en", file_path="output_en.wav" )

Multi-speaker con selección de voz

tts = TTS("tts_models/en/vctk/vits") # Listar voces disponibles print(tts.speakers) # Generar con voz específica tts.tts_to_file( text="Hello from speaker p225", speaker="p225", file_path="output.wav" )

Servidor web y API REST

El servidor TTS expone una API REST en el puerto 5002 con dos endpoints principales:

Endpoint: /api/tts (GET)

Genera audio desde texto:

curl "http://localhost:5002/api/tts?text=Hola%20mundo" --output audio.wav

Parámetros opcionales

  • speaker_id - ID del hablante (para modelos multi-speaker)
  • style_wav - Archivo de referencia para clonación
  • language_id - Código de idioma para modelos multiidioma

Interfaz web

Accede a http://localhost:5002 para usar la interfaz gráfica donde puedes:

  • Escribir texto y generar audio
  • Escuchar el resultado directamente
  • Descargar el archivo WAV generado
  • Probar diferentes configuraciones

Gestión del contenedor

Ver logs en tiempo real

docker compose logs -f tts-cpu

Reiniciar el servicio

docker compose restart tts-cpu

Cambiar de modelo

Edita docker-compose.yml, cambia la línea command y reinicia:

nano docker-compose.yml docker compose up -d

Detener el contenedor

docker compose down

Actualizar la imagen

docker compose pull docker compose up -d

Uso con GPU NVIDIA (opcional)

Para inferencia mucho más rápida, usa la imagen GPU:

services: tts-gpu: image: ghcr.io/coqui-ai/tts # Imagen con soporte CUDA container_name: coqui-gpu deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # ... resto de configuración igual

Requisitos: NVIDIA GPU, drivers NVIDIA, y nvidia-container-toolkit instalado.

Casos de uso

  • Asistentes de voz: Crear respuestas habladas para chatbots y asistentes virtuales
  • Audiolibros: Convertir texto a audio narrado de forma automática
  • Accesibilidad: Lectores de pantalla y herramientas para personas con discapacidad visual
  • E-learning: Narración automática de contenido educativo
  • Videojuegos: Diálogos de personajes generados dinámicamente
  • IVR y call centers: Sistemas telefónicos automatizados con voz natural
  • Podcasts automatizados: Generación de contenido de audio desde noticias o artículos
  • Doblaje multiidioma: Traducir contenido y generar audio en varios idiomas

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.