# API de texto a voz autoalojada en Docker

Actualizado 2026-10-22

Una API de texto a voz en tu propio servidor convierte texto en audio para cualquier programa que pueda enviar una petición HTTP: una web, un bot, el backend de un juego o un script en cualquier lenguaje. El texto no sale de tu máquina y no se paga por carácter.

Esta guía muestra cómo ejecutar el motor SuperClonica, basado en el modelo abierto Supertonic 3, como servidor HTTP en Docker: el arranque en CPU o GPU NVIDIA, las peticiones con voces integradas y personalizadas, y la preparación para un uso real. La imagen y el motor son nuestros, así que lo indicamos cuando hablamos de nosotros.

## Por qué ejecutar la síntesis de voz por tu cuenta

Con las API de voz en la nube es fácil empezar, pero cada petición envía tu texto al proveedor y se cobra por carácter. Una API autoalojada cambia eso por un servidor que gestionas tú.

- Privacidad: los textos y el audio se quedan en tu hardware, algo importante para documentos internos, mensajes y datos de usuarios.
- Coste: una vez pagado el hardware, la voz es gratis; los textos largos y los grandes volúmenes no suben la factura.
- Cualquier cliente: un solo endpoint HTTP sirve igual a Python, JavaScript, Go, PHP, C# o un script de shell.
- Sin conexión: una vez descargado el modelo, el servidor no necesita internet.

## Iniciar el servidor

En cualquier CPU: docker run -d --name tts -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. En una GPU NVIDIA, instala NVIDIA Container Toolkit y usa docker run -d --name tts --gpus all -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cuda; la imagen trae CUDA y cuDNN, y el host solo necesita el controlador.

El primer arranque descarga el modelo Supertonic 3, de unos 385 MB, en el volumen superclonica-models; los siguientes lo reutilizan. El servidor está listo cuando GET http://localhost:8000/health responde con su estado, su versión y el dispositivo en uso. La imagen tiene su propia comprobación de salud, así que docker ps muestra cuándo está lista.

## Enviar una petición

POST /synthesize recibe JSON y responde con un archivo WAV mono de 16 bits: curl -X POST http://localhost:8000/synthesize -H "Content-Type: application/json" -d '{"text": "¡Hola desde mi propio servidor!", "voice": "F1", "lang": "es"}' -o hola.wav. Las cabeceras X-Sample-Rate y X-Duration-Seconds describen el audio.

Los campos son text, voice, lang, seed y normalize. voice es una de las diez voces integradas, de M1 a M5 y de F1 a F5, o una voz personalizada; lang es el idioma del texto, uno de los 31 idiomas del modelo (el chino no está entre ellos). Una semilla fija devuelve el mismo audio para el mismo texto, y normalize iguala el volumen. GET /voices lista las voces integradas y los idiomas, y /docs muestra la documentación interactiva de la API.

## Usar voces personalizadas

Una voz de Supertonic 3 es un archivo JSON de unos 0,3 MB. Hay voces gratuitas con muestras de audio en el repositorio superclonica/supertonic-voices de GitHub, y el catálogo de SuperClonica tiene más de 170, cada una con una demo en línea gratuita.

La voz va en la petición como el propio objeto JSON, en el campo voice, así que el servidor no guarda archivos de voz. Como el objeto es grande, arma la petición en un archivo y envíala con curl -d @request.json, o desde el código: carga la voz con json.load en Python o JSON.parse en JavaScript y envíala junto con el texto. El cuerpo de una petición puede ocupar hasta 2 MB.

## Configuración

El servidor lee su configuración de variables de entorno, pasadas con -e en docker run o en un archivo Compose.

- SUPERCLONICA_API_KEY: si está definida, /synthesize y /voices exigen la cabecera Authorization: Bearer seguida de la clave.
- SUPERCLONICA_LANES: copias del modelo, de 1 a 8 (1 por defecto); cada una atiende una petición a la vez y necesita su propia memoria.
- SUPERCLONICA_DEVICE: auto, cuda o cpu (auto por defecto: la GPU si la hay).
- SUPERCLONICA_THREADS: hilos de CPU (por defecto uno por núcleo físico).
- SUPERCLONICA_MAX_TEXT: el texto más largo en caracteres (5000 por defecto).

## Antes de llevarla a producción

Unos pocos hábitos mantienen rápida y segura una API de voz autoalojada.

- Conserva el volumen /models para que los reinicios no vuelvan a descargar el modelo, e inicia el contenedor con --restart unless-stopped.
- No expongas el puerto 8000 a internet tal cual: define una clave de API y pon el servidor detrás de un proxy inverso con HTTPS, o mantenlo en una red privada.
- Divide tú mismo los textos largos en párrafos si necesitas progreso o streaming; el motor ya lee un texto largo en fragmentos naturales de hasta 160 caracteres.
- Guarda en caché el audio de los textos que se repiten, como las frases de la interfaz: el mismo texto, voz y semilla siempre dan el mismo archivo.
- Mide en tu hardware: en nuestras pruebas una frase corta tardó 0,12 s en una RTX 5070 Ti y 0,43 s en cuatro hilos de un Ryzen 7 5800X.

## Licencias

El motor SuperClonica y la imagen se publican bajo Apache License 2.0. El modelo Supertonic 3 está bajo OpenRAIL-M, una licencia libre de regalías con una lista de usos prohibidos en lugar de una cláusula no comercial: no uses la voz para hacerte pasar por alguien sin su consentimiento, para engañar o para acosar, e indica que el audio es generado por máquina cuando importe.

## Más guías

- [Cómo convertir texto a voz sin conexión en tu ordenador](https://superclonica.com/es/guides/offline-text-to-speech)
- [Clonación de voz: cómo conseguir una voz parecida a una grabación](https://superclonica.com/es/guides/voice-cloning)
- [Los mejores modelos de texto a voz gratis para usar en local en 2026](https://superclonica.com/es/guides/best-free-tts-models)
- [Texto a voz para vídeos, audiolibros, juegos y apps](https://superclonica.com/es/guides/text-to-speech-for-videos)
- [Voces de Supertonic 3: dónde conseguir voces propias y cómo usarlas](https://superclonica.com/es/guides/supertonic-3-voices)
- [Texto a voz en Python: sin conexión, gratis y con voces naturales](https://superclonica.com/es/guides/python-text-to-speech)

## Texto a voz y comparativas

- [Texto a voz que funciona en tu propio equipo](https://superclonica.com/es/text-to-speech)
- [Supertonic vs SuperClonica: el mismo modelo, más rápido y limpio](https://superclonica.com/es/compare/supertonic)
- [Fish Audio y Fish Speech frente a SuperClonica](https://superclonica.com/es/compare/fish-audio)
- [OmniVoice o SuperClonica: más idiomas o más velocidad](https://superclonica.com/es/compare/omnivoice)
- [Qwen3-TTS o SuperClonica para texto a voz en local](https://superclonica.com/es/compare/qwen3-tts)
- [VoxCPM 2 o SuperClonica: sonido de estudio o velocidad en CPU](https://superclonica.com/es/compare/voxcpm)
- [F5-TTS o SuperClonica: clonación zero-shot o voz rápida en CPU](https://superclonica.com/es/compare/f5-tts)
- [Una alternativa a ElevenLabs que funciona sin conexión](https://superclonica.com/es/compare/elevenlabs)
- [Kokoro TTS o SuperClonica: dos modelos pequeños de texto a voz local](https://superclonica.com/es/compare/kokoro)
- [Piper TTS o SuperClonica: dispositivos pequeños o voces propias](https://superclonica.com/es/compare/piper)
- [Coqui XTTS-v2 o SuperClonica: una alternativa a Coqui TTS](https://superclonica.com/es/compare/xtts)
- [Chatterbox TTS o SuperClonica: clonación al instante o un archivo de voz entrenado](https://superclonica.com/es/compare/chatterbox)

## Preguntas frecuentes

### ¿La API es compatible con el endpoint de voz de OpenAI?

No. Tiene su propio formato JSON sencillo: text, voice, lang y algunas opciones de entrada, y un archivo WAV de salida. Un pequeño adaptador en tu código o proxy puede convertir otros formatos al suyo.

### ¿Necesito una GPU?

No. La imagen cpu funciona en un procesador normal, y una frase corta tarda bastante menos de un segundo. Una GPU NVIDIA con la imagen cuda es varias veces más rápida y conviene para grandes volúmenes.

### ¿Cuántas peticiones atiende a la vez?

Las peticiones se generan en lanes, copias del modelo; con una sola, esperan su turno. Define SUPERCLONICA_LANES (hasta 8) para atender varias a la vez; en una CPU las lanes se reparten los núcleos y en una GPU la aprovechan mejor.

### ¿Funciona sin internet?

Sí, después del primer arranque. El modelo se guarda en el volumen /models y a partir de entonces el servidor no necesita conexión; solo hace falta internet para descargar la imagen y el modelo.

- [Ver voces para tu API](https://superclonica.com/es/explore)
- [Otras formas de instalar el motor](https://superclonica.com/es/superclonica)

## Fuentes

- [Imagen Docker de SuperClonica (Docker Hub)](https://hub.docker.com/r/superclonica/superclonica)
- [Instalación de NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
- [Motor SuperClonica (PyPI)](https://pypi.org/project/superclonica-cpu/)
- [Ficha del modelo Supertonic 3 (Hugging Face)](https://huggingface.co/supertone-oss-archive/supertonic-3)
- [Voces gratuitas de Supertonic 3 (GitHub)](https://github.com/superclonica/supertonic-voices)
- [SuperClonica](https://superclonica.com/es/)
- [Catálogo de voces IA para texto a voz](https://superclonica.com/es/explore)
- [Encargos de voces personalizadas](https://superclonica.com/es/requests)
- [Guía: voces, TTS local y entrenamiento](https://superclonica.com/es/guide)
- [Instala el motor rápido para Supertonic 3](https://superclonica.com/es/superclonica)
- [Quiénes somos: entusiastas del TTS](https://superclonica.com/es/about)
- [Contacto, soporte y quejas sobre voces](https://superclonica.com/es/contacts)
- [Política de privacidad y datos](https://superclonica.com/es/privacy)
- [Términos de uso de la plataforma](https://superclonica.com/es/terms)
- [Texto a voz](https://superclonica.com/es/text-to-speech)
