Nano Banana 2.1 is LIVE — Google's Latest | Try Now →

elevenlabs/sound-effects-v2

ElevenLabs Sound Effects V2 Text-to-SFX generates high-quality sound effects and seamlessly looping ambience from text descriptions for video, games, ads, social content, and sound design workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Sound Effects Generation
Input
Enable Safety Checker

Idle

$0.0022per run·~454 / $1

ExamplesView all

A sci-fi starship opens a wormhole: a deep reactor hum builds into crackling electric arcs, then a massive spatial tear erupts with a metallic roar. The ship jumps through with a sharp, sweeping whoosh, leaving shimmering echoes that fade into silence. Cinematic, powerful, richly detailed. Sound effects only, no speech, no music.

Related Models

README

ElevenLabs Sound Effects V2

ElevenLabs Sound Effects V2 generates sound effects and looping ambience directly from text descriptions. Describe the sound, environment, intensity, and how it should evolve, then choose the duration and optionally enable seamless looping.

It is designed for cinematic effects, environmental ambience, game audio, transitions, Foley-style sounds, and other non-speech audio workflows.

Why Choose This?

  • Text-to-sound generation
    Create sound effects directly from natural-language descriptions.

  • Seamless looping
    Enable loop to generate ambience or effects designed to repeat smoothly.

  • Flexible duration
    Generate sounds from 0.5 to 22 seconds.

  • Prompt adherence control
    Use prompt_influence to adjust how closely the generated sound follows the text description.

  • Environmental sound design
    Describe location, atmosphere, movement, intensity, and changes over time.

  • Simple workflow
    Provide a prompt, choose the duration, and generate a downloadable audio file.

Parameters

ParameterRequiredDescription
promptYesText description of the sound effect, environment, and how the sound changes over time. Maximum 450 characters.
durationNoRequested sound duration in seconds. Range: 0.5–22. Default: 5.
loopNoGenerate a sound effect designed to loop smoothly. Default: false.
prompt_influenceNoControls how closely the generated sound follows the prompt. Higher values increase prompt adherence. Default: 0.3.

How to Use

  1. Describe the sound — Specify the sound source, environment, intensity, texture, and movement.
  2. Set duration optional — Choose a duration from 0.5 to 22 seconds.
  3. Enable looping optional — Set loop=true when you need repeating ambience or a seamless audio loop.
  4. Adjust prompt influence optional — Increase it when closer adherence to the description is important.
  5. Submit — Generate, preview, and retrieve the audio file.

Pricing

Pricing is based on the requested duration.

The rate is $0.0022 per requested second.

DurationPrice
0.5s$0.0011
5s$0.011
10s$0.022
15s$0.033
22s$0.0484

If duration is omitted, the default 5-second request costs $0.011.

loop and prompt_influence do not add separate charges.

Best Use Cases

  • Cinematic sound effects — Generate impacts, transitions, mechanical sounds, environmental events, and dramatic effects.
  • Ambient soundscapes — Create rain, forests, city environments, room tone, machinery, crowds, and other background ambience.
  • Game audio — Generate effects for environments, interactions, objects, creatures, and gameplay events.
  • Looping backgrounds — Create repeatable ambience for games, installations, videos, or interactive experiences.
  • Foley-style effects — Generate footsteps, doors, fabric movement, object handling, and other action-related sounds.
  • Creative prototyping — Quickly explore different sound-design directions from text descriptions.

Pro Tips

  • Describe the sound itself rather than spoken narration.
  • Include the environment when acoustics matter, such as a narrow hallway, open field, warehouse, or small room.
  • Describe how the sound evolves, such as gradually building, fading away, approaching, or moving past the listener.
  • Use specific material and action words for Foley-style effects.
  • Enable loop for continuous ambience that needs to repeat smoothly.
  • Increase prompt_influence when the output needs to follow specific sound characteristics more closely.
  • Keep the prompt focused instead of combining many unrelated sound events.

Notes

  • prompt is required and supports up to 450 characters.
  • duration supports values from 0.5 to 22 seconds.
  • duration defaults to 5 seconds.
  • loop defaults to false.
  • prompt_influence defaults to 0.3.
  • Output is provided as an MP3 audio file.
  • This endpoint is intended for sound effects and ambience rather than spoken narration.

Related Models

  • ElevenLabs Eleven V4 — Generate expressive spoken narration, voiceovers, and character performances.
Note:This website uses AI models provided by third parties. Documentation prices are for reference and may be outdated. The Generate button shows an estimate; the final task charge prevails.

Sound Effects v2 API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/elevenlabs/sound-effects-v2 with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Sound Effects v2 below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "duration": 5,
    "loop": false,
    "prompt_influence": 0.3
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/elevenlabs/sound-effects-v2" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

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

# 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 has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/elevenlabs/sound-effects-v2";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "duration": 5,
        "loop": false,
        "prompt_influence": 0.3
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "duration": 5,
    "loop": False,
    "prompt_influence": 0.3
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/elevenlabs/sound-effects-v2", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout", "deleted"}:
        raise RuntimeError(result)
    time.sleep(2)

Sound Effects v2 API — Frequently asked questions

What is the Sound Effects v2 API?

Sound Effects v2 is a ElevenLabs model for sound effect generation, exposed as a REST API on WaveSpeedAI. ElevenLabs Sound Effects V2 Text-to-SFX generates high-quality sound effects and seamlessly looping ambience from text descriptions for video, games, ads, social content, and sound design workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Sound Effects v2 API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates Python, JavaScript, and cURL examples for submitting requests and polling results. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/elevenlabs/elevenlabs-sound-effects-v2.

How much does Sound Effects v2 cost per run?

Sound Effects v2 starts at $0.0022 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Sound Effects v2 accept?

Key inputs: `prompt`, `duration`, `loop`, `prompt_influence`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/elevenlabs/elevenlabs-sound-effects-v2.

How do I get started with the Sound Effects v2 API?

Sign up for a free WaveSpeedAI account to claim starter credits, copy your API key from /accesskey, then call the endpoint shown in the API tab of the playground. The playground also auto-generates a code sample in Python, JavaScript, or cURL for the parameters you've set.

Can I use Sound Effects v2 outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (ElevenLabs). Check the provider's applicable terms and WaveSpeedAI's Terms of Service before commercial use.

llms.txt — elevenlabs/sound-effects-v2 for AI agents and LLMs