Sounds
Describe a sound and you get a clip. Describe a whole scene and you get it split into events placed in time, which you can fix before generating them, and then mixed.
It is built for people editing video: what they lack is not a timeline —they already have one— but the specific sound. That is why this hands back clips, not projects.
Output is 48 kHz stereo WAV, the rate video works at. The model generates at 44.1 kHz and we upsample to 48 before handing it over; upsampling loses nothing of what the model made.
A scene
A scene takes two steps, and the middle one is editable on purpose:
- The plan. You describe the scene in plain language —"a motorcycle stops after eight seconds, the rider gets off and walks to the sea"— and a language model breaks it into events with their start time and length. No audio is generated here.
- The generation. With the plan fixed to your liking, each event is generated and all of them are mixed, honouring the timings.
Two steps and not one because six events are six generations: spending them on a plan that was not what you meant is throwing them away. And seeing the plan shows how the tool thinks, which is half of learning to use it.
Events can overlap, and they should: a background ambience running the whole scene with the hits on top sounds like a scene; clips glued end to end sound like a list of clips.
Over the API
Three routes. All of them need a paid plan.
One sound
POST /v1/audio/sfx — JSON body, returns the WAV.
| Field | Type | What it is |
|---|---|---|
descripcion | text | Required. The sound you want. The model understands English far better than other languages. |
segundos | number | Length, 1 to 30. Defaults to 10. |
seed | integer | The same seed with the same description gives the same sound. If you omit it, the engine picks one and hands it back to you. |
traducir | boolean | true
translates the description into English before generating, and tells you in
X-Prompt which text was actually used. |
curl -X POST https://api.uttera.ai/v1/audio/sfx \
-H "Authorization: Bearer $UTTERA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"descripcion":"waves breaking on a pebble beach","segundos":12}' \
-o sound.wav
Response headers: X-Seed (the seed actually used),
X-Seconds, X-Generations, X-Watermark,
X-Prompt and X-Translated.
The plan of a scene
POST /v1/audio/sfx/plan — takes descripcion and
segundos (4 to 120) and returns the list of events. It generates
no audio: you are only charged for the language model's work.
The scene
POST /v1/audio/sfx/scene — takes the plan, edited if you want,
and returns JSON with the mix and the separate pieces, all as
base64-encoded WAV and all watermarked.
{"segundos": 20,
"sucesos": [{"inicio": 0.0, "duracion": 20.0, "prompt": "quiet kitchen ambience"},
{"inicio": 4.0, "duracion": 4.0, "prompt": "fridge door opening"}]}
Limits and cost
| What | How much |
|---|---|
| Length of one sound | 30 s |
| Length of a scene | 120 s |
| Events per scene | 6, 2 to 30 s each |
| Request body | 64 kB (it is JSON, not a file) |
| Plan | Paid. Not on the free plan. |
Charged per generation, not per second
And that is not a rounding of ours: it is diffusion, and the cost is set by the sampler's steps, not by the length you ask for. Measured on our node, a 5-second clip and a 30-second one take the same time. Charging per second would make the short one cost six times less for exactly the same work.
One sound is 11.636 credits flat, plus 0.026 per second of audio, which is what watermarking costs. A 10 s clip comes to 11.90. A scene is as many generations as it has events, plus the planner's tokens, charged like the summary's.
503.