Referencia API
POST /api/v1/generate
Genera audio a partir de texto. Soporta voice design y clonación. Exclusivo del plan Pro.
Body (JSON)
text | Texto a generar (máx 5000 chars). Soporta tags como [laughter]. Requerido. |
language | Código ISO ("es", "en", "ja"…) o nombre. Multilenguaje. Default "es". |
mode | "design" (diseñar voz) o "clone" (clonar). Default "design". |
design | Objeto con gender, age, pitch, whisper, accent, dialect (ver abajo). |
referenceAudioBase64 | Para mode=clone. Audio de referencia en base64 (WAV/MP3). |
referenceText | Transcripción del audio de referencia (opcional). |
savedVoiceId | ID de una voz guardada tuya — alternativa al audio de referencia. |
consent | Obligatorio al clonar: true confirma que tenés permiso para usar la voz. |
speed | 0.5 (lento) – 2.0 (rápido). Default 1.0. |
durationSec | Duración fija de salida en segundos (opcional, anula speed). |
quality | "fast" · "balanced" · "high". Default "balanced". |
seed | Entero opcional para reproducibilidad. |
Objeto design
gender | "female" · "male" |
age | "child" · "teenager" · "young_adult" · "middle_aged" · "elderly" |
pitch | "very_low" · "low" · "moderate" · "high" · "very_high" |
whisper | true / false (estilo ASMR) |
accent | solo inglés: "american", "british", "australian", "indian"… |
dialect | solo chino: "四川话", "东北话"… |
Respuesta 200
{
"audioBase64": "UklGRi4...",
"mime": "audio/wav",
"durationMs": 3200,
"rtf": 0.025,
"provider": "modal",
"latencyMs": 1840
}El audio es WAV 24 kHz mono en base64. Para los errores ver Errores.
Ejemplos
Node.js
const res = await fetch("https://kyma.synthetic.com.ar/api/v1/generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KYMA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "This is my voice speaking English.",
language: "en",
mode: "design",
design: { gender: "male", age: "middle_aged", pitch: "low", accent: "british" },
}),
});
const data = await res.json();
require("fs").writeFileSync("out.wav", Buffer.from(data.audioBase64, "base64"));Python
import requests, base64
r = requests.post(
"https://kyma.synthetic.com.ar/api/v1/generate",
headers={"Authorization": "Bearer kyma_sk_xxx"},
json={
"text": "Texto generado con mi voz clonada.",
"language": "es",
"mode": "clone",
"referenceAudioBase64": "<base64 del audio>",
"consent": True,
"quality": "high",
},
)
open("out.wav", "wb").write(base64.b64decode(r.json()["audioBase64"]))Límites
- Se mide por caracteres procesados, del mismo pool mensual que tu cuenta.
- Free: 10.000 · Creator: 200.000 · Pro: 1.000.000 caracteres/mes.
- Rate limit: 30 requests/minuto por key.