Actualizado 31 mayo 2026 · 8 min de lectura
API de Texto a Voz en Español Gratis (TTS API REST)
Necesitas integrar texto a voz en español en tu app, bot, o sitio web. Las opciones clásicas (Google Cloud, Azure, Amazon Polly) cuestan $15-19 por millón de caracteres y requieren configurar cuentas cloud complejas.
VozAlta ofrece una API REST gratuita para TTS en español. Sin API key para probar. Sin tarjeta de crédito. Solo manda un POST y recibe un MP3.
Prueba rápida (cURL)
curl -X POST https://voz.4l3.org/demo/try \
-H "Content-Type: application/json" \
-d '{"text": "Hola mundo, esta es una prueba de texto a voz en español."}' \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d['audio_url'])"
El demo acepta hasta 500 caracteres. 5 peticiones/hora por IP.
Endpoints disponibles
1. POST /demo/try — Demo gratuito
Sin auth. Límite: 500 chars, 5/hora por IP.
POST https://voz.4l3.org/demo/try
Content-Type: application/json
{
"text": "Tu texto aquí",
"voice": "es-MX-Ald",
"fmt": "mp3"
}
// Response:
{
"audio_id": "abc123def456",
"audio_url": "/audio/abc123def456",
"duration_s": 3.2,
"chunks": 1
}
2. POST /convert/text — Conversión completa
Acepta hasta 100,000 caracteres. Chunking automático para textos largos.
3. POST /convert/pdf — PDF a audio
Sube un PDF (máx 20MB), extrae el texto, genera audio.
4. POST /convert/url — URL a audio
Pega la URL de un artículo o blog, extrae el contenido, genera audio.
5. GET /voices — Lista de voces
Devuelve las voces disponibles con su ID y etiqueta.
6. GET /audio/{id} — Descargar audio
Descarga el MP3/WAV/OGG generado.
Ejemplos de integración
Python
import httpx
resp = httpx.post("https://voz.4l3.org/demo/try", json={
"text": "Hola, soy VozAlta. Convierto texto en audio español.",
"voice": "es-MX-Ald"
})
data = resp.json()
audio = httpx.get(f"https://voz.4l3.org{data['audio_url']}")
with open("salida.mp3", "wb") as f:
f.write(audio.content)
print(f"Audio guardado: {data['duration_s']}s")
JavaScript (fetch)
const resp = await fetch("https://voz.4l3.org/demo/try", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
text: "Hola desde JavaScript",
voice: "es-MX-Ald"
})
});
const { audio_url, duration_s } = await resp.json();
// Reproducir
const audio = new Audio(`https://voz.4l3.org${audio_url}`);
audio.play();
cURL (descargar MP3 directo)
# Paso 1: generar audio
AUDIO_URL=$(curl -s -X POST https://voz.4l3.org/demo/try \
-H "Content-Type: application/json" \
-d '{"text":"Ejemplo de texto a voz"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['audio_url'])")
# Paso 2: descargar MP3
curl -o audio.mp3 "https://voz.4l3.org${AUDIO_URL}"
Voces disponibles
| ID | Idioma | Género | Calidad |
|---|---|---|---|
| es-MX-Ald | Español México | Masculino | Medium (default) |
| es-ES-Davefx | Español España | Masculino | Medium |
| es-ES-Sharvard | Español España | Femenino | Medium |
Más voces en desarrollo (Argentina, Colombia, Chile).
Pricing
- Demo gratuito: 500 chars, 5/hora — sin registro, sin API key.
- Pro $7/mes: sin límite de caracteres, API key dedicada, prioridad en cola.
- Lifetime $49: pago único, acceso Pro para siempre.
Comparación con APIs comerciales
| API | Precio | Español | Setup |
|---|---|---|---|
| VozAlta | $7/mes ilimitado | 6 voces nativas | 1 POST request |
| Google Cloud TTS | $16/1M chars | 3-4 voces | GCP account + SDK |
| Azure Speech | $15/1M chars | 5+ voces | Azure account + SDK |
| Amazon Polly | $16/1M chars | 2 voces | AWS account + IAM |
| ElevenLabs | $5-99/mes (límite chars) | Multi-idioma | API key + SDK |
Swagger docs interactivas. Prueba desde el navegador.