API Crear clave

ElevenLabsAudio

Voz en off

Locución a partir de tu guion con ElevenLabs, con el tiempo de cada palabra para los subtítulos.

Precio
5 crpor toma · varía con la duración o el tamaño
Tiempo habitual
≈ 20 s
Id del modelo
audio.tts

Zona de pruebas

Zona de pruebas

Modelo de voz
Más ajustes

0.7 - 1.2

0 - 1

Regístrate para ejecutarlo

Cambia los ajustes: el precio y el código se actualizan. Para ejecutarlo necesitas una cuenta.

audio.tts
Voces
66
Idiomas
7
Admite
Texto

Aún no hay un ejemplo de este modelo. Estos son sus ajustes reales.

# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
JOB_ID=$(curl -s -X POST https://staglight.ai/api/v1/jobs \
  -H "Authorization: Bearer $STAGLIGHT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "op": "audio.tts",
    "params": {
      "text": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana"
    }
  }' | jq -r .id)

# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while :; do
  JOB=$(curl -s "https://staglight.ai/api/v1/jobs/$JOB_ID?wait=30" -H "Authorization: Bearer $STAGLIGHT_API_KEY")
  case "$(echo "$JOB" | jq -r .status)" in queued|running) ;; *) break ;; esac
done

# 3. Descarga el resultado desde outputs[0].download_url.
DOWNLOAD_URL=$(echo "$JOB" | jq -r '.outputs[0].download_url')
curl -L -o result.mp3 "$DOWNLOAD_URL"
import os, uuid, requests

BASE = "https://staglight.ai/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STAGLIGHT_API_KEY']}"}

# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
r = requests.post(f"{BASE}/jobs", timeout=60,
                  headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
                  json={
                    "op": "audio.tts",
                    "params": {
                      "text": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana"
                    }
                  })
r.raise_for_status()
job = r.json()

# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while job["status"] in ("queued", "running"):
    job = requests.get(f"{BASE}/jobs/{job['id']}", headers=HEADERS,
                       params={"wait": 30}, timeout=60).json()

# 3. Descarga el resultado desde outputs[0].download_url.
print(job["outputs"][0]["download_url"] if job["outputs"] else job["data"] or job["error"])
// Node 18 o posterior. Guárdalo como run.mjs: el await de nivel superior necesita un módulo.
const BASE = "https://staglight.ai/api/v1";
const headers = { Authorization: `Bearer ${process.env.STAGLIGHT_API_KEY}` };

// 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
let res = await fetch(`${BASE}/jobs`, {
  method: "POST",
  headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
  body: JSON.stringify({
    "op": "audio.tts",
    "params": {
      "text": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana"
    }
  }),
});
if (!res.ok) throw new Error((await res.json()).error.message);
let job = await res.json();

// 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while (job.status === "queued" || job.status === "running") {
  job = await (await fetch(`${BASE}/jobs/${job.id}?wait=30`, { headers })).json();
}

// 3. Descarga el resultado desde outputs[0].download_url.
console.log(job.outputs[0]?.download_url ?? job.data ?? job.error);
{
  "id": "job_19a2b3c4d5e6f7a8b9c0d1",
  "op": "audio.tts",
  "status": "queued",
  "credits": 5,
  "title": "",
  "params": {
    "text": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana"
  },
  "progress": null,
  "outputs": [],
  "data": null,
  "error": null,
  "run_id": null,
  "source": "api",
  "created_at": "2026-11-06T12:00:00Z",
  "finished_at": null,
  "eta_seconds": 20
}

Cuánto cuesta

Modelo de vozPrecio
multilingual-v25 cr
turbo-2.53 cr

Estos precios son con una duración por defecto: el precio depende de la duración de tu texto o archivo, y el precio exacto aparece antes de ejecutar la tarea. La zona de pruebas muestra el precio exacto de tus ajustes. La tarea se cobra una vez al aceptarla y se reembolsa si falla.

Parámetros

NombreTipoPor defectoValores
textobligatorioTexto del guion string Hasta 5.000 caracteres
voiceVoz enum hpp4J3VqNfWAUOO0d1Us hpp4J3VqNfWAUOO0d1Us, EkK5I93UQWFDigLMpZcX, Z3R5wn05IrDiVCyEkUrK, NNl6r8mD7vthiJatiJt1, YOq2y2Up4RgXP2HyXjE5, B8gJV1IhpuegLxdpXFOE, 2zRM7PkgwBPiau2jvVXc, 1SM7GgM6IMuvQlz2BwM3, 5l5f8iK3YPeGga21rQIX, scOwDtmlUjD3prqpp97I, NOpBlnGInO9m6vDvFkFC, BZgkqPqms7Kj9ulSkVzn, ...
modelModelo de voz enum multilingual-v2 multilingual-v2, turbo-2.5
languageIdioma enum auto auto, es, en, pt, fr, it, de
speedVelocidad number 1.0 0.7 - 1.2
stabilityEstabilidad number 0.5 0 - 1
previous_textTexto anterior string Hasta 5.000 caracteres
next_textTexto siguiente string Hasta 5.000 caracteres
allow_fallbackVoz de respaldo si ElevenLabs falla boolean true

Envíalos dentro de params. Los archivos son ids de POST /api/v1/uploads. Ver la documentación

Más modelos