ElevenLabs Sound Effects
Generate sound effects from text descriptions — supports looping, custom duration, and prompt adherence control.
Setup: See Installation Guide. For JavaScript, use @elevenlabs/* packages only.
Quick Start
Python
from elevenlabs.client import ElevenLabs
client = ElevenLabs()
audio = client.text_to_sound_effects.convert(
text="Thunder rumbling in the distance with light rain",
)
with open("thunder.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
JavaScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { createWriteStream } from "fs";
const client = new ElevenLabsClient();
const audio = await client.textToSoundEffects.convert({
text: "Thunder rumbling in the distance with light rain",
});
audio.pipe(createWriteStream("thunder.mp3"));
cURL
curl -X POST "https://api.elevenlabs.io/v1/sound-generation" \
-H "xi-api-key: $ELEVENLABS_API_KEY" -H "Content-Type: application/json" \
-d '{"text": "Thunder rumbling in the distance with light rain"}' \
--output thunder.mp3
Parameters
| Parameter | Type | Default | Description |
|---|
text | string (required) | — | Description of the desired sound effect |
model_id | string | eleven_text_to_sound_v2 | Model to use |
duration_seconds | number | null | null (auto) | Duration 0.5–30s; auto-calculated if null |
prompt_influence | number | null | 0.3 | How closely to follow the prompt (0–1) |
loop | boolean | false | Generate a seamlessly looping sound (v2 model only) |
Examples with Parameters
# Looping ambient sound, 10 seconds
audio = client.text_to_sound_effects.convert(
text="Gentle forest ambiance with birds chirping",
duration_seconds=10.0,
prompt_influence=0.5,
loop=True,
)
# Short UI sound, high prompt adherence
audio = client.text_to_sound_effects.convert(
text="Soft notification chime",
duration_seconds=1.0,
prompt_influence=0.8,
)
Output Formats
Pass output_format as a query parameter (cURL) or SDK parameter:
| Format | Description |
|---|
mp3_44100_128 | MP3 44.1kHz 128kbps (default) |
pcm_44100 | Raw uncompressed CD quality |
opus_48000_128 | Opus 48kHz 128kbps — efficient compressed |
ulaw_8000 | μ-law 8kHz — telephony |
Full list: mp3_22050_32, mp3_24000_48, mp3_44100_32, mp3_44100_64, mp3_44100_96, mp3_44100_128, mp3_44100_192, pcm_8000, pcm_16000, pcm_22050, pcm_24000, pcm_32000, pcm_44100, pcm_48000, ulaw_8000, alaw_8000, opus_48000_32, opus_48000_64, opus_48000_96, opus_48000_128, opus_48000_192.
Prompt Tips
- Be specific: "Heavy rain on a tin roof" > "Rain"
- Combine elements: "Footsteps on gravel with distant traffic"
- Specify style: "Cinematic braam, horror" or "8-bit retro jump sound"
- Mention mood/context: "Eerie wind howling through an abandoned building"
Error Handling
try:
audio = client.text_to_sound_effects.convert(text="Explosion")
except Exception as e:
print(f"API error: {e}")
Common errors:
- 401: Invalid API key
- 422: Invalid parameters (check duration range, prompt_influence range)
- 429: Rate limit exceeded
References
Referenced Files
The following files are referenced in this skill and included for context.
references/installation.md
# Installation
## JavaScript / TypeScript
```bash
npm install @elevenlabs/elevenlabs-js
Important: Always use @elevenlabs/elevenlabs-js. The old elevenlabs npm package (v1.x) is deprecated and should not be used.
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
// Option 1: Environment variable (recommended)
// Set ELEVENLABS_API_KEY in your environment
const client = new ElevenLabsClient();
// Option 2: Pass directly
const client = new ElevenLabsClient({ apiKey: "your-api-key" });
Python
pip install elevenlabs
from elevenlabs.client import ElevenLabs
# Option 1: Environment variable (recommended)
# Set ELEVENLABS_API_KEY in your environment
client = ElevenLabs()
# Option 2: Pass directly
client = ElevenLabs(api_key="your-api-key")
cURL / REST API
Set your API key as an environment variable:
export ELEVENLABS_API_KEY="your-api-key"
Include in requests via the xi-api-key header:
curl -X POST "https://api.elevenlabs.io/v1/sound-generation" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Thunder rumbling in the distance"}' --output output.mp3
Getting an API Key
- Sign up at elevenlabs.io
- Go to API Keys
- Click Create API Key
- Copy and store securely
Or use the setup-api-key skill for guided setup.