Kitta AI Docs
API ReferenciaTexto a vozTexto a voz (síncrono)
Back to site

Texto a voz síncrono v3

Genera audio de forma síncrona o crea trabajos asíncronos recuperables con HTTP v3.

HTTP TTS v3 es el contrato neutral recomendado. La plataforma gestiona el proveedor; el cliente usa voiceId y modelId públicos.

Base URL

https://kittaai.com/api/open/v3

Elegir entrega síncrona o asíncrona

Usa síncrono para texto corto. Usa Jobs para texto largo, lotes o resultados que deban recuperarse.

Descubrir modelos y voces

curl "https://kittaai.com/api/open/v3/speech/tts/capabilities"
curl "https://kittaai.com/api/open/v3/voices?page=1&pageSize=20&includePersonal=false" \
  -H "Authorization: Bearer $KITTA_API_KEY"

Usa solo modelos disponibles y una voz cuyo modelIds incluya el modelo elegido. Lee límites, formatos y controles desde capabilities.

Generar de forma síncrona

POST /api/open/v3/speech/tts
curl "https://kittaai.com/api/open/v3/speech/tts" \
  -H "Authorization: Bearer $KITTA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Request-Id: tts-example-001" \
  -d '{"text":"Hello","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s21pro-flash","format":"mp3"}' --output speech.mp3

Campos de solicitud

fieldtyperequiredconstraints
textstringyes1–10,000
voiceIdstringyesmust support modelId
modelIdstringnopublic model ID; omitted uses voice provider default
formatstringnomp3, wav, ogg; default mp3
speednumberno0.5–2; default 1
volumenumberno-20–20; default 0
pitchnumberno-12–12
stabilitynumberno0.5–1.5
similaritynumberno0.5–1.5
languagestringno1–64 characters in v3
emotionstringno1–64 characters in v3
instructionstringnoup to 1,600 characters
textNormalizationbooleannostructured-text normalization

Unknown fields are rejected. Unsupported generic controls are listed in X-OpenAPI-Ignored-Parameters.

Respuesta correcta

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Request-Id: tts-example-001
X-OpenAPI-Quota-Remaining: 99994
X-OpenAPI-Credits-Used: 6

<binary audio data>

Una respuesta correcta contiene audio binario. Comprueba el estado HTTP y Content-Type; los errores son JSON.

Trabajos asíncronos

POST /speech/tts/jobs
GET /speech/tts/jobs/{jobId}
GET /speech/tts/jobs/{jobId}/audio?download=1
Authorization: Bearer KITTA_API_KEY

Guarda task.taskId. pending y processing no son finales; success, partial_fail y fail sí lo son.

Errores y reintentos

Errors use {"code":"ERR_REQUEST_ID_CONFLICT","message":"...","requestId":"..."}. 400 solicitud inválida; 401 clave inválida; 402 cuota insuficiente; 404 recurso inexistente; 409 conflicto de idempotencia; 413 solicitud grande; 429 límite; 500 fallo.

Idempotencia y facturación

Reutiliza una X-Request-Id estable solo para la misma solicitud. El audio síncrono completado no se repite; los Jobs siguen consultables.

Contrato legible por máquinas y migración

GET /api/open/v3/openapi.json

Los clientes v1/v2 siguen siendo compatibles. Las integraciones nuevas usan v3. Migration guide.