Mirelo AI Sfx 1.6 Text To Audio API Documentation

Mirelo AI Sfx 1.6 Text To Audio API Documentation

Playground

Try it on WaveSpeedAI!

Mirelo SFX1.6 Text to Audio is a fast AI audio generation model that creates sound effects and ambient audio directly from text prompts, with optional seamless ambience looping. Ready-to-use REST inference API for sound effect generation, game audio, video production, cinematic sound design, background ambience, loopable audio assets, and professional audio workflows with simple integration, no coldstarts, and affordable pricing.

Features

Mirelo AI SFX 1.6 Text-to-Audio generates sound effects, ambience, and short audio clips from natural-language prompts. It supports loop-friendly ambience mode, multiple variations, flexible duration control, and optional doubled loop output for seamless background audio workflows.


Why Choose This?

  • Prompt-based audio generation Generate sound effects or ambient audio directly from a text description.

  • Flexible duration control Choose the target duration for the generated clip, from short effects to longer ambient beds.

  • Loop-friendly ambience mode Enable ambience to generate audio designed for seamless looping.

  • Multiple variations Generate up to 4 different versions in one request with num_samples.

  • Optional doubled loop output When using ambience mode, enable double_output to concatenate the loop with itself for a longer seamless result.

  • Production-ready API Useful for games, film, podcasts, background ambience, sound design, and content production workflows.


Parameters

ParameterRequiredDescription
text_promptYesText prompt describing the sound effect or ambient audio to generate. Minimum length: 4 characters.
durationNoTarget duration in seconds. Range: 0.1–60. Default: 10.
ambienceNoWhen true, generate and stitch the result so the tile loops seamlessly. Default: false.
double_outputNoOnly used when ambience is true: concatenate the loop with itself for a 2x-length output. Default: false.
num_samplesNoNumber of variations to generate. Range: 1–4. Default: 1.

How to Use

  1. Write your prompt — describe the sound, mood, texture, or environment you want.
  2. Set duration — choose how long the generated audio should be.
  3. Enable ambience (optional) — turn this on if you want a seamless loopable result.
  4. Enable double output (optional) — when using ambience, use this to produce a doubled loop.
  5. Set number of samples — choose how many variations you want, from 1 to 4.
  6. Submit — run the model and download the generated audio.

Example Prompt

Dark cinematic ambience with distant thunder, soft low-frequency rumble, subtle wind, and evolving tension


Pricing

Pricing is based on generated duration and number of samples.

Duration1 Sample2 Samples3 Samples4 Samples
1s$0.01$0.02$0.03$0.04
5s$0.05$0.10$0.15$0.20
10s$0.10$0.20$0.30$0.40
20s$0.20$0.40$0.60$0.80
30s$0.30$0.60$0.90$1.20
60s$0.60$1.20$1.80$2.40

Billing Rules

  • Pricing is $0.01 per generated second
  • text_prompt does not affect pricing
  • This pricing assumes ambience and double_output do not change billing unless your backend explicitly makes them billable

Best Use Cases

  • Sound effects — Generate short custom SFX for games, apps, and media.
  • Ambient loops — Create seamless background beds for environments and scenes.
  • Content production — Add generated sound design to videos, podcasts, or social content.
  • Creative prototyping — Explore multiple sound directions quickly with several variations.
  • Game and app audio — Produce loopable background textures and interactive sound assets.

Pro Tips

  • Be specific in your prompt about texture, mood, environment, and intensity.
  • Use ambience when the output needs to loop smoothly.
  • Turn on double_output only when you want a longer looped deliverable.
  • Increase num_samples when you want multiple creative options from the same prompt.
  • Start with shorter durations for testing, then scale up once the direction feels right.

Notes

  • text_prompt is required.
  • duration supports 0.1–60 seconds.
  • num_samples supports 1–4.
  • double_output only applies when ambience is enabled.
  • Pricing is based on requested generation duration and sample count.

  • Mirelo AI SFX 1.6 Extend Audio — Extend an existing audio clip with newly generated continuation.
  • Mirelo AI SFX 1.6 Inpaint Audio — Regenerate a selected segment inside an existing audio clip.
  • Other Mirelo AI sound generation workflows — Useful when you need continuation or localized audio editing instead of fresh generation.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "text_prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "duration": 10,
  "ambience": false,
  "double_output": false,
  "num_samples": 1
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/mirelo-ai/sfx-1.6/text-to-audio" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
text_promptstringYes--Text prompt describing the sound effect or ambient audio to generate.
durationnumberNo100.1 ~ 60Target duration in seconds.
ambiencebooleanNofalse-When true, generate and stitch the result so the tile loops seamlessly.
double_outputbooleanNofalse-Only used when ambience is true: concatenate the loop with itself for a 2x-length output.
num_samplesintegerNo11 ~ 4Number of variations to generate.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.