mcpField
S
sound-effects

sound-effects

github.com/elevenlabsCreative & media51611.9k installsUpdated today
Repository

About sound-effects

A skill for generating sound effects from text descriptions, aimed at developers using ElevenLabs through Python, JavaScript, or its CLI. It exposes controls for duration, looping, prompt adherence, and audio format.

Key features

  1. 01Text-to-sound-effects generation
  2. 02Custom duration from 0.5 to 30 seconds
  3. 03Seamless looping with v2 model
  4. 04Prompt influence adjustment
  5. 05Multiple audio output formats

Use cases

  1. 01Creating ambient audio from text prompts
  2. 02Generating a loopable forest ambience
  3. 03Producing sound effects for projects in specified formats

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/elevenlabs/skills --skill sound-effects

After installing, type/sound-effectsin Claude Code to confirm it loaded.

Bundled filesreferences/installation.md

Details

From the project README

ElevenLabs Sound Effects

Generate sound effects from text descriptions — supports looping, custom duration, and prompt adherence control.

Setup, before writing any code: if ELEVENLABS_API_KEY isn't set for this project, run npx -y @elevenlabs/cli@latest onboard init from the app's folder first and follow what it prints: it signs the user in and stores a key for the project, so nobody copies one by hand. Otherwise see the Installation Guide. For JavaScript, use @elevenlabs/* packages only.

Quick Start

Python
from elevenlabs 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"));
CLI
elevenlabs text-to-sound-effects convert \
  --text "Thunder rumbling in the distance with light rain" \
  --output thunder.mp3

Parameters

ParameterTypeDefaultDescription
textstring (required)—Description of the desired sound effect
model_idstringeleven_text_to_sound_v2Model to use
duration_secondsnumber | nullnull (auto)Duration 0.5–30s; auto-calculated if null
prompt_influencenumber | null0.3How closely to follow the prompt (0–1)
loopbooleanfalseGenerate 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 (CLI) or output_format as an SDK parameter:

FormatDescription
mp3_44100_128MP3 44.1kHz 128kbps (default)
pcm_44100Raw uncompressed CD quality
opus_48000_128Opus 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, wav_8000, wav_16000, wav_22050, wav_24000, wav_32000, wav_44100, wav_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

Comments

Markdown supported