oruk
Human? Synthetic? Oruk synthetic speech API, with an illustrative spectrum sculpture.
Synthetic speech detection

OrukZero.

Upload speech. Get a human-or-synthetic prediction, a score,
and a breakdown across the recording.

Free with every paid plan
1–60 secAudio per request
12 MiBMaximum file size
4 formatsWAV · FLAC · OGG · MP3
60 / minRequests per API key

One request.

Use your Oruk API key with any active paid plan. OrukZero costs $0 extra and uses no credits or included minutes—even after your other model allowances are exhausted.

Request · cURL
curl https://speech-api.oruk.ai/v1/audio/synthetic-speech \
  -H "Authorization: Bearer $ORUK_API_KEY" \
  -F model=orukzero \
  -F file=@speech.wav
Example response · abridged
{
  "model": "orukzero",
  "prediction": "human",
  "synthetic_score": 0.00156,
  "threshold": 0.5,
  "duration": 14.45,
  "model_revision": "2026-10-05-adapt-216",
  "usage": { "billed": false, "billing_mode": "included_with_paid_plan" }
}

Read the signal.

synthetic_score runs from 0 to 1. Scores at or above 0.5 are labeled synthetic; lower scores are labeled human. This is an uncalibrated model score, not a probability or proof of authenticity.

segments provides scores for windows of up to six seconds. Longer clips use a coverage-weighted mean of logits, with an overlapping tail when needed. This aggregation is experimental; inspect segment scores when they disagree.

OrukZero is intended for English speech. It does not verify language or detect voice activity. Multilingual, adversarial, mixed-origin, noisy, and heavily processed recordings need separate validation. A human prediction cannot certify that a recording is genuine.

Input & privacy

Mono or stereo, 8–48 kHz. Send one audio file in multipart form data. Silence, malformed files, M4A/AAC, and remote URLs are not supported.

Uploaded audio is processed transiently and is not retained or logged by this endpoint. Responses are not cached. Your API key is never forwarded to the inference worker.

Handle errors

401 / 402401: invalid API key. 402: an active paid plan is required; free trials and prepaid-only accounts are not eligible.
413 / 415 / 422Check file size, multipart format, and audio limits.
429Rate limit or worker busy. Honor Retry-After.
503Temporarily unavailable. Retry with backoff.