
Imagen: terydanphiri / Pixabay
Para integrar ElevenLabs con WordPress necesitas tres pasos: enviar el texto del artículo a la API de texto a voz de ElevenLabs (POST /v1/text-to-speech/{voice_id}) para obtener un archivo MP3, subir ese archivo a la biblioteca de medios de WordPress con la API REST (/wp-json/wp/v2/media) e insertar el audio en la entrada con un bloque de audio. Todo puede automatizarse con un script pequeño, sin instalar plugins que ralenticen el sitio.
Requisitos
- Una cuenta de ElevenLabs con clave de API (se genera en la configuración de la cuenta). El uso de la API consume caracteres de tu plan.
- Un sitio WordPress con HTTPS y un usuario con contraseña de aplicación y permiso para subir archivos (rol Autor o superior). Si aún no lo configuraste, sigue nuestra guía de la API REST de WordPress para integrar herramientas de IA.
- Node.js 18 o superior (incluye
fetch) o la terminal concurl.
Paso 1. Elige la voz y el modelo
Cada voz de ElevenLabs tiene un identificador (voice_id). Puedes listarlas con la API:
curl -s https://api.elevenlabs.io/v1/voices \
-H "xi-api-key: $ELEVENLABS_API_KEY"También puedes consultar los modelos disponibles en /v1/models. Para textos en español, la documentación y las guías técnicas muestran ejemplos con el modelo multilingüe eleven_multilingual_v2 y con modelos «flash» de baja latencia; revisa en la documentación oficial cuál es el recomendado en el momento en que lo implementes, porque ElevenLabs actualiza sus modelos con frecuencia.
Paso 2. Genera el audio
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/TU_VOICE_ID" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: audio/mpeg" \
-d '{"text":"Texto del artículo aquí","model_id":"eleven_multilingual_v2"}' \
--output articulo.mp3Consejo: limpia el texto antes de enviarlo. Elimina menús, créditos de imagen, botones para compartir y código HTML, y deja solo los párrafos que quieres que se escuchen.
Paso 3. Sube el MP3 a WordPress
curl -u "usuario:xxxx xxxx xxxx xxxx xxxx xxxx" \
-X POST https://tusitio.com/wp-json/wp/v2/media \
-H "Content-Disposition: attachment; filename=articulo.mp3" \
-H "Content-Type: audio/mpeg" \
--data-binary @articulo.mp3La respuesta incluye el id del archivo y su source_url. Guárdalos para el siguiente paso.
Paso 4. Inserta el audio en la entrada
Agrega al inicio del contenido un bloque de audio de Gutenberg con la URL obtenida:
<!-- wp:audio {"id":123} -->
<figure class="wp-block-audio"><audio controls src="https://tusitio.com/wp-content/uploads/articulo.mp3"></audio>
<figcaption>Escucha este artículo</figcaption></figure>
<!-- /wp:audio -->Puedes hacerlo manualmente en el editor o con una petición POST a /wp-json/wp/v2/posts/ID enviando el contenido actualizado. Si lo automatizas, lee primero el contenido actual para no sobrescribir el artículo.
Ejemplo completo en Node.js
import { readFile } from "node:fs/promises";
const WP = "https://tusitio.com/wp-json/wp/v2";
const auth = "Basic " + Buffer.from(`${process.env.WP_USER}:${process.env.WP_APP_PASSWORD}`).toString("base64");
// 1. Generar audio con ElevenLabs
const tts = await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${process.env.VOICE_ID}`, {
method: "POST",
headers: {
"xi-api-key": process.env.ELEVENLABS_API_KEY,
"Content-Type": "application/json",
"Accept": "audio/mpeg"
},
body: JSON.stringify({ text: "Texto limpio del artículo", model_id: "eleven_multilingual_v2" })
});
if (!tts.ok) throw new Error(`ElevenLabs: ${tts.status}`);
const audio = Buffer.from(await tts.arrayBuffer());
// 2. Subir a la biblioteca de WordPress
const media = await fetch(`${WP}/media`, {
method: "POST",
headers: {
"Authorization": auth,
"Content-Disposition": "attachment; filename=articulo.mp3",
"Content-Type": "audio/mpeg"
},
body: audio
}).then(r => r.json());
console.log("ID del audio:", media.id, "URL:", media.source_url);Costos y límites
ElevenLabs cobra según los caracteres convertidos y el plan contratado. Un artículo de 1,000 palabras tiene varios miles de caracteres, así que calcula cuántos artículos al mes puedes convertir con tu plan antes de automatizar todo el sitio. Consulta la página de precios oficial porque los planes cambian.
Buenas prácticas
- Guarda las claves en variables de entorno y nunca en el código del tema.
- Prueba primero con un borrador y escucha el resultado: revisa la pronunciación de nombres propios y siglas nicaragüenses.
- Comprime y nombra bien los archivos (por ejemplo,
audio-renovar-marca.mp3) para mantener ordenada la biblioteca. - Respeta los derechos de voz: no clones la voz de una persona sin su autorización expresa.
- Indica que el audio fue generado con IA si así lo requieren las políticas de tu sitio o de ElevenLabs.
Preguntas frecuentes
¿El audio mejora el SEO?
No hay garantía de mejora en el posicionamiento, pero el audio puede mejorar la accesibilidad y la experiencia de quienes prefieren escuchar.
¿WordPress acepta archivos MP3?
Sí, MP3 es un tipo de archivo permitido por defecto en la biblioteca de medios, sujeto al límite de tamaño de subida de tu hosting.
Conclusión
Con la API de ElevenLabs y la API REST de WordPress puedes ofrecer la versión en audio de tus artículos de forma automática y ligera. Empieza con unos pocos artículos, mide si tus lectores lo usan y luego decide si conviene ampliarlo.
Fuentes consultadas
- Documentación de ElevenLabs: Text to Speech API.
- WordPress REST API: endpoint de medios.
- Apidog: cómo usar la API de ElevenLabs (enero de 2026).
Actualizado: 15 de octubre de 2026.






