API de Worder

Genera voz a partir de voces humanas reales y verificadas, de forma programática. Paga por segundo de audio generado.

¿Por qué desarrollar con Worder?

Voces de origen ético

Cada voz la sube y la verifica en cámara el propio actor de voz. Sin datos extraídos de internet.

Precio por segundo

Cada actor fija su tarifa por segundo. Paga solo por el audio que generas, o ahorra con los niveles de suscripción.

Los actores se quedan con el 90 %

Después de las comisiones de tarjeta y de generación con IA, los actores de voz se quedan con el 90 % de cada venta. Los pagos se procesan a través de Stripe Connect.

Inicio rápido

1. Obtén tu clave de API y añade créditos

Crea una cuenta y luego ve a Panel → API para desarrolladores para crear una clave. Añade créditos (mínimo $5): cada generación se cobra de tu saldo o de una suscripción que tengas con un actor de voz.

2. Encuentra una voz y una muestra

curl https://worder.com/api/v1/voices \
  -H "Authorization: Bearer wdr_YOUR_API_KEY"

Devuelve las voces con sus ID, muestras, idiomas, precios por segundo y niveles de suscripción. O explora el marketplace y copia el ID de la voz o de la muestra desde cualquier página de muestra → “Generar con la API”.

3. Genera voz

curl -X POST https://worder.com/api/v1/generate \
  -H "Authorization: Bearer wdr_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_id": "VOICE_ID",
    "sample_id": "SAMPLE_ID",
    "text": "[happy] Hello, this is a test of the Worder API. [pause 1] [calm] Now let us discuss the details."
  }'

Devuelve una URL firmada del WAV generado, el número de segundos producidos, el importe cobrado y si el cobro se hizo a una suscripción o a tus créditos.

Tipos de voz

De una emoción

Una sola muestra grabada. Todo el guion se genera con un tono uniforme. Las etiquetas de dirección no están disponibles. Ideal para narración, avisos y contenido de estilo constante.

Multiemoción

13 estilos emocionales grabados por el actor de voz. Los compradores usan etiquetas de dirección como [happy], [angry] y [calm] para cambiar de emoción a mitad del guion. Ideal para anuncios, narrativa, personajes y contenido dinámico.

Etiquetas disponibles: normal, excited, happy, confident, fast, calm, surprised, angry, thoughtful, sad, annoyed, scared, nervous.

El campo voiceType de la respuesta de la API indica de qué tipo es cada voz. Usa descriptiveTags (hasta 5 palabras clave como “grave”, “cálida”, “profesional”) para buscar voces con una cualidad concreta.

Referencia de la API

GET/api/v1/voices

Lista las voces verificadas en cámara que tienen al menos una muestra.

Parámetros de consulta

language — Filtrar por idioma (p. ej., "English")

search — Búsqueda por nombre, sin distinguir mayúsculas

limit — Resultados por página (20 por defecto, máximo 100)

offset — Desplazamiento de paginación

Respuesta

{
  "voices": [
    {
      "id": "...",
      "name": "Professional Narrator",
      "language": "English (United States)",
      "accent": null,
      "voiceType": "MULTI_EMOTION",
      "descriptiveTags": ["deep", "warm", "professional"],
      "samples": [
        { "id": "...", "label": "normal" },
        { "id": "...", "label": "happy" },
        { "id": "...", "label": "angry" }
      ],
      "user": {
        "id": "...",
        "name": "Sarah Mitchell",
        "pricePerSecondCents": 5,
        "volumeDiscounts": [
          { "threshold": 3600, "discountPercent": 20 }
        ],
        "storefront": { "slug": "sarahmitchell" }
      }
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}
POST/api/v1/generate

Genera voz a partir de una voz. Si tienes una suscripción activa con ese actor de voz, los segundos se descuentan de la suscripción. Si no, se cobran tus créditos a la tarifa por segundo del actor.

Cuerpo de la solicitud (JSON)

voice_id obligatorio — ID de la voz

sample_id — Muestra predeterminada para el texto sin etiqueta (por defecto, la primera muestra)

text obligatorio — Texto a sintetizar (mínimo 30, máximo 5000 caracteres). Admite etiquetas de dirección y de pausa (ver más abajo).

Etiquetas de dirección

Encierra partes de tu guion entre corchetes con el nombre de una etiqueta que coincida con una de las etiquetas de muestra de la voz. Worder genera cada sección con la muestra correspondiente y luego une el audio.

"text": "[happy] Welcome to the show! [confident] Now let's talk business."

Las etiquetas disponibles dependen de la voz: consulta el campo samples[].label de /api/v1/voices. El texto sin etiqueta usa el sample_id que indiques, o la primera muestra. En una voz multiemoción, una etiqueta que no coincide con ninguna de sus muestras devuelve 422 con las etiquetas disponibles de la voz; no se genera ni se cobra nada. Los guiones escritos con las 13 etiquetas estándar funcionan en cualquier voz que las ofrezca.

Etiqueta de pausa

Inserta silencio entre secciones. Indica la duración en segundos (entero o decimal, máximo 30). El texto después de una pausa continúa con el estilo de la etiqueta anterior.

"text": "[excited] Big news! [pause 2] [calm] But let's take it one step at a time."
"text": "[calm] Take a breath. [pause 1.5] Now continue."
"text": "[happy] Hola! [pausa 3] [calm] Ahora hablemos con calma."

Se admiten tanto [pause N] como [pausa N] (funciona en cualquier idioma).

Etiqueta de énfasis

Usa [emphasize] para subir el volumen de la siguiente sección. No cambia el estilo de la voz: usa la misma muestra que la etiqueta anterior. El texto después de [emphasize] continúa con el estilo de la etiqueta anterior.

"text": "[calm] Take a deep breath. [emphasize] Now give it everything you've got!"

También se admiten: [emphasis], [enfatizar], [énfasis].

Ajustes de pronunciación

Usa {written|spoken} para controlar cómo se pronuncian ciertas palabras. El motor de TTS recibe la versión “hablada”; el control de calidad compara con la versión “escrita”.

"text": "{Pulse|Pols} es la energía que necesitas. {Nike|Naiki} también lo sabe."

Útil para nombres de marcas, palabras extranjeras o términos técnicos que el TTS pronuncia mal.

Requisitos de los segmentos

Cada sección etiquetada debe tener al menos 30 caracteres. Los segmentos más cortos producen audio poco fiable. Si varias secciones son demasiado cortas, la API devuelve todos los errores a la vez.

Después de generar, Worder transcribe el resultado con Whisper y lo compara con el texto de entrada. Si la coincidencia es inferior al 90 %, la generación se rechaza (422) y no se te cobra.

Respuesta

{
  "audio_url": "https://...",
  "voice_id": "...",
  "sample_id": "...",
  "seconds_generated": 12,
  "cost_cents": 60,
  "charged_via": "credits",
  "subscription_id": null,
  "balance_cents": 9940
}

Códigos de error

400 — Error de validación (texto demasiado corto, idioma que no coincide, segmento demasiado corto). Puede contener varios errores separados por saltos de línea.

401 — Clave de API no válida o ausente

402 — Créditos insuficientes (la respuesta incluye required_cents y balance_cents)

404 — Voz o muestra no encontrada

422 — Control de calidad fallido (la respuesta incluye similarity, transcript y quality_failed: true). No se te cobra.

502 — La generación falló (error del servicio de TTS)

Precios

Precio por segundo: cada actor de voz fija su propia tarifa (mínimo $0.01/s). Pagas solo por los segundos de audio realmente producidos.

Suscripciones: contrata un paquete mensual de segundos (1 h, 10 h o 100 h) y ahorra entre un 20 % y un 60 % sobre la tarifa por segundo. Las suscripciones se compran en la interfaz web y se aplican automáticamente cuando llamas a la API.

Créditos: recargas puntuales de tu cuenta, mínimo $5. Los créditos se cobran cuando ninguna suscripción cubre una generación.

Reparto de ingresos: las comisiones de procesamiento de tarjeta y de generación con IA se descuentan primero. Del resto, los actores de voz se quedan con el 90 % (pagado a través de Stripe Connect) y Worder con el 10 %.