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
/api/v1/voicesLista 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
}/api/v1/generateGenera 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 %.