返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

sound-effects

使用ElevenLabs从文本描述生成音效。适用于创建音效、生成音频纹理、制作环境声音、电影冲击声、用户界面声音或任何非语音音频。支持循环播放、时长控制以及提示影响调节。

person作者: jakexiaohubgithub

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 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