VozAlta

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

IDIdiomaGéneroCalidad
es-MX-AldEspañol MéxicoMasculinoMedium (default)
es-ES-DavefxEspañol EspañaMasculinoMedium
es-ES-SharvardEspañol EspañaFemeninoMedium

Más voces en desarrollo (Argentina, Colombia, Chile).

Pricing

Comparación con APIs comerciales

APIPrecioEspañolSetup
VozAlta$7/mes ilimitado6 voces nativas1 POST request
Google Cloud TTS$16/1M chars3-4 vocesGCP account + SDK
Azure Speech$15/1M chars5+ vocesAzure account + SDK
Amazon Polly$16/1M chars2 vocesAWS account + IAM
ElevenLabs$5-99/mes (límite chars)Multi-idiomaAPI key + SDK
Ver documentación API →

Swagger docs interactivas. Prueba desde el navegador.