Skip to content

Ask AI

Ask anything about Destesi — setup, products, APIs.

Powered by Claude. Answers may be wrong — always verify against the docs.

Concepts

Text-to-Speech is the Destesi suite’s voice engine: you give it text and a voice, and it returns natural speech audio. It ships a curated catalog of nine built-in voices, each of which speaks every supported language.

There are three things to understand — voices, jobs, and the controls a voice accepts — and one rule that ties everything together: speech is always generated for a workspace.

A voice is the speaker identity applied to your text. Every workspace sees the same shared catalog of nine curated voices — Aria, Nova, Atlas, Indigo, Marlow, Orion, Sage, Lyra, and Juniper (voice_builtin_…).

Each of the nine speaks every supported language, so the same speaker can carry a whole multilingual project, and text that mixes languages needs no special handling.

Every voice has a stable voice_id. You pass that ID on every synthesize call.

One extra parameter changes how a line is read:

  • instruct — a short natural-language delivery direction, up to 500 characters (“warm and unhurried”).

Capability is a property of the voice, not of the product. GET /v1/voices reports each voice’s engine and capabilities, and sending a control a voice does not list is a loud 400 unsupported_parameter. That is deliberate: a control that is sometimes applied and sometimes silently dropped is worse than one that refuses.

A project is a folder for jobs. Long pieces of work — a course, a set of ads, a video’s scene-by-scene narration — produce dozens of clips, and a project keeps them together instead of scattered through one flat history. Projects are optional; a job without one just lives in the general history.

Every synthesize request creates a job. A short request runs inline and comes back done in the same call; a longer one is queued and you poll the job until it reaches done (or failed). Either way, the job is recorded in your history, so you can replay, re-download, or see why something failed under Jobs in the console.

Each finished job produces one audio file: 16-bit PCM WAV, 16 kHz, mono.

Synthesis is safe to retry. Send an Idempotency-Key header and a replay of the same request returns the job you already created rather than billing you for a second identical clip; reusing the key with a different body is rejected as a mistake (409 idempotency_conflict) instead of quietly handing back the wrong audio.

Text-to-Speech is a peer product in the Destesi suite, unified with everything else by one login and one workspace.

When a synthesize job finishes, the resulting WAV is automatically registered in your workspace’s Drive library. Drive is the single artifact store for the whole suite — the same place your generated images, rendered videos, and other files live. That means audio you produce here is immediately reusable by other products without copying files around.

Text-to-Speech is also the narration engine behind richer Destesi products. When Studio produces a multilingual video or Chat generates a narrated promo, the voiceover is synthesized through this same engine — so a voice you hear in a video is the same catalog you can call directly here.

Text-to-Speech has its own chat agent (POST /v1/chat), with the same server-backed conversation history as the rest of the suite. Describe what you want in words — “read this in a calm voice, a bit slower” — and it picks the voice, applies the controls that voice supports, and synthesizes. It is a front door onto the same API documented here, not a separate engine.

  • It is not a place to manage credentials. Text-to-Speech has no product-specific API keys of its own; you authenticate with a suite-wide Personal Access Token (idn_pat_…), and any third-party credentials you need elsewhere live in Connect.
  • It is not an MP3 encoder. Output is always WAV.